Linux 用 tty 版 Rubiish JNetHack(20020225) のコンパイル例 0) はじめに 必要な環境については Install.unx 参照。 Plamo Linux 3.0 でコンパイルしました。 インストールには以下のファイルが必要です。 rjnh-dev20020225.tar.gz 1)アーカイブの展開 $ tar zxvf rjnh-dev20020225.tar.gz $ cd rjnh-dev20020225 2) ファイルの編集 ファイルの該当行を以下のように変更してください。 該当行が無い場合は付け足してください。 2-1) sys/unix/Makefile.top を編集する PREFIX = /usr GAME = rjnh GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir SHELLDIR = $(PREFIX)/games CHOWN = chown CHGRP = chgrp dofiles-dlb: check-dlb ( cd dat ; cp nhdat $(DATNODLB) $(GAMEDIR) ) # ( cd win/X11 ; cp JNetHack.ad $(GAMEDIR)/JNetHack ) # ( cd win/gtk ; cp GTKRC $(GAMEDIR)/gtkrc ) # ( bdftopcf win/X11/nh10.bdf > $(GAMEDIR)/nh10.pcf ; mkfontdir $(GAMEDIR)) dofiles-nodlb: # copy over the game files ( cd dat ; cp $(DAT) $(GAMEDIR) ) # ( cd win/X11 ; cp JNetHack.ad $(GAMEDIR)/JNetHack ) # ( cd win/gtk ; cp GTKRC $(GAMEDIR)/gtkrc ) # ( bdftopcf win/X11/nh10.bdf > $(GAMEDIR)/nh10.pcf ; mkfontdir $(GAMEDIR)) 2-2) sys/unix/Makefile.src CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include LFLAGS = -L/usr/X11R6/lib #CFLAGS = -g -I../include -I/usr/local/X11R6/include #LFLAGS = -g WINTTYLIB = -lncurses 2-3) sys/unix/Makefile.utl CFLAGS = -O2 -fomit-frame-pointer -I../include -I/usr/X11R6/include LFLAGS = -L/usr/X11R6/lib #CFLAGS = -O -I../include #LFLAGS = 2-4) include/config.h /*#define X11_GRAPHICS*/ /* X11 interface */ /*#define GTK_GRAPHICS*/ /* GTK interface */ # define HACKDIR "/usr/games/lib/rjnhdir" */ /* nethack directory */ 2-5) include/unixconf.h #define SVR4 /* use in addition to SYSV for System V Release 4 */ #define SYSV /* define for System V */ #define LINUX /* Another Unix clone */ #define POSIX_JOB_CONTROL /* use System V / POSIX job control #define POSIX_TYPES /* use POSIX types for system calls and termios */ 2-6) src/files.c Rubbish JNetHack はやや古い NetHack が元になっているので JNetHack と同じ 設定ファイル ".jnethackrc" を使うとエラーが出る場合があります。 共存させるために設定ファイルの名前を変更します。 Sprintf(tmp_config, "%s/%s", getenv("HOME"), ".jnethackrc"); if ((fp = fopenp(tmp_config, "r")) != (FILE *)0) { configfile = ".jnethackrc"; return(fp); } 上記 ".jnethackrc" になっている二カ所の部分を ".rjnhrc" に書き換えます。 3) コンパイル $ sh sys/unix/setup.sh $ make コンパイルが成功したら src/jnethack を src/rjnh にコピーしてください。 $ cp src/jnethack src/rjnh コピーしないとインストール時にエラーが出ます。 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/rjnhdir/record 5-2) 終了時に Cannot open log file! logfile ファイルのパーミッションが設定されていない場合表示されます。 # chmod g+w /usr/games/lib/rjnhdir/logfile 5-3) セーブ時に No such file or directory Exec to compress save/[キャラクター名] failed. compress もしくは gzip が存在しないか設定が間違っています。 2-4 の設定を変更して再コンパイルするか 2-4 で設定されているところにリンクをはる必要があります。 6) ゲーム開始 ゲーム開始コマンドは /usr/games/rjnh、設定ファイルは ~/.rjnhrc です。