Previous: Java, Up: Other GNU Tools


9.5 Python

Automakeは,‘PYTHON’プライマリを用いることで,Pythonのコンパイル に対するサポートを提供します.

_PYTHON’変数でリストアップされているすべてのファイルは,インストー ル時にpy-compileでバイトコンパイルされます.py-compileは, 実際にはソースファイルの標準的なバージョン(.pyc)とバイトコンパ イルされたバージョン(.pyo)の両方を作成します.バイトコンパイル はインストール時に行なわれるので,‘noinst_PYTHON’にリストアップさ れているファイルはコンパイルされないことに注意してください.Pythonのソー スファイルは,デフォルトで配布物に含められます.

Automakeは,Pythonに関連するディレクトリ変数(以下を参照してください)を 決定するAM_PATH_PYTHONと呼ばれるAutoconfとともに出荷されていま す.configure.acAM_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 Installation Directory Variables).