「メイクファイル」と呼ばれるファイルは、ソースファイルとオブジェクトファイルがお互いにどのように依存するかを構造化された方法で make に伝えるものです。さらに、これらのファイルをコンパイルし、リンクするのに必要なコマンドを定義します。
たとえば、4 つのソースファイルから成るプログラムとメイクファイル (ファイル名 makefile) があるとします。
demo% ls makefile commonblock computepts.f pattern.f startupcore.f demo% |
この例では、pattern.f と computepts.f が commonblock をインクルードするものと仮定します。そして、各 .f ファイルをコンパイルして、3 つの再配置可能なファイルおよび一連のライブラリを pattern というプログラムにリンクします。
この場合の makefile は次のようになります。
demo% cat makefile pattern: pattern.o computepts.o startupcore.o f95 pattern.o computepts.o startupcore.o -lcore95 \ -lcore -lsunwindow -lpixrect -o pattern pattern.o: pattern.f commonblock f95 -c -u pattern.f computepts.o: computepts.f commonblock f95 -c -u computepts.f startupcore.o: startupcore.f f95 -c -u startupcore.f demo% |
makefile の最初の行では、pattern の作成が pattern.o、computepts.o、および startupcore.o に依存することを表しています。次の行以降は、再配置可能な .o ファイルとライブラリから pattern を作成するコマンドです。
makefile の各行は、ターゲットオブジェクトの依存性を表す規則と、そのオブジェクトを作成するのに必要なコマンドです。規則の構造は次のようになります。
ターゲット: 依存性リストTAB 構築コマンド
依存性- 個々の項目は、ターゲットファイルの名前とそのターゲットが依存するすべてのファイル名を列挙した行で始まります。
コマンド- 個々の項目には、引き続く行が 1 行以上あり、この項目がターゲットとするファイルを構築する Bourne シェルコマンドを指定します。これらのコマンド行は、タブでインデントさせておきます。