2016-06-07 39 views
1

條件:通行證文件參數使

  • 一個makefile被傳遞給make:make -f ../makefile hi
  • hi目標還呼籲make

我需要一種方法來傳播價值從-fhi內運行的子命令。

bye: 
    echo 'whatever' 

hi: 
    ${MAKE} bye 
+0

因此,不要硬編碼「你好」,你想傳遞從命令行傳入的任何內容嗎?但是如果Make目標說明要執行什麼,'hi'已經知道它正在執行'hi';它怎麼會不是?也許你可以用你現在得到的東西來澄清,並且你想得到什麼。 – tripleee

回答

0

我所知道的唯一的可能性是使用MAKEFILE_LIST變量:

CURR_MAKEFILE:=$(lastword $(MAKEFILE_LIST)) 

bye: 
    echo 'whatever' 

hi: 
    +$(MAKE) -f $(CURR_MAKEFILE) bye 

但是要注意,因爲它是書面的正式文件中,該變量記錄了所有解析的makefile文件,其中包括include編輯。在任何包含之前,在製作文件的最頂部查詢時,該變量的值是唯一可靠的。

0

假設有在當前目錄 (想必你是路過-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' 

3.4 The Variable MAKEFILES

如果有在當前目錄中默認的makefile然後這個 的方法將原因e make在 讀取../makefile之後讀取默認生成文件,結果令人不快。在這種情況下,更喜歡@ Dummy00001的答案。