if-else 構文で Makefile 構文エラーが発生しました。

if-else 構文で Makefile 構文エラーが発生しました。

こんにちは、私はこの問題に長い間悩んできました。私はこのメイクファイルが「ok」を出力すると期待しています。ただし、次を呼び出すと構文エラーが発生しますmake

ifeq(0, 0)

/bin/sh: 1: 構文エラー: 予期しない単語 (")" が必要)

make: *** [既定値] エラー 2

パスワード:

CHK = 0

default:
    ifeq ($(CHK), 0)
        echo "ok"
    else
        echo "not ok"
    endif

答え1

これはシェル命令ではなくMakefile命令なので、前にタブ文字を付けてはいけません。

CHK = 0

default:
ifeq ($(CHK), 0)
    echo "ok"
else
    echo "not ok"
endif

それ以外の場合、Makeはそれを自分で処理するのではなく、シェルに渡します。

関連情報