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されたファイルの名前が設定されているようだ。