2015-10-20 120 views
0

對不起,打擾你們這個,但我是一種嚇倒,沒有發現任何真正匹配舊線程。我想使用make命令的第一個參數爲Makefile裏的一個變量的值,使得不是做makefile目標命令行

化妝VAR = ARG1

我可以做

使ARG1

和生成文件內的變量將是TARGET = ARG1。 原因很簡單。在我的makefile文件,我需要用它作爲

$(TARGET): $(OBJS) @echo -e "\n\n\t\t*** Compiled $(TARGET) successfully! ***\n" ; $(FL) $(LFLAGS) -o $(BUILDS_DIR)[email protected] \ $(OBJS) \ $(LIBS) @echo -e "\n\n\t\t*** Linking $(TARGET) completed! ***\n"

而且(如果可能的話),在沒有第一個參數的情況下,目標變量必須由默認值設定。它實際上可能嗎?

感謝

+0

您是使用GNU make還是其他make實現? – Jens

+0

是GNU make。我忘了說它 – Stefano

回答

1

你可以從$(MAKECMDGOALS)所有命令行的目標是在命令行上指定的所有目標的列表清單(你不應該有這樣的假設只是有其中之一,雖然。 ..)。

或者,你可以使用%如下:

%: $(OBJS) 
    @echo making [email protected] 
    ... 

注意,這是因爲長的莖儘可能的圖案規則,因此,如果沒有其他的規則來服務它只會被執行命令行目標(除非有另一個%:規則,在這種情況下它只會運行第一個)。如果您製作多個目標,則每個目標都會運行一次。

+0

它似乎與$(MAKECMDGOALS)一起使用。非常感謝,對於遲到的回覆(時區問題)感到抱歉。關於第二種選擇,我也想到了這一點,但是我需要設置一個變量TARGET,我不知道該怎麼做。 – Stefano