というディレクトリを持つプロジェクトがあると仮定するとsrc
、次の手順に従って、autotools を使用してビルドおよびパッケージ化された Python 拡張機能を取得します。
Makefile.am ファイルを作成する
まず、プロジェクトのルートに 1 つの Makefile.am を作成する必要があります。基本的には (排他的ではありません)、処理する必要があるサブディレクトリをリストします。次のような結果になります。
SUBDIRS = src
ディレクトリ内の2番目のものは、src
実際にPython拡張機能をコンパイルするための指示を保持します。次のようになります。
myextdir = $(pkgpythondir)
myext_PYTHON = file1.py file2.py
pyexec_LTLIBRARIES = _myext.la
_myext_la_SOURCES = myext.cpp
_myext_la_CPPFLAGS = $(PYTHON_CFLAGS)
_myext_la_LDFLAGS = -module -avoid-version -export-symbols-regex initmyext
_myext_la_LIBADD = $(top_builddir)/lib/libhollow.la
EXTRA_DIST = myext.h
configure.ac を書きます
このファイルは、プロジェクトのルート ディレクトリに作成する必要があり、すべてのライブラリ、プログラム、またはコンパイラ、リンカー、ライブラリなど、プロジェクトをビルドする必要があるあらゆる種類のツールをリストする必要があります。
私のような怠惰な人は、通常、ゼロから作成することはしません。使用しているautoscan
ものを探してconfigure.scan
、実際のconfigure.ac
.
automake
Python のものが必要になることを知らせるには、これを に追加しますconfigure.ac
。
dnl python checks (you can change the required python version bellow)
AM_PATH_PYTHON(2.7.0)
PY_PREFIX=`$PYTHON -c 'import sys ; print sys.prefix'`
PYTHON_LIBS="-lpython$PYTHON_VERSION"
PYTHON_CFLAGS="-I$PY_PREFIX/include/python$PYTHON_VERSION"
AC_SUBST([PYTHON_LIBS])
AC_SUBST([PYTHON_CFLAGS])
要約
基本的に、automake
Python の処理方法を知っている組み込みの拡張機能があります。configure.ac
それをファイルに追加するだけで、この機能をMakefile.am
.
PyGtk は間違いなく素晴らしい例ですが、かなり大きいので、Guakeのような別のプロジェクトをチェックしたくなるかもしれません。