Makefile 启用make以在用户提供的宏上展开
有没有办法说服make接受用户提供的宏,然后扩展它?我的意思的一个简单示例是,我希望用户能够发布:Makefile 启用make以在用户提供的宏上展开,makefile,gnu-make,Makefile,Gnu Make,有没有办法说服make接受用户提供的宏,然后扩展它?我的意思的一个简单示例是,我希望用户能够发布: > make CFLAGS='-g' 然后在Makefile中的某个地方会有一行如下所示: CFLAGS := $(CFLAGS) -O2 因此,总的来说,CFLAGS将计算为-g-O2。AFAICT,如果用户发出该命令,make将CFLAGS视为-g,并且不会进一步触摸它。当然,我可以有用户问题,比如 > make CFIN='-g' 然后在Makefile中放入 CFLAGS
> 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变量导入。如果需要此行为,请删除第一行