たくさんのMakefileを持つプロジェクト構造があり、他のすべてを含むトップレベルのMakefileがあるとします。
どのようにしてすべての可能なターゲットをリストできますか?
私は書くことを知っています
make
次に、タブを押して提案を取得すると、通常はうまくいきますが、私の場合は10000のターゲットがあります。これを行うと、結果がmoreを通過し、何らかの理由でリストをスクロールするとフリーズします。別の方法はありますか?
これは、make
のbash補完モジュールがリストを取得する方法です。
make -qp | awk -F':' '/^[a-zA-Z0-9][^$#\/\t=]*:([^=]|$)/ {split($1,A,/ /);for(i in A)print A[i]}' | sort -u
ページングなしで、改行で区切られたターゲットのリストを出力します。
FreeBSDとNetBSDのmake(1)には、.ALLTARGETS
と呼ばれる組み込み変数があります。このように内容を印刷できます
make -V .ALLTARGETS
残念ながら、スペースで区切られたリストが出力されます。次の方が便利だと思います
make -V .ALLTARGETS | tr ' ' '\n'
各ターゲットを独自の行に出力します。