在Makefile中得到自己所在的目錄

2021-08-03 02:25:30 字數 575 閱讀 3461

makefile 可能會以這樣的方式被呼叫:

make -f some_dir/makefile all

這種情況下, makefile本身裡面的命令不能對當前目錄作出假設.

gnu make手冊裡介紹了乙個叫

makefile_list的變數, 它是個列表變數, 在每次make讀入乙個make檔案時, 都把它新增到最後一項, 這樣:

在makefile的最開頭, 通過訪問這個變數的最後乙個元素, 就能得到讀入的檔名, 對於上面的例子, 是

some_dir/makefile

pes_parent_dir:=$(shell pwd)/$(lastword $(makefile_list))

pes_parent_dir:=$(shell dirname $(pes_parent_dir))

pes_parent_dir:=$(shell dirname $(pes_parent_dir))

第一行將得到乙個完整路徑名.

第二行通過命令dirname 去掉 makefile部分.

第三行得到其父目錄.

這個辦法只對gnu make有用.

在Makefile中設定環境變數

makefile用來呼叫各種命令做自動化構建工具非常方便。最近在寫給flask專案寫makefile時,需要設定環境變數,卻遇到一些小問題。如果是在全域性設定環境變數時很容易 export flask env dev export flask debug 1 dev echo flask env e...

Android得到控制項在螢幕中的座標

計算該檢視在全域性座標系中的x,y值,注意這個值是要從螢幕頂端算起,也就是索包括了通知欄的高度 獲取在當前螢幕內的絕對座標 getlocationinwindow 計算該檢視在它所在的widnow的座標x,y值,獲取在整個視窗內的絕對座標 不是很理解 getleft gettop getbottom...

在node中自己封裝node modules裡的包

舉例建立kafka的customer的封裝包。1,在本地建立kafka資料夾,資料夾中建立consumer.js檔案,package.json檔案,readme.md 三個檔案。其中consumer.js檔案寫要封裝的 格式大概如 function gerconsumer exports.getco...