Makefile定位多个源但只有一个目标

时间:2016-06-01 22:47:08

标签: makefile

在我的makefile上工作时,我需要编写执行的规则:

$(GRIT) $(GRITFLAGS) INPUTFILE -ff $(addsuffix .grit,$(basename INPUTFILE)) -o grit.c

而INPUTFILE是xxx.png文件的列表。在同一目录中,始终存在需要通过-ff选项传递的xxx.grit文件。但是,所有.png和.grit文件对都提供了相同的输出文件grit.c(grit使用文件追加)。 我试图使用模式规则,但是当我想要像grit.c:%.png%.grit这样的规则时,似乎不允许对不包含模式之类的目标使用模式。 / p>

知道如何解决我的问题吗?

编辑: 主要问题是,我无法将输入文件的lits(如上例所示)传递给GRIT。这只是为了表明我的问题。我需要为每个.png / .grit文件组合调用GRIT

1 个答案:

答案 0 :(得分:2)

grit.c: $(images)
    for png in $?; do \
      $(GRIT) $(GRITFLAGS) $$png -ff $${png%.png}.grit -o $@; \
    done