|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- EXEC = hello
- OBJS = hello.o
6 v0 w& Y7 T6 }8 Z& v% R' |+ \' `9 [- CROSS = ARM-fsl-linux-gnueabi-
- CC = $(CROSS)gcc
- STRIP = $(CROSS)strip
- CFLAGS = -Wall -g -O2
- " h1 P0 i% B3 V9 `7 S6 l, c# D
- all: clean $(EXEC)
2 \$ A! F4 r& `1 t- $(EXEC):$(OBJS)
- $(CC) $(CFLAGS) -o $@ $(OBJS)
- $(STRIP) $@
[3 o* ?% ^( A& v- clean:
- -rm -f $(EXEC) *.o o3 E& H1 v a# |) F) k% T
$ C0 D( Q- U1 L& Z0 V& I3 s
) y* E: z0 A3 H9 t; w" o4 `% a9 F
下面是作者写的* R1 l2 t) J& W- n# m
; G$ }3 Y+ D6 x' f- 下面是我写的一个简单的有三个文件的一个makefile
- OBJ= send.o ymodem.o receive.o
- TARGET= demo
- all: $(OBJ)
- $(CC) $(CCFLAG) $(OBJ) -o $(TARGET)
- %.o:%.c
- $(CC) $(CCFLAG) $(CPPFLAGS) -c -o $@ $<
- clean:
- rm -RF *.o $(TARGET)
- .PHONY: clean
6 |. s& a' Z( N% o5 I, d) ~! M8 V
! V9 n. j- N3 k, u1 s) ^5 c, c) S5 B+ y# ?7 C
0 ]( M; D6 }+ J, ~; Y- #################################################################
- # A simple Makefile
- # By Late Lee
- #
- # bugs:
- # 1. 需要显式指定库位置、名称;
- # 2. make 及 make clean处理得不好(对于库,要么删除再编译,要么无操作);
- ##################################################################
- CC=gcc
- CFLAGS = -Wall
- DEBUG = y
- ifeq ($(DEBUG), y)
- CFLAGS += -g
- else
- CFLAGS += -O2
- endif
- SUBDIRS := foo bar bt
- LIBS := bt/libbt.a foo/libfoo.a bar/libbar.a
- LDFLAGS = $(LIBS)
- RM = -rm -rf
- __OBJS = main.o
- __OBJS += example.o
- __SRCS = $(subst .o,.c,$(__OBJS))
- target = a.out
- MAKE = make
- #all: clean $(target)
- all: $(target)
- $(__OBJS): $(__SRCS)
- $(CC) $(CFLAGS) -c $^ -I ./configs/
- # 这种格式也可以
- #.c.o:
- #%.o: %.c
- # $(CC) $(CFLAGS) -c $^ -I ./configs/
- #********************************************
- #%.o: %.c
- # $(CC) $(CFLAGS) -c $^ -I ./configs/
- #********************************************
- # 可单独:
- #main.o: main.c
- # $(CC) $(CFLAGS) -c $^ -I ./configs/
- #example.o: example.c
- # $(CC) $(CFLAGS) -c $^ -I ./configs/
- $(target): $(__OBJS)
- for dir in $(SUBDIRS); \
- do $(MAKE) -C $$dir all || exit 1; \
- done
- $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS)
- clean:
- @for dir in $(SUBDIRS); do make -C $$dir clean|| exit 1; done
- $(RM) $(__OBJS) $(target) *.bak *~
- .PHONY: all clean
+ t, y: N$ N. h: Z1 w2 l
' }8 D, [+ w! F: E0 O4 s" X3 _3 @% X3 d
8 j& q" |6 `( m
|
|