Get word before last word inside GNU makefile

I need to extract the word to the last from $(MAKEFILE_LIST)


Until now, I couldn't think of anything better than this monster:

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))


When I ran it:

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


The result is correct, but is there a more elegant and sane way to achieve the same?


source to share

1 answer

I ended up using the GMSL library , which makes things a little more consistent:

include gmsl-1.1.6/gmsl

$(lastword $(call chop,$(MAKEFILE_LIST)))




All Articles