Makefile 将具有给定前缀的所有变量传递给编译命令

Makefile 将具有给定前缀的所有变量传递给编译命令,makefile,gnu-make,Makefile,Gnu Make,在GNU makefile中,是否有一种方法可以获取具有给定前缀的所有变量,并将它们作为-D定义传递给编译命令 例如,假设存在以下变量: DEFINE_FOO=cat DEFINE_BAR=dog 有没有一种方法可以从make中自动生成字符串-DFOO=cat-DBAR=dog,这样它就可以自动拾取以后添加的带有前缀DEFINE的任何变量?如果使用GNU make,您可以这样做: CPPFLAGS += $(patsubst DEFINE_%,-D%,$(foreach V,\

在GNU makefile中,是否有一种方法可以获取具有给定前缀的所有变量,并将它们作为
-D
定义传递给编译命令

例如,假设存在以下变量:

DEFINE_FOO=cat
DEFINE_BAR=dog

有没有一种方法可以从make中自动生成字符串
-DFOO=cat-DBAR=dog
,这样它就可以自动拾取以后添加的带有前缀
DEFINE
的任何变量?

如果使用GNU make,您可以这样做:

CPPFLAGS += $(patsubst DEFINE_%,-D%,$(foreach V,\
                $(filter DEFINE_%,$(.VARIABLES)),$V=$($V)))