Makefile中头文件依赖的自动生成
2008-06-20 17:39
411 查看
gcc有参数可以把源文件的依赖关系全部导出来,比如: -bash:~$gcc -MM main.c 输出:main.o: main.c main.h 使用 -MM参数是只导出自定义头文件,-M则会把系统头文件也导出来。以下是一个自动生成头文件依赖的Makefile:
SRCS = ${OBJS:%.o=%.c}这句是把OBJS中所有的.o替换成.c 组成数组赋给SRCS,相当于:
SRCS = main.c comm.c gamesys.c pyenter.c pyobject.c active.c protocol.c scene.c objmanage.c hash.c map.c placeobj.c pack.c livingobj.c
@$(CC) $(CFLAGS) -MM $(SRCS) > .depend 这句生成依赖关系,并重定向到.depend中,后面把.depend文件include进来就可以使用了。
上面的Makefile在gmake下测试通过,没有指定.o文件的编译命令是利用的gmake隐含规则编译。
1 PYINC = /usr/local/include/python2.5/ 2 PYLIB = /usr/local/lib/python2.5/config 3 CFLAGS = -I$(PYINC) -I$(PYINC)/Include 4 LDFLAGS = -g -ggdb 5 LIBS = -lc -lm -lutil -export-dynamic -L$(PYLIB) -lpython2.5 -lpthread 6 CC = gcc 7 OBJS = main.o comm.o gamesys.o pyenter.o pyobject.o active.o protocol.o scene.o objmanage.o hash.o map.o placeobj.o pack.o livingobj.o 8 SRCS = ${OBJS:%.o=%.c} 9 10 all: depend driver 11 12 depend: 13 @$(CC) $(CFLAGS) -MM $(SRCS) > .depend 14 15 -include .depend 16 17 driver: $(OBJS) 18 $(CC) $(LDFLAGS) $(OBJS) -o driver $(LIBS) 19 20 install: 21 cp driver ./world/ 22 clean: 23 rm -f $(OBJS) 24 rm -f driver 25 rm -f .depend 26 27 tags: 28 ctags *c *h
SRCS = ${OBJS:%.o=%.c}这句是把OBJS中所有的.o替换成.c 组成数组赋给SRCS,相当于:
SRCS = main.c comm.c gamesys.c pyenter.c pyobject.c active.c protocol.c scene.c objmanage.c hash.c map.c placeobj.c pack.c livingobj.c
@$(CC) $(CFLAGS) -MM $(SRCS) > .depend 这句生成依赖关系,并重定向到.depend中,后面把.depend文件include进来就可以使用了。
上面的Makefile在gmake下测试通过,没有指定.o文件的编译命令是利用的gmake隐含规则编译。
相关文章推荐
- makefile 自动生成头文件依赖关系
- Makefile自动生成头文件依赖
- makefile 自动生成依赖文件
- Makefile自动生成头文件依赖
- Makefile 自动生成头文件的依赖关系
- makefile自动生成依赖关系 可自动检测头文件变化
- Makefile自动生成依赖文件,并自动编译
- Makefile自动生成头文件依赖
- Linux下自动生成makefile文件
- automake:自动生成makefile文件
- make自动生成依赖文件的两种形式
- Makefile 自动生成依赖
- make自动生成依赖文件的两种形式
- makefile专题:自动生成依赖关系(续)
- makefile自动生成依赖
- Makefile 自动生成依赖
- 头文件和源文件在不同目录情况下 Makefile自动推导依赖关系的实现
- 自动生成 makefile 文件 以及 用objcopy 生成bin文件
- 一个通用的makefile写法,自动推导文件的依赖关系【转】
- 利用工具自动生成makefile文件