1

私がちょうど入力した場合

$ make

makeデフォルトのターゲット (通常は で指定された最初のターゲットですMakefileが、ルールはそれより少し複雑です) でコマンドを呼び出します。

単にターゲット名を省略する以外に、それが何であるかを知らずにコマンドラインでデフォルトのターゲットを指定する方法はありますか?

私ができるようにしたいのは、これら2つのコマンドを組み合わせることです:

$ make clean
$ make

の単一の呼び出しにmake。デフォルトのターゲットが であることがわかっている場合はall、次のように入力できます。

$ make clean all

しかし、デフォルトのターゲットが何であるかがわからない場合、それは機能しません。

理想的には、デフォルト ターゲットを参照する構文が必要です ( GNU make マニュアルでは、それを「デフォルト ゴール」と呼んでいます)。これ:

 $ make clean .DEFAULT_GOAL

一般的なアイデアを示していますが、機能しません。

2 番目に良いのは、コマンド ラインからデフォルトのターゲットが何であるかを判断するためのシンプルで信頼できる方法です。

$ make clean $(get-default-target)

GNU 固有のソリューションで問題ありません。

マニュアルをざっと見てみると、これを行う良い方法はないと思います。

4

1 に答える 1

1

次善の策として、make -pq の出力からデフォルトの目標を解析できます。

make -pq  | sed -ne 's/^.DEFAULT_GOAL := //p'
于 2013-01-30T20:32:27.980 に答える