Vine Linux 3.2上の事例

環境構築

apt-get等でncurses、ncurses-devel、bison、flexをインストールする。

コンパイル対象ソースの準備

http://unnethack.sourceforge.net/
の[Download UnNetHack files]をクリックしてunnethack-3.5.1.tar.gzをダウンロード

  • JUnNetHackパッチのダウンロード

http://sourceforge.jp/projects/junnethack/
からjunnnethack-3.5.1-J0.1.0.diff.gzをダウンロード

  • JUnNetHackソースの構築
    1. 任意の作業フォルダ(パスに空白や2バイトコードを含まない)を作成し、そこにダウンロードしたファイルを置いておく。
      $ mkdir unnethack
      $ cd unnethack
      $ mv unnethack-3.5.1.tar.gz    junnnethack-3.5.1-J0.1.0.diff.gz ./unnethack
      $ ls
      unnethack-3.5.1.tar.gz    junnnethack-3.5.1-J0.1.0.diff.gz
      
    2. unnethack-3.5.1.tar.gzを作業フォルダに解凍する。
      $ tar xvfz unnethack-3.5.1.tar.gz
      
    3. できたunnethack-3.5.1フォルダを複製して複製したフォルダ名をjunnethack-3.5.1とする。
      $ copy -r unnethack-3.5.1 junnethack-3.5.1
      
    4. junnethack-3.5.1フォルダ内にjunnnethack-3.5.1-J0.1.0.diff.gzを解凍する。
      $ cd junnethack-3.5.1
      $ gzip -d -c ../junnnethack-3.5.1-J0.1.0.diff.gz
      
    5. 作成されたjunnnethack-3.5.1-J0.1.0.diffの文字コードを変換する。 文字コードはEUCにしておくこと。
      $ nkf -Se < junnnethack-3.5.1-J0.1.0.diff > junnnethack-3.5.1-J0.1.0.euc.diff 
      
    6. パッチの実行
      $ patch -p1 < junnnethack-3.5.1-J0.0.1.diff
      
      このとき、sys/winnt/nhsetup.batやsys/msdos/setup.batあたりのパッチ当てに 改行コードの違いにより失敗するかもしれません。無視してかまいません。
    7. パッチの削除
      パッチは削除しておきましょう。
      $ rm *.diff
      

なお、SVN WebからDownload GNU tarballでダウンロードしたりした場合、中身はShift_JISなので気をつける必要がある。
http://sourceforge.jp/projects/junnethack/svn/view/junnethack/trunk/?root=junnethack
SVN版と英語版のdiff差分を取って、diff差分をコード変換してから再び英語版に当てなおすなどすればバイナリファイルを気にせずにコード変換できる。

JUnNetHackのコンパイル

構築したJUnNetHackソースとは別に、コンパイル用のフォルダを作成しましょう。

  1. junnethack-3.5.1フォルダを複製して複製したフォルダ名をjunnethack-3.5.1-mingwとする。
    $ cd ..
    $ copy -r junnethack-3.5.1 junnh351
    $ cd junnh351
    
  2. configureの実行
    $ sh ./configure
    
    を実行する。なお、bin権限ユーザやgames権限グループが必要なはず。
  3. makeの実行
    $ make
    
    を実行する。
  4. make installの実行
    スーパーユーザーになってインストールする。
    $ su
    passward:
    # make install
    
    を実行する。
    /usr/local/junnethackdir 配下にインストールされる。