2010-08-24 43 views
0

我有一個RPM文件名(如「package-1.0」)的列表,它們將是make目標的依賴項,但其中一些具有體系結構x86_64,其他則具有i386。我該怎麼做才能匹配他們?我需要這樣的東西:具有正則表達式的Makefile依賴關係

target: $(addsuffix .[i386|x86_64].rpm,$(shell cat packages_file)) 

但這不起作用。我可以使用:

target: $(addsuffix .*.rpm,$(shell cat packages_file)) 

但在Makefile(包1.0不會匹配另一個目標*轉速很少會存在,這將引發新一輪的目標,將實際產生的文件,但與*。它不工作)。

有什麼建議嗎?

編輯:

使它更清晰:我要執行下面的目標,如果文件x.txt,y.txt的一個或z.txt存在(顯示「耶!」)。

target: [x|y|z].txt 
    @echo yay! 
+0

不清楚。你能顯示你的輸入和所需的輸出。 – 2010-08-24 14:28:15

回答

0

正則表達式處理在Make的我的願望清單中很高。這裏是一個kludge:

RPM = $(wildcard x.txt y.txt z.txt) 

ifeq ($(RPM),) 
# What do you want to do if these files don't exist? 
else 
target: $(RPM) 
    @echo yay! (I see $^) 
endif