読者です 読者をやめる 読者になる 読者になる

Cygwin で Python 3.2 をビルドする

次のように普通にビルドしようとしても libpython3.2m.dll.a をビルドする make ターゲットがないと言われてビルド エラーになります.

% ./configure
% make

libpython3.2m.dll.a の "m" は ABI フラグと呼ばれるもので "m" は PyMalloc を有効にしているときに付与されます.
詳しくは PEP 3149 -- ABI version tagged .so files を見れば,たぶん載っているんじゃないかと思います.

PyMalloc を無効にしてビルドする.

PyMallco によって付与される ABI フラグが原因なので,次のように PyMalloc を無効にしてやればビルドができます.

% ./configure --without-pymalloc
% make

PyMalloc を有効にしてビルドする.

PyMallco を無効にすればビルドできるのですが,PyMalloc を有効にしてままビルドしたいのが人情というものです.
ということでパッチを作ってみました.

The patch for building Python-3.2.2 on cygwin environment. — Gist

Python-3.2.2 のソースにこのパッチを当てれば PyMalloc を有効にしたまま Cygwin でビルドができるはずです.