makeファイル内からmake組み込みルールと変数を無効にする 質問する

makeファイル内からmake組み込みルールと変数を無効にする 質問する

組み込みルールと変数を無効にしたいのですが-rおよび-RオプションGNU make に、make ファイル内から実行します。これを暗黙的かつ透過的に実行できる他のソリューションも歓迎します。

私は見つけたいくつかの参考文献使用するMAKEFLAGS、同様の問題がありました。

ベストアンサー1

組み込みルールを無効にするには、空のルールを書く.SUFFIXES:

.SUFFIXES:

組み込みルールを消去した後、組み込み変数を消去しても、自分で設定したり使用しないようにするよりも役立つかどうかはわかりませんが、次のようなものを使用できます。

$(foreach V,
    $(shell make -p -f/dev/null 2>/dev/null | sed -n '/^[^:#= ]* *=/s/ .*//p'),
    $(if $(findstring default,$(origin $V)),$(eval $V=)))

...これは確かにかなりクレイジーです。もしmake内で定義された変数のリストを取得する方法があれば(別のmakeにシェルアウトするのではなく)、それは実行可能でしょう。現状では、

CC=
CXX=
# etc, for each likely built-in variable

おすすめ記事