トップ 一覧 Farm 検索 ヘルプ RSS ログイン

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関数を使った方が,実行が一回で済むというメリットが得られるようだ.