戻る

gnuのmakeコマンドのマニュアル。

================================
名前
       make  -   プログラム群を管理するための GNU make ユーティリ
       ティ

書式
       make [ -f makefile ] [ option ] ...  target ...

注意
       このオンラインマニュアルは、 GNU make のドキュメントの一部
       を抜粋したものである。このファイルはあまり頻繁には更新され
       ない。というのも、GNU プロジェクトでは nroff が使われて い
       な い からである。完全かつ最新の内容のドキュメントを見るに
       は、info ファイル make.info を参照すること。これは texinfo
       のソースファイル make.texinfo から生成される。

説明
       make  ユーティリティの目的は、大きなプログラムの中の再コン
       パイルする必要がある部分を自動的に決定し、再コンパイルのた
       め のコマンドを実行することである。このマニュアルでは、GNU
       が実装した make の説明を行っている。これは Richard  Stall-
       man  と Roland McGrath が書いたものである。例としては C 言
       語のプログラムを用いているが、これは C 言語が最も一般的 だ
       からである。 make は、シェルコマンドからコンパイラを起動で
       きるどんなプログラミング言語とでも組み合わせて使用できる。
       実 際、 make の利用対象はプログラムだけに限られない。 make
       は、あるファイルを書き換えたら、その書き換えたファイルを元
       にして別のファイルも自動的に更新しなければならないような任
       意の作業で利用できる。

       make を使う準備をするためには、まず makefile と呼 ば れ る
       ファイルを書かなければならない。このファイルは、プログラム
       を構成するファイル間の関係と各ファイルを更新するためのプロ
       グ ラ ムを記述したものである。プログラムの場合は普通、実行
       ファイルはオブジェクトファイルによって更新され、この オ ブ
       ジェクトファイルもまたソースファイルのコンパイルによって生
       成される。

       適切な makefile さえあれば、ソースファイルを一部変更する度
       に

              make

       という簡単なシェルコマンドを実行するだけで、必要な再コンパ
       イルが全て行われる。 make プログラムは、makefile   デー タ
       ベースとファイルの最終更新時刻を用いて、更新する必要がある
       ファイルを見つける。このようなファイルに対して、 make   は
       データベースに記録されているコマンドを実行する。

       make   は  makefile 中のコマンドを実行して、1 つ以上のター
       ゲット 名称を更新する。この 名称は普通はプログラムである。
       -f   が 無 い場合、 make は makefile として、 GNUmakefile,
       makefile, Makefile をこの順に参照する。

       通常、ユーザが makefile として使うべきなのは、 makefile ま
       たは Makefile である。 (筆者は Makefile を推奨する。なぜな
       ら、この名前であれば常にディレクトリ表示の先頭近くに現われ
       るし、 README のような他の重要ファイルのすぐ近くに来るから
       である。) 最初にチェックされる名前である GNUmakefile  は、
       大 抵 の 場合は好ましくない。この名前を使うべきなのは、GNU
       make に特化しており、他のバージョンの make では処理でき な
       い  makefile を使う場合である。 makefile が `-' ならば、標
       準入力が読み込まれる。

       make がターゲットを更新するのは、ターゲットが依存してい る
       必要ファイルがターゲットより後に変更された場合と、ターゲッ
       トが存在しない場合である。

オプション
       -b

       -m   これらのオプションは無視される。これらは他のバー ジョ
            ンの make との互換性のためのものである。

       -C dir
            makefile を読み込むなどの動作の前に、ディレクトリ dir
            に移動する。複数の -C オプションが指定されて い る 場
            合、 それぞれは前の指定に対する相対パスと解釈される。
            例えば、 -C / -C etc は -C /etc と同じ意味である。 こ
            の オプションは通常、 make を再帰的に呼び出す時に使わ
            れる。

       -d   通常の処理情報に加えて、デバッグ情報を出力 す る。 デ
            バッ グ 情 報に含まれるのは、再構築の対象となっている
            ファイル、比較されるファイル時間とその結果、実際に 再
            構 築する必要があるファイル、候補になっていたり実際に
            適用される暗黙のルールなど、 make が動作を決めるた め
            に必要なもの全てである。

       -e    環境変数から与える変数を指定する。これは makefile の
            変数よりも優先される。

       -f file
            file を makefile として使用する。

       -i   ファイルの再構築時に実行したコマンドで起きたエラー を
            全て無視する。

       -I dir
            イ ンクルードする makefile を検索するディレクトリ dir
            を指定する。複数の -I オプションを使って複数のディ レ
            ク トリを指定した場合、ディレクトリの検索は指定した順
            で行われる。 make の他のフラグに対する引き数 と 異 な
            り、  -I に与える引き数は、フラグの直後に記述できる。
            つまり、 -Idir という記述も -I dir と共に許される。こ
            の 記法を許すのは、C プリプロセッサの -I フラグとの互
            換性のためである。

       -j jobs
            同時に実行できるジョブ(コマンド)の数を指定す る。  -j
            オ プションが複数個指定された場合は、最後の指定が有効
            になる。引き数無しで -j オプションが与えられた場 合、
            make は同時に実行できるジョブの数を制限しない。

       -k    エラーが起きてもできる限り実行を継続しようとする。失
            敗したターゲットとそのターゲットに依存しているファ イ
            ル は再生成されないものの、そのターゲットに関する他の
            依存関係は処理することができる。

       -l

       -l load
            他のジョブが動作しており、ロードアベレージが少なく と
            も  load (浮動小数)ならば、新しいジョブ(コマンド)を実
            行しないことを指定する。引き数無しの場合には、以前 に
            指定した負荷の制限が取り除かれる。

       -n    実行するコマンドの表示だけを行い、実際の実行を行わな
            い。

       -o file
            file が依存先のファイルより古い場合であっても再構築を
            行 わなず、 file が変更されても他のファイルの再構築を
            一切行わない。本質的には、そのファイルは非常に古い も
            のとして扱われ、規則が無視される。

       -p   makefile  を読み込んで得られたデータベース(規則と変数
            の値)を出力する。特に指定しない限り、その後の動作は通
            常 通りである。また、 -v オプションで得られるバージョ
            ン情報も出力する。ファイルを全く再構築することな く、
            デー タ ベースの表示だけを行うには make -p -f/dev/nul
            を用いること。

       -q   「問い合わせモード」で動作する。コマンドを全く実行 せ
            ず、 何も表示しない。ただ、指定されたターゲットが既に
            最新ならば終了ステータス 0 を返し、そうでなけれ ば  0
            でないステータスを返す。

       -r    組み込みの暗黙的ルールを使用しない。また、添字規則で
            使うデフォルトの添字のリストも全て消去する。

       -s   静かに動作する。コマンドを実行する際に、コマンドの 表
            示を行わない。

       -S   -k オプションの影響を打ち消す。このオプションが必要に
            なるのは、 make を再帰的に用いているために -k   オ プ
            ションがトップレベルの make から MAKEFLAGS を通じて継
            承される場合や、環境変数 MAKEFLAGS で -k を設定してい
            る場合だけである。

       -t   コマンドを実行せずにファイルにタッチする(実際にはファ
            イルを変更せず、最新の印を付ける)。このオプションを使
            う と見かけ上コマンドが実行されたことになり、後で起動
            する make をだますことができる。

       -v   make プログラムのバージョンおよび著作権表示、作者のリ
            スト、無保証であることの宣言を出力する。

       -w    他の処理を行う前後に、作業ディレクトリを表示する。再
            帰的な make コマンドが複雑な入れ子になっている状況 で
            エラーを追跡する際に便利である。

       -W file
            ター ゲット file が変更されたばかりのものとして動作す
            る。 -n フラグを指定している場合、そのファイルを変 更
            す るとどうなるかが表示される。 -n が指定されていない
            場合の動作は、 make の実行前に、指定されたファイル に
            対して touch を行った時とほぼ同じである。ただし、修正
            時刻が変更されるのは make の内部だけである点 が 異 な
            る。

関連項目
       The GNU Make Manual

バグ
       The  GNU Make Manual の「問題点とバグ(Problems and Bugs)」
       の章を参照すること。

著者
       このオンラインマニュアルはスタンフォー ド 大 学 の  Dennis
       Morse 氏が寄付したものである。その後 Roland McGrath が改訂
       している。