GNU make:命令行参数的变量

时间:2011-05-03 01:12:42

标签: makefile gnu-make

如何将整个命令行(包括目标,链接行,制作选项等)从顶级make传递到递归make:

targets : prerequisites
    $(MAKE) $(this should  expand to top level command line) additional_args

感谢。

2 个答案:

答案 0 :(得分:7)

我认为最接近的是使用$(MAKE)的组合,其中包含调用make的确切文件名,$(MAKECMDGOALS),其中包含您在命令行中指定的目标,以及{ {1}},包含命令行中指定的任何变量定义和(子集)。

答案 1 :(得分:3)

$(MAKE)宏是特殊的,并展开以包含一些相关选项。有关详细信息,请参阅Make文档中的How the MAKE variable works部分。但是,这不包括完整的行,包括目标等,我不确定是否可行。

通常我会尽量避免使用Make递归,这里有一篇很好的文章:Recursive Make Considered Harmful