Haiku をビルドする

※このドキュメントはだいぶ古いです。

Haiku OS をソースからゲットしビルドするまで手順をまとめました。
(HOWTO - Download and build Haiku under R5 を参考にしました)

用意するもの

  • BeOS R5 ProEdition? または BeOS R5 Personal Edition
  • ProEdition? を持っていない人は、http://www.bebits.com/app/2680 から、BeOS R5 Personal Edition と BeOS R5 Development Tools を入手する。
  • ProEdition? を使う場合は、製品に付属する開発ツールも一緒にインストールしておく。
  • Oliver Tappe 氏の gcc 2.95.3。version 2.95.3-beos-060710 となってる方をダウンロードしよう。
  • Subversion

Haiku のビルドには Jam が必要だが、後で Haiku 配布物の中からビルドするので必要ありません。

※ gcc と Subversion は当サイトでもミラーしています。
gcc-2.95.3-beos-060710.zip
Subversion-1.1.3.pkg

BeOS R5 のインストール

Haiku のビルドは現在のところ自力ではできないため、クロスコンパイル環境が必要です。ここでは、Haiku のビルドとインストールに BeOS R5 を使います。

BeOS R5 のインストールについては、ここでは扱いませんが、ハードウェアの進化による非互換性のため、実機へのインストールは年々難しくなってきています。VMware Player を使うのが一番楽で現実的かと思われます。

以降は BeOS R5 での作業となります。

BeOS R5 Development Tools のインストール

Personal Edition を使う場合、開発環境を別途インストールしておきます。(ProEdition? の場合はインストール時に開発環境を同時にインストールしておいてください)

  1. BeOS5-DevTools?.zip をダブルクリックして Expander を開く。
  2. Destination に /boot と入力。
  3. Expand をクリック。

gcc 2.95.3 のインストール

  1. ダウンロードした gcc-2.95.3-beos-060710.zip をダブルクリックして Expander を開いて解凍する。
  2. gcc-2.95.3-beos-060710 というフォルダができるので、これを開く。
  3. gcc-2.95.3_binutils-2.15.zip があるので、これをダブルクリックして Expander を開き、Destination に /boot/develop/tools と入力し Expand をクリックして解凍。

  4. Tracker で /boot/develop/tools を開き、
  5. gnupro を gnupro.old にリネーム。
  6. /boot/develop/tools/gcc-2.95.3_binutils-2.15 へのシンボリックリンクを、/boot/develop/tools/gnupro に作る。

  7. Tracker で /boot/develop/headers を開き、
  8. cpp を cpp.old にリネーム。
  9. /boot/develop/tools/gnupro/include/g++ へのシンボリックリンクを、/boot/develop/headers/cpp に作る。

  10. Tracker で /boot/beos/system/lib を開き、
  11. libstdc++.r4.so を libstdc++.r4.so.old にリネーム。(警告が出たら SHIFT を押しながら " Do it. " をクリックする)
  12. /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/libstdc++.r4.so を /boot/beos/system/lib にコピーする。

  13. 解凍した gcc-2.95.3-beos-060710 はもう消してもいい。
  14. Terminal で gcc -v と実行してみよう。gcc version 2.95.3-beos-060710 と表示されれば、とりあえず OK です。

Subversion のインストール

Subversion とは、cvs のようなもの(?)で、とりあえず今は専用のサーバからファイルをダウンロードするためのツールだと思っていい。
ダウンロードした Subversion-1.1.3.pkg をダブルクリックすると、SoftwareValet? が起動する。初めて SoftwareValet? を動かすと、なにやら登録せよと画面が出てくるが、登録しないで無視して進めよう。
Begin をクリックしてインストール開始。
最後にエディタが開いて UserBootscript? を変更せよ、みたいなメッセージが出て StyledEdit? が開くが、とりあえず無視しても大丈夫なようです。

Jam をコンパイル

Jam とは、make のようなもの(?)で、Haiku ビルドに必要なものです。
Haiku OS の公式ページでも Jam を配布しているが、ここの Jam は古いので使いものにならない。そのため、Haiku ソースから作る。次のように行う。 Terminal を起動し、下の赤文字の部分を入力していこう。

$ svn checkout svn://svn.berlios.de/haiku/buildtools/trunk/jam
A jam/jamgramtab.h
A jam/execvms.c


(中略)


Checked out revision 17708.
$ cd jam
$ make
cc -o ./jam0 builtins.c command.c compile.c execunix.c execvms.c expand.c filent.c fileos2.c fileunix.c filevms.c glob.c hash.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c newstr.c option.c parse.c pathunix.c pathvms.c regexp.c rules.c scan.c search.c timestamp.c variable.c -lnet


(中略)


...updated 38 target(s)...
$ cp bin.beosx86/jam /boot/home/config/bin

これで Haiku をビルドする環境が整ったわけです。

Haiku ソースをゲット

Terminal を開いて次のように入力する。
$ svn checkout svn://svn.berlios.de/haiku/haiku/trunk

かなり時間がかかります。

ファイル数が半端じゃなく多いので、できれば独立した BFS パーティションを作って、そこで作業したほうが、コンパイル時とかも含めて、なにかと都合がいい。noindex にして高速化してる猛者もいるが、パーティションを作る際に危険を伴ううえ、検索できなくなるという諸刃の剣でもある。素人にはおすすめできない。

また、ダウンロードしたルートディレクトリで、

$ svn update

と入力すると、更新されたファイルのみ取得できます。

Haiku をコンパイル

Terminal を開いて次のように入力する。
$ cd (svn を実行した時のディレクトリ)/trunk
$ ./configure --target=haiku
$ jam

完全ビルドにはかなり時間がかかるでしょう。主に CPU パワーに左右されます。
部分的にコンパイルしたければ、たとえば CannaIM だと、

$ jam canna

とすれば、CannaIM だけビルドできます。
できたバイナリは、trunk/generated/objects/ 以降にできます。どこにできるかはモノによります。

ちなみに、configure の target パラメータは、haiku の他に r5, dano があり、このパラメータはどの OS 向けにビルドするかを決めるものです。r5 は文字どおり BeOS R5、dano は ZETA も含まれます。
もちろん、中にはできないものもあります。

Haiku が起動できるイメージを作る

Haiku の起動用に BFS ボリュームを確保し、/Haiku にマウントしておいて、

$ HAIKU_INSTALL_DIR=/Haiku jam -q install-haiku

こうすると、ビルドと共に /Haiku 以下にファイルが展開され起動できるようになる。
Bootman 等の設定も忘れずに。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-09-30 (水) 20:34:29 (342d)