はじめに
Makefileではifやwhileを使うことができるのだが、予めどんな値が入るかわからない場合においては使用できない。
今回の使用法は汎用性に富んでおり、かつ簡単にかけるのでそのやり方を紹介しておく。
Makefileのワイルドカード
Makefileではワイルドカードとして、*
や%
等を使用することができる。
今回は詳細に説明しないが、%
をターゲット名に使用することで、%の部分を自動変数に格納できる
ことを利用する。
自動変数を用いてtarget名の一部を利用する
%
に該当する部分は、自動変数:$*
で利用できる。
早速簡単な例を見てみよう。
test-%: @echo $*
$ make test-hello hello $ make test-hogehoge hogehoge
これで大体どう使えそうかほとんどわかると思うが、例えば無理くり呼び出す変数を変更させたりもできる。(この場合汎用性は当然下がる)
test-%: @echo $(var_$*) var_hoge=$$(echo hoge) var_huga=$$(echo huga)
$ make test-hoge hoge $ make test-huga huga
おわりに
Makefileはビルドツールとして非常に優秀なので、サーバへのデプロイツールのラッパーとしての用途でも使用する場面が多いと思う。
Makefileについては以下の書籍があるが、実はこれはオライリーのサイトでPDF版が無料で配布されていたりする。私は本派だが…
- 作者:Robert Mecklenburg
- 出版社/メーカー: オライリージャパン
- 発売日: 2005/12/01
- メディア: 大型本