如果我输入
$ make
它将使用默认目标调用make
命令(通常是Makefile
中指定的第一个目标,但规则比这更复杂。)
除了简单地省略目标名称之外,有没有办法在命令行上指定默认目标而不知道它是什么?
我希望能够做的是结合这两个命令:
$ make clean
$ make
进入make
的单个调用。如果我碰巧知道默认目标是all
,我可以输入:
$ make clean all
但如果我不知道默认目标是什么,那就不起作用。
理想情况下,我想要一些引用默认目标的语法(GNU make manual将其称为“默认目标”)。这样:
$ make clean .DEFAULT_GOAL
显示了一般的想法,但它不起作用。
第二个最好的方法是从命令行确定默认目标是一种简单可靠的方法:
$ make clean $(get-default-target)
GNU特定的解决方案没问题。
我怀疑,从快速查看手册,没有好办法做到这一点。
答案 0 :(得分:1)
对于第二好的解决方案,您可以从make -pq的输出中解析默认目标:
make -pq | sed -ne 's/^.DEFAULT_GOAL := //p'