Makefile目标有多个源,但只有一个目标

Makefile目标有多个源,但只有一个目标,makefile,Makefile,在处理makefile时,我需要编写执行以下操作的规则: $(GRIT) $(GRITFLAGS) INPUTFILE -ff $(addsuffix .grit,$(basename INPUTFILE)) -o grit.c 而INPUTFILE是xxx.png文件的列表。在同一目录中,总有一个xxx.grit文件需要通过-ff选项传递。但是,所有对.png和.grit文件都提供相同的输出文件grit.c(grit使用文件附加)。 我尝试使用模式规则,但当我想使用grit.c:%.png%

在处理makefile时,我需要编写执行以下操作的规则:

$(GRIT) $(GRITFLAGS) INPUTFILE -ff $(addsuffix .grit,$(basename INPUTFILE)) -o grit.c
而INPUTFILE是xxx.png文件的列表。在同一目录中,总有一个xxx.grit文件需要通过-ff选项传递。但是,所有对.png和.grit文件都提供相同的输出文件grit.c(grit使用文件附加)。 我尝试使用模式规则,但当我想使用grit.c:%.png%.grit这样的规则时,似乎不允许对不包含任何类似模式的目标使用模式

你知道怎么解决我的问题吗

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

这不是简单地将.png和.GRIT文件列表传递给GRIT吗?问题是,GRIT只能使用一个输入文件和GRIT文件来匹配它们。@WodkaRHR如果您在问题中提到,
INPUTFILE
是一个图像列表,那将很有帮助。很抱歉,我根据此未指定的信息编辑了问题。出现意外的文件结尾错误这些是我的规则:GFXSRC=$(shell find asset/gfx-type f-iname'*.png')GFXC=$(BLDPATH)/asset/gfx/gfx.c$(GFXC):$(GFXSRC)$(shell mkdir-p$(dir$(GFXC)))以$?;do echo png$(GRIT)$(GRITFLAGS)$$png-ff${png%.png}。GRIT-o$@done
grit.c: $(images)
    for png in $?; do \
      $(GRIT) $(GRITFLAGS) $$png -ff $${png%.png}.grit -o $@; \
    done