2016-01-23 68 views
1

我輸入文件,如somename.in othername.in yetanothername.in,並希望他們在一個單獨的文件夾作爲輸出:somename/somename.out othername/othername.out yetanothername/yetanothername.outMakefile中追加通配符匹配兩次

這怎麼能與一個Makefile做什麼?這不起作用,因爲通配符只能附加一次。

IN = somename.in othername.in yetanothername.in 
OUT = $(IN:%.in=%/%.out) 

all: 
     @echo '${OUT}' 

給出了這樣的輸出:。 somename /%出中文別名/%出yetanothername /%出

回答

0

這是一個骯髒的黑客的東西,但這個工程:

IN = somename.in othername.in yetanothername.in 
OUT = $(foreach file, $(IN:%.in=%), $(file)/$(file).out) 

all: 
     @echo '${OUT}' 

我我不確定這是否是GNU製作特定的。

+0

絕對GNU特定。這很好。只是FYI :) – MadScientist

0
OUT := $(foreach b, $(basename $(IN)), $b/$b.out)