3.5 The Variable MAKEFILE_LIST
As make
reads various makefiles, including any obtained from the
MAKEFILES
variable, the command line, the default files, or
from include
directives, their names will be automatically
appended to the MAKEFILE_LIST
variable. They are added right
before make
begins to parse them.
This means that if the first thing a makefile does is examine the last
word in this variable, it will be the name of the current makefile.
Once the current makefile has used include
, however, the last
word will be the just-included makefile.
If a makefile named Makefile
has this content:
| name1 := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
include inc.mk
name2 := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
all:
@echo name1 = $(name1)
@echo name2 = $(name2)
|
then you would expect to see this output:
| name1 = Makefile
name2 = inc.mk
|
See section 8.2 Functions for String Substitution and Analysis, for more information on the word
and
words
functions used above. See section The Two Flavors of Variables, for more information on simply-expanded (:=
)
variable definitions.