もし間違ってることを書いてたら報告してくれるとうれしいな。

コンパイル方法( 1.0 )

Unix(Linux)系の一般的な方法

必要なライブラリをそろえる

YaST2(OpenSUSE)が使える場合

YaST2を起動→「ソフトウェア」→「ソフトウェア管理」 を選択すると、 インストールするパッケージを選択できます。 (場合によっては、「ソフトウェア」→「ソフトウェアリポジトリ」を選択して、ファイルのダウンロード元を設定する必要があるかもしれません。)

以下のパッケージを選択してください。

  • SDL-devel
  • SDL_image-devel
  • SDL_mixer-devel
  • SDL_ttf-devel
  • libXerces-c-devel
  • boost-devel

yumが使える場合

たぶん、こんな感じ(適当にパッケージ名を調整してください)

user@localhost:~> yum install SDL-devel
user@localhost:~> yum install SDL_image-devel
user@localhost:~> yum install SDL_mixer-devel
user@localhost:~> yum install SDL_ttf-devel
user@localhost:~> yum install libXerces-c-devel
user@localhost:~> yum install boost-devel

その他

apt-getを使ったり、お使いのディストリビューションのソフトウェアリポジトリに直接アクセスしたりして、必要なライブラリをそろえてください。 ( ダウンロードのページで各ライブラリのソースコードも配布していますが、通常はこれを使うことは無いでしょう。)

ダウンロード

ダウンロードのページからdaikon-1.0.tar.gzをダウンロードします。

tarボールの展開

以下のコマンドでソースコードを展開します。

user@localhost:~> tar zxvf daikon-1.0.tar.gz

コンパイル

ソースコードを展開してできたディレクトリ「daikon-1.0」に入って、configure; make を実行します。

user@localhost:~> cd daikon-1.0
user@localhost:~/daikon-1.0> configure; make
コンパイルが終了すると、src フォルダの中にdaikonという実行ファイルが生成されます。

インストール

make installを使ってインストールします。ただし、root権限が必要です。

user@localhost:~> sudo make install

Windowsでコンパイルする方法(MinGW/MSYS)

ここで紹介するコンパイル方法はあくまでも一例です。 ここで紹介するWindowsでのコンパイルは割と泥沼化します。 手順のミスによりシステムを破壊してしまわないよう、万全の注意を払ってください。 また、多少の経験者を前提として話を進めるため、初心者にはお勧めできません。

ライブラリ収集の基本方針

MinGWでコンパイルするので、ライブラリをダウンロードするときもMinGW用のバイナリを選びます。 しかしながらMinGWは割とマイナーなようで、バイナリが用意されてないことが大半です。 その場合、VC9.0/8.0用のバイナリで代用しますが、たまにうまくいかないことがあるので その場合はソースからMinGWでコンパイルしています。

MinGWとMSYSをインストールする

MinGWはWindowsで動作するgccと呼ばれるコンパイラ集です。 C言語やC++などをコンパイルするためのツールが入っています。 MSYSはUnixライクな端末エミュレータ(コマンドプロンプトのようなもの)です。 ダイコンはAutotoolsと呼ばれるUnix系のコンパイルシステムを利用するため、 MSYSか、Cygwinなどを使ってUnix環境を再現する必要があります。

順番としてはMinGW→MSYSの順番にインストールします。 なぜならMSYSはインストールする時に「MinGWをどこにインストールしたか?」聞いてくるからです。

MinGWのインストーラを起動すると、いくつかのライセンス確認を経て、パッケージ選択の画面がでます。 わからなければFull, 少なくともg++とmakeパッケージは含むようにしてください。 インストール先は「c:\Documents and Settings\MinGW ではなく、c:\MinGWにしておいた方が無難です。 ディレクトリ名に空白が混ざっていると正常にコンパイルできない場合があります。

なお、インストール先は覚えておいてください。

MSYSの場合、インストール中に「post install」うんたらかんたらが表示されます。 このとき、yを選択するとMinGWのインストール先を聞いてきますので、先ほどMinGWをインストールした場所を入力してください。(例: C:\MinGW)

これでMinGWとMSYSのインストールは完了です。

