Makefile中でカレントディレクトリが欲しいときは、shell関数を使って次のようにしてました。
curdir := $(shell pwd)
が、事前に定義された変数CURDIRにカレントディレクトリが入っていました。変数CURDIRを参照したほうが手軽で速いですね。バッククォート構文 `pwd`
も含めると3つの書き方がありますが、効果はどれも同じです。ただし、バッククォートはシェルによる実行時に解釈される点に注意してください。
# curdir.mk
curdir1 := `pwd`
curdir2 := $(shell pwd)
curdir3 := $(CURDIR)# 3つのどれでも表示結果は同じ
do:
@echo 'curdir1 = '$(curdir1)
@echo 'curdir2 = $(curdir2)'
@echo 'curdir3 = $(curdir3)'
[追記]
$(abspath .) または $(realpath .) でもカレントディレクトリを得られますね。abspathもrealpathも、引数(ワードリスト)の各ワードを相対パスとみなしてその絶対パス(のリスト)を返します。abspathはファイルの存在を確認したりシンボリックリンクをたどったりしません(文字列処理レベル)。realpathは正真正銘の実在パスを返します。
[/追記]