我需要在$(MAKEFILE_LIST)
之前提取单词。
到目前为止,我无法想出比这种怪异更好的东西:
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 :(得分:2)
我最终使用了GMSL库,这让事情变得更加连贯:
include gmsl-1.1.6/gmsl
$(lastword $(call chop,$(MAKEFILE_LIST)))
答案 1 :(得分:0)
$(words ${LIST})
将为您提供最后一个但单词的索引。
BEFORE_LAST := $(word $(words ${LIST}),$(words ${LIST}),1st ${LIST})
请注意其中的1st
。