How can I capture the current directory as an absolute pathname in a make variable?

I'd like to get the current directory during a GNUmake file run put into a make variable.

What is the syntax to do this? Something like this?

DIR := $(PWD)

Solution 1:

Um, no, $PWD is sometimes defined in your environment and thus inherited by make, but oftentimes not. You need $CURDIR.

DIR := ${CURDIR}

Solution 2:

If you have one makefile including another in a different directory, PWD and CURDIR aren't updated for the child makefile. If that second makefile needs to know where it is, the following will tell you.

$(dir $(realpath $(lastword $(MAKEFILE_LIST))))