【问题标题】:Makefile dependencies with regular expression带有正则表达式的 Makefile 依赖项
【发布时间】:2011-04-03 05:07:55
【问题描述】:

我有一个 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 很少存在,它会触发另一个实际生成该文件的目标,但使用 * 它不起作用)。

有什么建议吗?

编辑:

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

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

【问题讨论】:

  • 不清楚。您能否展示您的输入和所需的输出。

标签: regex makefile dependencies


【解决方案1】:

Regex 处理在我的 Make 愿望清单中占据了很高的位置。这是一个杂牌:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多