0

環境変数の存在に応じて、特定のルールを実行する必要があります。

test1:
    -echo "test1"

test2:
    -echo "test2"

run:
    -echo "Running"

したがって、私の要件は、もしそうならmake run、両方のルールが実行され、IF環境変数がシェルに設定されていないと言う必要がtest1あります。ただし、この環境変数が設定されている場合は、ルールのみが実行されます。test2RUN_ONLY_TEST1test1

これが実現可能であれば、誰かが私を助けてくれますか。これは単なるサンプル例であり、元の makefile には多くのコマンドがあるため、実行ターゲットに if/else を配置するには、多くの複製が必要になります。

4

1 に答える 1

1

あなた自身が暗示RUN_ONLY_TEST1しているように、別の言い方RUN_NOT_TEST2345です。つまり、多くの除外を意味するため、実装が少し難しい否定的な問題ステートメントを作成しました。

実行するテストのリストが最も簡単です。

TESTS = 1 2            # Can override this on command line or environment

makepp では、最後のルールを次のように単純に記述できます。

run: test$(TESTS)

gmake では少し難しくなります:

run: $(addprefix test,$(TESTS))

このルールに到達するまでにすべての前提条件が構築されている (ietests が実行されている) ため、「実行中」の部分は間違っています。

于 2013-08-22T11:15:41.480 に答える