SDLをインストールする

まず、http://www.libsdl.org/download-1.2.php へ行き、Development Libraries: Win32: SDL-devel-1.2.13-mingw32.tar.gz (Mingw32) をダウンロードします。 これをLhaplus等で展開すると、SDL-devel-1.2.13 というフォルダができます。 仮に、このフォルダのパスをC:\SDL-devel-1.2.13とします。

次にMSYSを起動し、先ほど展開したフォルダに移動します。

user@localhost ~/
$ cd /z/SDL-1.2.13/

フォルダの中身を見ると、INSTALLというファイルがありますが、これは今回関係ありません。 Makefileを見てみると、make native か make cross が選べるようです。 今回はmake nativeを実行します。

user@localhost /c/SDL-1.2.13
$ make native
これでSDLのインストールは完了です。

SDL_image をインストールする

SDL_imageのダウンロードページへ行き、「SDL_image-devel-1.2.7-VC9.zip」をダウンロードします。 展開して、include と lib の中身を適切な位置にコピーします。

user@localhost ~
$ cd /c/SDL_image-1.2.7

user@localhost /c/SDL_image-1.2.7
$ cp -v include/* /usr/include/SDL/

これでSDL_imageのインストールは完了です。

SDL_mixer をインストールする

SDL_mixerのダウンロードページへ行き、「SDL_mixer-devel-1.2.8-VC8.zip」をダウンロードします。 展開して、include と lib の中身を適切な位置にコピーします。

user@localhost ~
$ cd /c/SDL_mixer-1.2.8

user@localhost /c/SDL_image-1.2.8
$ cp -v include/* /usr/include/SDL/

これでSDL_mixerのインストールは完了です。

SDL_ttf をインストールする

SDL_ttfのダウンロードページへ行き、「SDL_ttf-devel-2.0.9-VC8.zip」をダウンロードします。 展開して、include と lib の中身を適切な位置にコピーします。

user@localhost ~
$ cd /c/SDL_ttf-2.0.9

user@localhost /c/SDL_ttf-2.0.9
$ cp -v include/* /usr/include/SDL/

これでSDL_ttfのインストールは完了です。

Xerces-C++ をコンパイルしてインストールする

Xerces-C++はMinGW用のバイナリが無いので、ソースからコンパイルします。

( あるいは、ダイコン(windows)パッケージに含まれている "libxerces-c2_8_0.dll"を/usr/local/lib にコピーし、下記のパッケージに含まれるヘッダを/usr/local/include にコピーできるなら、 Xerces-C++をコンパイルせずにインストールできるかもしれません。)

まずxerces-cのダウンロードページへ行き、「Latest 2-Series Release」のxerces-c-src_2_8_0.zipをダウンロードします。 展開してMSYSでディレクトリに入ります。

user@localhost ~
$ cd /c/xerces-c-src_2_8_0

user@localhost /c/xerces-c-src_2_8_0
$
次にコンパイル方法(英語)をよく読んでください。

まず、XERCESROOT環境変数に展開したXerces-C++のパスを設定します。

user@localhost /c/xerces-c-src_2_8_0
$ export XERCESROOT=/c/xerces-c-src_2_8_0

次にsrc/xercesc ディレクトリに移動し、"runConfigure -pmingw-msys -cgcc -xg++; make"を実行します。 これにはしばらく時間がかかります。

user@localhost /c/xerces-c-src_2_8_0
$ cd src/xercesc
user@localhost /c/xerces-c-src_2_8_0/src/xercesc
$ runConfigure -pmingw-msys -cgcc -xg++; make

無事にコンパイルできたなら、make installでXerces-C++をインストールします。

user@localhost /c/xerces-c-src_2_8_0/src/xercesc
$ make install

Boost をコンパイルしてインストールする

ダイコンは boost::filesystem を利用するため、バイナリであるboost_filesystem(_2_8_0).dll と boost_system(_2_8_0).dll が必要ですが、 MinGW用のコンパイル済みdll は配布されていません。 そこで、ソースからコンパイルします。(参考)

( あるいは、ダイコン(windows)パッケージに含まれている "boost_filesystem.dll" と "boost_system-mgw34-mt-1_35.dll"を/usr/local/lib にコピーし、下記のパッケージに含まれるヘッダを/usr/local/include にコピーできるなら、 Boostをコンパイルせずにインストールできるかもしれません。)

boostからBoostのソースをダウンロードします。 boost-jamからbjamのバイナリをダウンロードします。 ( Windows(NT系である2000/XP/Vista)を使っているので、boost-jam-x.x.x-x-ntx86.zip を選択します。

boost, boost-jamを展開します。 そして、boost-jamの中にあるbjam.exeをboostのディレクトリにコピーした後、bjamを使ってboostをビルドします。 まずは「コマンドプロンプト」(MSYSじゃないよ)を起動してください。 (MSYSで作業すると時間とメモリを大量に消費したので。)

例では、まずc:\boost-jam-3.1.17-1-ntx86.zipを展開して、 c:\boost-jam-3.1.1.17-1-ntx86 ディレクトリを生成し、 次にc:\boost_1_36_0.tar.bz2を展開して、 c:\boost_1_36_0 ディレクトリを生成したと仮定します。

C:\Documents and Settings\user> cd c:\boost_1_36_0

C:\boost_1_36_0> copy c:\boost-jam-3.1.1.17-1-ntx86\bjam.exe .

C:\boost_1_36_0> set Path=%Path%;C:\MinGW\bin

C:\boost_1_36_0> bjam --toolset=gcc --build-type=complete stage --with-filesystem --with-system

次にMSYSを起動して必要なファイルをコピーします。

user@localhost ~
$ cp -r /c/boost_1_36_0/boost /usr/local/lib

user@localhost ~
$ cp /c/boost_1_36_0/bin.v2/libs/filesystem/build/gcc-mingw-3.4.5/release/threading-multi/boost_filesystem-mgw34-mt-1_36.dll /usr/local/lib

user@localhost ~
$ cp /c/boost_1_36_0/bin.v2/libs/filesystem/build/gcc-mingw-3.4.5/release/threading-multi/boost_filesystem-mgw34-mt-1_36.dll /usr/local/lib

user@localhost ~
$ ln -s /c/usr/local/lib/boost_filesystem-mgw34-mt-1_36.dll /usr/local/lib/boost_filesystem.dll

user@localhost ~
$ ln -s /c/usr/local/lib/boost_system-mgw34-mt-1_36.dll /usr/local/lib/boost_system.dll
以上でBoostのインストールは完了です。

daikon-1.0のダウンロード

ダウンロードのページからdaikon-1.0.tar.gzをダウンロードします。

ソースの展開/コンパイル

Lhaplusなどのツールをつかって、daikon-1.0.tar.gzを展開します。

次に、以下のコマンドを使ってコンパイラとリンカのフラグを調整します。

user@localhost ~
$ export CXXFLAGS="-I/usr/include -I/usr/local/include"

user@localhost ~
$ export LDFLAGS="-L/mingw/lib -L/usr/local/lib -L/usr/lib"
-I はインクルードファイルの検索パスを追加しています。 -L はライブラリの検索パスを追加しています。 ( 私の場合、これを明示しないとうまくコンパイルできませんでした。 )

あとはUnix系と同じように、ディレクトリに入り、./configure; make を実行します。

user@localhost ~
$ cd daikon-1.0

user@localhost ~daikon-1.0
$ ./configure; make
コンパイルが終了すると、src フォルダの中にdaikon.exeという実行ファイルが生成されます。

インストール

make install を行うと、MSYSの/usr/local/bin にインストールされます。 MSYS上では使えるようになりますが、Windows全体として使えるようになるわけではありません。

特定のゲームをクリック一つで起動できるようにするには、起動スクリプトを書いた上で、daikon.exeと同じディレクトリに必要なライブラリを配置するか、環境変数PATHに各ライブラリが格納されているフォルダへのパスを登録する必要があります。

注意

各種ライブラリ(dll)にパスが通っている(Path環境変数が設定されている)必要があります。

MSYSの例:

$ export PATH=$PATH:/usr/lib:/usr/local/lib