[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

10. その他のGNUツール

Automakeは,GNUプログラムで使用する`Makefile.in'を生成することを 主目的にしているので,他のGNUツールとの相互作用を試みます.

10.1 Emacs Lisp  
10.2 Gettext  
10.3 Libtool  
10.4 Java  
10.5 Python  


10.1 Emacs Lisp

Automakeは,Emacs Lispに対するサポートも供給します.`LISP'プライ マリは`.el'ファイルのリストを保持するために使用されます.このプラ イマリに対して利用可能な接頭辞は`lisp_'と`noinst_'です. lisp_LISPが定義されている場合,`configure.ac'で AM_PATH_LISPDIRを実行する必要があります(see section 5.6 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ではそのファイルは常にインストールされます.


10.2 Gettext

AM_GNU_GETTEXTが`configure.ac'にある場合,Automakeは,国際 化のためのメッセージカタログシステム,GNU gettextに対するサポートを開 始します(see section `GNU Gettext' in GNU gettext utilities).

Automakeでのgettextサポートには,パッケージに`intl'と `po'の二つのサブディレクトリの追加が必要です.Automakeは,これら のディレクトリが存在してSUBDIRSに書かれていることを保証します.

Lispソースはデフォルトで配布されません.これらのファイルを配布すること を示すため,dist_lisp_LISPdist_noinst_LISPのように, LISPプライマリにdist_を前置することが可能です.


10.3 Libtool

Automakeは,`LTLIBRARIES'プライマリを用いることで,GNU Libtool(see section `Introduction' in The Libtool Manual)に対 するサポートを提供します.See section 8.3 共有ライブラリのビルド.


10.4 Java

Automakeは`JAVA'プライマリを用いることで,Javaコンパイルに対する 最低限のサポートも提供します.

`_JAVA'変数でリストアップされているすべての`.java'ファイルは, ビルド時にJAVACでコンパイルされます.デフォルトで, `.class' ファイルは配布物に含められません.

現在のAutomakeには,`_JAVA'プライマリを`Makefile.am'で一つだ けしか使用できないという制限があります.この制限の理由は,どの `.java'ファイルからどの`.class'ファイルが生成されるのかが通 常は分からないためです -- そのため,どこにどのファイルをインストールす るのか分かりません.例えば,`.java'ファイルで複数のクラスを定義す ることが可能です.結果として得られる`.class'ファイル名は, `.java'ファイルをパースしない限り特定不可能です.

Javaソースをコンパイルする時に使用される変数がいくつかあります.

JAVAC
Javaコンパイラの名前です.デフォルトは,`javac'です.

JAVACFLAGS
コンパイラに渡すフラグです.これは,ユーザ変数として考慮されます (see section 2.5 ユーザに対して予約されている変数).

AM_JAVACFLAGS
Javaコンパイラに渡す追加フラグです.JAVACFLAGSとは異なり, `Makefile.am'にJavaコンパイラフラグを書く必要があるとき,これを使 用すべきではありません.

JAVAROOT
この変数の値は,javacに渡す`-d'オプションです.デフォルト は,`$(top_builddir)'です.

CLASSPATH_ENV
この変数は,javacコマンドラインでCLASSPATH環境変数に設定 するために使用されるsh式です.(将来,クラスパスの設定を異なる方 法で扱うようにする予定です.)


10.5 Python

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 section `Installation Directory Variables' in The Autoconf Manual).


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on February, 25 2004 using texi2html