このブログの更新は Twitterアカウント @m_hiyama で通知されます。
Follow @m_hiyama

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

今日のMake Tips:CURDIR変数

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は正真正銘の実在パスを返します。

[/追記]