Transactd ビルドガイド for Windows ============================================================ 1. コンパイラの準備 ------------------------------------------------------------ Transactd Plugin および Transactd クライアントは、Windows上のVisual Studio (32bit/64bit)でビルドできます。ここでは、以下の環境でのビルドを想定して進めます 。 * Windows 7 (64bit) * Visual Studio 2010 Express Visual Studio 2010 Expressで64bitビルドを行うには、別途Windows SDKのインストール が必要になります。32bitビルドの場合やExpress版でない場合は不要です。 以下のソフトウェアをインストールします。 * [Visual Studio 2010 Express ダウンロードページ(Microsoft)]( http://www.microsoft.com/visualstudio/jpn/downloads#d-2010-express) * [Windows SDK for Windows 7 ダウンロードページ(Microsoft Download Center)]( http://www.microsoft.com/en-us/download/details.aspx?id=8442) (GRMSDKX_EN_DVD.iso をダウンロードし、マウントしてインストーラを実行) ### Visual Studioコマンドプロンプトの起動方法 後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。 [スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2010 Express]- [Visual Studio コマンドプロンプト (2010)]を選択し起動します。 Visual Studio 2010 Express には、64bit版ビルドツール用の Visual Studioコマンド プロンプトが付属しません。代わりに、64bit用ビルドツールのパスを設定するための バッチファイルを作成し、そこから起動します。 以下の内容のファイルを作成し、`set64env.cmd`という名前でデスクトップに保存します 。 ``` %comspec% /k "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 ``` 2. CMakeのダウンロードとインストール ------------------------------------------------------------ [CMake ダウンロードページ](http://www.cmake.org/cmake/resources/software.html)か らWindows (Win32 Installer) をダウンロードし実行します。 途中、「Add CMake to the system PATH for all(or current) users」を選択し、 cmakeの実行ファイルにパスが通るようにします。 3. Boost C++ Libraries のダウンロードとインストール ------------------------------------------------------------ ### 3-a ビルド済みバイナリのダウンロード [BoostProのダウンロードページ](http://www.boostpro.com/download)から、 BoostPro 1.51.0 Installer (64-bit)をダウンロードし、インストールします。 BoostProインストーラの「Select Default Variants」では以下の項目にチェックを入れ ます。 * Visual C++ 10.0 * Mlutithread, static runtime * Mlutithread debug, static runtime 次の「Choose Components」では、以下のコンポーネント以外のチェックは外してもかま いません。 * chrono * filesystem * system * thread * timer インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設 定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必 要はありません。 ``` TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32 TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64 ``` 環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から 行います。 ### 3-b ソースからのビルド 自分でboostをビルドする場合は、[Boostのダウンロードページ]( http://www.boost.org/users/download )からソースコードをダウンロードし、解凍しま す。ここでは、以下のフォルダに保存したものとします。 ``` C:\Program Files\boost\boost_1_54_0 ``` Visual Studioコマンドプロンプトを起動します。以下のコマンドを実行し、Boostのビル ドを行います。 ``` cd C:\Program Files\boost\boost_1_54_0 bootstrap.bat bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^ variant=debug,release link=static runtime-link=static bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^ --with-chrono --with-filesystem --with-system --with-thread --with-timer ^ variant=debug,release link=static runtime-link=shared ``` インストールができたら、システム環境変数に `TI_BOOST_ROOT_32` および `TI_BOOST_ROOT_64`という変数を追加し、32bitと64bitのフォルダのパスを値として設 定します。自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必 要はありません。 ``` TI_BOOST_ROOT_32 = c:\boost\boost_1_51_32 TI_BOOST_ROOT_64 = c:\boost\boost_1_51_64 ``` 環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から 行います。 4. サーバープラグインとクライアントの両方をビルド ------------------------------------------------------------ クライアントのみをビルドしたい場合はこのステップを飛ばしてください。 ### 4-1 MySQLソースコードのダウンロード [MySQL Community Serverのダウンロードページ](http://dev.mysql.com/downloads/mysql) からソースコードをダウンロードします。 「Select Platform」のプルダウンから「Source Code」を選択し、Windows ZIP形式の ファイルをダウンロードします。 ダウンロードした圧縮ファイルを解凍します。ここでは、以下のフォルダに保存したも のとします。 ``` C:\Users\Public\Documents\mysql-5.6.13 ``` ### 4-2 Transactd Pluginソースコードのダウンロード [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp) からソースコードをダウンロードします。 ダウンロードしたソースコードを、4-1で展開したMySQLソースコードのpluginフォルダに 展開します。ここでは、以下のようなフォルダ構造になります。 ``` C:\Users\Public\Documents\mysql-5.6.13\plugin\transactd ``` ### 4-3 MySQLソースコードの修正 #### 4-3.1 パッチの適用 Transactd Pluginソースコードのpatchディレクトリにmysqlのソースコードを修正する ためのパッチが含まれています。そのパッチをmysqlのソースディレクトリにコピー します。(パッチはmysql/mariadbのバージョンごとに異なる名前になっています。 パッチ名のバージョンの部分は合ったものに変更してください。) ``` cd C:\Users\Public\Documents\mysql-5.6.13 copy plugin\transactd\patch\transactd-win-mysql-5.6.13.patch * ``` patchコマンドを使用できる環境(Cygwin、Git Bashなど)があるならば、以下の コマンドでパッチを適用します。 ``` cd C:\Users\Public\Documents\mysql-5.6.13 patch -p0 -i transactd-win-mysql-5.6.13.patch ``` patchコマンドがない場合、[宮坂 賢 氏のGNU patch 2.5.4 (Win32 版)]( http://cetus.sakura.ne.jp/softlab/toolbox1/index.html#difpat)をダウンロードし 使用します。 ここでは、以下のフォルダに保存したものとします。 ``` C:\Program Files (x86)\patc254w ``` 以下のコマンドでパッチを適用します。 ``` cd C:\Users\Public\Documents\mysql-5.6.13 "C:\Program Files (x86)\patc254w\patch.exe" -p0 --binary -i transactd-win-mysql-5.6.13.patch ``` #### 4-3.2 ソースコードのエンコーディングの修正 日本語Windows環境でビルドする場合、一部のソースコードのエンコーディングを変更する 必要があります。以下のファイルをVisual Studioから開き、[名前を付けて保存]- [上書き保存]の右の▼をクリック-[エンコード付きで保存]を選択し、 「Unicode (UTF-8 シグネチャ付き)-コードページ 65001」で上書き保存します。 * sql\sql_locale.cc * storage\perfschema\unittest\pfs_connect_attr-t.cc ### 4-4 CMakeの実行 Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。 ``` cd C:\Users\Public\Documents\mysql-5.6.13 md bldVC100x64 cd bldVC100x64 cmake .. -G "Visual Studio 10 Win64" ^ -DWITH_TRANSACTD_SERVER=ON -DWITH_TRANSACTD_CLIENTS=ON ^ -DBUILD_CONFIG=mysql_release ``` ### 4-5 ビルド CMakeが完了すると、以下のソリューションファイルが生成されています。 ``` C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\MySQL.sln ``` MySQL.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構 成を「RelWithDebInfo」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま す。 バイナリは以下のフォルダに出力されます。 ``` C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\sql\lib\plugin C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\bin C:\Users\Public\Documents\mysql-5.6.13\bldVC100x64\plugin\transactd\lib ``` 5. クライアントのみをビルド ------------------------------------------------------------ ### 5-1 Transactd Pluginソースコードのダウンロード [Transactd Pluginのダウンロードページ](http://www.bizstation.jp/al/transactd/download/index.asp) からソースコードをダウンロードします。 ここでは、以下のフォルダに展開したとします。 ``` C:\Users\Public\Documents ``` ### 5-2 CMakeの実行 Visual Studioコマンドプロンプトを起動して、以下のコマンドを実行します。 ``` cd C:\Users\Public\Documents\transactd md bldVC100x64 cd bldVC100x64 cmake .. -G "Visual Studio 10 Win64" ^ -DWITH_TRANSACTD_SERVER=OFF -DWITH_TRANSACTD_CLIENTS=ON ^ -DBOOST_ROOT="C:\Program Files\boost\boost_1_54_0" ``` ### 5-3 ビルド CMakeが完了すると、以下のソリューションファイルが生成されています。 ``` C:\Users\Public\Documents\transactd\bldVC100x64\tdcl.sln ``` tdcl.slnをVisual Studioで開きます。メニューの[ビルド]-[構成マネージャー]から構 成を「RelWithDebInfo」に変更し、[ビルド]-[ソリューションのビルド]をクリックしま す。 バイナリは以下のフォルダに出力されます。 ``` C:\Users\Public\Documents\transactd\bldVC100x64\bin C:\Users\Public\Documents\transactd\bldVC100x64\lib ```