Zaurus の GUIアプリケーションを作成するためには、GUI ツールキット Qt/Embedded と デスクトップ環境 Qtopia の開発環境を構築する必要があります。
1. Qtopia 1.5.0 (free版) の入手 [#faaf2f77]
Linux Zaurus で動いている Qtopia はバージョン 1.5.0 ですが、このバージョンはすでに旧バージョン扱いとなっているらしくTrolltech のウェブページから直接たどることができません。しかしながら、[[ftp://ftp.trolltech.com/qtopia/sdk/SuSE7.0/:ftp://ftp.trolltech.com/qtopia/sdk/SuSE7.0/]]には今でもアーカイブが置いてあります。以下の二つのファイルを入手してください。Qt/Embedded もこれらのファイルに含まれています。
- [[qtopia-free-1.5.0-1.i386.rpm:ftp://ftp.trolltech.com/qtopia/sdk/SuSE7.0/qtopia-free-1.5.0-1.i386.rpm]]
Linux/i386 用コンパイル済開発環境 - [[qtopia-free-1.5.0-1.src.rpm:ftp://ftp.trolltech.com/qtopia/sdk/SuSE7.0/qtopia-free-1.5.0-1.src.rpm]]
関連するソースアーカイブをまとめたもの。あとで使う。
2. インストール [#va250ae4]
qtopia-free-1.5.0-1.i386.rpm をインストールします。
# rpm2cpio qtopia-free-1.5.0-1.i386.rpm | cpio -id # find opt -type d | xargs chmod go+rx # mv opt/Qtopia /usr/local/zaurus
3. Qt 用ユーティリティのビルド [#p61d9edc]
Qt ツールキット用のユーティリティ (uic, moc, designer, qvfb) をFreeBSD または Mac OS X 用にビルドしなおして、/usr/local/zaurus/Qtopia/bin に上書きします。
まず qtopia-free-1.5.0-1.src.rpm を展開し、X11 版 Qt (2.3.2) のソースアーカイブをとりだします。
% rpm2cpio qtopia-free-1.5.0-1.src.rpm | cpio -id 55443 blocks % ls qt-embedded-2.3.3.tar.gz qtopia-free.spec qt-x11-2.3.2.tar.gz tmake-1.8.tar.gz qtopia-free-1.5.0.tar.gz tmake18.patch
ソースを展開し、以下の要領でコンパイルします。KDEなどを使っている場合 Qt3 と干渉する可能性があるので、make install などは行わず、実行ファイルだけを /usr/local/zaurus/Qtopia/bin にコピーします。configure で -static を指定しておくことがポイントです。また、コンパイル前に以下のパッチをあてておきます。
- [[patch-qt:http://www.startide.jp/qtopia/qtopia/patch-qt]]
# tar xzf qt-x11-2.3.2.tar.gz # cd qt-2.3.2 && env QTDIR=$PWD -no-opengl -no-xft -static # make && make -C tools/qvfb # install -c bin/uic bin/designer bin/moc tools/qvfb/qvfb /usr/local/zaurus/Qtopia/bin
なお、uic 等に Qt3 以降のものは使えません。必ず Qt2 用のものを用意してください。
Mac OS X の場合は configure スクリプトでプラットフォームを以下のように指定します。また、X11 のライブラリ、実行環境を必要とするので、あらかじめインストールしておきます。
# cd qt-2.3.2 && env QTDIR=$PWD -no-opengl -no-xft -static -platform macx-g++
4. 動作確認 [#pc02720d]
ここまでの作業を終えるとターゲット(実機)用のコンパイルができるようになります。
Qtopia の example をコンパイルしてみましょう。
% cp -r /usr/local/zaurus/Qtopia/example .; cd example % env TMAKEPATH=/usr/local/zaurus/Qtopia/tmake/lib/qws/linux-sharp-g++ /usr/local/zaurus/Qtopia/bin/tmake -o Makefile example.pro % env PATH=/usr/local/zaurus/Embedix/tools/bin:$PATH QTDIR=/usr/local/zaurus/Qtopia/sharp make