FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2008-04-03

[] 22:15 2008-04-03 - FreeBSD初心者運用日記 を含むブックマーク 2008-04-03 - FreeBSD初心者運用日記 のブックマークコメント

make program

と書いた場合、programにあたるものをターゲットと呼びます。

ターゲットを作るために必要なファイルをコンポーネントと呼びます。

以下のファイルから、実行形式プログラムprogramを作成する場合を考えてみます。

・main.c

hoge.c

・foo.c

lo.s

・/usr/lib/bar.a

この場合、以下の手順で作業します。

$ cc -c main.c
$ cc -c hoge.c
$ cc -c foo.c
$ as -o lo.o lo.s
$ cc -o program main.o hoge.o foo.o lo.o /usr/lib/bar.a

この場合、ターゲットがprogramになります。programのコンポーネントは、以下のファイルです。

main.o hoge.o foo.o lo.o /usr/lib/bar.a

上記の手順をMakefileを使って書いてみます。

$ vi Makefile
program : main.o hoge.o foo.o lo.o /usr/lib/bar.a
    cc -o program main.o hoge.o foo.o lo.o /usr/lib/bar.a
main.o : main.c
    cc -c main.c
hoge.o : hoge.c
    cc -c hoge.c
foo.o : foo.c
    cc -c foo.c
lo.o : lo.c
    as -o lo.o lo.s

このMakefileでは5つのエントリがあり、それぞれのエントリにルール行とコマンド行があります。

ルール行はコロンを含んでいる行です。依存関係を表します。

コマンド行は先頭がタブで始まる行です。コンポーネントからターゲットを作り出す方法を書きます。

 |