メモの日々


2017年05月09日(火) [長年日記]

[howto][dev] GNU makeでMakefileのあるディレクトリのパスを得る

Makefileが配置されているディレクトリのパスを得るにはどうすればよいのか。

GNU makeにはCURDIRという変数があって、makeの -C オプションが使われているときにはこれを使えるけれど、makeの -f オプションで異なるディレクトリのMakefileを読み込んだ時にはうまくいかない(CURDIRの値はカレントディレクトリなので)。

検索すると、How to get a Makefile directory pathという記事で

$(dir $(realpath $(firstword $(MAKEFILE_LIST))))

を使うという方法が紹介されていた。MAKEFILE_LISTという変数にはMakefileとそこからincludeされたファイルの名前が設定されているようだ。