我输入了somename.in othername.in yetanothername.in
这样的文件,并希望它们作为输出位于单独的文件夹中:somename/somename.out othername/othername.out yetanothername/yetanothername.out
如何使用Makefile完成此操作?这不起作用,因为通配符只能附加一次。
IN = somename.in othername.in yetanothername.in
OUT = $(IN:%.in=%/%.out)
all:
@echo '${OUT}'
给出了这个输出: somename /%。out othername /%。out yetanothername /%.out
答案 0 :(得分:0)
这是一个肮脏的黑客,但这有效:
IN = somename.in othername.in yetanothername.in
OUT = $(foreach file, $(IN:%.in=%), $(file)/$(file).out)
all:
@echo '${OUT}'
我不确定这是否特定于GNU make。
答案 1 :(得分:0)
OUT := $(foreach b, $(basename $(IN)), $b/$b.out)