我可以在“make”命令行中引用默认目标吗?

时间:2013-01-30 18:42:21

标签: makefile gnu-make

如果我输入

$ make

它将使用默认目标调用make命令(通常是Makefile中指定的第一个目标,但规则比这更复杂。)

除了简单地省略目标名称之外,有没有办法在命令行上指定默认目标而不知道它是什么?

我希望能够做的是结合这两个命令:

$ make clean
$ make

进入make的单个调用。如果我碰巧知道默认目标是all,我可以输入:

$ make clean all

但如果我不知道默认目标是什么,那就不起作用。

理想情况下,我想要一些引用默认目标的语法(GNU make manual将其称为“默认目标”)。这样:

 $ make clean .DEFAULT_GOAL

显示了一般的想法,但它不起作用。

第二个最好的方法是从命令行确定默认目标是一种简单可靠的方法:

$ make clean $(get-default-target)

GNU特定的解决方案没问题。

我怀疑,从快速查看手册,没有好办法做到这一点。

1 个答案:

答案 0 :(得分:1)

对于第二好的解决方案,您可以从make -pq的输出中解析默认目标:

make -pq  | sed -ne 's/^.DEFAULT_GOAL := //p'