Makefile需要从shell脚本中读取变量
# 打印版本号
.PHONY: echo-version
echo-version:echo ${VERSION};
直接打印发现是空的
$ make echo-version
echo ;
可以读取环境变量
$ export VERSION='0.0.1' && make echo-version
echo 0.0.1;
0.0.1
可以通过命令行传递变量
$ make echo-version VERSION='0.0.1'
echo 0.0.1;
0.0.1
# makefile文件中定义变量
VERSION="0.0.2"# 打印版本号
.PHONY: echo-version
echo-version:echo ${VERSION};
$ make echo-version
echo "0.0.2";
0.0.2
# 打印版本号
.PHONY: echo-version
echo-version:. ./version.sh && echo $${VERSION};
注意:使用两个
$$
而不是$
version.sh
#!/bin/bash##################################
# 版本号
##################################export VERSION='0.0.3'
$ make echo-version
. ./version.sh && echo ${VERSION};
0.0.3
原则:谁最后导入,谁的优先级最高
version.sh
#!/bin/bashexport VERSION='0.0.1'
Makefile
# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:. ./version.sh && echo $${VERSION};
执行
$ export VERSION='0.0.4' && make echo-version VERSION='0.0.2'
. ./version.sh && echo ${VERSION};
0.0.1
Makefile
# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};
执行
$ export VERSION='0.0.4' && make echo-version VERSION='0.0.2'
echo ${VERSION};
0.0.2
Makefile
# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};
执行
$ export VERSION='0.0.4' && make echo-version
echo '0.0.3';
0.0.3
Makefile
# 打印版本号
# VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};
执行
$ export VERSION='0.0.4' && make echo-version
echo 0.0.4;
0.0.4
参考
如何在makefile中获取shell环境变量?