|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
- EXEC = hello
- OBJS = hello.o
! B" g' H( W. g; Y8 @7 j5 m- CROSS = ARM-fsl-linux-gnueabi-
- CC = $(CROSS)gcc
- STRIP = $(CROSS)strip
- CFLAGS = -Wall -g -O2
- 6 M" R+ y3 |8 T1 S1 w
- all: clean $(EXEC)
- , `5 n8 e. I- ~8 n
- $(EXEC):$(OBJS)
- $(CC) $(CFLAGS) -o $@ $(OBJS)
- $(STRIP) $@
- x% G9 Z9 |3 ~! R9 S$ ~- clean:
- -rm -f $(EXEC) *.o
0 c) R( P9 y5 d + k- E( z' ^, d! Y( M r2 \) O- Q
. G$ B* y; s+ f( V* z. Q! x4 v下面是作者写的
+ N0 Y7 [8 K1 j# O9 ~
9 ~ M# K/ e( L5 f9 k- 下面是我写的一个简单的有三个文件的一个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: clean8 o! C1 V9 f! J! v
X+ Y4 h" L D6 x$ J
+ H1 R I2 Z; @* U) j" C: z! h! @3 D9 O0 G
- #################################################################
- # 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" {) g5 q1 a* R
9 c0 v# @9 i, n$ h" r; ^' l5 C+ e: n' Z6 C
9 t6 s1 c" D$ s( h
|
|