与正则表达式的Makefile依赖关系

时间:2010-08-24 14:19:50

标签: regex makefile dependencies

我有一个RPM文件名列表(比如“package-1.0”),它们是make目标的依赖项,但其中一些有x86_64架构而其他有i386。我该怎么做才能匹配它们?我需要这样的东西:

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

但这不起作用。我可以用:

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

但是它与Makefile中的另一个目标不匹配(package-1.0。*。rpm很少存在,它会触发另一个实际生成该文件的目标,但是*它不起作用)。< / p>

有什么建议吗?

修改

使它更清晰:如果存在x.txt,y.txt或z.txt文件之一,我希望下面的目标被执行(显示“yay!”)。

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

1 个答案:

答案 0 :(得分: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