Make (UNIX)

make
作者 スチュアート・フェルドマン(英語版)
開発元 ベル研究所
初版 1977年
プログラミング
言語
C言語
対応OS UNIX系
種別 ビルド・ツール
テンプレートを表示

makeメイクは、プログラムのビルド作業を自動化するツール。コンパイルリンクインストール等のルールを記述したテキストファイル (makefile) に従って、これらの作業を自動的に行う。

機能

複雑に関連し合ったファイルの依存関係を解決するのがmakeの長所である。例えば、A というファイルを処理して B というファイルを生成するとき、makeはそれぞれのファイルの更新時刻(タイムスタンプ)を参照し、A が B よりも新しいときには作業を行うが、B が A より新しければ作業は不要と見なして何もしない。ファイル数が増え、依存関係が複雑になっても、makeはmakefileの記述を頼りに必要最低限の作業だけを自動で行う。Autotoolsという別のツールを使う事でmakefileの自動生成が可能である。

UNIXソフトウェアは、ソースコードの形で配布されることがある。そのビルド作業にはほぼ必須のツールといえる(ごくまれにmakeを使わないソフトウェアも存在する)。

なお、makeはプログラムコードのビルド以外の用途にも使用可能である。例えば、LaTeXのソースファイルからDVI形式のファイルを生成する作業などにも使用することができる。バッチ処理の簡略化にも使うこともできる。

歴史

元々は1976年4月にベル研究所スチュアート・フェルドマン(英語版)によって作成された。フェルドマンは、変更されたが実行ファイルが誤って更新されていないプログラムを無駄にデバッグしている同僚の経験から、makeを書くことをひらめいた。

互換性

Linux Standard Baseでも指定コマンドになっている[※ 1]。最近ではCMakeを使う場合がある。

makeには互換性のない亜種が存在する。同様のツールとしてrake(Ruby用)、setup(Python用)がある。

makeの実装

  • GNU make - GNUプロジェクトによる実装。コマンド名 gmake
  • Schily make - ポータブルで拡張可能なmake。
  • BSD make - BSDの実装。
  • Microsoft Program Maintenance Utility (make, nmake) - マイクロソフトの実装。makeは極めて初期の処理系にのみ付属。
  • PMake - FreeBSDの実装。コマンド名 pmake[※ 2]

注釈

  1. ^ LSB Specifications "Linux Standard Base"
  2. ^ “PMake -- A Tutorial”. freebsd.org. 2020年12月11日閲覧。

関連項目

  • Apache Maven - Java用のプロジェクト管理ツール
  • Apache Ant - Java用のmake
  • SCons - makeの代替ユーティリティ
  • Ninja - makeの代替ユーティリティ
  • CMake - クロスプラットフォームでオープンソースなビルドシステム
  • Meson - クロスプラットフォームでオープンソースなビルドシステム
  • NAnt - .NET Frameworkで使用できるオープンソースのビルドシステム
  • MSBuild - .NET Frameworkで構築されたマイクロソフト標準のビルドシステム

外部リンク

  • GNU make
  • Makepp Home Page
  • GNU Make 日本語マニュアル(Coop編)
  • 表示
  • 編集
Unixコマンド
ファイルとファイルシステム管理
プロセス管理
ユーザ管理/環境
テキスト処理
シェルビルトイン
通信
検索
  • find
  • grep
  • locate(英語版)
  • whatis(英語版)
  • whereis(英語版)
マニュアル
  • apropos(英語版)
  • help(英語版)
  • man
ソフトウェア開発
その他
  • bc
  • dc
  • cal
  • date
  • expr
  • false
  • lp(英語版)
  • lpr
  • od
  • sl
  • sleep
  • stty
  • true
  • tty
典拠管理データベース ウィキデータを編集
全般
  • VIAF
国立図書館
  • ドイツ
  • イスラエル
  • アメリカ