stoneをWM向けにコンパイル
PocketPuTTYに足りない機能と言えば…
HTTPプロキシ経由での接続。これさえあれば完璧なのに…
昔使ってたソフトを思い出す
stone。軽量かつ高機能なトンネリングソフト。
stoneがWMで使えないかと思い、自分でWM向けにコンパイルすることに。
コンパイル方法
実際に使える実行可能ファイルができたので、方法を公開しておきます。
ここでは、configureのprefixを/usr/local/winceとします。
まずは、鬼車をコンパイル
cegccのコマンド群はarm-cegccで始まるため、--host=arm-cegccとするべきですが、configureで蹴られるので、事前にシンボリックリンク等でcegccのコマンド群をarm-winceから始まるようにしておきます。
$ tar zxvf onig-5.9.1.tar.gz $ cd onig-5.9.1 $ ./configure --prefix=/usr/local/wince --host=arm-wince $ make # make install # ln -s /usr/local/wince/include/onigposix.h /usr/local/wince/include/regex.h
stoneのコンパイル
stoneは移植性が重視されてるため、互換のためのマクロがいくつか存在します。
一部のマクロはcegccでコンパイルできなくする原因を作っているため、無効にします。
$ tar zxvf stone-2.3e.tar.gz $ cd stone-2.3d-2.3.2.7
として解凍した後、stone.cを以下のように書き換えます。
#undef EINTR #define EINTR WSAEINTR #define NO_BCOPY #define bzero(b,n) memset(b,0,n) #define usleep(usec) Sleep(usec)
↓
#undef EINTR #define EINTR WSAEINTR //#define NO_BCOPY #define bzero(b,n) memset(b,0,n) #define usleep(usec) Sleep(usec)
書き換えたら、cegccでコンパイルします。
$ arm-cegcc-gcc -DWINDOWS -o stone.exe stone.c -I/usr/local/wince/include -L/usr/local/wince/lib -lws2 -lonig -O2