运行时确定makefile中使用的文件

时间:2012-04-30 15:36:46

标签: linux makefile

我正在尝试在Linux中生成一个相当动态的make文件,并将从某个类型的/ src目录中获取所有文件。基本上ls * .type的输出我似乎很难做到这一点。以下是我目前的情况,但它似乎不起作用。希望有人可以帮助我。谢谢!

JIL_B_TMPL            : sh = ls *.type
JIL_LIST        =       $(JIL_B_TMPL)

我还要补充一点,这不是用于编译C程序。

2 个答案:

答案 0 :(得分:2)

要在makefile中捕获shell命令的输出,您可以执行以下操作:

JIL_B_TMPL := $(shell ls *.type)
JIL_LIST   := $(JIL_B_TMPL)

这当然与写作相同:

JIL_LIST   := $(shell ls *.type)

这适用于GNU make,但是既然你提到Linux,我想你是在使用它。

答案 1 :(得分:1)

Pat得到了一些有效的核心,但在你的情况下,你可能想要更像

的东西
JIL_LIST := $(wildcard *.type)

这消除了对外部程序的调用,如果您将来决定要支持Windows,这将非常重要。此外,如果您正在使用makepp,则通配符函数还将捕获可以构建的任何.type文件,无论它们是否已经存在。