Makefile は構築段階の鍵となるものです。コンパイルして、実行可能なソフト ウェアの"バイナリファイル"を構築するためのスクリプトというのが Makefile の最も基本的な用法です。Makefile は全てのファイルを再コンパイル せずにソフトウェアのバージョンアップもすることが出来ますが、このことは ここでは関係ないのでまた別の話になります。
いくつかの段階で Makefile は cc や gcc を実行します。正確には、 Makefile の指示によってプリプロセッサや C (や C++)のコンパイラやリンカが実行されます。
普通、make を実行するには make とタイプするだけです。実行すると、普通は パッケージの必要な全ての実行可能ファイルを構築します。しかし、makeは他の こともすることが出来ます。例えば、ファイルを適切なディレクトリにインス トールしたり (make install) 、古いオブジェクトファイルを消去します (make clean)。 make -n と実行することで、実際の処理をしないで、makeが 呼び出すすべての命令を出力することで、構築のプロセスを確認することが 出来ます。
非常に単純なソフトしか一般的な Makefile を使用しません。もっと複雑な インストール作業では Makefile の設定をあなたのマシンのライブラリや インクルードファイルやリソースに合わせる必要があります。このことは特に インストールする時にX11のライブラリが必要なときに起こります。Imake と xmkmf がこの作業をしてくれます。
manページからの引用によると、Imakefile は Makefile の"テンプレート "です。 imake ユーティリティーは Imakefile からシステムに合った Makefile を作成します。しかし、ほとんどの場合、xmkmfを実行することになる でしょう。xmkmf は imake を実行するためのシェルスクリプトであり、フロント エンドでもあります。具体的にどのようにするかはソフトウェアアーカイブに 入っている README や INSTALL という名前のファイルをチェックしてください。 imake と xmkmf の動作の詳細については man ページを読んでください。
特に /usr/bin や /usr/local/bin のディレクトリへバイナリファイルを移動 させるために make install を実行するときには、xmkmf や make は root に なって起動する必要があることがあるということに注意してください。root権限 を持たない普通のユーザーにはシステムディレクトリへの書き込み権限が無い ので make を使用するとおそらく書き込み拒否のエラーが出るでしょう。 バイナリファイルの実行許可が適切なユーザーに適切に設定されているかどうか も確認してください。
xmkmf は適切な新しい Makefile をシステムに作成するために Imakefile を使用 します。通常は自動的に make Makefiles, make includes, make depend を 実行するために -a オプションを付けて xmkmf を実行します。こうすると、 ライブラリやコンパイラやリンカの場所を変数やdefineに定義します。ときどき、 Imakefileがなくて、代わりに同様のことを実行するための INSTALL や configure といったスクリプトが存在することもあります。
注意:もし configure を実行するなら、確実にカレントディレクトリの configure スクリプトを実行するために ./configure と実行すべきです。 大抵の場合、インストールの手順を説明したREADMEファイルがパッケージの中 に入っています。
xmkmf やインストールスクリプトが作成した Makefile を実際に見て詳しく 点検するのが良いでしょう。 Makefile は通常、あなたのシステムについて 正しく設定されているはずですが、時として手作業で Makefile を "編集"したり、エラーを取り除いたりする必要に迫られることが あります。
一般的なインストールのプロセスは次のようになっています。