Eclipseでビルドしてみる


Eclipse…もはや聞いたことがない という方はそういないであろう、オープンソースIDEの雄である…らしい

実は殆んど名前だけしか知らなかったのだ。ダウンロードして初めて走らせてみたの は、ほんの3日前のこと。それも、やっとPCがOver 1GHzのクロックを手に入れ た記念事業の一環のような気持ちで始めたことだ。(流石に従来のCyrix 6x86MX-PR166では、Eclipseを入れようとは思い立たなかっただろう。元よりHDDに空 きが無くて、インストールすら出来なかったが)

なので、まだその真の実力を知ったとはとても言えない。

それでも、今までIDEなんてものは避けて通ってきた筆者が、 「CVSからのソース取得から、サンプルのビルドまでをシームレスに実行出来る 環境」に受けた印象は、世間の評判を裏打ちするものだった。

EclipseとHOS開発を結びつけることに興味を持った方々を読者と想定して、筆 者が実際に試みた導入の過程をここに記す。 その道の達者から見ればかなり酷いことをやってしまっているかもしれないが、 何か役に立つことが僅かでも含まれていれば幸いである。

日本語のEclipseに関する情報は、こちらのページに良くまとめられており、非常に参考になった。インストールや日本語 化などの一連の事柄は、そのままここからの受け売りである。

関係者の方々の努力に感謝と尊敬の意を表します。

2003.09.21 記 新井
2003.09.23 更改


Eclipseの前に準備するもの

Eclipseをインストールする前に、gcc/make等の環境を整えておかねばならな い。Eclipse自体は素のままならJAVA開発環境であって、一般的なCの統合開発環境と 違い、Cコンパイラ等を含んだものではないのだ。

ここで言うコンパイラとは、Windows上で動作するコンフィグレータを ビルドするためのコンパイラと、ターゲットシステム用のオブジェクトを吐き 出すクロスコンパイラの二つである。

また、makeも忘れてはならない。 詳しくは省くが、EclipseをC/C++のIDEとするプラグイン CDTは、makeを実行 することによりビルドを行なうのだ。

そこで用意するのは、やはりMinGW/MSYS ということになる。 http://sf.net/projects/mingw/ から、次のファイルを入手してインストールしておく。本稿では、デフォルトでの インストールを想定する。

MinGW-3.1.0-1.exe
MSYS-1.0.9.exe
この2つでコンフィグレータをビルドするために必要な、Windows上で動く実行形 式を吐くgccとmake等のツールは準備できる。次はクロスコンパイラである。

クロスコンパイラもgccを用いる。事実上、他に選択の余地は無い。 3.3.1をh8300-gcc用にMinGW/MSYSでビルドしたものをインストールしておこう。 日立コンパイラでもやってやれないことはないだろうが、持っていない ので確認はしていない。

要するに、ここで前提としているのは その7. MinGWでGCCのクロス開発環境を で紹介した開発環境である。

あまりお勧めはしないが、トップページからビルド済の インストーラを持っていけば、クロスコンパイラも一発インストール出来る。

それと、EclipseにはJAVAのランタイムが必要なので、無ければSunのサイトか らJREを入手してインストールしておく必要がある。


Eclipseのインストール

さて、いよいよEclipseのインストールだ。

次の3つのファイルを入手する。

a. eclipse-SDK-2.1.1-win32.zip
ftp://ftp.ring.gr.jp/pub/misc/eclipse/downloads/drops/R-2.1.1-200306271545/
b. org.eclipse.cdt-win32_1.1.0.bin.dist.zip
http://www.eclipse.org/cdt/
c. eclipse2.1.1-SDK-win-LanguagePackFeature.zip
http://download2.eclipse.org/downloads/drops/L-2.1.x%20Translations-200307021300/index.php
作業はただアーカイブを展開するだけである。本稿ではD:\にインストールす るものとして記述していく。

まず、(a)と(c)をD:\に展開、次いで(b)をD:\eclipseに展開する。 以上。一行にもならない。「全部D:\に展開する」にならないのは、アーカイ ブファイル内のディレクトリ構成によるものである。

正しく展開が終わると、D:\eclipseは以下のようになっている。

インストールしたディレクトリ

後はデスクトップなりスタートメニューに、ショートカットを作成しておけば 良いだろう。アンインストールは、ただD:\eclipse以下を削除するだけで済む。


Eclipse起動からHOSのサンプルビルドまで

Eclipse 起動

インストール作業はつつがなく完了したので、D:\eclipse\eclipse.exeを実行 する。

日本語化されたeclipseが起動したはずだ。

ここまで来れば、後は「統合環境」の名に恥じず、Eclipseの上だけで全てを 行なうことが出来る。(とはいえ、流石にまだSSHまでは組み込まれていないよ うなので、commiterとしての操作の為には、暗号鍵ペアの作成やSSHそのものの設 定等、外での作業が必要になるが、ここでは取り扱わないのでそういうことにしておく)



