web-dev-qa-db-ja.com

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

私は環境変数の値をチェックする必要がある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")'
22
Ashwin Tumma

ifeq()ディレクティブは列1にある必要があり、先頭の空白をすべて削除します。

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

^空白なし

29
gwillie

TABの後にifeqを付けないでください。スペースは許可されます。 GNU Make document をお読みください。

_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
_
15
yaegashi