Compilare MariaDB su Windows
Contents
- Requisiti
- Building Windows Binaries
- Build Variations:
- Optional build parameters
- Building the ZIP package
- Building the MSI package
- Including HeidiSQL in the MSI installer
- Code signing support for MariaDB release processing
- Building packages for MariaDB releases
- Old-style building (MariaDB 5.1)
- Miscellaneous
Il procedimento per compilare MariaDB 5.2 e successivi su Windows è compatibile con MySQL5.5, perciò si possono usare le istruzioni sul MySQL CMake Wiki. Inoltre, sono disponibili qui le istruzioni di compilazione passo-passo per Visual Studio Express. Le istruzioni in questa pagina presuppongono che si siano lette queste due risorse.
Requisiti
Per compilare MariaDB occorre quanto segue:
- Visual C++: attualmente supportiamo Visual Studio 2008 e 2010, comprese le edizioni gratuite express (generalmente cerchiamo di supportare le due versioni più recenti). Si installino anche i service pack più recenti, che sono (al momento in cui si scrive) SP1 per VS2008 e VS2010.
- Bazaar: Necessario per compilare dai sorgenti. Si usi l'installer standalone e si scelgano le opzioni predefinite.
- CMake 2.8: Il sistema di build.
- Bison di GnuWin32:
Bison crea alcune parti del parser SQL parser. Si selezioni "Complete package
except sources" (pacchetto completo senza i sorgenti) quando si scarica.
- NOTA: Non non lo si installi in un percorso che contiene spazi
(esempio:
C:\Program Files\GnuWin32
), la build non funzionerebbe a causa di un bug di bison. Invece, si installi sottoC:\GnuWin32
. - Si aggiunga
C:\GnuWin32\bin
alla variabile di sistemaPATH
dopo l'installazione.
- NOTA: Non non lo si installi in un percorso che contiene spazi
(esempio:
- Strawberry perl: Necessario per eseguire la test suite. ActiveState Perl è un'altra distribuzione di Perl per Win32 che dovrebbe andare bene (ma non è stata testata allo stesso modo).
- Opzionale: Se si intende creare pacchetti MSI, si installi Windows Installer XML version 3.0 o superiore
- Opzionale: Gnu Diff, raccomandato per gli sviluppatori MariaDB, migliora l'output degli errori della utility di test mysql-test-run.pl
Si verifichi che bison.exe, bzr.exe, cmake.exe e perl.exe si trovino nella variabile di ambiente PATH, con "where bison
", "where bzr
", etc. dal prompt dei comandi.
Building Windows Binaries
The above instructions assume MariaDB 5.2 or higher. For instructions how to build 5.1, look in the section "Old Style Build".
Branch the MariaDB bzr repository, or unpack the source archive. On the command prompt, switch to your source directory, then execute:
mkdir bld cd bld cmake .. cmake --build . --config Relwithdebinfo
The above example builds a release configured for 32 bit systems in a
subdirectory named bld
. "cmake ...
" is the configuration step,
"cmake --build . --config Relwithdebinfo
" is the build step.
Build Variations:
Debug builds
Building Debug version is done with:
cmake --build . --config Debug
x64 builds
By default, cmake will create 32 bit projects. For 64 bit, you must pass CMake the "generator" parameter using -G in the configuration step, e.g.:
cmake .. -G "Visual Studio 10 Win64"
for VS2010 or
cmake .. -G "Visual Studio 9 2008 Win64"
for VS2008.
For complete list of available generators, call "cmake" without any parameters.
IDE builds
Instead of calling "cmake --build
" as above, open MySQL.sln
. When Visual Studio starts, choose Build/Compile.
NMake builds
Ensure the Visual Studio environment variable are correctly set, e.g. build from "Visual Studio 2010 Command prompt" (Start=>All Programs=>Microsoft Visual Studio 2010=>Visual Studio tools=>Visual Studio Commad Prompt (2010)). It can be convenient to create a shortcut from to "Visual Studio Command Prompt(2010) on the desktop (navigate in start menu to find it, then rightclick=>Send To=>Desktop (create shortcut)" On the command line, execute
mkdir bld cd bld cmake .. -G "NMake Makefiles" nmake
You can optionally pass -DCMAKE_BUILD_TYPE={Debug|RelWithDebInfo}
to cmake
to build either debug or release.
devenv builds
Ensure the Visual Studio environment variable are correctly set (see above). to build, execute
devenv mysql.sln /build relwithdebinfo
or, for debug builds
devenv mysql.sln /build debug
Optional build parameters
MySQL CMake Wiki describes how to use
optional parameters in build. Perhaps single important parameter in MariaDB is
WITH_EMBEDDED_SERVER
(build with embedded server). It is not set by default
in the build, since it effectively doubles the compilation time. Use
cmake -DWITH_EMBEDDED_SERVER=1
to enable embedded builds.
Building the ZIP package
cmake --build . --config relwithdebinfo --target package
Building the MSI package
cmake --build . -- config relwithdebinfo --target msi
Some versions of CMake 2.8 (up to 2.8.3) require slightly different commands for building an MSI with VS2010
cmake --build . --config relwithdebinfo --target win/packaging/msi
Including HeidiSQL in the MSI installer
Starting with MariaDB 5.2.7, it is possible to build an installer which
includes 3rd party products, as described in
MWL#200. Currently only
HeidiSQL support is implemented, it is also
included in the official builds. Use CMake parameter
-DWITH_THIRD_PARTY=HeidiSQL
to include it in the installer.
Code signing support for MariaDB release processing
MariaDB builds optionally support authenticode code signing with an optional
parameter SIGNCODE
. Use cmake -DSIGNCODE=1
during the
configuration step to sign the binaries in the ZIP
and MSI
packages.
Important: for SIGNCODE=1
to work, the user who runs the build needs to
install a valid authenticode digital certificate into his certificate store,
otherwise the packaging step will fail.
Building packages for MariaDB releases
The full script to create the release in an out-of-source build with Visual Studio 2010 with signed binaries might look like:
mkdir bld cd bld cmake .. -DWITH_EMBEDDED_SERVER=1 -DSIGNCODE=1 -DWITH_THIRD_PARTY=HeidiSQL cmake --build . --config relwithdebinfo --target package cmake --build . --config relwithdebinfo --target msi
This command sequence will produce a ZIP package (e.g mariadb-5.2.6-win32.zip)
and MSI package (e.g mariadb-5.2.6-win32.msi) in the bld
directory.
Old-style building (MariaDB 5.1)
The difference between legacy MariaDB 5.1 builds vs later versions is:
- 5.1 cannot be built out-of-source.
- 5.1 requires an additional step (win\configure-mariadb.bat) during configuration.
- 5.1 requires a prepackaged source distribution (made on Unix only) to create the ZIP package. It also requires Cygwin to create the ZIP.
- 5.1 does not feature the new MSI installer, instead NSIS is used. Building NSIS also requires the pre-packaged source distribution and cannot be made from a bzr repository.
Here is how to build 5.1:
win\configure-mariadb.bat cmake . cmake . --build relwithdebinfo
ZIP packaging in 5.1
The process for producing the 5.1 binary ZIP is as follows:
- Make the source tarball. This can only be done on Unix (we use Linux) by
running
BUILD/compile-dist && make dist
. See Creating the MariaDB Source Tarball for full instructions.- In BuildBot, this is done using the hardy-amd64-makedist builder.
- Compile and package on Windows. This is done by unpacking the source tarball
on Windows and running
sh win/make_mariadb_win_dist
.- In Buildbot, this done by the win32-make-noinstall-zip builder.
NSIS installer in 5.1
If you want to create the release, you also need NSIS.
Build the server as usual. You should then build the release, not debug or any
other. When the server has been built, simply run "cpack
" in
the top directory to create the .exe package.
Miscellaneous
- In 5.2 and later, Cygwin is not required for any build step and is not supported. Don't use it, if you can.
- To compile OQGRAPH engine, Boost needed to be installed. Download Boost redistribution from http://www.boost.org/ and unpack it. Set environment variable BOOST_ROOT to point to the directory where you unpacked boost in the previous step. Note: OQGRAPH build is currently disabled on x64 due to Bug #756966