2014-09-19 148 views
3

我需要從$(MAKEFILE_LIST)提取最後一個單詞。獲取GNU makefile中最後一個單詞前的單詞

到目前爲止,我不能想出什麼比這種畸形的更好:

LIST := a b c 

LAST_WORD_INDEX = $(words $(LIST)) 
BEFORE_LAST := $(word $(shell echo $(LAST_WORD_INDEX) - 1 | bc),$(LIST)) 
$(info word before last is $(BEFORE_LAST)) 

當我運行它:

word before last is b 
make: *** No targets. Stop. 

的結果是正確的,但有更多的優雅理智的方式來實現相同?

+0

[包括Makefile文件的父目錄(可能重複http://stackoverflow.com/questions/24960054/included- makefiles-parent-directory) – 2014-09-19 13:19:49

+0

不是確切的目標的重複,但我的答案有你所需要的(我實際上在我的答案中談論'$(MAKEFILE_LIST)' – 2014-09-19 13:20:25

+0

@EtanReisner感謝你的GMSL指針 – 2014-09-19 13:55:36

回答

1

我結束了使用GMSL庫,這使得事情相當多一點一致:

include gmsl-1.1.6/gmsl 

$(lastword $(call chop,$(MAKEFILE_LIST))) 
相關問題