ncurses-4.2のクロスコンパイル(ruby用)
というわけで自前のrubyでcursesを使用できるようにすべくncurses-4.2のコンパイルに挑戦。
結果としてrubyでのcurses使用には成功したわけなんだけれども、後から考えたらザウルスからlibncurses.so.4.2持ってきてrubyコンパイル時に参照するようにすれば良かったのではないかと思ったり。。。
rubyのconfigure時のオプションは以前のものと同じで実行。OpenZaurus上で動かなかったのもstatic linkでなくて、libncurses.so.5を参照するようにすれば動くのかもしれない。
それとは別にできたファイルサイズがdipusさんの1.8.4-4と比べるとでかいんだよなぁ、何でだろ?
以下、ncurses-4.2のクロスコンパイル手順
ncurses-5.5のときは対してトラブルも無くコンパイルできたのだけれども、ncurses-4.2ではconfigure時にgccとarm-linux-gccの区別をしてくれなかったりと不親切でMakefileを編集する必要があった、もしかしたらconfigure時に付けるオプションで何とかなるのかもしれない。また下ので手順ではmake install時のterminfoの作成?でエラーになる、今回はライブラリができれば良かったのでこの辺は無視。
ソース入手
ここからncurses-4.2.tar.gzを持ってきて展開
configureのオプション
make install時にDESTDIRが使用できないのでprefixにはそれを見越した場所を指定する
LDFLAGS='-static-libgcc' \ CFLAGS='-Os -static-libgcc -mcpu=xscale -mtune=xscale' \ CC='arm-linux-gcc' \ AR='arm-linux-ar' \ LD='arm-linux-ld' \ RANLIB='arm-linux-ranlib' \ ./configure --prefix=/ipkg/ncurses-4.2/opt/QtPalmtop \ --host=arm-linux --target=arm-linux --build=i686-pc-linux-gnu \ --with-shared
各Makefile修正(メモより)
# change ncursec/Makefile # ---------- # HOSTCC = gcc # HOSTCCFLAGS = -O2 $(CPPFLAGS) # HOSTLDFLAGS = # # MK_SHARED_LIB = arm-linux-gcc ...... # ---------- # # change panel/Makefile # ---------- # MK_SHARED_LIB = arm-linux-gcc ...... # ---------- # # change menu/Makefile # ---------- # MK_SHARED_LIB = arm-linux-gcc ...... # ---------- # # change form/Makefile # ---------- # MK_SHARED_LIB = arm-linux-gcc ...... # ----------