KaffePC/VM のビルド

KaffePC/VM のソースをコンパイルしてバイナリを作成するまでの手順を説明します。

1. 開発環境の設定

1.1 マシン環境

OS
Windows95 もしくは Windows98 (Windows NT は不可)
Memory
64MB 以上の物理メモリが必要。
HDD
50MB 以上

1.2 DJGPP のインストール

開発環境は DJGPP を利用します。以下のファイルを DJGPP の FTP サイト からダウン ロードし、ディスクに 展開します。これらアーカイブされたファイルの中には、一部互いに重複し ているものがありますが、展開時に上書きしても問題ありません。

1.3 シェルの設定

現在のドライブのルートに bin ディレクトリを作成し、上で展開された bash.exe を sh.exe にリネームしてコピーします。

1.4 JDK のインストール

JDK1.1.* もしくは JDK1.2 をインストールして おきます。JAR ファイルを作成する場合に必要になります。

2. KaffePC/VM のビルド

KaffePC/VM をビルドする例を紹介します。ここではあらかじめ必要なものが以下の 場所にインストールされているものとします。
djpgpp
d:/djgpp
KaffePC/VM バイナリ
d:/kaffepc
KaffePC/VM ソース
d:/kaffepc-1.0.b3
JDK
d:/java/jdk1.1.7B

2.1 環境変数の設定

環境変数の設定例を紹介します。
rem --------------------------------------------------------------------------
rem Modify the following environment variables.
rem 
set JDKHOME=d:/java/jdk1.1.7B
set DJGPPHOME=d:/djgpp
set KAFFEHOME=d:/kaffepc
set KAFFESRCHOME=d:/kaffepc-1.0.b3
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=.;%KAFFESRCHOME%/kaffe-1.0.b3/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%

rem for gmp
set GMPHOME=%KAFFESRCHOME%/gmp-2.0.2
set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%GMPHOME%
set LIBRARY_PATH=%LIBRARY_PATH%;%GMPHOME%

rem for zlib
set ZLIBHOME=%KAFFESRCHOME%/zlib-1.12
set C_INCLUDE_PATH=%C_INCLUDE_PATH%;%ZLIBHOME%
set LIBRARY_PATH=%LIBRARY_PATH%;%ZLIBHOME%

2.2 make の実行

KaffePC/VM ソースディレクトリに移動し、make を行います。 make では以下のターゲットを利用できます。
all
KaffePC/VM の C ソースをすべてコンパイルし、kaffe.exe を作成します。
buildjar
Java のソースをすべて再コンパイルし、klasses.jar、kaffepc.jar を作成 します。これらの jar ファイルはあらかじめソースに含まれているため、 Java のソースを変更しない限り、このターゲットを実行する必要ありませ ん。
buildbin
作成したバイナリをまとめます。カレントディレクトリに kpcbin ディレク トリを作成し、KaffePC/VM に必要なバイナリをすべて一つにまとめます。
allclean
作成したバイナリなどをすべて削除します。

3. cwsdpmi.exe の変更について

KaffePC/VM では、内部的にハードウェアタイマを使用した割り込み処理を行っ ています。通常、DJGPP ではハードウェア割り込みルーチンを記述する際には、 仮想メモリシステムがメモリ領域を移動しないようにロックする必要があります が、KaffePC/VM ではそれを行っていません。これは、KaffePC/VM 内部のタイマ 割り込みルーチンが C で記述されており、割り込みルーチンが使用するすべて の領域をロックするのはほとんど不可能なためです。

DOS ではメモリを管理する DPMI サーバとして cwsdpmi.exe を使います。 KaffePC/VM では、この実行ファイルを、仮想メモリを使わないように修正して います。修正したバイナリは、すでに KaffePC/VM のソース/バイナリに添付さ れています。