2012-05-28 29 views
1

我有一個makefile,並通過命令行向其傳遞參數。假設我爲這樣的時鐘頻率傳遞參數。如何將參數的值包含到生成文件中的字符串中

make run FREQ=500 

在我的makefile中,我想在一個字符串中包含FREQ的值,例如,我想要像這樣擴展它。

RUN_FLG = "--frequency = 500" 

我知道你可以,如果你使用的是參數正常(不字符串內)使用$(FREQ),但你如何展開一個字符串裏面?

+2

你已經嘗試過使用相同的語法?我不認爲make知道引用字符串,因爲一切都被視爲一個字符串。 – Pubby

+0

Pubby - 尚未嘗試過,但我會嘗試。 – pythonic

+0

它的工作原理。感謝Pubby! – pythonic

回答

1

make不知道字符串是什麼;你嵌入宏引用到字符串相同的字符串以外:

DEFAULT_FREQ = 60 
FREQ   = $(DEFAULT_FREQ) 

RUN_FLG = "--frequency=$(FREQ)" 

我「校正」在--frequency的間距;您通常不會將=與選項文本分開,並且該值也會隨後不帶空格。

我提供的makefile內FREQ的默認值,這樣,如果它是在沒有任何FREQ=500覆蓋調用,你仍然有默認值的$(RUN_FLG)一部分。

1

只需使用$(value)

例子:

輸出 make -n
freq = 500 
x = "--frequency = $(freq)" 

run: 
    @$(/bin/echo -e) $(x) 

"--frequency = 500" 
相關問題