
	Linux 用 jnethack(3.4.2) のコンパイル例


0) はじめに

Plamo Linux 3.2 で tty 版をコンパイルした例です。

この文書は sys/unix/README.linux から tty 版を作成するための設定のみを
抜き出して書かれています。

gcc version 2.95.3 20010315
flex version 2.5.4
GNU Bison version 1.28
ncurses version 5.2


1) アーカイブの展開・パッチ当て

$ tar zxvf nethack-342.tgz
$ cd nethack-3.4.2
$ zcat jnethack-3.4.2-0.1.diff.gz | patch -p1
$ sh sys/unix/setup.sh
 

2) ファイルの編集

2-1) Makefile の該当行を編集

GAMEGRP = games
GAMEPERM = 02755
FILEPERM = 0644
EXEPERM = 755
DIRPERM = 775


2-2) src/Makefile の該当行を編集

CFLAGS = -O2 -fomit-frame-pointer -I../include
LFLAGS =


2-3) util/Makefile の該当行を編集

CFLAGS = -O2 -fomit-frame-pointer -I../include
LFLAGS =


2-4) include/unixconf.h の該当行を編集

コメントアウトされている Linux の定義を有効にします。

#define LINUX /* Another Unix clone */

TERMINFO の定義を有効にします。

#define TERMINFO

次に TIMED_DELAY 定義も有効にします。

#define TIMED_DELAY /* usleep() */


2-5) include/config.h の該当行を編集

DLB 定義を有効にします。

#define DLB


3) コンパイル

$ make all


4) インストール

4-1) はじめてインストールする場合

# make install

4-2) 上書きする場合(セーブデータが保護されます)

# make update


5) エラーメッセージ

5-1) 起動時に Warning: cannot write scoreboard file record

record ファイルのパーミッションが設定されていない場合表示されます。

# chmod g+w /usr/games/lib/jnethackdir/record

上記のように書き込み権限を有効にします。


5-2) 終了時に Cannot open log file!

logfile ファイルのパーミッションが設定されていない場合表示されます。

# chmod g+w /usr/games/lib/jnethackdir/logfile

上記のように書き込み権限を有効にします。


5-3) セーブ時に No such file or directory Exec to compress save/[キャラクター名] failed.

compress もしくは gzip が存在しないか設定が間違っています。
include/config.h の COMPRESS の設定が正しいかどうか確認してください。

#define COMPRESS "/usr/bin/gzip" /* FSF gzip compression */


6) 設定ファイル

ホームディレクトリに ~/.jnethackrc ファイルを作成してプレイヤー名などの設定を
することができます。
設定ファイルの書き方は doc/jGuidebook.txt を参照してください。

JNetHack 1.x 系で追加されたスコア送信機能や Radar パッチは 3.4.x 系では
分離されているので report や radar オプションを設定しても有効にはなりません。
