make での二重コロンでの実行順 ― 2010年09月04日 13時59分37秒
複数のターゲットを書いた時に気になるのは実行順だ。GNU Make と BSD Make で簡単に実験をした。なお、今回の実行環境は FreeBSD なので、gmake は GNU Make、make が BSD Make になる。
まず、all と言うターゲットを持つファイルを三つ準備した。これを include して実行する。
% head ?.mk
==> 1.mk <==
all ::
echo 1
==> 2.mk <==
all ::
echo 2
==> 3.mk <==
all ::
echo 3
まずは、順番に読む 123.mk を作り、実行する。
% cat 123.mk
include 1.mk
include 2.mk
include 3.mk
% gmake -f 123.mk
echo 1
1
echo 2
2
echo 3
3
% make -f 123.mk
echo 1
1
echo 2
2
echo 3
3
読み込まれた順番に実行されている。
今度は、順番を変えてみる。今度は 213 の順だ。
% cat 213.mk
include 2.mk
include 1.mk
include 3.mk
% gmake -f 213.mk
echo 2
2
echo 1
1
echo 3
3
% make -f 213.mk
echo 2
2
echo 1
1
echo 3
3
こちらも読み込んだ順番通り。
最後に複数回読み込んでみる。
% cat 2131.mk
include 2.mk
include 1.mk
include 3.mk
include 1.mk
% gmake -f 2131.mk
echo 2
2
echo 1
1
echo 3
3
echo 1
1
% make -f 2131.mk
echo 2
2
echo 1
1
echo 3
3
echo 1
1
こちらも順当な出力だった。
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2010/09/04/5329742/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。