hakeの日記

Windows環境でプログラミングの勉強をしています。

pythonのコンパイル

昨日買った本に影響されて、PyJUGのサイトを覗いたらバージョン2.5リリースの記事が。どうせインストールするなら新しい方が良いということでコンパイルに挑戦。最初はDebianな環境でクロスコンパイルを試したのですが、なんとかconfigureを通してpythonとlibpythonができたところでエラー、メッセージの内容からすると生成したpythonを次のステップで使用するっぽい。当然ARMなバイナリじゃi386で動くわけもなく、セルフコンパイルに切り替え。こっちは時間がかかりましたがconfigure時のprefix指定だけで後は何も指定せず、無事?終了しました。もっともmake testがメモリ不足で落ちたので本当に問題が無いかは不明です。テスト関係のディレクトリを削除してパッケージにしたところ9.4MB程に、でかいなぁ。ちなみに使用したコンパイラは幾霜さんトコのzgcc34です。
とりあえず対話モードでは動作している模様。


以下はクロスコンパイル挑戦時のメモ、何かの役に立つかもしれないので

# change configure
#
#   echo "$as_me:$LINENO: checking for %zd printf() format support" >&5
#   echo $ECHO_N "checking for %zd printf() format support... $ECHO_C" >&6
#   if test "$cross_compiling" = yes; then
#                                yes -> no
#
#
# congigure
#
LDFLAGS='-static-libgcc' \
EXTRACFLAGS='-Os -static-libgcc -mcpu=xscale -mtune=xscale' \
CC='arm-linux-gcc' \
CXX='arm-linux-g++' \
AR='arm-linux-ar' \
./configure --prefix=/opt/QtPalmtop \
--host=arm-linux --target=arm-linux --build=i686-pc-linux-gnu \
ac_cv_file__dev_ptmx=yes \
ac_cv_file__dev_ptc=no \
--enable-shared \
--disable-ipv6 \
--with-curses-dir=/home/zaurus/ipkg/ncurses-4.2/opt/QtPalmtop \
--with-readline-dir=/home/zaurus/ipkg/readline-5.1/opt/QtPalmtop

#
#
# change Makefile
#
# CXX=            arm-linux-c++
# AR=             arm-linux-ar
# OPT=            -DNDEBUG -g -Os -Wall -Wstrict-prototypes -static-libgcc -mcpu=xscale -mtune=xscale
# CPPFLAGS=       -I. -I$(srcdir)/Include -static-libgcc -mcpu=xscale -mtune=xscale
#
# CCSHARED=       -fPIC -static-libgcc
# LINKFORSHARED=  -Xlinker -export-dynamic -static-libgcc
#
# LDSHARED=       $(CC) -shared -static-libgcc
# BLDSHARED=      $(CC) -shared -static-libgcc
#
#
# make
# make DESTDIR=/home/zaurus/ipkg/python-2.5 install