0

メイクファイルに次のものがあります

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
GIT_INFO:=Changed
$(info $(GIT_INFO))
endif

ここで、GIT_INFOコマンドラインで何かに設定されている場合、その値に目的の文字列が入力されることを望みます(詳細は重要ではありません)。$(info..)この部分が実行されていることを確認する行を追加しましたが、実行されましたが、 の値はGIT_INFO変更されていませんでした。なぜだめですか?GIT_INFO=trueコマンドラインで渡すと、両方の場所が表示されますtrue

4

2 に答える 2

2

説明書より、

コマンド引数で変数が設定されている場合、makefile 内の通常の代入は無視されます。コマンド引数で設定された変数をmakefileに設定したい場合は、オーバーライドディレクティブを使用できます...

追加するだけoverrideです:

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
于 2012-10-22T04:26:12.573 に答える
2

使用する必要がありますoverride

ifneq ($(GIT_INFO),)
$(info $(GIT_INFO))
override GIT_INFO:=Changed
$(info $(GIT_INFO))
endif
于 2012-10-22T04:26:22.013 に答える