|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- EXEC = hello
- OBJS = hello.o
9 g3 j8 t+ |2 m: r3 G, V- CROSS = ARM-fsl-linux-gnueabi-
- CC = $(CROSS)gcc
- STRIP = $(CROSS)strip
- CFLAGS = -Wall -g -O2
' X: A2 F3 Z' Z( P- all: clean $(EXEC)
- 6 o2 L7 p- K7 w& M) z
- $(EXEC):$(OBJS)
- $(CC) $(CFLAGS) -o $@ $(OBJS)
- $(STRIP) $@
- 9 E( m4 g/ B7 Y# r! q7 m1 V! U8 V
- clean:
- -rm -f $(EXEC) *.o - k% n( J4 n( R9 X
# \9 O8 H, B }1 B% L# y
9 k- h& u) J) c$ l下面是作者写的) x' Y5 _1 S/ }: L3 j e3 d& P
s" C, ], n; B/ w7 v/ u- 下面是我写的一个简单的有三个文件的一个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$ l# |$ R! S8 \' K2 T; I6 U% F: w
* H; d* d$ V# _, b% i5 g2 K" A. G/ K0 b' U8 P' l! q9 ~
; n) d; W1 Z. v+ u- #################################################################
- # 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& _+ n8 r% B$ d. Z
9 q0 t2 V, `7 U8 i2 F- f
9 D: c% e+ q8 E6 i- @9 w+ w( E- g6 s8 K5 R. J
|
|