Makefile で現在処理中の makefile のパスを知りたい(未解決)
3 時間ほど調査したけど、結局わからなかった。
Makefile が複数ある場合、例えば
$(MAKE) -C hoge -f fuga.mk
という感じでネストする Makefile が呼び出されていれば、
$(shell pwd)
でディレクトリは取得できる。
けど、ファイル名は取得できない。
これよりも困難なのが、include を使用したパターンで
include hoge/fuga.mk
と書かれていた場合、fuga.mk が呼び出された際に自分自身のパスはおろか、ディレクトリも知る術がない*1。
じゃあどうするのか、というと、おそらく make コマンドをラップするシェルスクリプトか何かを書いて、その中で環境変数を書き換えつつ、呼び出された Makefile からは環境変数を参照しつつ、というのを行うのだろう。