是否可以在Makefile中"取消设置"环境变量?

Jay*_*ker 19 makefile environment-variables gnu-make

我正在使用GNU make,并且在项目中包含第三方库,如果CFLAGS在调用环境时在环境中定义了构建系统,则该系统会变得狂暴.我喜欢CFLAGS在我的环境中定义其他原因.正在从另一个makefile调用库的构建,所以我说例如:

的3rdParty: $(MAKE) -f Makefile.3rdparty

但是我想确保CFLAGS在第三方Makefile上调用make时没有设置.我能找到的最近的事情就是说:

CFLAGS:=

但是这仍然留CFLAGS在环境中,它只是一个空字符串.除了做一些可怕的事情,比如说:

的3rdParty: bash -c "unset CFLAGS; $(MAKE) -f Makefile.3rdparty"

是否有一种简单的方法可以CFLAGS从我的主要makefile中"取消设置" 变量,以便在调用第三方库时环境中根本不存在该变量?

P S*_*ved 25

以下不适合您吗?

unexport CFLAGS
3rdparty:
        $(MAKE) -f Makefile.3rdparty
Run Code Online (Sandbox Code Playgroud)

  • @JayWalker,如果您满意,请将此答案标记为已接受的答案. (2认同)