朝までFreeciv!

【スポンサー広告】 スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

【日記】 Freecivのコンパイル方法

自分でFreecivをコンパイルしたいという人が、Freecivユーザーのうち一万人に一人ぐらいいるかもしれないのでやり方を書きます。

対象:
Windowsユーザー


Linuxユーザーの人はそっち方面の開発環境を整えればコンパイルできます。Linuxで開発は一般的な方法がwebに書いてあるので検索しましょう。




開発環境の入手

Mingw/MSYSを使用します。
新しいMingw/MSYSを自分で入れてもいいのですが、Freeciv用のプリパッケージが用意されていてこれを使うとgtk-bundle一式も入るので、そこれを使うことにします。


これを書いた時点で最新の gnuwin32-2014-06-10.7z をダウンロードして展開します。
展開して利用する際には、トラブルを避けるためのお約束として次の二点に注意しておきます。
  • Windows利用のユーザー名を日本語にしない (漢字や平仮名のユーザー名ではなくアルファベットだけにする)
  • 展開場所を C:\ などの浅い階層にする、長いフォルダ名やスペースが混じったフォルダ名にしない


gnuwin32 フォルダの中に README が入っているので、これを読む。
Mercurial Queues というのはよく分からないけど、README に書いてある通りにやればちゃんと進める。

最初は msys と少々のツールだけが入った最小限の状態なので、Freecivのコンパイルに必要なものを色々とダウンロードする必要がある。やり方は次の通り。

gnuwin32の中にある msys.bat を起動する
以下、msysのminttyコンソールで作業をする

次のコマンドを入力する
$ hg qpush -a



Freecivのコンパイルに必要なもの一式を自動DL
freeciv-compile1.png


ファイルのダウンロードと展開にしばらく時間がかかるので待ちましょう。
完了すればmingwのgccやmakeやlibtoolなどの開発環境一式だけでなく、All-in-one bundlesやSDLなどの開発ライブラリ一式も手に入ります。自前でMingw/MSYSを入れた場合には開発ライブラリをそれぞれ探して所定の場所に入れないといけないので、こっちの方がその手間が省けて楽でしょう。



Freecivのコンパイル

Freecivのホームページからソースコードを入手し、展開します。
ここでは build-gtk2 というフォルダを作ってからその中で作成しています。

$ tar -jxf freeciv-2.4.3.tar.bzip2

$ cd freeciv-2.4.3/
$ mkdir build-gtk2

$ cd build-gtk2/

$ CC='gcc -mtune=pentium3 -mthreads' CFLAGS=-O2 PKG_CONFIG_PATH=/lib/pkgconfig ../configure --prefix=/local/freeciv --enable-client=gtk-2.0
$ CC='gcc -mtune=pentium3 -mthreads' CFLAGS=-O2 PKG_CONFIG_PATH=/lib/pkgconfig ../configure --prefix=/local/freeciv --enable-client=gtk-2.0
~しばらく待つ~

$ make

~しばらく待つ~

$ make install prefix=/local/freeciv



これでfreecivの実行ファイルが /local/freeciv/bin の中に配置されます。
これをいつも使用しているfreecivの実行ファイルと入れ替えて使います。


Freecivのソースコードの入手と展開
freeciv-compile2.png

ビルド用のフォルダを作成し、その中で作業することにする
freeciv-compile3.png

configureの実行
freeciv-compile4.png

configureが正常に終わったら、makeを実行する
freeciv-compile5.png

追記:
freeciv-2.5.0で、aclocalとautomakeのバージョン違いのためにmakeが失敗する場合

$ ln -s /mingw/bin/aclocal-1.11 /mingw/bin/aclocal-1.14
$ ln -s /mingw/bin/autoamke-1.11 /mingw/bin/automake-1.14

$ make



他にも2.5.0の場合はintltoolのマイナーバージョンの編集が必要かも?


参照






おまけ


MSYSでメッセージカタログをコンバートする方法

ja.po ファイルから ja-new.mo を作るには次のようにする

$msgfmt ja.po -o ja-new.mo



freeciv-compile6.png

ja-new.mo を freeciv.mo に名前を変えて、
share/locale/ja/LC_MESSAGES/
の中にコピーする。







さらにおまけ


svnからソースコードを取得する方法

gnuwin32にはsvnクライアントが入っているので、そのままsvnコマンドが使える。

$ mkdir svn
$ cd svn
$ svn co svn://svn.gna.org/svn/freeciv/trunk freeciv

~~~最新ソースコード(trunk)ではなくて、2.5バージョン系列が欲しい場合はcheckoutを次のようにする~~~
$ svn co svn://svn.gna.org/svn/freeciv/branches/S2_5/ freeciv-S2_5

$ cd freeciv-S2_5/

$ mkdir build-gtk2
$ cd build-gtk2/
$ ../autogen.sh
$ CC='gcc -mtune=pentium3 -mthreads' CFLAGS=-O2 PKG_CONFIG_PATH=/lib/pkgconfig ../configure --prefix=/local/freeciv --enable-client=gtk-2.0



autogenでconfigureスクリプトを生成した後の作業は、普通にtar ballのソースコードを入手した場合と同様になる。
  1. 2014/10/28(火) 20:01:06|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0
<<FreecivのQtクライアント | ホーム | マルチプレイヤールールセット>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://freeciv.blog.fc2.com/tb.php/125-1d99f59b
この記事にトラックバックする(FC2ブログユーザー)
【 このブログの目次 】

プロフィール

指導者

Author:指導者
これはあなたです。このユニットを失うと、ゲームは負けになります。大切にしてね。

つぶやき

最新記事

最新コメント

カテゴリ

月別アーカイブ

最新トラックバック

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。