我有一个如下所示的Makefile。我使用ifeq
将变量添加到编译器标志。
ABC=1
XYZ=1
ifeq ($(ABC),1)
CFLAGS+= -DABC
endif
ifeq ($(XYZ),1)
CFLAGS+= -DXYZ
endif
...
是否有一种更干净的方法将所有变量添加到CFLAGS,而不是全部使用ifeq?
是否有一种更干净的方法将所有变量添加到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中扩展为空字符串的事实。