make (UNIX) make (UNIX)の概要

make (UNIX)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/02 14:41 UTC 版)

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

機能

複雑に関連し合ったファイルの依存関係を解決するのが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には互換性のない亜種が存在する。同様のツールとしてrakeRuby用)、setup(Python用)がある。

makeの実装

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

関連項目

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

外部リンク


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


「make (UNIX)」の続きの解説一覧



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「make (UNIX)」の関連用語

make (UNIX)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



make (UNIX)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのmake (UNIX) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS