How to strip parameters from a variable in a makef

2019-07-23 14:34发布

问题:

Below is a variable I am using in a makefile.

copt = -mcpu=cortex-m3 -mthumb -g -c

I want to remove -mthumb and replace it with some other option. Is there any way I can strip the option and add few other options. I know how to add : Example - copt += -O3 but don't know how to remove the already existing options.

Thanks!

回答1:

$(subst from,to,text)

Performs a textual replacement on the text text: each occurrence of from is replaced by to. The result is substituted for the function call.

In your case:

newopts = $(subst -mthumb, new_opt, $(copt))


回答2:

A tad safer than $(subst...) to to use something that operates on whole words:

newopts := $(filter-out -mthumb,${opts}) more opts


回答3:

sed works well:

sed -i 's/old_word/new_word/g' makefile