使 make 能够扩展用户提供的宏
Enabling make to expand on user-supplied macro
有没有办法说服 make 接受用户提供的宏然后对其进行扩展?我的意思的一个简单示例是我希望用户能够发出:
> make CFLAGS='-g'
然后在 Makefile
的某处会是这样一行:
CFLAGS := $(CFLAGS) -O2
因此,总共 CFLAGS
的计算结果为 -g -O2
。 AFAICT,如果用户发出该命令,make
将 CFLAGS
视为 -g
并且不会进一步触及它。当然,我可以让用户发出类似
的问题
> make CFIN='-g'
然后在 Makefile 中输入
CFLAGS := $(CFIN) -O2
但这对我来说似乎有点“笨拙”。
这样做:
CFLAGS :=
override CFLAGS := $(CFLAGS) -O2
第一个赋值阻止 CFLAGS
环境变量的内容被导入为同名的 Make 变量。如果您想要此行为,请删除第一行。
有没有办法说服 make 接受用户提供的宏然后对其进行扩展?我的意思的一个简单示例是我希望用户能够发出:
> make CFLAGS='-g'
然后在 Makefile
的某处会是这样一行:
CFLAGS := $(CFLAGS) -O2
因此,总共 CFLAGS
的计算结果为 -g -O2
。 AFAICT,如果用户发出该命令,make
将 CFLAGS
视为 -g
并且不会进一步触及它。当然,我可以让用户发出类似
> make CFIN='-g'
然后在 Makefile 中输入
CFLAGS := $(CFIN) -O2
但这对我来说似乎有点“笨拙”。
这样做:
CFLAGS :=
override CFLAGS := $(CFLAGS) -O2
第一个赋值阻止 CFLAGS
环境变量的内容被导入为同名的 Make 变量。如果您想要此行为,请删除第一行。