0

我有一个makefile,其中使用了一些全局变量,例如

REL=something..

DIR=something...

这个 makefile 用于构建两个产品,比如 P1 和 P2,基于产品,它正在使用全局变量的构建值,这不是问题,因为这两个产品的所有全局变量的值都是相同的,但是现在产品 1 和产品 2 的变量 REL 的值不同,我正在尝试这个,但它不起作用:

!IF "$(PRODUCT)"=="P1"

REL=value1

!ELSEIF "$(PRODUCT)"=="P2"

REL=value2

!ENDIF
4

2 回答 2

1

如果我正确理解了您的问题(如果),那么您可以使用特定于目标的变量值来做到这一点:

P1: REL=product1
P1: some_preq
    do_something...

P2: REL=product2
P2: some_other_preq
    do_something_else...
于 2013-09-06T13:42:57.517 回答
0

如果您同时使用 make 或 automake,那么您可以按照@Beta 的建议进行操作。在 make 中,定义检查如下:

ifeq (P1,$(PRODUCT))
REL:=value1
endif

ifeq (P2,$(PRODUCT))
REL:=value2
endif

正如@Beta 所建议的那样,做你想做的事情的更好方法。如果必须,创建 PHONY 目标。

于 2013-09-06T13:50:00.383 回答