KaffePC のビルド
KaffePC のソースをコンパイルしてバイナリを作成するまでの手順を説明します。
1. 開発環境の設定
1.1 マシン環境
-
OS
-
Windows95 もしくは Windows98 (Windows NT は不可)
-
Memory
-
96MB 以上の物理メモリが必要。推奨 128MB 以上
-
HDD
- 50MB 以上
1.2 DJGPP のインストール
開発環境は DJGPP を利用します。以下のファイルを DJGPP の FTP サイト からダウン ロードし、ディスクに
展開します。これらアーカイブされたファイルの中には、一部互いに重複し
ているものがありますが、展開時に上書きしても問題ありません。
-
v2/djdev201.zip
-
v2gnu/bnu281b.zip
-
v2gnu/bsh1147b.zip
-
v2gnu/dif271b.zip
-
v2gnu/fil316b.zip
-
v2gnu/find41b.zip
-
v2gnu/gcc281b.zip
-
v2gnu/grep22b.zip
-
v2gnu/gwk303b.zip
-
v2gnu/mak377b.zip
-
v2gnu/sed302b.zip
-
v2gnu/shl112b.zip
-
v2gnu/txt122b.zip
-
v2misc/csdpmi4b.zip
1.3 シェルの設定
現在のドライブのルートに bin ディレクトリを作成し、上で展開された bash.exe
を sh.exe にリネームしてコピーします。
1.4 JDK のインストール
JDK1.1.* もしくは JDK1.2 をインストールして
おきます。JAR ファイルを作成する場合に必要になります。
2. KaffePC のビルド
KaffePC をビルドする例を紹介します。ここではあらかじめ必要なものが以下の
場所にインストールされているものとします。
- djpgpp
- d:/djgpp
- KaffePC バイナリ
- d:/kaffepc
- KaffePC ソース
- d:/kaffepc-1.0.b2
- JDK
- d:/java/jdk1.1.7B
2.1 環境変数の設定
環境変数の設定例を紹介します。
rem
rem Modify the following environment variables.
rem
set DJGPPHOME=d:/djgpp
set KAFFEHOME=d:/kaffepc
set KAFFESRCHOME=d:/kaffepc-1.0.b2
set JDKHOME=d:/java/jdk1.1.7B
rem
set PATH=%DJGPPHOME%/bin;%KAFFEHOME%/bin;%JDKHOME%/bin
set DJGPP=%DJGPPHOME%/djgpp.env
set LFN=y
set VPATHSEP=;
set CC=gcc
set AR=ar rc
set RANLIB=ranlib
set LIBS=-ltcp -lserio
set STD_LIBRARIES=-ltcp -lserio
set EXTRA_CFLAGS=-DDEBUG
set SHELL=%DJGPPHOME%/bin/bash.exe
set CFLAGS=-O2
set CLASSPATH=.
set CLASSPATH=%CLASSPATH%;%KAFFEHOME%/lib/klasses.jar
set CLASSPATH=%CLASSPATH%;%KAFFEHOME%/lib/kaffepc.jar
set CLASSPATH=%CLASSPATH%;%KAFFESRCHOME%/kaffe-1.0.b2/libraries/javalib/pizza.jar
set LANG=ja_JP.SJIS
set TZ=JST-9
rem for wattcp
set LAB=%KAFFESRCHOME%
set WATTCPHOME=%LAB%/tcplib
set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%WATTCPHOME%/include
set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%WATTCPHOME%/include/tcp
set LIBRARY_PATH=%WATTCPHOME%
rem for bcsio20
set BCSIO20HOME=%KAFFESRCHOME%/bcsio20
set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%BCSIO20HOME%
set LIBRARY_PATH=%LIBRARY_PATH%;%BCSIO20HOME%
2.2 make の実行
KaffePC ソースディレクトリに移動し、make を行います。
make では以下のターゲットを利用できます。
- all
- KaffePC の C ソースをすべてコンパイルし、kaffe.exe を作成します。
- buildjar
- Java のソースをすべて再コンパイルし、klasses.jar、kaffepc.jar を作成
します。これらの jar ファイルはあらかじめソースに含まれているため、
Java のソースを変更しない限り、このターゲットを実行する必要ありませ
ん。
- buildbin
- 作成したバイナリをまとめます。カレントディレクトリに kpcbin ディレク
トリを作成し、KaffePC に必要なバイナリをすべて一つにまとめます。
- allclean
- 作成したバイナリなどをすべて削除します。
3. cwsdpmi.exe の変更について
KaffePC では、内部的にハードウェアタイマを使用した割り込み処理を行って
います。通常、DJGPP ではハードウェア割り込みルーチンを記述する際には、仮
想メモリシステムがメモリ領域を移動しないようにロックする必要がありますが、
KaffePC ではそれを行っていません。これは、KaffePC 内部のタイマ割り込みルー
チンが C で記述されており、割り込みルーチンが使用するすべての領域をロッ
クするのはほとんど不可能なためです。
DOS ではメモリを管理する DPMI サーバとして cwsdpmi.exe を使います。
KaffePC では、この実行ファイルを、仮想メモリを使わないように修正して
います。修正したバイナリは、すでに KaffePC のソース/バイナリに添付されて
います。