【发布时间】:2019-08-16 08:50:40
【问题描述】:
给定一个 Makefile:
all: build/a build/b build/c # need to change this to all: build/*
build/a:
...
build/b:
...
build/c:
...
我想更改all 目标以自动构建与build/* 匹配的所有目标。 This question 似乎非常相似,只是它打印结果而不是对其进行操作。另外,我不确定该答案是否适用于 Linux 和 Mac。
【问题讨论】:
-
make $(grep -o ^build/[^:]* Makefile)做你想做的事吗? -
这会让人感觉很hacky并且可能随时中断,包括潜在的无限循环......我希望有一个更“正确”的解决方案:)
-
不确定这如何导致无限循环(参见 Make 在设计上对循环依赖是安全的),但是,正如您从引用的问题中看到的那样,任何解决方案都将包含某种正则表达式匹配/替换事物。所以它不可能是完美的,除非你重写 Makefile 本身。
-
你能依赖 GNUmake 还是需要它是一个可移植的解决方案?
-
很遗憾,它应该是便携的 :(
标签: makefile