我正在學習Makefiles和應用程序交叉編譯,我想找到一種方法來防止變量在Makefiles中被重新定義。防止變量在Makefiles中被重寫?
舉個例子,我寫了一個頂層Makefile /usr/src/someapp.mk那將...
1)從網絡到/ usr/src目錄/ someapp-下載應用程序的源代碼1.2.3/
2)解壓縮的源極,和
3)運行其原始/usr/src/someapp-1.2.3/Makefile
由於原來的生成文件被寫爲一項獨立獨自一人的腳本,它會不知不覺地(重新)用當地val定義通常的嫌疑犯(CC,AR/RANLIB等)統一電力公司,從而有效地擦除我選擇在頂層Makefile值:
#My top-level /usr/src/someapp.mk:
all:
wget someapp-1.2.3.tar.gz
tar xzvf someapp-1.2.3.tar.gz
cd someapp-1.2.3 && $(MAKE)
#Original Makefile from www /usr/src/someapp-1.2.3/Makefile:
#RANLIB locally redefined... :-/
RANLIB=ranlib
all:
$(RANLIB)...
我想用戶能夠下載原始的源代碼,而不是提供我自己的,修改的版本:有沒有辦法來當變量在本地被重新定義或者在運行中重寫它們時,「make」要麼忽略?
謝謝。
非常感謝。我將嘗試?= – Gulbahar 2011-01-19 18:07:05