JNetHackをWindows上でビルドする
概要
JNetHackのビルドはそれほど難しくありませんが、Sourceforge.jpから持ってきた最新のソースコードをWindows上のBorland C++ Builderでビルドするには、文字コードをEUCからShift JISに変更しなければならない点に注意する必要があります。
必要なもの
Sourceforge.jpからソースコードを取得するためにcvs、パッチを適用するためにpatchが必要なので、手っ取り早くcygwinを導入します。
コンパイラにはBorland C++ Compiler 5.5を使います。
漢字コードの変換にはnkfを用います。文字コードを一括変換するためのシェルスクリプトを動かすために、cygwinのbashを用います。
インストール
このガイドでは、次のフォルダ構成を仮定しています。
c:\borland\bcc55\bin | Borland C++ Compiler 5.5のbinフォルダ |
c:\cygwin\bin | cygwinのbinフォルダ |
c:\jnh | ソースコードを落とす作業フォルダ |
各プログラムフォルダが上記のようになるように、bcc、cygwinをセットアップします。
nkfは、展開して、2072\win\nkf.exeをc:\cygwin\binにコピーしておきます。
作業フォルダとしてc:\jnhフォルダを作成し、その中に次の内容のシェルスクリプトをconvsjis.shとして保存しておきます。
for i in *
do
if [ -d "$i" ];
then
echo "directory $i"
cd $i
../$0
cd ..
else
echo "file $i"
nkf -s < $i > tmp
mv tmp $i
fi
done
このシェルスクリプトは、実行したフォルダ以下の全てのファイルの文字コードをShift JISに変換します。改行コードは変換しません。
ソースコードの取得
作業フォルダにソースコードをダウンロードします。pathをc:\cygwin\binに限定して設定しているのは、間違って他のプログラムが実行されないように、念のため。
cd c:\jnh
path c:\cygwin\bin
cvs -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/jnethack login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.jp:/cvsroot/jnethack co jnethack
これでソースコードの取得が完了しました。
文字コードの変換
先ほど作ったシェルスクリプトを実行して、ソースコードをShift JISに変換します。EUCで書かれたパッチが有れば、この前に当てます。
cd jnethack
path c:\cygwin\bin
bash ../convsjis.sh
Makefileのセットアップ
sys\winntにあるnhsetup.batを起動して、Windows用にmakefileをセットアップします。このバッチファイルは、Windows用のMakefileをsysフォルダからsrcフォルダにコピーします。
cd sys\winnt
nhsetup
ビルド前に当てるパッチがあれば、この段階で当てます。
ビルド
srcフォルダからmakeコマンドを実行します。pathはBCCのbinフォルダに切り替えておきます。cygwinのが先にあると、そっちのmakeが実行されてしまうため、うまく動きません。
cd c:\jnh\jnethack\src
path c:\borland\bcc55\bin
make Makefile.bcc install
実行ファイル一式はbinaryフォルダに作成されます。
cd ..\binary
nethack
おわり。
パッチ
パッチを当てるにはpatchコマンドを使います。ほとんどの場合、ソースコードのルートフォルダ(ここではc:\jnh\jnethack)から、
patch -p1 < ファイル名
でokです。pathがc:\cygwin\binになっていないと、別のpatch.exeが実行される場合があるので注意しましょう。