2010-08-24 42 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