makefile中自动生成对头文件的依赖
一个目标文件经常依赖很多的头文件,且经常会有#inculde语句的添加与删除.
这样每次加了include后,还得改makefile. 这一步可以自动化, make的文档里有提到
从文档里提取的规则:
%.d: %.c
@set -e; rm -f $@; \
$(CC) -M $(CPPFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
gcc的-M选项:
[tangyi@search043040.sqa.cm4 src]$ gcc -M object.c
object.o: object.c redis.h fmacros.h config.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
object.d : object.c
经过sed处理一下会生成的规则:
object.o object.d : object.c redis.h fmacros.h config.h /usr/include/stdio.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
订阅:
博文 (Atom)