make(1)
コンパイル等の処理を自動的に行う
構文
make [オプション] [ターゲット]
オプション
-B, --always-make | 無条件ですべてのターゲットを実行する |
-C DIR, --directory=DIR | Makefileを読み込む前に指定したディレクトリDIRに移動する |
-d | デバッグ情報を出力する |
--debug[=FLAGS] | FLAGSで指定したデバッグ情報を出力する(a:すべてのデバッグ情報、b:基本的なデバッグ情報、v:より詳細な基本的デバッグ情報、j:実行したコマンドの詳細) |
-e, --environment-overrides | Makefileの変数よりも優先させる環境変数を指定する |
-f FILE, --file=FILE, --makefile=FILE | MakefileとしてファイルFILEを利用する |
-i, --ignore-errors | 実行したコマンドのエラーをすべて無視する |
-I DIR, --include-dir=DIR | Makefileを検索するディレクトリDIRを指定する(デフォルトはカレントディレクトリ) |
-j [JOBS], --jobs[=JOBS] | 同時に実行可能なコマンド数JOBSを指定する(JOBSを指定しなかった場合は制限なしとする) |
-k, --keep-going | エラーが発生してもできるだけ処理を継続させる |
-n, --just-print, --dry-run, --recon | 実際には処理をせず実行されるコマンドのみ表示する |
-o FILE, --old-file=FILE | 指定したファイルFILEが依存先ファイルより古くても処理を実行せず、そのファイルが更新された場合も実行しないようにする |
-p, --print-data-base | Makefileの読み込み後に規則と変数値を表示する |
-q, --question | 何も実行せず、指定されたターゲットがすでに最新なら終了ステータス0を、そうでなければ0以外を返す |
-r, --no-builtin-rules | 組み込みのルールを使用しない |
-R, --no-builtin-variables | 組み込み変数を定義しない |
-s, --silent, --quiet | サイレントモードで実行する(コマンド出力をしない) |
-t, --touch | 実際には処理を実行せずファイルのタイムスタンプのみを更新する |
-v, --version | バージョン等を表示する |
-w, --print-directory | 処理の実行前後に作業ディレクトリを表示する |
--no-print-directory | 処理の実行前後に作業ディレクトリを一切表示しない |
-W FILE, --what-if=FILE, --new-file=FILE | ファイルFILEが更新されたばかりのものとして扱う |
代表的なターゲット
all | ビルドを実行する(デフォルト) |
install | ビルドしたソフトウェアをインストールする |
clean | 不要なファイルを削除する |
説明
ソースからプログラムをコンパイルする、インストールする、といった処理を自動的に行う。プログラムのコンパイルに限らず、あるファイルを書き換えたら、そのファイルに関連する別のファイルを更新する、といった用途全般に利用できる。処理はMakefile(またはmakefile、GNUmakefile)に記述されたコマンドにしたがって実行される。Makefile内の処理はターゲット単位で区分されている。ターゲットを指定して実行すると、そのターゲットに記述されたコマンドのみが実行される。ターゲットを指定しないで実行すると、通常はビルド処理(コンパイルとリンク)が行われる。
使用例
ソースからプログラムをビルドする。
$ make
ビルドしたプログラムをインストールする。
# make install
関連事項
configure