モバイル68で行こう!     つれづれの6(不定期掲載) 編集部:あいはら
<インターミッション>  ん〜、第5回は、ほとんどEX68の事が書いてなかったような気がするが、よう やく戻って来たしバリバリ使うかの。まあ、実際のところ、ウチのメビウス子ちゃ んも、一般的なWindowsユーザーのごとく、リサーチ的な使い方が最近は多いの でだいぶWindows98の操作にも慣れてしまったが、やはり痒いところに手が届か ないなあ。メールなんかは、ネットワークに常につながっているため、便利になっ た感があるのだが(それはWindowsのせいじゃないし)、遅いMacよりはマシ、と いったレベル。アウトルック(2000ね)もスケジューラとしてはやっぱり「全然 使えねえ」ソフトだし。一般的なビジネスマン向けのソフトというのは、どうし てこう画一的なのか。進捗やコメントや詳細項目の扱い方が、私の仕事の仕方に まるで向かない作りになっている。スケジューラみたいなソフトは、結局自分で 書かないとどうにもならないようだ。閑話休題。 <Cの環境>  さて、そんなわけで今回はコンパイルである。いや和議申請したアレではなく て、開発環境としてEX68はどこまで使えるのか、というあたりを攻めてみよう。  念のためプログラミングに疎い人もいるだろうから書くが(Cでプログラムを 作った事のある人は読み飛ばして結構)、X68k でCコンパイラというと、GCC (GNUのCコンパイラのX68k移植版で、いろいろなバージョンがあるが、ここでは 真里子版)が、デフォルトというかデファクトスタンダードだ。  んでもって、Cコンパイラは、ウラでアセンブラやリンカを実行して、最終的 な実行ファイルを作るわけだが、このなかでも、アセンブラは、フリーソフトの HAS(ハイスピードアセンブラ)、リンカもフリーソフトのHLK(SILK)(ハイスピ ードリンカ)を使うのが普通だ。C言語ではライブラリが必要なのだが(printf を実行するにも、標準関数やDOSコールを呼び出したりするにも必要だね)これ も、libcというイチからユーザーが書き起こしたライブラリが存在する。  それから、make。榎本さんの「さ・C・す・せ・そ」でも、makeに関して書い た回があって、色々と印象深いのだが、ソースやオブジェクトを管理して、コン パイルが必要なものだけをmakefileの書式に従って検出してコンパイルしてくれ たりするツールだ。シャープのXCに添付されているものの他に、やっぱりGNUの makeがある(もともとUNIX出自のツールだし)。  私の環境では、オールXCの環境と、GCC+libcの環境を念のため使い分けられる ようにしてあるが、通常起動した時には、GCC+libcになっている(これは、別に 推奨するわけでもないのだが)。自分の環境の実機は060turboだが、060拡張は ほとんどされていなかったりするのが幸いか(?)現在の環境をそのままもって いくだけで、EX68用の開発環境が揃う、ハズだった…。  基本的には現在入手が可能なGCC+libcのハナシなのだが、ただ、makeに関して は、XCに標準添付されたmakeを常用していた。まあ、これといって理由があるわ けではなく、強いていえば、そんな大げさなメイクファイルを書くわけでもなく、 最低限のコンパイルとリコンパイル時のエディタの設定しかしないので、あえて GNUのmakeを使っていなかっただけ、なのだが。  ダラダラ書いたが、要するに、「これらのひとつひとつがすべて動かないと、 Cによるプログラミングはできない」わけなのである。 <はたしてできるんか、できないんか>  で、結論からいって、シャープ製のmake(ここでは、92-02-11版)は、使えな いようだ。一応、ファイルの依存関係は解析できるのだが、コンパイラを呼び出 す途中でファイルが見つからない、という内部的なエラーを吐いて止まってしま う。これは、いろいろと設定を見直したが全然ダメだった。  実は、自分の通常使っている環境が動かないという辺りが、なかなか解決しな かったことも、前回休載した要因でもあったのだが、なんのことはない、GNUの makeを導入したら、あっさりコンパイルされてしまったので、なんか拍子抜けし てしまった。makeのバグというよりは、シャープのmakeがEX68で実装されていな いサービスを呼んでいただけかもしれない。  ということで、コンパイル環境は、ほぼ問題なくMC68000搭載の実機と同様の ものが構築できる事がわかった。  では、これらEX68で使えるツールをチャッチャと揃えるには…。 GCCと、GNU MAKE、libcは、激電3号 HAS060が電脳倶楽部140、満開ネットなど HLKは、別冊6号(別冊保存版など) をご購入いただくのが、比較的簡単。周りにユーザーがいれば、その人の環境か ら再配布してもらうのがいいんだけどね。そもそも開発者が現在配布していない ケースもあるので。  さて、これらのCコンパイラ環境をWindowsマシンに持ってくる際に若干問題 になるのが、libcでは8文字以上のノードを持つソースファイル名がある事だが (このあたりはWindowsとのファイルシステムの違いによる)、とりあえず、ラ イブラリのソースを書き替えたり参照したりする事はそんなにないと思われるの で、ここでは放っておく。ま、ライブラリを再コンパイルするような御仁には、 この解説も必要なかろう。  で、総計で約10Mバイトくらいの空きディスク容量があれば、ひと通りインス トールはできるので、私の環境では、32Mバイトスマートメディアを1回移動 するだけでインストール完了した。実際には動作テストのため、引っ切りなしに、 PCカードを抜き差ししていたのだが。  開発環境のセットアップについて、イチから正確に説明するのは非常に面倒な のでサワりだけ。個々の環境やUNIX志向か、などによっても違うのだが、簡単な のは、GCCのディレクトリをつくって、上記の開発ツールをすべて展開しておき、 そのディレクトリにパスを通し、ライブラリファイルとヘッダファイルに関して はその下にLIB,INCLUDEディレクトリを作ってまるごと放り込み、環境変数lib、 includeで、そのディレクトリ名を指定して、後は、コンパイルオプションなど の環境変数を、ドキュメントにしたがって書き足して再起動。環境変数は、TEMP、 GCC_LIB、GCC_LINK、GCC_AS、GCC_NO_XCLIB、GCC_OPTION、MARIKO、真里子、満 里奈などを指定したりするが、使わなくてもいいものもあるので、詳細説明は省 く。まあ、TEMPに関しては、どこかRAMディスクを作成して指定した方がいいだ ろう。その他は、実際インストールで壁にぶち当たってから理解しても遅くない。 <コンパイル速度は…>  さて、EX68における、コンパイルの快適度はどうだろうか。私の実機の環境は、 060turboだが、SCSIはノーマル(X68030の内蔵SCSI)で、ハードディスクも、ま だまだ良い値段がした頃の1GバイトHDDだ(そろそろ寿命、というハナシもある)。 これらを比較すると、ハードディスクのシーク速度の遅さが要因となって、060 turboとEX68(PentiumII 300MHz)では、ほとんど差が出ない、という結果になっ てしまった。つまり、ディスクアクセスが速い分、EX68でコンパイルしても全体 の速度は変わらない、という事になってしまった。あくまで体感速度の域でのハ ナシだが。  まあ、人それぞれの環境によって違うので一概にはいえないのだが、それでも そこそこの実用性がある、というのは強みだろう。  ゲームをしたり、テキストを書いたりといった基本的な事以外で、つまりX68k のキモともいえるプログラム制作にも「結構使える」というのが今回わかった点 だが、特に野外でのプログラミングなんて、結構いいアイデアが出る、ような気 がするのは、気のせいかもしれないが、一度は経験してみる価値はあるだろう。 <デバッガを忘れていたぞ>  デバッガは、私のところでは、シャープのDBと、SCD(ソースコードデバッガ) を使っている。これも、GDBというGNUのデバッガがあるのだが、私は使っていな い。デバッガに関しては、軟弱者の私としては、XC2.1以降のソースコードデバッ ガが割と性に合っているので、これを使っている。これも、もちろんEX68でも 動作するので、ほぼMC68000の開発環境としては問題がなくなった。さて、ナニ を作ろうか。 (EOF)