我制作了一个简单的makefile来编译AVR代码。我的规则如下:
%.o: %.c
$(CC) -c -o $@ $<
$(CC) -M $(FLAGS) $*.c > $*.d | sed -e ':?:? avr.rules ?'
我试图这样做,以便在test.d中,它会说
test.o: test.c test.h avr.rules
我之前使用类似的sed命令完成了它,但现在似乎无法获得它。有人能给我一个指针吗?
答案 0 :(得分:1)
你可以说
%.o: %.c
$(CC) -c -o $@ $<
$(CC) -M $(FLAGS) $*.c > $*.d
echo '$@: avr.rules' >> $*.d
拥有多个依赖关系跟踪目标没有问题(因为它们都没有配方)。
如果你坚持用sed做,
$(CC) -M $(FLAGS) $*.c | sed 's/:/: avr.rules/' > $*.d
也可以。
附注:您可以使用$<
代替$*.c
。