
            QUASI88 のコンパイル方法 for FreeBSD / Linux / (macOS)

-------------------------------------------------------------------------------

●ここでは QUASI88 を FreeBSD や Linux などでコンパイルする方法を説明します。
  macOS の場合も、こちらのドキュメントが参考になるかと思います。
  ( 但し、 macOS でコンパイルできるかどうかは未検証です。ご了承ください )

  ・QUASI88のビルドや実行には、 SDL2がインストールされている必要があります。
    インストール方法などの詳細については、 SDLのウェブサイトを参照ください。

        https://www.libsdl.org/

    2023/12/31現在、SDL2のバージョンは 2.28.5 となっています。

  ・ビルド作業は、トップディレクトリで行います。


●ビルド方法

  1. Makefile をお手持ちの環境にあわせて変更します。

     コメントアウトする場合は、行頭に # を付けます。
     コメントアウトしない(コメントインする)場合は、行頭の # を取ります。

     以下に主な変更点を挙げます。ここに挙げていないものや意味が理解
     できないものは、とりあえず変更しないことをお勧めします。
     ( デバッグ用の機能もいくつか含まれていますので・・・ )


     [1] ROM用ディレクトリを設定します

                ROMDIR  = ~/quasi88/rom/

          起動時に ROMイメージファイルを読み込むディレクトリです。
        環境変数 QUASI88_ROM_DIR 、あるいは起動時のオプション -romdir 、の
        いずれもが未設定の場合に、このディレクトリから読み込まれます。
        なお、 ~/ は、 QUASI88の起動時に環境変数 $HOME (ホームディレクトリ) に
        展開されます。

     [2] DISK用ディレクトリを設定します

                DISKDIR = ~/quasi88/disk/

          起動時に ディスクイメージファイルを指定した場合に、そのファイルを
        読み込むディレクトリです。環境変数 QUASI88_DISK_DIR 、あるいは
        起動時のオプション -diskdir 、のいずれもが未設定の場合に、この
        ディレクトリから読み込まれます。

     [3] TAPE用ディレクトリを設定します

                TAPEDIR = ~/quasi88/tape/

          環境変数 QUASI88_TAPE_DIR 、あるいは起動時のオプション -tapedir 、の
        いずれもが未設定の場合に、このディレクトリが、テープイメージファイル
        用のディレクトリとなります。

     [4] スクリーンスナップショットのセーブ時に、コマンド実行するかどうかの設定

                USE_SSS_CMD     = 1

          スクリーンスナップショットを保存する際、予め指定した任意のコマンドを
        自動的に実行することができます。しかしこの行をコメントアウトした場合、
        この機能が削除されます。( スクリーンスナップショット自体は、使えます )

     [5] サウンド出力の有無の設定

                USE_SOUND       = 1

          コメントアウトすると、MAME/XMAME ベースのサウンド出力が組み込まれ
        ません。(つまり、音が鳴らなくなります)

     [6] fmgen の設定

                USE_FMGEN = 1

          コメントアウトすると、fmgen が組み込まれせん。
        これは、[5] でサウンド出力を組み込むようにした場合に有効な設定です。

     [7] コンパイル関連の設定

                CC      = cc

          C コンパイラを指定します。
        デフォルトでコンパイルできない場合は、「CC = gcc」 や 「CC = clang」の
        ように指定してください。

                CFLAGS = -O2

          コンパイルオプションを指定します。
        OS ないし コンパイラによっては、 -fsigned-char などの追加が必要です。

                USEINLINE       = '-DINLINE=static __inline__'

          インライン関数をサポートしていないコンパイラを使用している場合は、
        この行をコメントアウトして、「USEINLINE = '-DINLINE=static'」の行を
        コメントインしてください。

                CXX      = cc
                CXXFLAGS = -O2
                CXXLIBS  = -lstdc++

          C++ コンパイラの設定です。 C コンパイラ同様、設定してください。
        この設定が必要なのは、[6] で fmgen を組み込むように指定した場合のみ
        です。

                LD      = $(CC) -Wl,-s

          リンカの設定です。[6] で fmgen を組み込むように指定した場合は、
        「LD = $(CXX) -Wl,-s」と設定する必要があるかもしれません。

     [8] インストール先ディレクトリの設定

                BINDIR = /usr/local/bin

          出来上がったバイナリをインストールするディレクトリを指定します。


  2. make します。

     make には、必ず GNU make が必要です。 ( FreeBSD なら、 gmake ですね )

        % make

     make が無事完了すると、 quasi88 という実行ファイルができます。


  3. インストール します。

     以下を実行します。

        # make install

     上記 1. の [8] で指定したディレクトリにインストールされます。
     インストールには root 権限が必要な場合があります。
     なお、ドキュメント・マニュアル類は一切インストールされないので、
     必要ならば各自で好きな場所にコピーしてください。


●注意事項

  QUASI88 の改変・再配布などに関しては、もともとの QUASI88 の
  著作権・免責事項に加えて以下を守ってください。

        SDLライブラリを使用する場合、SDLのライセンスに従う必要があります。

        サウンド出力を有効にした場合、MAME/XMAMEのライセンスに従う必要が
        あります。

        fmgen を組み込んだ場合、fmgen のライセンスに従う必要があります。
