Ubuntu
GCC
Makefile手册 4.13 Generating Prerequisites Automatically
%.d: %.c
@set -e; rm -f [email protected]; \
$(CC) -M $(CPPFLAGS) $< > [email protected]$$$$; \
sed ’s,\($*\)\.o[ :]*,\1.o [email protected] : ,g’ < [email protected]$$$$ > [email protected]; \
rm -f [email protected]$$$$
sources = foo.c bar.c
include $(sources:.c=.d)
上网查了语法解释 最终会产生一个foo.d,假设prerequisite是foo.c
然后内容是:foo.o foo.d: foo.c foo.h defs.h common.h
1.想请问include后 下一行是不就应该要下recipe了? 不然新增一个规则没recipe是
做什么呢? 因为我看我的一个专案的makefile就是在最后一行include 一个.d档,但
没有recipe。
2.foo.o foo.d: foo.c .....common.h ,为什么foo.d要摆在target的位置呢?
不是已经根据prerequisite %.c(foo.c) 判断要不要产生.d档了吗?
谢谢