我希望在我的GNUmakefile中有一个调用新shell的目标规则,然后用新shell的clean slate调用新make。如何调用一个shell来创建一个新的环境在另一个make中运行make?
这是什么语法?
我试过,但没有奏效:
.PHONY: setup
setup:
shell cd myDir; make; cd ..
它得到以下错误的无限重复:
make[1]: Entering directory `/disk4/home/user/parent'
shell cd myDir; make; cd ..
/bin/sh: shell: command not found
make[1]: Entering directory `/disk4/home/user/parent'
shell cd myDir; make; cd ..
/bin/sh: shell: command not found
[...]
新的子shell正在继承父项,因为(cd myDir; make)的行为与使用此规则进行设置时从顶部从顶部调用它不同。 – WilliamKF 2010-06-16 01:58:02
是的,它会继承所有导出的变量。如果你想阻止这个,使用'env'。 – 2010-06-16 02:23:22
请详细说明如何使用env。不知何故,它是'env -i'吗? – WilliamKF 2010-06-16 03:54:48