72

ツールが間違ったバージョンであるというmakefileの状態を検出し、アイテムが正しいバージョンではないことを示すエラーメッセージでmakeを強制的に失敗させたい。

誰かがこれを行う例を挙げられますか?

次のことを試しましたが、正しい構文ではありません。

ifeq "$(shell svnversion --version | sed s/[^0-9\.]*://)" "1.4"
$error("Bad svnversion v1.4, please install v1.6")
endif

ありがとう。

4

3 に答える 3

89

マニュアルから:

$(error Bad svn version v1.4, please install v1.6)

これによりmake、致命的なエラーが発生します。

$ make
Makefile:2: *** Bad svn version v1.4, please install v1.6.  Stop.
于 2009-12-08T03:36:00.223 に答える
13

$(error... は機能しますが、失敗するルールを使用する方が簡単な場合があります

test_svn_version:
        @if [ $$(svn --version --quiet | \
                perl -ne '@a=split(/\./); \
                          print $$a[0]*10000 + $$a[1]*100 + $$a[2]') \
              -lt 10600 ]; \
        then \
            echo >&2 "Svn version $$(svn --version --quiet) too old; upgrade to v1.6";
            false; \
        fi

次に、test_svn_version を最上位ターゲットの前提条件にします。

于 2009-12-08T04:24:32.053 に答える
6

条件付きも注意が必要です。

ifeq($(shell svnversion --version | sed s / [^ 0-9\。]*://)、1.4)
    $(エラー不正なsvnversion v1.4、v1.6をインストールしてください)
endif
于 2009-12-08T03:43:32.113 に答える