shell – 如何从makefile源脚本?

前端之家收集整理的这篇文章主要介绍了shell – 如何从makefile源脚本?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有更好的方法来源脚本,它设置env vars,从一个makefile?
FLAG ?= 0
ifeq ($(FLAG),0)
export FLAG=1
/bin/myshell -c '<source scripts here> ; $(MAKE) $@'
else
...targets...
endif
回答问题的问题:你不能。

基本问题是子进程不能改变父进程的环境。 shell通过在source’ing时不分叉一个新进程,而是在shell的当前化身中运行这些命令。这工作正常,但make不是/ bin / sh(或你的脚本的任何shell),不理解这种语言(除了他们有共同点)。

Chris Dodd和Foo Bah已经解决了一个可能的解决方法,所以我建议另一个(假设你正在运行GNU make):后处理shell脚本到make兼容文本,并包括结果:

shell-variable-setter.make: shell-varaible-setter.sh
    postprocess.py @^

# ...
else
include shell-variable-setter.make
endif

杂乱的细节留下作为一个练习。

猜你在找的Bash相关文章