#contents
RIGHT:
&size(10){''更新履歴''};
&size(10){サーバー用の設定を追加 2011/08/20};
&size(10){初版。MinGWの項のみ 2010/04/30};
*ソースコードのビルド方法 [#vb45419e]
#div(start,noteblue)
詳しい方がおられましたら、どんどん補足、修正をお願いします。
#div(end)
**ソースコードを入手する [#qa9cfeff]
リリース版のソースは[[SourceForge:http://sourceforge.net/projects/simutrans/files/simutrans/]]にある。
//開発中のソースのSVNでの入手方法はhttp://simutrans-germany.com/wiki/wiki/tiki-index.php?page=en_CompilingSimutrans 参照。
//http://en.wiki.simutrans.com/index.php/Source_Code 参照。
開発中のソースは個人のSVNサーバーで管理されているので、そこから入手可能。
|svnサーバー|svn://tron.homeunix.org/simutrans|
|ユーザー名|anon|
|パスワード|(空白)|

開発トランクはGitHubでもミラーされている。http://github.com/aburch/simutransからも入手可能。
**MinGWでのGDI版のビルド方法(Windows) [#l48c033c]
http://japanese.simutrans.com/bbs/test/read.cgi/tokusetu/1270203794/46さんの解説を使用しました。感謝。

+MinGWとMSYSをインストール。
+http://sourceforge.net/project/showfiles.php?group_id=2435 からbzip2-1.0.5-2-mingw32-dev.tar.gzとlibz-1.2.3-1-mingw32-dev.tar.gzをダウンロードする。
+ダウンロードしたファイルをTGZ形式を解凍できるツールで解凍して、中のincludeとlibをMinGWのインストール先(デフォルトではC:\MinGW")に上書きコピーする。
+http://libunicows.sourceforge.net/ からlibunicows-1.1.1-mingw32.zipをダウンロードして、 libunicows.aをMinGWのインストール先のlib内にコピー。
+ソース内のconfig.templateをコピーしてconfig.defaultを作成する。
+config.defaultを適当なテキストエディタで開く(改行がLFなのでメモ帳は不可)。
+以下の行の先頭の#を削除。
 BACKEND = gdi
 COLOUR_DEPTH = 16
 OSTYPE = mingw
 OPTIMISE = 1
+FLAGS = -DSTEPS16 を FLAGS = -DSTEPS16 -static-libgcc に変更。
#div(start,noteyellow,margin:0)
フラグ-DSTEPS16はすでに使用されていないため、開発トランクではこの行はありません。
FLAGS = -static-libgcc 行を新規にを付け加えてください
#div(end)
+スタートメニューから「MinGW」→「MSYS」→「MSYS」でMSYSのコンソールを開く。
+ソースのあるディレクトリに移動する。c:\src\simutrans-src-102-2-2にソースがある場合は cd /c/src/simutrans-src-102-2-2 と入力してEnter。
+make CC="gcc" LDFLAGS="-static" と入力してEnter。
+うまくいけばsim.exeができる。
***コマンドプロンプトを開かない方法 [#y33bb358]
 50 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/04/29(木) 22:14:13 ID:kaTXIpwM
 >>46
 この方法でコンパイルした実行ファイルを実行すると
 コマンドプロンプトも一緒に開いちゃうんだけど、これってどこいじれば消せる?
 ソース?それともconfig.default?
 
 51 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2010/04/30(金) 01:36:06 ID:xZ3djKPE
 >>50
 LDFLAGSに-mwindows付ければ消えるよ
***SDL版のビルド [#s4fd7286]
-SDL、SDL_mixerの ライブラリが必要→どこから入手?

***サーバー専用にする [#cfbb260d]

config.defaultで、「BACKEND = posix」、「COLOUR_DEPTH = 0」に設定します。
起動時には、pakセット、言語などをコマンドラインから指定する必要があります。&br;(例)「-objects pak -lang ja」

***nettoolのビルド [#na670a81]
Makefileで「 -lwsock32」が不足しているようです。STD_LIBSに追加したら成功しました。
***makeobjのビルド [#wa3b14bd]
-makeobjディレクトリにある
-pngライブラリが必要→どこから入手?
-リリース版では、simutransのビルドと競合するので、/utils/log.dと/utils/log.oとを削除しておく。(開発トランクでは競合しないように修正されているので必要なし)

開発トランクのmakeobjソースコードは仕様が確定していないため、これで作成したpakは将来使用できなくなる可能性があります&imgfolder(16/exclamation.png);
**MSVC++ Expressでのビルド方法(Windows) [#a9f8b600]
+まずソースコードを入手しますが、SourceForgeからダウンロードしたものだとVC++用プロジェクトファイルが付いてこないので、SVNかGitHubからダウンロードします。&br;リビジョンが合っていればsourceforgeからダウンロードしたものにsvnやgitからダウンロードしたプロジェクトファイルを組み合わせても大丈夫です。必要なファイルはSimutrans.sln,Simutrans.vcproj,rivision.jse,simres.rcです。&br;VS10用のプロジェクトファイルはバグがあるので注意、VS10使用時でも通常版を読み込みましょう。最近のリビジョンでは削除されました。
+[[英語フォーラム:652]]からlibbz2.zipとbzlib.hがダウンロードできるので、適当なフォルダに保存します。libbz2.zipは展開しておきます。
+[[OpenTTD用のライブラリ:http://binaries.openttd.org/extra/openttd-useful/]]をダウンロードし、こちらも適当な場所に展開します。
+[[pthreadsのライブラリ:http://sourceware.org/pthreads-win32/]]をftpからダウンロードします。dll-latestの下のinclude,lib,dll内のファイルをすべて保存します。
+ソースフォルダ内のソリューションファイル(Simutrans.sln)かプロジェクトファイル(Simutrans.vcproj)を開きます。
+ソリューションエクスプローラからプロジェクトのプロパティを開き、構成プロパティのVC++ディレクトリを選択します。
+インクルードディレクトリに保存しておいたhファイルの入ったディレクトリを追加します。OpenTTD用ライブラリの物は"展開したフォルダ\shared\include"にあります。
+ライブラリディレクトリに保存しておいたlibファイル,aファイル,dllファイルの入ったディレクトリを指定します。OpenTTD用ライブラリの物は"展開したフォルダ\win32\library"にあります。
+プロジェクトをビルドします。上手くいけばソースフォルダ内のDebugフォルダにSimutrans.exeが出来ています。&br;Debug版だとデバッグ用の表示が追加されているので、Release版に変更してビルドすると無くなります。Debug版とは別にもう一度構成プロパティの変更が必要なので注意。

参考リンク:
-[[英語フォーラム:652]] How to compile Simutrans (&Makeobj) on Windows with MSVC

*パッチの当て方 [#da6325af]
simutrans本体の改変版は、実行ファイル形式で配布することも多いですが、ソースコードの差分を記述したパッチという形式で配布される場合が多々あります(拡張子は.patchか.diff)。小規模な変更の場合はパッチファイルのみ配布されることが多いです。
パッチファイルはあくまでもソースコードの差分を記述したファイルなので、ソースコードにパッチを当ててからビルドし実行ファイルを作ることでパッチの機能が付与されたsimutrans本体が出来上がります。

パッチファイルを当てる方法は大きく分けて2種類あり、1つはコマンドライン上からpatchというコマンドを実行する方法です。
Windowsのコマンドプロンプトにはpatchコマンドが付いてこないので、MinGWやCygwinを用いるかWindows移植版のpatch.exeをダウンロードしpathを通します。
基本的にはsimutransのソースコードが入っているディレクトリで「patch -p0 <パッチファイル名」と行えば大丈夫です。詳しい使い方は[[MANを参照:http://linuxjm.sourceforge.jp/html/GNU_patch/man1/patch.1.html]]。

もう1つはGUIの付いたアプリケーションを使って当てる方法です。筆者は[[TurtoiseSVN:http://tortoisesvn.net/]]というアプリケーションを用いています。(SVNからソースコードを入手したりするのにも便利)
インストール方法は省略。simutransのソースコードの入ったフォルダを右クリックし、「パッチを適用」を選択しパッチファイルを開くとパッチ処理が行われます。