MAKEFILE--多目標

Makefile的規則中的目標可以不止一個,其支持多目標,有可能我們的多個目標同時依賴於一個文件,並且其生成的命令大體類似。於是我們就能把其合併起來。當然,多個目標的生成規則的執行命令不是同一個,這可能會給我們帶來麻煩,不過好在我們可以使用一個自動化變量“$@”(關於自動化變量,將在後面講述),這個變量表示着目前規則中所有的目標的集合,這樣說可能很抽象,還是看一個例子吧。

bigoutput littleoutput : text.g
	generate text.g -$(subst output,,$@) > $@

上述規則等價於:

bigoutput : text.g
	generate text.g -big > bigoutput
littleoutput : text.g
	generate text.g -little > littleoutput

其中,-$(subst output,,$@)中的“$”表示執行一個Makefile的函數,函數名爲subst,後面的爲參數。關於函數,將在後面講述。這裏的這個函數是替換字符串的意思,“$@”表示目標的集合,就像一個數組,“$@”依次取出目標,並執於命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章