2010-01-20 69 views
2

我正在查看C makefile,並且我有一個問題。make - 從命令行指定目標名稱

我知道'make a'會使目標a,它應該在makefile中定義。

我想知道目標名稱本身是否可以作爲參數提供。

即這就是我想做的事:

$(TARGET_NAME)是提供給命令「製作」的名字。例如,'make foo'。

,並在makefile,
$(TARGET_NAME)=依賴性
命令

我不知道這是否是可能的...找不到在化妝手冊豈有。

如果任何人都可以幫助我,這將是非常棒的。

感謝,

回答

3

一切你問的是什麼使的默認操作 - 有沒有必要寫任何特殊代碼在Makefile做到這一點。你對製作似乎很困惑(例如,它並不特別與C相關)。最好的指導是GNU Make Manual,這不僅是一本手冊,而且是一本很好的教程。

+0

是啊..例如在這裏顯示瞭如何在一個Makefile文件HTTP指定不同的目標://www.gnu.org/software/make/manual/make.html#Rule-Introduction – thomaspaulb 2010-01-20 21:27:54

+0

感謝您的回覆。 也許我不清楚。我的意思是'目標名稱不是在makefile中預定義的。'它由命令行提供,並在makefile中使用。 這可能嗎? – Chaitanya 2010-01-20 22:14:31

+0

@Chaitanya「make foo」將構建名爲「foo」的目標。你怎麼能期望它建立一個未定義的目標? – 2010-01-20 22:23:39

0

我是Makefiles的新手,但看起來你並沒有像Makefile那樣傳遞值。如果下面是你Makefile

# Makefile 

TARGET?=something 

$(TARGET): 
    echo $(TARGET) 

您可以通過在終端呼叫make這樣傳遞參數

$ TARGET='ABCDEF' make