makeユーティリティは大きいプログラムのどの断片が再コンパイルされる必要があるかという事と、それらを再コンパイルする発行コマンドを自動的に決定します。このマニュアルではリチャードストールマンとローランドマグラスがGNU makeを説明します。GNU makeはIEEE Standard 1003.2-1992 - 6.2項(POSIX.2)に対応してます。
私たちは一般性からC言語で例を示していますが、makeコマンドはシェルコマンドで実行するどんな言語でも利用できます。実際、プログラムに制限されません。他のファイルが変わった時にいつでも変更があったファイルからいくつかのファイルが自動的に更新しなければならないという仕事を説明するのにも利用できます。
makeを使うための準備として、 makefileという「プログラムに使うファイル間の関係を示し、それぞれを更新する時に使うコマンドを提供する」ファイルを書かなければなりません。プログラムにおいて、実行可能ファイルはオブジェクトファイルから更新され、そのオブジェクトファイルはソースファイルをコンパイルすることによって順次作られる事が典型的です。
適当なmakefileがあれば、何度でもソースファイルを変更した時、単純なmakeというシェルコマンドで片付きます。
makeはすべての必要な再コンパイル作業を行ってくれます。makeプログラムはmakefileデータベースと、それからどのファイルを更新すべきか判断するのに最終修正日時を使います。makeはそれらのファイルの各々のためにデータベース(makefile)に書かれたコマンドを発行します。どのファイルをどのように再コンパイルすべきかをコントロールするためにコマンドライン引数をmakeに与えることが可能です。makeの実行方法の項を参照。
もしmakeが初めてか、一般入門書を探しているなら それぞれの章の後の部分は飛ばして最初だけ読んでください。各章は、最初のほうの段落は入門的な一般情報であり、あとの段落では専門的な技術情報を含んでいます。例外はMakefile入門で、すべての項目が入門的な内容になっています。
あなたが他のmakeプログラムに慣れている人ならばGNU makeの機能の項をご覧ください。そこにGNU make がどんな環境であるかをリストしています。それから非互換部分と欠けた機能の項では、GNU makeにはなくて他にある、ごく少ない事について説明しています。
手っ取り早い要約はGNU makeの機能、 クイックリファレンス、 それから、 特別なビルトイン・ターゲット名の項を見てください。
もしGNU makeに問題があったり、バグを見つけたと思ったなら、必ず対処するという保障はできませんができるだけ修復したいと思うのでどうか開発者に報告してください。
バグを報告する前に、実際に正真正銘バグを見つけたことを確かめて、確実なものにしておいてください。つまり、注意深く証拠書類を読み直し、絶対あなたがしようとしていたことが出来ていたんだ、と言えるかどうかをわかっておいてください。もしそうなるべきであるかどうかがはっきりしないならそれも報告してください。つまりそれは証拠書類のバグです!!
バグを報告するか自身で修復しようとする前に、問題を再生できる最小限のmakefileに分ける事を試して下さい。そうしてから、そのmakefileとあなたがmakeを実行した正確な結果を私たちに送って下さい。それから問題が本当に証拠書類中にあるのか判断する手助けになるので、何が起こることを望んでいたかも言って下さい。いったん正確な問題をつかまえたら、どうぞ電子メールをbug-make@gnu.org宛に送ってください。(訳注:これは原文にあるそのままのメールアドレスです。日本語版サイトもあるのですが英語で書くべきです。co-opに連絡したい場合はco-op softwareのサイトを見て下さい。間違っても翻訳文章の問題をGNUに報告しないで下さい)
どうか利用しているmakeのバージョンナンバーも入れておいてください。バージョンについては"make --version"というコマンドで知ることが出来ます。また、かならず機種とOSも入れて下さい。もし可能ならファイルコンフィグレーションプロセスによって生成されるconfig.hの内容も含んで下さい。