source 是一个 bash 内置命令,man bash 然后找到 SHELL BUILTIN COMMANDS 部分。而 Makefile 要执行的话必须是能 fork 出进程的,所以无法执行。
makefile的默认shell是/bin/sh,本身不支持source
可以将shell切换成/bin/csh来支持source
如下所示:
#Makefile
SHELL := /bin/csh
rule:
source env.sh && YourCommand
举例:
运行效果: