[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Automakeは,GNUプログラムで使用する`Makefile.in'を生成することを 主目的にしているので,他のGNUツールとの相互作用を試みます.
9.1 Emacs Lisp | ||
9.2 Gettext | ||
9.3 Libtool | ||
9.4 Java | ||
9.5 Python |
Automakeは,Emacs Lispに対するサポートも供給します.`LISP'プライ
マリは`.el'ファイルのリストを保持するために使用されます.このプラ
イマリに対して利用可能な接頭辞は`lisp_'と`noinst_'です.
lisp_LISP
が定義されている場合,`configure.ac'で
AM_PATH_LISPDIR
を実行する必要があります(see section Automakeが提供するAutoconfマクロ).
AutomakeはすべてのEmacs LispソースファイルをAM_PATH_LISPDIR
で見
つかった場合はそのEmacsを使用してバイトコンパイルします.
バイトコンパイルされたEmacs Lispファイルは,すべてのEmacsのバージョン の間で移植性があるわけではないので,一種類以上のEmacsバージョンをイン ストールしているサイトがあることが予想される場合,これを止めることに意 味があります.さらに,実際にはバイトコンパイルの利点がないパッケージも 多くあります.しかし,我々はEmacs Lispソースをバイトコンパイルすること を推奨します.恐らく,他の全員がインストールしなくてすむことより,それ ぞれに対して対処するためにそれぞれ設定した方が良いでしょう.
バイトコンパイルを避ける方法は二つあります.歴史的に,我々は以下の内容 を推奨していました.
lisp_LISP = file1.el file2.el ELCFILES = |
ELCFILES
はAutomakeの内部変数で,通常はバイトコンパイルする必要
があるすべての`.elc'ファイルをリストアップしています.Automakeは
lisp_LISP
からELCFILES
を自動的に定義します.この変数を明
示的に空にしておくことで,バイトコンパイルを妨げます.
Automake 1.8からは,我々は代わりにlisp_DATA
を使用することを推奨
しています.以下のようにします.
lisp_DATA = file1.el file2.el |
これら二つの内容が等価ではないことに注意して下さい.Emacsがインストー
ルされていない場合,_LISP
ではそのファイルはインストールされませ
んが,_DATA
ではそのファイルは常にインストールされます.
AM_GNU_GETTEXT
が`configure.ac'にある場合,Automakeは,国際
化のためのメッセージカタログシステム,GNU gettextに対するサポートを開
始します(see (gettext)GNU Gettext section `GNU Gettext' in GNU gettext utilities).
Automakeでのgettext
サポートには,パッケージに`intl'と
`po'の二つのサブディレクトリの追加が必要です.Automakeは,これら
のディレクトリが存在してSUBDIRS
に書かれていることを保証します.
Lispソースはデフォルトで配布されません.これらのファイルを配布すること
を示すため,dist_lisp_LISP
やdist_noinst_LISP
のように,
LISP
プライマリにdist_
を前置することが可能です.
Automakeは,`LTLIBRARIES'プライマリを用いることで,GNU Libtool(see (libtool)Top section `Introduction' in The Libtool Manual)に対 するサポートを提供します.See section 共有ライブラリのビルド.
Automakeは`JAVA'プライマリを用いることで,Javaコンパイルに対する 最低限のサポートも提供します.
`_JAVA'変数でリストアップされているすべての`.java'ファイルは,
ビルド時にJAVAC
でコンパイルされます.デフォルトで,
`.class' ファイルは配布物に含められません.
現在のAutomakeには,`_JAVA'プライマリを`Makefile.am'で一つだ けしか使用できないという制限があります.この制限の理由は,どの `.java'ファイルからどの`.class'ファイルが生成されるのかが通 常は分からないためです - そのため,どこにどのファイルをインストールす るのか分かりません.例えば,`.java'ファイルで複数のクラスを定義す ることが可能です.結果として得られる`.class'ファイル名は, `.java'ファイルをパースしない限り特定不可能です.
Javaソースをコンパイルする時に使用される変数がいくつかあります.
JAVAC
Javaコンパイラの名前です.デフォルトは,`javac'です.
JAVACFLAGS
コンパイラに渡すフラグです.これは,ユーザ変数として考慮されます (see section ユーザに対して予約されている変数).
AM_JAVACFLAGS
Javaコンパイラに渡す追加フラグです.JAVACFLAGS
とは異なり,
`Makefile.am'にJavaコンパイラフラグを書く必要があるとき,これを使
用すべきではありません.
JAVAROOT
この変数の値は,javac
に渡す`-d'オプションです.デフォルト
は,`$(top_builddir)'です.
CLASSPATH_ENV
この変数は,javac
コマンドラインでCLASSPATH
環境変数に設定
するために使用されるsh
式です.(将来,クラスパスの設定を異なる方
法で扱うようにする予定です.)
Automakeは,`PYTHON'プライマリを用いることで,Pythonのコンパイル に対するサポートを提供します.
`_PYTHON'変数でリストアップされているすべてのファイルは,インストー
ル時にpy-compile
でバイトコンパイルされます.py-compile
は,
実際にはソースファイルの標準的なバージョン(`.pyc')とバイトコンパ
イルされたバージョン(`.pyo')の両方を作成します.バイトコンパイル
はインストール時に行なわれるので,`noinst_PYTHON'にリストアップさ
れているファイルはコンパイルされないことに注意してください.Pythonのソー
スファイルは,デフォルトで配布物に含められます.
Automakeは,Pythonに関連するディレクトリ変数(以下を参照してください)を
決定するAM_PATH_PYTHON
と呼ばれるAutoconfとともに出荷されていま
す.`configure.ac'でAM_PATH_PYTHON
が呼び出す場合,Pythonソー
スファイルをリストアップするために以下の変数を変数内に使用してもかまい
ません.`python_PYTHON',`pkgpython_PYTHON',
`pyexecdir_PYTHON',`pkgpyexecdir_PYTHON'はファイルをインス
トールしたい場所に依存します.
AM_PATH_PYTHON([VERSION], [ACTION-IF-FOUND],
[ACTION-IF-NOT-FOUND])
は三つのオプション引数を受け取ります.そ
れはPythonのインタプリタをシステムで探します.最初の引数が存在する場合,
それはパッケージが要求するPythonの最小バージョンです.
AM_PATH_PYTHON
は,VERSIONより古いPythonのインタプリタをス
キップします.インタプリタが見つかりVERSIONを満たしている場合,
ACTION-IF-FOUNDが実行されます.それ以外では
ACTION-IF-NOT-FOUNDが実行されます.
ACTION-IF-NOT-FOUNDが指定されていない場合,デフォルトはconfigure
の中止です.これは,Pythonがパッケージに対する必須条件のときは良いもの
です.このため,Python >= 2.2がパッケージに対してオプションの場
合,AM_PATH_PYTHON
を以下のように呼び出すことができます.
AM_PATH_PYTHON(2.2,, :) |
AM_PATH_PYTHON
は,configureで分かったPythonのインストール状況を
基に,いくつかの出力変数を生成します.
PYTHON
Pythonの実行形式の名前,または適切なインタプリタが見つからない場合は
:
です.
ACTION-IF-NOT-FOUNDが使用されていると仮定すると(それ以外では
Pythonが無い場合,`./configure'が中止されます),PYTHON
の値
は,以下のようにビルドに関連する部分を利用不可能にするため,条件設定で
使用することが可能です.
AM_PATH_PYTHON(,, :) AM_CONDITIONAL([HAVE_PYTHON], [test "$PYTHON" != :]) |
ACTION-IF-NOT-FOUNDが使用されている場合,それが実行されます.
PYTHON_VERSION
major.minor形式(例えば,`1.5')の,Pythonのバージョン
ナンバーです.これは,現在sys.version[:3]
の値です.
PYTHON_PREFIX
文字列${prefix}
です.この単語は,Pythonのsys.prefix
の
内容が必要となる将来の動作で使用されるかもしれませんが,一般的な同意事
項としてconfigure
からの値が常に使用されます.
PYTHON_EXEC_PREFIX
文字列${exec_prefix}
です.この単語は,Pythonの
sys.exec_prefix
の内容が必要となる将来の動作で使用されるかもしれ
ませんが,一般的な同意事項としてconfigure
からの値が常に使用され
ます.
PYTHON_PLATFORM
Pythonがオペレーティングシステムを記述するために使用する標準的な名前で,
sys.platform
で与えられます.この値は,Pythonの拡張をビルドする
時,必要となるときもあります.
pythondir
標準的にPythonがインストールされるツリーの,`site-packages'サブディ レクトリのディレクトリの名前です.
pkgpythondir
これは,パッケージの後で命名されるpythondir
以下のディレクトリで
す.すなわち,それは`$(pythondir)/$(PACKAGE)'です.それは便宜上提
供されます.
pyexecdir
これは,Pythonの拡張モジュール(共有ライブラリ)がインストールされるディ レクトリです.
pkgpyexecdir
これは,`$(pyexecdir)/$(PACKAGE)'として定義されている,便宜上の変 数です.
これらすべてのディレクトリ変数は,展開されていない${prefix}
ま
たは${exec_prefix}
のいずれかで開始される値になります.これは
`Makefile'でうまく動作しますが,これらの変数を`configure'で
使用することは難しくなります.これはGNUコーディング標準に従っているの
で,ユーザはmake prefix=/foo install
を実行することが可能です.
Autoconfのマニュアルには,このトピックの詳細が書かれたセクションがあり
ます(see (autoconf)Installation Directory Variables section `Installation Directory Variables' in The Autoconf Manual).
[ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Akihiro Sagawa on June, 8 2005 using texi2html 1.70.