CVSからの取得

リポジトリエクスプローラを開く
右クリックメニューから「新規」
リポジトリの情報入力
HOS現る
プロジェクトとして…
それでは、おもむろにCVSからHOSのソースを取得してみよう。

まずは「CVSリポジトリー・エクスプローラー」ビューを開く。

「開く」って書くだけで済むならこのメモを書くのは楽だっただろうなぁ… 具体的には、メニューから「ウィンドウ」→「パースペクティブを開く」→ 「CVSリポジトリー・エクスプローラー」(場合によっては一覧に 表示されない場合もある。その時は「その他」を開けばそこに ある筈)で呼び出すことが出来る。

開いたCVSリポジトリー・エクスプローラーの右クリックメニュー から、「新規」を選択。

「CVSリポジトリーの追加」に対して必要な情報を入力する。

ホスト: cvs.sourceforge.jp
リポジトリー・パス: /cvsroot/hos
ユーザー: anonymous
接続型: pserver

パスワードは空欄のままにしておく。

入力が完了したら、「終了」をクリック。

cvs.sourceforge.jpに接続が行なわれ、CVSリポジトリーエクスプローラーに HOSのリポジトリの表示が現れたはずだ。当然、ネットに繋がっていないPC からこの作業は出来ない。

これを通常のエクスプローラの要領で開き、 hos/hos-v4/configを選択し、右クリックメニューから 「プロジェクトとしてチェックアウト」を選択する。

すると、CVSからチェックアウトが行われ、プロジェクト が作成される。

どうだろう?ナビゲータにプロジェクト "config"が作成されたはずだ。

画面の状態によっては、生成されたプロジェクトを確認する ことが出来ないかもしれない。その場合はメニューから、 「ウィンドウ」→「ビューの表示」→「ナビゲーター」を 実行する。(「ナビゲーター」が見えない場合には「その他…」 から探すのは前述と同じ)

checkout作業中
「プロジェクト」誕生


C/C++プロジェクトに変換

「新規」→「プロジェクト」
新規プロジェクト 選択
"config"をチェック
しかし、このままではC++のプロジェクトとなっていない。

そこで、このプロジェクトを変換することになる。 ナビゲータービュー、あるいはメニューのファイルから、 「新規」→「プロジェクト」を選択する。

新規プロジェクトのウィザードが立ち上がったはずだ。

「C++」(別に「C」でも同じだが…)の 「Convert to a C or C++ Project」を選択して「次へ」。

"config"のチェックボックス、hos4cfgはC++で書かれているので、「C++ Project」にチェックを入れ、「終了」

パースペクティブ切り替えの確認には取り敢えず「はい」 と答える。

C/C++ Developmentパースペクティブって何や?という疑問が出てくると おもうが、ここでは一々説明しない。「はい」を押したらでてくる 画面構成のことだろう。つまりは↓か。

C/C++ Project Perspective

configを選択して右クリックメニューから「プロパティ」を 選ぶと、C/C++プロジェクトであるconfigのプロパティを 開ける。ここでいくつかの設定を行う。

まずは「C/C++ Project」の「Build Settings」において Use Defaultのチェックを外し、

c:/msys/1.0/bin/make -f gcc.mak

を入力する。フルパスで入力している訳は、トラブルを避ける 為である。個々の設定で確実にPATHが通っているならコマンドのみの 記述で構わない。これについては、後に出てくるMakefileの記述も同様。

続いて「Binary Parser」を「PE Windows Parser」にする。 今の所は大して意味は無い。いづれ意味があるようになる …かもしれない。

"config"のプロパティ Build Settings
"config"のプロパティ Binary Parser

さて、ここまで設定して「OK」したら、何やら下の方で動きがあって、 失敗したっぽい情報が「タスク」ビューに表示されたかもしれない。 だが、まだまだそんなことを気にしてはいけない。


Buildまで

EUCが文字化けする
「ウィンドウ」→「設定」
エンコードをEUCに
文字化け解消
ビルド!
hos4cfg.exeが出来た
プロジェクト化一覧
「ナビゲータ」ビューからエクスプローラの要領でファイルを 選択してみよう。例としてanalyze.cppを開いてみる。

文字コードがEUCなので、化けてしまっているのが分かるだろう。

心配は無用だ。Eclipseのエディタは、勿論のことEUCにも対応している。 メニューの「ウィンドウ」→「設定」を呼び出そう。

「設定」→「ワークベンチ」→「エディター」を開いて、「テキストファイル エンコード」のチェックを「その他」に変え、「EUC-JP」と"入力" する。選択肢の中にEUC-JPは無い。"選択"ではなく"入力"だと いうことを勘違いしないように。

見事、ソースは文字化けなく表示された。

さて、それではそろそろ格好良くBuildするために、gcc.makに パッチを適用しよう…と書きたいところなのだが、そうは行かない。 どうもEclipse 2.1.1のパッチ適用には、日本語(EUC?)の問題があるよう なのか、うまくいかなかったのだ。

何故に「一致なし」?

日本語の含まれていないファイルであれば、手元で編集 を加えたプロジェクトから「チーム」→「パッチの作成」で 生成したパッチ(CVSとの差分)を、 「チーム」→「パッチの適用」で難なく当てることが出来る。

しかし、日本語が(修正部分近くに?)含まれているファイルに関しては、パッチ自体の 作成は一応正しく出来ているようではあるのに、適用で「一致無し」 などと文句を言われてしまうのである。

CUIを苦にする向きでも、楽にパッチを作成したり適用したり出来る、使えそ うな機能なのだが… で、まぁ仕方ないので、ここに修正したgcc.makを 置いておく。

大した修正ではない。ツールの絶対パス指定とターゲット"all"の作成だけだ。 "all"は「Rebuild」等で使われる。 これをD:\eclipse\workspace\config\gcc.makにコピー していただきたい。

乱暴かつ、IDEって何?っていう悲しさが溢れてくるが、そこはもう少しEclipse に習熟してからということにしておこう。

で、気を取り直して「C/C++ Project」ビューのconfigの 右クリックメニューから、「Build」を実行。

見事hos4cfg.exeが生成された。

さて、これで大体CVSからソースを取得し、C/C++プロジェクト にしてビルドするまでの流れは紹介できた。大雑把かもしれな いが、ここまでの流れが分かれば、後はこの応用だ。

目標とするh83のサンプルのビルドの為には、コンフィグレータの他に カーネルソースとライブラリ、インクルードファイル、 h83用サンプルソースそのものが必要となる。

そこで、configでやった要領で「CVSリポジトリエクスプローラー」 から(そんなの画面に出てない等と泣き言を垂れてはいけない!見当たらない 場合の呼び出し方 は既に出ている!!)、includeとsrc、gcc(hos-v4/lib/h83/gcc)、 h83(hos-v4/sample/h83)をプロジェクトとしてチェックアウト する。

このように各ディレクトリをプロジェクトにするのが、果してEclipseの流儀 にかなったものなのかどうか、現時点ではまだ分からない。

いくつかのターゲットアーキテクチャを同時に扱うには、どうしたらCoolなのだろ うか…。

そして、全く同じようにCプロジェクトに変換し、 一発ビルドが出来るように次のファイル差替えを行なう。

cfg_gcc.mak→ D:\eclipse\workspace\config\gcc.mak
h4h83.mak→ D:\eclipse\workspace\lib_h83gcc\h4h83.mak
smp_gcc.mak→ D:\eclipse\workspace\sample_h83\gcc.mak

gccとh83は、それでは何がなんだかわかりにくいので、 それぞれlib_h83gccとsample_h83に改名している。

プロジェクトのプロパティでは、「Build Settings」の「Build Commmand」を 適切に設定するのも忘れてはいけない。一方、「Binary Parser」は放置で構わない。 …本当なら、プロジェクトのプロパティについては、他プロジェクトの参照等 についても書いておくべきだが、もう面倒くさいので省略。(プロジェクト間の 参照関係を登録してあれば、自動的に操作対象プロジェクトを参照するものが 再ビルドされたりする。Makefileへの細工も加えないと不完全か…)

で、config、lib_h83gcc、sample_h83の順でビルド。 configでWarningが出るけど、とにかくサンプルのビルド までは辿りつけた筈だ…

追伸:
実際の作業自体は大したことないのに、画面をキャプチャ したり、一々「メニュー」→「*****」とか書くのはなんて 面倒なのだろう。

全くGUIという奴は困ったものだ。

デバッガについては全然触れていない。それさえ出来れば?

二伸:
読み返してみてもかなり不充分で、筆者がやったことを再現するだけでも、 Eclipseを使ったことがない方は、ひょっとしたら苦労するかもしれないと 気づいた。

そこで、とにかくこのメモが目指している「EclipseでHOS-V4 h83用サンプルの ビルド」が出来るようになっている状態を、誰でも確実に再現できるように、 workspaceをアーカイブしたものを置くことにする。

workspace.tbz 120,145 bytes (9a3596e4e848647d0922702d30ba9e03)
Eclipseのインストール の作業の後、 このファイルをD:\eclipseに展開するだけで完了。

勿論、前提としてMinGW/MSYSとh8300-gccのインストールは必要である。

三伸:
workspace.tbzをダイエットした。helpのインデックスやらなんやら、不必要な ものが山ほど含まれていた。


この項終り