我希望在我的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