出典(authority):フリー百科事典『ウィキペディア(Wikipedia)』「2017/04/13 09:01:30」(JST)
Autotoolsとは、主にUnix系オペレーティングシステム (OS) においてソフトウェアパッケージ開発を行うための、ツール及びフレームワークの一種である。このツールを使用することにより、多種多様なUNIX互換環境にパッケージを対応させることが容易になる。 Autotoolsは主に autoconf/automake/libtools の3つから成り立っている。
Autotoolsを用いて作成されたパッケージは容易に導入が可能である。典型的な場合、インストールまでの全工程が自動化されており、ソースコードを展開した後、以下のコマンドを入力するだけで全てが完了する。
./configure && make && make install
多くのUNIX用オープンソースソフトウェアで、この方式が採用されている。
利用者の環境はさまざまであるがほとんどの場合、必要な設定はパッケージに同梱のプログラムconfigureを実行するだけで終了する。configureは環境を検査しソースコードの修正を行う。
configure(実はシェルスクリプトである)及び付属のスクリプト・Makefileなどは標準的なUNIXコマンドだけを使用しており、パッケージの利用者は、パッケージそのものの構築・運用に必要なソフトウェアを除いて、Autotoolsの為に特別なソフトウェアを導入する必要はない(Windows系OSではUNIXコマンドが標準で含まれていない為、別途Services for UNIXやCygwinなどのUNIX互換環境のインストールが必要である)。
また、自動的な環境検査が好ましくなかったり特別な設定が必要な場合、環境変数またはコマンド引数でconfigureの動作を調整できる。代表的なオプションを以下に説明する。
これ以外にも多くのオプションがあり、少ないパッケージでも10以上、多いパッケージでは数十から100以上の設定項目がある。利用者の設定に矛盾があったり、環境の機能に不足があれば診断情報を出力する。また、クロスコンパイル対応や、構築用の作業ディレクトリをソースコードと異なるディレクトリに設定する機能がある。
autoconfは上で説明したconfigureを生成するためのプログラムである。
autoconfはDavid Mackenzieがフリーソフトウェア財団での仕事で使うために、1991年の夏から開発を開始した。その後、様々な人に改良を加えられ、オープンソースのコミュニティでは最もよく使われるツールの1つとなった。
autoconfはPerlで使われるMetaconfigに似ている。かつて(X11R6.9 まで)X Window Systemで使われていたimakeにも密接に関連するが、設計思想が異なる。
autoconfは移植性の評価をバージョンではなく機能ベースで行う。例えばSunOS 4のCコンパイラはISO Cをサポートしていない。しかし、ユーザはISO C互換のコンパイラをインストールすることもできる。バージョンのみからでは、ISO Cコンパイラの存在は検出できないが、機能ベースの手法ではユーザがインストールしたISO Cコンパイラを発見できる。他にも、次のような利点がある。
m4言語のマクロとシェルスクリプトの断片で記述された入力ファイルconfigure.ac(古いバージョンではconfigure.in)を、autoconfがm4を用いて置換しconfigureを得る。 最終出力configureはBourne Shell用のシェルスクリプトで、数百行から数千行の長さがある。
以下に、簡単なconfigure.acの例を示す。
AC_INIT(hello, 1.9, address) # 必須設定 AC_CONFIG_SRCDIR([hello.c]) # このパッケージではhogeを使用可能である configureに--with-hogeが追加される。 #(実際には、この後に利用者が--with-hoge=yesとした場合の動作定義を記述する必要がある) AC_ARG_WITH(hoge, [Use hoge]) AC_PROG_CC # Cコンパイラの設定 configureが環境変数CCを使用する AC_OUTPUT([Makefile]) # Makefile.inを雛形にしてMakefileを生成
出力のconfigureは非常に長いので掲載しない。この場合、一般的なオプションはサポートされる。利用者の要求に応じてhogeを利用するがどうかを決定する。また、Cコンパイラを探し実行方法を確認し、その結果得られたコマンド名・必要オプションなどをMakefileに出力する。
GNU Makefile標準に準拠したMakefileを簡単に作成できる。Makefile.amと呼ばれるファイルに、プログラムとソースコードの関係などを記述すると、Makefile.inを出力する。configureがMakefile.inに環境固有の設定を追加することで、構築用のMakefileとなる。
HelloWorldプログラムで例を示す
#Makefile.am #実行バイナリファイルの名前はhello bin_PROGRAMS = hello #helloのソースコードはhello.c,hello.h hello_SOURCES = hello.c hello.h
出力のMakefile.inは非常に長いので掲載しないが、期待した内容が得られる。 すなわち、configureを実行することでMakefileが生成される。このMakefileを用いてmakeコマンドを使用すると、hello.cをCコンパイラでコンパイルし、次いで標準ライブラリとリンクし、helloの実行ファイルが得られる。make installでは、helloはあるべき場所(ほとんどの場合は/usr/local/bin)にインストールされることになる。
ポータル FLOSS |
『GNU Autoconf/Automake/Libtool』 Gary V. Vaughan, Ben Elliston, Tom Tromey, Ian Lance Taylor著 でびあんぐる監訳 ISBN 4-274-06411-5
|
この項目は、コンピュータに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています(PJ:コンピュータ/P:コンピュータ)。 |
Look up configure or configuration in Wiktionary, the free dictionary. |
Configuration may refer to:
In computing:
In physics:
Other uses:
This disambiguation page lists articles associated with the title Configuration. If an internal link led you here, you may wish to change the link to point directly to the intended article. |
全文を閲覧するには購読必要です。 To read the full text you will need to subscribe.
リンク元 | 「form」「formation」「形成」 |
.