JNetHackのインストール for UNIX


最近のフリーソフトウェアは例えば、インストールはらくちんですが、NetHack(JNetHack)は依然として複雑です。何とかしないとダメなのかもしれないけど、年代モノのソースですから・・・あまりやる気がおきません。というわけで気合でインストールしてください。

なお,JNetHackがインストールできるならば NetHackもインストールできる はずですので,JNetHackのみの説明とさせていただきます.


■ 用意するもの

ソースなど

いまどきのUNIXならまず標準装備だと思いますが・・・

以下は場合によっては必要

コンパイルオプションによってはなくてもよいもの

あったほうがよいかもなもの

なおFreeBSDならパッチを当てた後何も考えずmake一発で作成できます。 GTK+版を作成するのでしたら portからgtk12を追加して Makefile中の gtk-configを gtk12-configにすればよいでしょう。


■インストール

  1. jnethack-1.1.5.tar.gzを展開します。
    % gzip -dc jnethack-1.1.5.tar.gz | tar xvf -
    
  2. jnethack-1.1.5に移動し sys/unix/setup.shを実行します。
    % cd jnethack-1.1.5
    % sys/unix/setup.sh
    

    これで各ディレクトリに Makefileが置かれます.

  3. include/config.hを編集します。

    細い設定はドキュメントを読んでもらうとして、とりあえず重要なのは HACKDIRです。ここには NetHackの実行時に必要なファイルが置かれます。デフォルトでは /usr/games/lib/jnethackdir になっているので変更したいときは、ここを変更します。 また、トップディレクトリの Makefileの GAMEDIRも同様のディレクトリにする必要があります。

  4. src/Makefile、 utl/Makefileの編集

    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を修正してください。

  5. コンパイル

    トップディレクトリで

    % make
    
    を実行します。エラーとなるのはシステムで定義している関数とJNetHackで再定義している関数の型が合わないというものです。これは律儀にNetHackが関数を定義してるのが原因です。今はANSIなどで標準ヘッダなどというものができましたが、大昔はなかったので・・・。

    解決するには JNetHack側のエラーになる部分をコメントアウトしてまうのが手っ取り早いです。

  6. インストール

    トップディレクトリで

    % make install

    を実行します。jnethackは Makefile中の、GAMEUID、GAMEGRPで指定されたユー ザ、グループでインストールされます。よって多くの場合は rootでインストー ルするか、suなどでGAMEUID、GAMEGRPになってインストールする必要があります。

  7. これでおしまいです。後はサルのように遊びましょう。猿でもできるNetHack(通称サルネト) が役に立つかと思います。デフォルトがGTK+になっているのでGTKで遊びたいときはパスが通っていることを確認して単に
    % jnethack
    
    でOKです。X11で遊びたいときは以下の行を .jnethackrcに加えてください。
    OPTIONS=windowtype:x11
    
    また古き良き時代のtext版で遊びたい場合は
    OPTIONS=windowtype:tty
    
    としてください。