将文件添加到GNU依赖列表?

时间:2015-09-26 04:55:06

标签: c++ c sed makefile

我制作了一个简单的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命令完成了它,但现在似乎无法获得它。有人能给我一个指针吗?

1 个答案:

答案 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