最近のフリーソフトウェアは例えば、インストールはらくちんですが、NetHack(JNetHack)は依然として複雑です。何とかしないとダメなのかもしれないけど、年代モノのソースですから・・・あまりやる気がおきません。というわけで気合でインストールしてください。
なお,JNetHackがインストールできるならば NetHackもインストールできる はずですので,JNetHackのみの説明とさせていただきます.
■ 用意するもの
ソースなど
いまどきのUNIXならまず標準装備だと思いますが・・・
以下は場合によっては必要
コンパイルオプションによってはなくてもよいもの
あったほうがよいかもなもの
なおFreeBSDならパッチを当てた後何も考えずmake一発で作成できます。 GTK+版を作成するのでしたら portからgtk12を追加して Makefile中の gtk-configを gtk12-configにすればよいでしょう。
■インストール
% gzip -dc jnethack-1.1.5.tar.gz | tar xvf -
% cd jnethack-1.1.5 % sys/unix/setup.sh
これで各ディレクトリに Makefileが置かれます.
細い設定はドキュメントを読んでもらうとして、とりあえず重要なのは HACKDIRです。ここには NetHackの実行時に必要なファイルが置かれます。デフォルトでは /usr/games/lib/jnethackdir になっているので変更したいときは、ここを変更します。 また、トップディレクトリの Makefileの GAMEDIRも同様のディレクトリにする必要があります。
gccを使用したいのであれば、Makefileの CCを gccにします。
JNetHackをインストールするには、8ビットスルーな lexが必要です。lexに -8 オプション(あるいはそれと同等のもの)があるかどうかを確認します。なければ、8ビットスルーな lexをインストールしなければなりません。幸い GNUの flexが8ビットスルーですので、これをインストールするのがよいでしょう。
BSD系では -ltermlib、SVR系では-ltermcapという伝統があるので、Linux当でコンパイルするにはWINTTYLIBも変更してください。
FreeBSDなのでは portsからgtkをインストールすると gtk-configが gtk12-configという名前でインストールされますので、Makefileの gtk-configを修正してください。
またXや国際化がらみのライブラリはOSによって微妙に違うのでライブラリがないとか言われる場合は適当にWINX11LIBを修正してください。
トップディレクトリで
% makeを実行します。エラーとなるのはシステムで定義している関数とJNetHackで再定義している関数の型が合わないというものです。これは律儀にNetHackが関数を定義してるのが原因です。今はANSIなどで標準ヘッダなどというものができましたが、大昔はなかったので・・・。
解決するには JNetHack側のエラーになる部分をコメントアウトしてまうのが手っ取り早いです。
トップディレクトリで
% make install
を実行します。jnethackは Makefile中の、GAMEUID、GAMEGRPで指定されたユー ザ、グループでインストールされます。よって多くの場合は rootでインストー ルするか、suなどでGAMEUID、GAMEGRPになってインストールする必要があります。
% jnethackでOKです。X11で遊びたいときは以下の行を .jnethackrcに加えてください。
OPTIONS=windowtype:x11また古き良き時代のtext版で遊びたい場合は
OPTIONS=windowtype:ttyとしてください。