GNU Make特殊変数は、コマンドラインコールでユーザーが送信したターゲットを知るためのものですか? (これは一例です)のような何かを達成するために:GNU Make:要求されたターゲット
// makefile
ifeq ($(USER_TARGET),"plain")
CXXFLAGS += -O0
else
CXXFLAGS += -O3
endif
plain:
// do something using CXXFLAGS
all:
// other rule using CXXFLAGS
それは、値がいくつかの特別なGNUによって設定された特別なGNU変数を作ることができUSER_TARGET
変数(またはカスタム変数が関数を作ることが重要です
$ make plain
などの呼び出しで指定された元のターゲットが含まれており、依存関係ツリーの任意のステップの値ではありません。つまり、私が間違っていなければ、USER_TARGET
の値は最初に使用されたときに評価され、ドキュメントの任意のポイントで発生する可能性があるため、USER_TARGET
はビルド依存チェーン中に変更してはなりませんので、私は建物のチェーンの現在のステップは、USER_TARGET
の値を変更しないようにしたいと思います。
十分明確であるか、過度に説明されているかどうかはわかりません。
GNU Makeに組み込まれているメカニズムがない場合、$(shell command)
のトリックも歓迎です。
これはおそらくあなたのために働くでしょうか? [レシピ内に変数を割り当てることはできません](http://stackoverflow.com/questions/6519234/cant-assign-variable-inside-recipe)。 – lurker
あなたは何をしようとしているのか分かりませんが、最近私は 'debug:clean' @make CFLAGS = '$ {DEBUG_CFLAGS}'' – Random832
でメイクファイルを見ました。 make -f Makefile build test'を使ってビルドとテストの両方のターゲットを呼び出すことができます – mjs