Makefileで環境変数の値を確認する


21

Makefileターゲットがあり、環境変数の値を確認する必要があります。しかし、その正確な構文はわかりません。一生懸命に試してみましたが、見つかりません。どんな助けも大歓迎です。

環境変数名:TEST、その値: "TRUE"

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif

次のエラーが表示されます。

/bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"'
/bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'

回答:


26

ifeq()ディレクティブは、カラム1にしておく必要があり、任意の先頭の空白を削除すなわち

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif

^空白なし


14

ifeqTABの後に置くことはできません。スペースを使用できます。GNU Makeドキュメントを読んでください

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif

また、次のように比較$(TEST)"TRUE"れることに注意してください。

$ make TEST=TRUE
make: Nothing to be done for 'test_target'.

$ make TEST='"TRUE"'
echo "Do something"
Do something

このビットは非常に役に立ちました-$(TEST)と "TRUE"をそのまま比較することにも注意してください。ありがとう
カコマ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.