【发布时间】:2018-09-11 18:57:30
【问题描述】:
我的 makefile 如下所示
apps = app1 app2 app3
all: dir app1 app2 app3 zip cleanup
现在我想在apps 变量列表上做一些循环,
类似
`loop on apps
endloop`
是否可以在makefile中循环,我需要在apps变量列表上循环
更新
假设这个变量(apps)是由我的程序在make 文件中生成的,它为每个项目提供不同的应用程序值,有时是apps= app1 app2,有时是@987654330 @ 有时可以是 20 个或更多应用程序 apps= app1 app2 appN
我如何迭代 apps 变量并做一些事情,例如在每次迭代中打印如下内容:
now im in `app1`
now im in `app2`
etc
尝试以下操作时
.PHONY: foo
all: foo
APPS = app1 app2 app3 app4
foo : $(APPS)
for $$f in $(APPS); do echo $$f is here; done
我收到以下错误:
make: *** No rule to make targetapp1',foo'. Stop.需要
【问题讨论】:
-
您希望在该列表中的确切内容是什么。您可以使用带有
for循环的 shell 命令... -
@BasileStarynkevitch - 你能举个例子吗?如何在每次迭代中迭代并打印来自应用程序的值?
-
如果您edit 您的问题可以改进并准确说明您想在该列表中做什么,我可能会提供一个。但我不确定你想做什么......
-
我也不明白你所说的“打印应用程序的价值”是什么意思。你的问题真的不清楚。
-
@BasileStarynkevitch - 假设这个变量(应用程序)是由我的 golang 程序在 make 文件中生成的,它为每个项目提供不同的应用程序值,有时是
apps= app1 app2,有时是apps= app1和有时可以是 20 个或更多应用程序apps= app1 app2 appN
标签: linux makefile gnu-make gnu