0

我需要根据环境变量的存在来运行特定规则。

test1:
    -echo "test1"

test2:
    -echo "test2"

run:
    -echo "Running"

所以我的要求是如果我这样做make run,那么规则test1test2应该执行 IF 环境变量说RUN_ONLY_TEST1没有在 shell 上设置。但是,如果设置了此环境变量,则只test1应执行规则。

如果这是可行的,有人可以帮助我。这只是一个示例示例,我的原始 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))

然后“运行”部分是错误的,因为在您达到此规则时,所有先决条件都已构建(即测试已运行)。

于 2013-08-22T11:15:41.480 回答