我有像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
I have input files like somename.in othername.in yetanothername.in and want them in a separate folder as output: somename/somename.out othername/othername.out yetanothername/yetanothername.out
How can this be done with a Makefile? This does not work, because the wildcard can only be appended once.
IN = somename.in othername.in yetanothername.in OUT = $(IN:%.in=%/%.out) all: @echo '${OUT}'gives this output: somename/%.out othername/%.out yetanothername/%.out
最满意答案
这是一个肮脏的黑客,但这有效:
IN = somename.in othername.in yetanothername.in OUT = $(foreach file, $(IN:%.in=%), $(file)/$(file).out) all: @echo '${OUT}'我不确定这是否是GNU制作特定的。
It's something of a dirty hack, but this works:
IN = somename.in othername.in yetanothername.in OUT = $(foreach file, $(IN:%.in=%), $(file)/$(file).out) all: @echo '${OUT}'I'm not sure if this is GNU make-specific.
更多推荐
发布评论