如何去掉${CFLAGS}其中一个FLAG ?
如何去掉${CFLAGS}其中一个FLAG ?
上层Makefile中的CFLAGS包含了一个与本Makefile中冲突的一个FLAG,如何去掉其中一个呢?
------解决方案--------------------
override CFLAGS:=$(filter-out my_flag=%,$(CFLAGS))
all:
@echo $(CFLAGS)
$] CFLAGS="-O2 -Wall my_flag=xxx" make
-O2 -Wall
------解决方案--------------------
上面是一个Makefile。
目的是删除CFLAGS中"my_flag=123456"这个字符串。
下面是make时指定CFLAGS的输出。
删除之前是带有my_flag=xxx的,删除之后就没有这一项了。
根据需要修改filter-out的参数就行了。
filter-out是makefile中的函数,你可以网上搜索一下用法 。
------解决方案--------------------Makefile
override CFLAGS:=$(filter-out -msoft-float,$(CFLAGS))
all:
@echo $(CFLAGS)
执行结果
$] CFLAGS="-O2 -Wall my_flag=xxx -msoft-float" make
-O2 -Wall my_flag=xxx