Diary/2005-1-9
Makefileで条件分岐
makeの際にOSの種類をみて処理を変えたいということがよくある.BSD makeを使うのをあきらめて,GNU makeを利用すると
ifeq〜else〜endifが使えて便利なのだが,
ifeq (`uname`,Darwin) OPT=hoge else OPT=gaso endifみたいなことをやっても上手くいかない.
期待した動作を得るためには,shell関数を使って
ifeq ($(shell uname),Darwin) OPT=hoge else OPT=gaso endifのようにしなければいけない.
また,findとかを使ってファイルのリストを得たいような場合も
変数にバッククォートで括ったコマンドを与えるよりも
shell関数を使った方が,実行が一回で済むというメリットが得られるようだ.
Copyright (c) 2001-2008 Takefumi MIYOSHI, All rights reserved