2013-02-20 145 views
5

我有一個Makefile其完美的作品,從一個新的外殼調用,即讓:呼叫從一個makefile內

make -C /dir/ 

但是,如果我把這個Makefile從另一個 Makefile文件,它由於某種複雜依賴性問題。明確瞭解嵌套調用的知識,通過make[1]:等打印可以看出,我懷疑make是以某種方式與其子進程共享變量的。

是否有反正打電話乾淨從一個Makefile?如果我的構建是從一個乾淨的shell運行的,應該可以從另一個Makefile調用它,而不必處理腳本內部的恐怖內容! :)

謝謝!

+0

這並不容易。你的意思是說,makefile_1在從*特定的* makefile_2或者* any *其他的生成文件(例如一個不起作用的簡單的)中調用時會失敗? – Beta 2013-02-20 05:36:05

+0

嗯,奇怪。在每種情況下比較'make -p'的輸出。 (當然,我總是用'-Rr'和'--warn'-YMMV運行_make_。) – bobbogo 2013-02-20 10:35:40

回答

1

您還可以控制遠銷變量子使這是在主叫方做出打破了被叫做一些環境變量(CFLAGS等)

我的解決方案是在乾淨的外殼和通話點上區分環境。然後我手動將問題變量添加到列表中,並創建了一些save_env/restore_env腳本。

謝謝!