今時の WebOSではなく、3.5用アプリの開発。
iOSや Androidが動くデバイスを持っていればそちらでもいいのだけど、あいにくなので手持ちの初代 CLIEをターゲットに。
調べてみると 2000年 7月の発売となっているので文字通りの十年選手だけど現役。
が、新規にソフトの開発を試みるといろいろと障壁が。
Web上のドキュメントは割と残っているのだけど、Palm社があれなもんで SDKに代表される各種リソースが軒並み全滅。
というわけで、手元のアーカイブを漁ったりネットを徘徊して揃える。
以下、~/palmdev/にソースや SDKを展開し、~/local/palm/にビルドに必要なバイナリ類をインストール。
SDKを展開
~/palmdev$ tar zxf sdk35.tar.gz ~/palmdev$ ln -s "Palm OS 3.5 Support" sdk-3.5
同梱の BUILDING.htmlを参照して prc-toolsをビルド。
# ツールの展開とパッチ当て
~/palmdev/$ mkdir prc-tools ~/palmdev/$ cd prc-tools ~/palmdev/prc-tools$ tar zxf ../prc-tools-2.3.tar.gz ~/palmdev/prc-tools$ tar zxf ../binutils-2.14.tar.gz ~/palmdev/prc-tools$ tar zxf ../gdb-5.3.tar.gz ~/palmdev/prc-tools$ tar zxf ../gcc-2.95.3.tar.gz ~/palmdev/prc-tools$ tar zxf ../gcc-3.3.1.tar.gz ~/palmdev/prc-tools$ ln -s prc-tools-2.3 prc-tools-srcdir ~/palmdev/prc-tools$ cat prc-tools-srcdir/*.palmos.diff | patch -p0 ~/palmdev/prc-tools$ cat palmdev_binutils-2.14.diff palmdev_gdb-5.3.diff | patch -p0 ~/palmdev/prc-tools$ cd prc-tools-srcdir ~/palmdev/prc-tools-srcdir$ ln -s ../binutils-2.14 binutils ~/palmdev/prc-tools-srcdir$ ln -s ../gdb-5.3 gdb ~/palmdev/prc-tools-srcdir$ ln -s ../gcc-2.95.3 gcc295 ~/palmdev/prc-tools-srcdir$ ln -s ../gcc-3.3.1 gcc ~/palmdev/prc-tools-srcdir$ cd .. ~/palmdev/prc-tools$ mkdir build ~/palmdev/prc-tools$ cd build ~/palmdev/prc-tools/build$ mkdir empty ~/palmdev/prc-tools/build$ ../prc-tools-srcdir/configure \ --target=m68k-palmos \ --enable-languages=c,c++ \ --with-headers=`pwd`/empty \ --prefix=${HOME}/local/palm \ --with-palmdev-prefix=${HOME}/palmdev/ ~/palmdev/prc-toolsbuild$ make ~/palmdev/prc-toolsbuild$ make install ~/palmdev/prc-toolsbuild$ cd ../.. ~/palmdev$ rm -rf prc-tools
binutilsと gdbのビルドでエラーが出るので palmdev_gdb-5.3.diffと palmdev_binutils-2.14.diffを作成。
binutils-2.14/include/libiberty.hに対するパッチはシステムが古いと不要かな。
リソースコンパイラである PilRCをビルド
~/palmdev$ tar zxvf pilrc-3.2.tar.gz ~/palmdev$ cd pilrc-3.2/unix/ ~/palmdev/pilrc-3.2/unix$ ./configure ~/palmdev/pilrc-3.2/unix$ make ~/palmdev/pilrc-3.2/unix$ cp pilrc ${HOME}/local/palm/bin/
最後にデフォルトの SDK等を設定する。
~$ ~/local/palm/bin/palmdev-prep Checking SDKs in ${HOME}/palmdev/ sdk-3.5 headers in 'Incs', libraries in 'GCC Libraries' When GCC is given no -palmos options, SDK '3.5' will be used by default Writing SDK details to configuration files... ...done
PilRCの windows版バイナリに含まれる pilrctst.prcを makeして実行できたので。
最低限の開発環境は用意できた。
あとはアプリケーションの開発をぼちぼち。
# しっかし、gccのクロスコンパイル環境をフルビルドしても数分しかかからないのはいいな。
# 昔だったらそれこそお茶の時間だったのに。