この非常にシンプルなメイクファイルでは、変数を条件内に設定しようとしましたが、変更外に気付かれません。ifステートメントの変数が正しく動作しない
all:
STUFF="nothing"
ifeq (true, true)
echo "setting"
STUFF="hi"
endif
echo $(STUFF)
これを実行すると、最後のコマンドが "hi"を印刷すると予想されますが、そうではありません。
[email protected] ~/git % make
STUFF="nothing"
echo "setting"
setting
STUFF="hi"
echo
私はここで間違っていますか?
UPDATE:
run: build/aura.bin
ifdef DEBUGGING
$(eval DFLAGS=-s -S)
endif
qemu-system-i386 -serial stdio $(DFLAGS) -kernel build/aura.bin
発見したように、レシピに直接make変数を設定することはできません。 'eval'は動作しますが、おそらく別の方法があります。残念ながら、あなたの例はまともな解決策を与えるには余りにも工夫されています。 – user657267
@ user657267更新された質問をご覧ください。 –