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