條件:通行證文件參數使
- 一個makefile被傳遞給make:
make -f ../makefile hi
- 的
hi
目標還呼籲make
我需要一種方法來傳播價值從-f
到hi
內運行的子命令。
bye:
echo 'whatever'
hi:
${MAKE} bye
條件:通行證文件參數使
make -f ../makefile hi
hi
目標還呼籲make
我需要一種方法來傳播價值從-f
到hi
內運行的子命令。
bye:
echo 'whatever'
hi:
${MAKE} bye
我所知道的唯一的可能性是使用MAKEFILE_LIST
變量:
CURR_MAKEFILE:=$(lastword $(MAKEFILE_LIST))
bye:
echo 'whatever'
hi:
+$(MAKE) -f $(CURR_MAKEFILE) bye
但是要注意,因爲它是書面的正式文件中,該變量記錄了所有解析的makefile文件,其中包括include
編輯。在任何包含之前,在製作文件的最頂部查詢時,該變量的值是唯一可靠的。
假設有在當前目錄 (想必你是路過-f ../makefile
的原因),然後 你的榜樣../makefile
將工作,如果你調用 make
就像是沒有默認的makefile:
$ make MAKEFILES=../makefile hi
make bye
make[1]: Entering directory '/home/imk/develop/scrap'
echo 'whatever'
whatever
make[1]: Leaving directory '/home/imk/develop/scrap'
如果有是在當前目錄中默認的makefile然後這個 的方法將原因e make
在 讀取../makefile
之後讀取默認生成文件,結果令人不快。在這種情況下,更喜歡@ Dummy00001的答案。
因此,不要硬編碼「你好」,你想傳遞從命令行傳入的任何內容嗎?但是如果Make目標說明要執行什麼,'hi'已經知道它正在執行'hi';它怎麼會不是?也許你可以用你現在得到的東西來澄清,並且你想得到什麼。 – tripleee