ダウンロード注意:ここでは、ファイルそのものにはリンクを張らず、それぞれの配布サイトに行って、入手するようになっています。これは、ここに書かれていることが最新情報である保証はないので、最新情報を確認した上で入手してほしいということと、古くなった記述があれば、kazhida@abplus.comに教えてほしいという2重の配慮です。 一応、リンクにはtargetを指定してあるので、ブラウザによっては別Windowで開くと思います。PRC-Tools本体とCygwinまずは、Palm Computing(R)デベロッパー ゾーンにいきましょう。ここが、オフィシャルな情報元になります。そこのクイックインデックスでSDKを選ぶと、なにやら英語のページに飛びます。英語だからといって恐れることはありません。プログラミングツールの紹介ですから、ざっと眺めておけばいいでしょう。
では、目的のPRC-Toolsを入手するために、development environmentという見出しのついたところにある、PRC-Toolsというリンクをクリックします。
prc-toolsは、Cygwin(Windows上で動作するgcc環境)に含まれるDLLを必要とします。また、開発時に使うユーティリティ類もCygwinに含まれています。 SDKsあと、ここで落としてくる必要があるのは、Updateもでているので、これも落としてきておいたほうがよいでしょう。 とりあえず、AGREEMENTが恐い場合は、suitably
modified version 1, 2, and 3.1だけでもいいでしょう。
ただ、3.5は3.1以前と比べて、かなり変更がある(補足参照)のでターゲットをどうするかを考えて決めたほうが良いです。 修正モジュール浮動小数点演算を行うPalmware(K-3みたいな電卓とか)を作る場合は、このページの最初の所に戻って、There is a bug involving floating point in this version of prc-tools: というところから、修正モジュール「float.zip」(リンクは、説明の中のWindowsの部分)も落としておきましょう。 ドキュメント次は、SDKのドキュメントです。SDK3.5の場合は、SDK本体と同じところから落とせるのでよいのですが、 suitably modified version 1, 2, and 3.1を使うには、別途、リファレンス・マニュアルが必要です。
といったものの、困ったことに、3.1以前のドキュメントが見当たりません。
しょうがないので、3comのftpサイトから入手します Examples上記でも、examples30.zipの入手にふれていますが、いつの間にやら、PalmOS3.5ベースのExamples(sdk35-exaples.zip)が入手可能になっています。SDK version 3.5と同じところにあるので、是非、入手しておきましょう。 てゆうか、ボクが公開しているソースでは、これを一部流用しているものがある(ライセンス的にはこのソースの配布はまずいようなので抜いてある)ので、これがないとmakeしなおせません。 リソースコンパイラ(pilrc)pilrcについては、前述のSDKのページからも落とせますが、メンテナのAaron Ardiriさんのページの方が新しいので、こちらをお勧めします。また、日本語用のパッチをPalm Gadgetryから入手できます。ボク自身はパッチ当てるのが面倒で素のままで使っていますが、このサイトではprc-toolsやpilrcの最新情報も紹介されていますので、要チェックです。 # いつもお世話になっております>Palm Gadgetry ## 最近では既に、日本語用のパッチは取り込まれているそうです。 PalmOSエミュレータ(POSE)POSEはMuchyさんのPalmware Review!経由で、落とすことをお勧めします。ここで、POSEの使用方法も説明されていますので、参考にしてください。インストールと、これで必要なものは手に入ったはずなので、インストールです。Cygwinまず、Cygwinを最初にインストールします。落としてきたファイルがインストーラになっていますので、そのまま実行すればインストールされます。
ところが、Cygwinは、インストールしただけでは、PATHの設定なんかをしてくれないので、しょうがないから自分でPATHを通します。
以上は、インストール時にスタートメニューに登録される「Cygwin B20」で実行されるcygnus.batの中で設定されますので、bashが嫌いでない方は、これを使えば悩むことはありません。
環境変数の設定の仕方は、Windows95/98とWindowsNTとWindows2000でそれぞれ異なるので、面倒なのでここではふれません。 SET MAKE_MODE=UNIX SET PATH=c:\cygnus\CYGWIN~1\H-I586~1\bin;%PATH%を実行すればよいでしょう。 PRC-ToolsPRC-Toolsもインストーラになっているので、落としてきたファイルを実行するだけですが、Cygwinと同様にパスを通してくれないので、C:\Program Files\PRC-Tools\H-i586-cygwin32\bin をPATHに追加します。 SDKsSDKについては、3.5用は展開したファイルにインストーラが含まれているので、それを実行すればよいのですが、1,2,3.1用については、自分で「C:\PalmDev」というフォルダを作って、展開したファイル/フォルダ郡をそこに移動またはコピーします。# 当然、C:\PalmDevに直接展開するのでもかまいません。
ターゲットが決まっている場合は、 pilrcpilrcは、適当なところに展開してパスを通すか、パスの通っているところにpilrc.exeをコピーしておくと良いでしょう。ボクの場合は、自作ユーティリティなどの置き場としてc:\usr\binにパスを通してあるので、そこにコピーしました。 POSEPOSEも適当なところに展開して、Emulator.exeを使用します。デスクトップにでもショートカットを作っておくと楽です。これで、一通りの環境がそろったので、どこぞからソースを持ってきてmakeしてみるも由、自作してみるもよし、拙作のソフトを自分でmakeしてただで使うもよしです。 修正モジュールところが、SDKのページに、
There is a bug involving floating point in this version of prc-tools: と、あるように、PRC-Tools2.0には、浮動小数点関連の不具合があります。 浮動小数点数と整数値の変換がうまく働かないというもので、例えば、 doucle v; int i = 1; v = i;としたときに、v = 0になってしまいます。 浮動小数点数を使う場合は、致命傷になってしまうので修正が必須です。 前述で落としてきた修正モジュール「float.zip」を展開すると、libgcc.aというファイルがありますので、 「C:\Program Files\PRC-Tools\H-i586-cygwin32\lib\ gcc-lib\m68k-palmos\2.95.2-kgpd」 (長いけど一行です) にあるlibgcc.aと取り替えます。
これで、安心してK-3もmakeしなおせますね。 補足prc-tools0.5.0(いわゆる昔のGCC for Pilot)とPRC-Tools2.0との違いや、SDK3.5とそれ以前のSDKと違いのため、昔のソースがそのままでは、メイクできない場合があります。そのあたりについてちょっと補足しておきます。m68k-palmos-coff-gccがないといわれる場合PRC-Tools2.0になってから、コンパイラの名前が、m68k-palmos-coff-gcc→m68k-palmos-gcc m68k-palmos-coff-obj-res→m68k-palmos-obj-res のように変更されています(-coffがなくなった)。 Makefileに、「CC=...」などの記述があったら修正しましょう。 parse error before `Word'などのエラーが出る場合SDK3.5では、(多分、将来の移植性などを考慮したため)、それ以前のSDKで使用していたWordやByte、ULongなどの型を、UInt16、UInt8、UInt32といったものに置き換えています。SDK3.5には、PalmCompatibility.hというヘッダファイルが含まれているので、それをincludeすることで、コンパイルは通るようになるはずですが、素直に3.1以前のSDKを用いる方が面倒が少ないと思います。 # PalmOS3.5では、表示周りの内部仕様がかなり変わっているので、 # それ関連の構造体とかの定義が微妙に違っていたりします。 pilrcでexpecting : Version Text, got 1というようなエラーが出る場合昔のpilrcでは、バージョン表記のリソースを記述する際に、VERSION 1 "1.0" のように、(多分リソースIDに相当する)数値とバージョンしめす文字列を指定していたのですが、いつの頃からかしらないのだけど最近のpilrcでは、 VERSION "1.0" のように、数値の部分が要らなくなっています。 # バージョンが複数あることはないってことで省かれたのかな? なので、(上記の例では)1 を取ってやれば、エラーがでなくなると思います。 |