簡體   English   中英

使用env變量指定makefile

[英]Specify makefile with env variable

我有以下別名,這簡化了從項目移動到項目時的工作流程:

alias mk='make -f ${ACTIVE_MAKEFILE}'

背景知識:makefile放在一個單獨的目錄中,並帶有與它們引用的項目相關的名稱。 我沒有將它們保留在項目目錄中,因為:

  1. 它們是我的私有makefile,我不想將它們提交到存儲庫
  2. 我實際上想跟蹤更改,因此它們必須存在於回購中。 為此,我有一個umbrella項目。

這工作正常……但是:我輸了。 執行mk <TAB>不會向我顯示可用的Makefile目標,因此擁有別名實際上會使我的工作流程效率降低。

我以為,與其告訴make使用帶有-f標志的特定makefile,我還可以設置一個env變量來告訴make,就像這樣:

export MAKEFILE=my-makefile

然后命令:

make

將自動使用my-makefile 由於命令未更改,因此自動補全將繼續起作用。

但是該選項不存在,或者我找不到make用於選擇Makefile的env變量的名稱

我可以設置哪個env變量(如果有)告訴make使用特定的makefile?

最初在注釋中建議了兩個選項:

  1. 您是否考慮過在每個目錄中使用固定的統一名稱(可能稱為makefileMakefile ,甚至delavnog.mk )創建一個指向相關目錄外makefile的符號鏈接? 然后,您的別名僅使用此固定名稱,並確保您的VCS忽略了本地符號鏈接,這樣它就不會被推送到中央存儲庫了嗎?

  2. 作為替代方案,使用shell腳本(也許dlnmk ),而不是一個別名,並有適用的法規,你必須找到你的生成文件(這樣的腳本確定正確的名稱和生成文件的位置,然后調用make與正確的-f選項)。 開銷很小,您可以將思想封裝到腳本中,因此您無需再考慮它。

在這兩個腳本中,我可能會選擇使用腳本,但是我會一口氣寫腳本。 目前,我的$HOME/bin目錄中大約有400個腳本,並且在關聯的RCS目錄中保存了將近900個腳本-我已經做了一段時間了,在最初的20年左右的時間里,Git不再可用(因為它還不存在)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM