MonaNewのコンパイル(メモ)

平成17年10月29日作成
戻る

MonaNewのチェックアウト

まず、どこかにmonaというディレクトリを作る。この例ではホームディレクトリ 直下にmonaディレクトリを作ることにする。

tkralia:~$ pwd
/home/TAKA
tkralia:~$ mkdir mona

次に、monaをCVSからとってくるための環境変数を設定する。 これはCVSからとってくるためには必ずしなければならないので、 シェルスクリプトにまとめておいたほうがいい。

tkralia:~$ export CVSROOT=:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/mona

環境変数の設定が終われば先ほど作成したmonaディレクトリに移って、CVSから MONAをダウソする。CVSからソースを持ってくるには持ってくるには、cvs checkout コマンドを用いるが、それに先立ってCVSサーバーにログインする必要がある。

tkralia:~$ cd mona
tkralia:~/mona$ cvs login
Logging in to :pserver:anonymous@cvs.sourceforge.jp:****/cvsroot/mona
CVS password:
tkralia:~/mona$

匿名ログインなのでパスワードは必要ない。指定されたらEnterキーを押せばいい。 CVSコマンドが出す文字列中の **** には適当な4桁の数字が入るが、あまり気に しなくてもいい。

早速、チェックアウトする。

tkralia:~/mona$ cvs checkout MonaNew
......
ずらずらとサーバーからデータをダウソしているログが出る
......
tkralia:~/mona$ ls
MonaNew/

これでチェックアウトできた。MonaNewに入ってmakeすればMonaがコンパイルされる (はず)

MonaNewのコンパイル

では早速MonaNewをコンパイルしてみよう。

tkralia:~/mona/MonaNew$ ls
CVS/  ChangeLog*  Makefile*  config/  core/  tool/
tkralia:~/mona/MonaNew$ make
cd config && ./configure && make && make install
Please set MONADIR!
make: *** [all] エラー 1
tkralia:~/mona/MonaNew$

なぜかエラーが出る。実は環境変数 $MONADIRを指定しないとコンパイルできない ようになっている。設定する値は先ほど作成した「小文字の」monaディレクトリへの パスである。つまり、/home/TAKA/monaを作成したならば、$MONADIRにもこの値を 設定する。

tkralia:~/mona/MonaNew$ export MONADIR="/home/TAKA/mona"
tkralia:

では、気を取り直してもう一度makeする。

tkralia:~/mona/MonaNew$ make
......
ずらずらとmakeコマンドのログが出てくるが・・・
......
cd core/monapi && make && make install
make[1]: Entering directory `/home/TAKA/mona/MonaNew/core/monapi'
make[1]: *** `monapi.o' に必要なターゲット `/usr/local/mona/include/monapi/sysca
ll.h' を make するルールがありません。中止。
make[1]: Leaving directory `/home/TAKA/mona/MonaNew/core/monapi'
make: *** [all] エラー 2
tkralia:~/mona/MonaNew$

なぜかエラーが出る。これは、$MONADIR/MonaNew/core/monapi にある、dependencies というファイルの内容がおかしいからこんなエラーが出るのである。これを回避する ためには、monapiディレクトリで

tkralia:~/mona/MonaNew/core/monapi$ make depend

とすればいい。そうして、MonaNewで再度makeすればmonapiのmakeが環境する。 ただし、後にコンパイルする shell_serverでも同様のエラーがあるので、 先に直しておくことをお勧めする。

tkralia~/mona/MonaNew/core/shell_server$ make depend

これで最後まで make 出来るはずだ。最終的に出来上がるISOイメージは $MONADIR/MonaNew/tool/mkimg/mona.isoにある。あとはこれを Bochsなり、QEMUなりで実行すればいい。

当然のことながら、アプリを入れていないので、何も実行できない。

感想・まとめ

このメモではMonaをCVSからチェックアウトして、一通りコンパイルする ところまでを示した。ここでコンパイルしたMONAは付属アプリが全くなく、 何一つ出来ない状況である。ここで一区切りつけて、付属アプリの コンパイルは次のメモで説明するということにする。

最近 MONA の開発が 0.2.0 のときと比べて停滞している、というか荒れている。 gcjやネットワーク対応、新ファイルシステムや monapi2など出るものは出ているのだが、 今ひとつパッとしない。「だから何なんだ」という感じなのである。新しいものを 見せられても、「じゃあ自分はそれを利用して何ができるのか」ということになる。

要は、どこへ行けばソースにありつけて、どこへ行けばドキュメントに ありつけるのかが明らかでないのである。。探せばあるかもしれないが、 新しく来た人、あるいは、久しぶりにMONAの開発に参加しようとしている人には、 有用な資料がどこにあるのかがわからない。つまり、探させるようでは だめなのである。

ドキュメントやソースが行方不明になる原因は、個々の開発者が「共有」ということを 考えずに、ソースだけを投下していたり、ドキュメントを作ってもそれをひとつの ところにまとめていなかったり。また、包括的なドキュメントを書く人が 現れてくれなかったということもある。これに関してはつい最近までドキュメント書きを サボっていたTAKAの所為でもあるかもしれない。

TAKAは「良いデベロッパコミュニティは良いドキュメントが不可欠」と考えている。 MONAの発展を願いつつもこれからもドキュメントを書くことにする。

inserted by FC2 system