w3m のクロスでの構築とインストール

(v1.00, Mar. 31, 2000)
Author: 神木一也

w3m というテキストブラウザがあります。 Lynx より小さく、テーブルがレンダリングできて重宝するのですが、 やや make が面倒なので以下に記します。

おおまかな手順

w3m が使っている garbage collector が arm linux に(そのままでは)対応していないということと、 GC, w3m ともに本体の make にあたってサプコマンドを make し実行できる必要がある、 つまりクロスコンパイルだけでは build できないという問題があります。 このため w3m の make and install は次のような手順をたどります。
  1. Psion5 用 gpm の make と install.
  2. arm 用 GC の make と install.
  3. i386 用 w3m に同包されている mktable の make.
  4. arm 用 w3m の make と install.
必要なファイルは以下の通り: パッチについてはこちら においてあります。

Psion5 用 gpm の make と install.

w3m でタッチパネルを使わない場合には関係ないのですが、 やはりあると楽しい :-) ので先にいれておきましょう。
% zcat gpm-1.17.8.tar.gz | tar -xv
% cd gpm-1.17.8
% zcat ../gpm-1.17.8-psion5-0.1.diff.gz | patch -p1
% CC=arm-linux-gcc ./configure
% make
必要なファイルは gpm, gpm.h, libgpm.so.1.17.3 のみっつ。
% su root
# cp gpm /flashcard/usr/local/sbin
# cp gpm.h /usr/local/arm-linux/include
# cp libgpm.so.1.17.3 /flashcard/usr/local/lib
# cp libgpm.so.1.17.3 /usr/local/arm-linux/lib
# pushd /usr/local/arm-linux/lib
# ln -sf libgpm.so.1.17.3 libgpm.so
# popd
# exit
%

ARM 用 GC の make と install.

w3m では Boehm - Demers - Weiser conservative Garbage Collector が使われています。w3m 0.1.6 に同包されているのは 5.0alpha3 ですが、 latest として 5.0alpha4 が出ています。どちらでもかまわないはずです。
% zcat gc5.0alpha4.tar.gz | tar -xv
% cd gc
% zcat ../gc5.0alpha4-armlinux.diff.gz | patch -p1
% make
できあがった libgc.so.0 を母艦(/usr/local/arm-linux/lib/) と Psion5 (/usr/local/lib/) の両方にインストールしておきます。
% su root
# mount /flashcard
# cp libgc.so.0 /flashcard/usr/local/lib/
# cp libgc.so.0 /usr/local/arm-linux/lib/
# mkdir /usr/local/include/gc
# cp gc.h gc_*.h /usr/local/include/gc
# cp gc.h gc_*.h /usr/local/arm-linux/include/
# pushd /usr/local/arm-linux/lib/
# ln -sf libgc.so.0 libgc.so
# popd
# exit
%

i386 用 w3m の make.

make 過程で作られる mktable が arm 用の w3m を make する時に必要になります。
% zcat w3m-0.1.6.tar.gz | tar -xv
% cd w3m/
% ./configure
% pushd gc
% make gc.a
% su root
# cp gc.a /usr/local/lib/libgc.a
# exit
% popd
% make

出来上がった mktable はどこかに避難させておきます。

% mv mktable ..
% make clean

ARM 用 w3m の make と install.

ようやく w3m の make 本番。まずは config から。
% zcat ../w3m-0.1.6-psion5-0.1.diff.gz | patch -p1
% rm -rf gc
% ./configure
./configure の要点は C-compiler をどうするか尋ねられた時に "arm-linux-gcc" と答えるところだけです。 また gc が正しくインストールされていれば、gc/ は必要ありません。
% emacs config.h
おそらく config.h 中の SYS_LIBRARIES の -lbsd は余計なので削ります。 ./configure は arm-linux-gcc を指定してあっても、i386 側の環境から libgc や libbsd を探し出してきてしまうようです。
- SYS_LIBRARIES = -lgpm  -lbsd -lncurses 
+ SYS_LIBRARIES = -lgpm  -lncurses 
mktable が arm 用バイナリで上書きされないように注意しながら、
% cp ../mktable .
% make
で w3m ができあがります。

デモ

w3m Demo, 640x240

もちろん gpm を動かしておけばペンも効きます。 なかなか便利。 gpm は以下のように動かしておきます。

# gpm -t psion5 -m /dev/touch_psion


[目次へ]