【问题标题】:Wildcard match on phony targets假目标上的通配符匹配
【发布时间】:2016-10-14 02:20:15
【问题描述】:

在 GNU Makefile 中,如果我在先决条件中使用 * 或在分配中使用 $(wildcard),它将使用 shell 扩展来查找匹配的文件。

有没有办法对虚假目标进行等效处理?例如:

.PHONY: compile-1 compile-2
compile-all: compile-*

这类似于this question,但我不想像AVAILABLE_MODELS 那样手动列出目标。

“不,您必须列出它们”是可以接受的答案。

【问题讨论】:

标签: makefile gnu-make


【解决方案1】:

您不必完全列出它们。您可以根据它们的差异计算它们, 如果这有足够的不同:-

compiles := $(patsubst %,compile-%,1 2)

PHONY: $(compiles)

compile-all: $(compiles)

8.2 Functions for String Substitution and Analysis

但是,如果 compile-N 是某些编译的虚假目标,您不应该这样做 有一个虚假的目标。编译生成真实文件,它们是 目标,不需要虚假的。

另一方面,compile-all 显然应该是一个虚假的目标。

【讨论】:

  • compile-N 不是真实文件
  • @OrangeDog。我很欣赏这一点,但怀疑这些食谱中的每一个制作一个真正的文件或通常会在没有虚假目标的情况下制作的文件。当然,这只是一种预感。
猜你喜欢
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 2012-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多