KaffePC のビルド

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

1. 開発環境の設定

1.1 マシン環境

OS
Windows95 もしくは Windows98 (Windows NT は不可)
Memory
96MB 以上の物理メモリが必要。推奨 128MB 以上
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 のビルド

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 のソース/バイナリに添付されて います。