将变量传递到Make文件中的CFLAGS的简单方法

问题描述 投票:0回答:1

我有一个如下所示的Makefile。我使用ifeq将变量添加到编译器标志。

ABC=1
XYZ=1

ifeq ($(ABC),1)
CFLAGS+= -DABC
endif

ifeq ($(XYZ),1)
CFLAGS+= -DXYZ
endif

...

是否有一种更干净的方法将所有变量添加到CFLAGS,而不是全部使用ifeq?

makefile
1个回答
0
投票
是否有一种更干净的方法将所有变量添加到CFLAGS而不是全部使用ifeq

您可以使用computed variable names来避免冗长的ifeq块:

ABC=1 XYZ=1 cflags.abc.1 := -DABC cflags.xyz.1 := -DXYZ CFLAGS += cflags.abc.${ABC} cflags.xyz.${XYZ}

它利用未设置的变量在GNU make中扩展为空字符串的事实。
© www.soinside.com 2019 - 2024. All rights reserved.