在gnumake的,可以包括文件,如下所示:是否可以從Make中包含的文件中獲取包含文件的路徑?
include some_file
我現在想知道,是有可能得到的some_file
從內該文件的文件路徑,例如通過做$(shell pwd)
? (我知道該命令特別是不起作用,因爲它獲取工作目錄的路徑,而不是包含的文件)。
在gnumake的,可以包括文件,如下所示:是否可以從Make中包含的文件中獲取包含文件的路徑?
include some_file
我現在想知道,是有可能得到的some_file
從內該文件的文件路徑,例如通過做$(shell pwd)
? (我知道該命令特別是不起作用,因爲它獲取工作目錄的路徑,而不是包含的文件)。
您可以使用MAKEFILE_LIST
變量來獲得該值。該變量中的最後一個文件名將是當前的生成文件,只要您在包含任何其他文件之前檢查它,就可以使用。基本上每次make讀入一個新的生成文件生成文件的名稱被添加到變量的末尾,但沒有價值正在不斷從變量刪除生成文件不再被解析即使經過:
THIS_MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
我認爲你可以使用readlink -f <file>
命令獲取文件的路徑。你只需要從文件內知道文件名是什麼,我假設你可以硬編碼。
酷!現在我不再需要手動將其寫入每個包含的模塊文件中! = d – gablin