3.1.4 makefile の書式
定義ファイル(makefile)の書式を整理すると、次のようになります。
target : source(s) [# comments]
(tab)[{-|@}]action line [# comments]
(複数行繰り返し可能)
(tab)[{-|@}]action line .... \
継続行
- コメント
- コメントはシャープ(#)で始まり、行末までです。
- 継続行
- 行を股がる場合は継続する行の最後がバックスラッシュ(\)で
終わらなければなりません。
これはコメント行であっても同じです。
なお続く継続行の先頭は空白/タブが無視されます。
- ターゲット
- make が作成する対象ファイル名、または単に make の引き数であたえられる名称
です。
- アクション
- ターゲットに続くコマンド群で、必ずタブで始まります。
ターゲットとそれを区切るコロン(:)の間はゼロ個以上の空白です。
アクションについて補足
アクション部分の実行には B-shell が用いられます。また各アクション毎に shell を
呼び出すので、複数行に股がるようなコマンドは継続行が必用です。
また変数の扱い等が難しく可読性が低いので、
複雑なコマンドは出来るだけシェル・スクリプトを用いた方がよいでしょう。
$ cat makefile
test:
echo $$$$ # ドル($) は make が展開してしまうので、
echo $$$$ # 2つ用いることでエスケープしている
@case `uname -r` in \
2.6*) echo "New version" ;; \
*) echo "Old version" ;; \
esac
% make
echo $$
1316
echo $$
1317
New version
Section Next|Prev
|