mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
Additional files for cmake support
This commit is contained in:
parent
d463972da7
commit
27636d9303
28 changed files with 957 additions and 0 deletions
21
win/Makefile.am
Executable file
21
win/Makefile.am
Executable file
|
|
@ -0,0 +1,21 @@
|
|||
# Copyright (C) 2006 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
## Process this file with automake to create Makefile.in
|
||||
EXTRA_DIST = build-vs71.bat build-vs8.bat build-vs8_x64.bat configure.js README
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
82
win/README
Normal file
82
win/README
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
Windows building readme
|
||||
======================================
|
||||
|
||||
----------------IMPORTANT----------------------------
|
||||
This readme outlines the instructions for building
|
||||
MySQL for Windows staring from version 5.0.
|
||||
This readme does not apply to MySQL versions 5.1
|
||||
or ealier.
|
||||
-----------------------------------------------------
|
||||
|
||||
The Windows build system uses a tool named CMake to generate build files for
|
||||
a variety of project systems. This tool is combined with a set of jscript
|
||||
files to enable building of MySQL for Windows directly out of a bk clone.
|
||||
The steps required are below.
|
||||
|
||||
Step 1
|
||||
------
|
||||
Download and install CMake. It can be downloaded from http://www.cmake.org.
|
||||
Once it is installed, modify your path to make sure you can execute
|
||||
the cmake binary.
|
||||
|
||||
Step 2
|
||||
------
|
||||
Download and install bison for Windows. It can be downloaded from
|
||||
http://gnuwin32.sourceforge.net/packages/bison.htm. Please download using
|
||||
the link named "Complete package, excluding sources". This includes an
|
||||
installer that will install bison. After the installer finishes, modify
|
||||
your path so that you can execute bison.
|
||||
|
||||
Step 3
|
||||
------
|
||||
Clone your bk tree to any location you like.
|
||||
|
||||
Step 4
|
||||
------
|
||||
From the root of your bk clone, execute the command: win\configure <options>.
|
||||
The options right now are
|
||||
|
||||
WITH_INNOBASE_STORAGE_ENGINE Enable particular storage engines
|
||||
WITH_PARTITION_STORAGE_ENGINE
|
||||
WITH_ARCHIVE_STORAGE_ENGINE
|
||||
WITH_BERKELEY_STORAGE_ENGINE
|
||||
WITH_BLACKHOLE_STORAGE_ENGINE
|
||||
WITH_EXAMPLE_STORAGE_ENGINE
|
||||
WITH_FEDERATED_STORAGE_ENGINE
|
||||
WITH_INNOBASE_STORAGE_ENGINE
|
||||
__NT__ Enable named pipe support
|
||||
MYSQL_SERVER_SUFFIX=<suffix> Server suffix, default none
|
||||
COMPILATION_COMMENT=<comment> Server comment, default "Source distribution"
|
||||
MYSQL_TCP_PORT=<port> Server port, default 3306
|
||||
CYBOZU
|
||||
|
||||
So the command line could look like:
|
||||
|
||||
win\configure WITH_INNOBASE_STORAGE_ENGINE WITH_PARTITION_STORAGE_ENGINE MYSQL_SERVER_SUFFIX=-pro
|
||||
|
||||
Step 5
|
||||
------
|
||||
From the root of your bk clone, execute one of the batch files to generate the type
|
||||
of project files you desire.
|
||||
|
||||
For Visual Studio 8, do win\build-vs8.
|
||||
For Visual Studio 7.1, do win\build-vs71.
|
||||
|
||||
We will support building with nmake in the near future.
|
||||
|
||||
Step 6
|
||||
------
|
||||
From the root of your bk clone, start your build.
|
||||
|
||||
For Visual Studio, simply execute mysql.sln. This will start the IDE and you can
|
||||
click the build solution menu option.
|
||||
|
||||
Current issues
|
||||
--------------
|
||||
1. After changing configuration (eg. adding or removing a storage engine), it
|
||||
may be necessary to clean the build tree to remove any stale objects.
|
||||
|
||||
2. To use Visual C++ Express Edition you also need to install the Platform SDK.
|
||||
Please see this link: http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/
|
||||
At step 4 you only need to add the libraries advapi32.lib and user32.lib to
|
||||
the file "corewin_express.vsprops" in order to avoid link errors.
|
||||
7
win/build-vs71.bat
Executable file
7
win/build-vs71.bat
Executable file
|
|
@ -0,0 +1,7 @@
|
|||
@echo off
|
||||
|
||||
if exist cmakecache.txt del cmakecache.txt
|
||||
copy win\vs71cache.txt cmakecache.txt
|
||||
cmake -G "Visual Studio 7 .NET 2003"
|
||||
copy cmakecache.txt win\vs71cache.txt
|
||||
|
||||
6
win/build-vs8.bat
Executable file
6
win/build-vs8.bat
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
|
||||
if exist cmakecache.txt del cmakecache.txt
|
||||
copy win\vs8cache.txt cmakecache.txt
|
||||
cmake -G "Visual Studio 8 2005"
|
||||
copy cmakecache.txt win\vs8cache.txt
|
||||
6
win/build-vs8_x64.bat
Executable file
6
win/build-vs8_x64.bat
Executable file
|
|
@ -0,0 +1,6 @@
|
|||
@echo off
|
||||
|
||||
if exist cmakecache.txt del cmakecache.txt
|
||||
copy win\vs8cache.txt cmakecache.txt
|
||||
cmake -G "Visual Studio 8 2005 Win64"
|
||||
copy cmakecache.txt win\vs8cache.txt
|
||||
166
win/configure.js
Executable file
166
win/configure.js
Executable file
|
|
@ -0,0 +1,166 @@
|
|||
// Configure.js
|
||||
|
||||
ForReading = 1;
|
||||
ForWriting = 2;
|
||||
ForAppending = 8;
|
||||
|
||||
try
|
||||
{
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
|
||||
var args = WScript.Arguments
|
||||
|
||||
// read in the Unix configure.in file
|
||||
var configureInTS = fso.OpenTextFile("configure.in", ForReading);
|
||||
var configureIn = configureInTS.ReadAll();
|
||||
configureInTS.Close();
|
||||
var default_comment = "Source distribution";
|
||||
var default_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT");
|
||||
|
||||
var configfile = fso.CreateTextFile("win\\configure.data", true);
|
||||
for (i=0; i < args.Count(); i++)
|
||||
{
|
||||
var parts = args.Item(i).split('=');
|
||||
switch (parts[0])
|
||||
{
|
||||
case "WITH_ARCHIVE_STORAGE_ENGINE":
|
||||
case "WITH_BERKELEY_STORAGE_ENGINE":
|
||||
case "WITH_BLACKHOLE_STORAGE_ENGINE":
|
||||
case "WITH_EXAMPLE_STORAGE_ENGINE":
|
||||
case "WITH_FEDERATED_STORAGE_ENGINE":
|
||||
case "WITH_INNOBASE_STORAGE_ENGINE":
|
||||
case "WITH_PARTITION_STORAGE_ENGINE":
|
||||
case "__NT__":
|
||||
case "CYBOZU":
|
||||
configfile.WriteLine("SET (" + args.Item(i) + " TRUE)");
|
||||
break;
|
||||
case "MYSQL_SERVER_SUFFIX":
|
||||
configfile.WriteLine("SET (" + parts[0] + " \""
|
||||
+ parts[1] + "\")");
|
||||
break;
|
||||
case "COMPILATION_COMMENT":
|
||||
default_comment = parts[1];
|
||||
break;
|
||||
case "MYSQL_TCP_PORT":
|
||||
default_port = parts[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
configfile.WriteLine("SET (COMPILATION_COMMENT \"" +
|
||||
default_comment + "\")");
|
||||
|
||||
configfile.WriteLine("SET (PROTOCOL_VERSION \"" +
|
||||
GetValue(configureIn, "PROTOCOL_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (DOT_FRM_VERSION \"" +
|
||||
GetValue(configureIn, "DOT_FRM_VERSION") + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_TCP_PORT \"" + default_port + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_UNIX_ADDR \"" +
|
||||
GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT") + "\")");
|
||||
var version = GetVersion(configureIn);
|
||||
configfile.WriteLine("SET (VERSION \"" + version + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_BASE_VERSION \"" +
|
||||
GetBaseVersion(version) + "\")");
|
||||
configfile.WriteLine("SET (MYSQL_VERSION_ID \"" +
|
||||
GetVersionId(version) + "\")");
|
||||
|
||||
configfile.Close();
|
||||
|
||||
//ConfigureBDB();
|
||||
|
||||
fso = null;
|
||||
|
||||
WScript.Echo("done!");
|
||||
}
|
||||
catch (e)
|
||||
{
|
||||
WScript.Echo("Error: " + e.description);
|
||||
}
|
||||
|
||||
function GetValue(str, key)
|
||||
{
|
||||
var pos = str.indexOf(key+'=');
|
||||
if (pos == -1) return null;
|
||||
pos += key.length + 1;
|
||||
var end = str.indexOf("\n", pos);
|
||||
if (str.charAt(pos) == "\"")
|
||||
pos++;
|
||||
if (str.charAt(end-1) == "\"")
|
||||
end--;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetVersion(str)
|
||||
{
|
||||
var key = "AM_INIT_AUTOMAKE(mysql, ";
|
||||
var pos = str.indexOf(key); //5.0.6-beta)
|
||||
if (pos == -1) return null;
|
||||
pos += key.length;
|
||||
var end = str.indexOf(")", pos);
|
||||
if (end == -1) return null;
|
||||
return str.substring(pos, end);
|
||||
}
|
||||
|
||||
function GetBaseVersion(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
dot = version.indexOf(".", dot+1);
|
||||
if (dot == -1) dot = version.length;
|
||||
return version.substring(0, dot);
|
||||
}
|
||||
|
||||
function GetVersionId(version)
|
||||
{
|
||||
var dot = version.indexOf(".");
|
||||
if (dot == -1) return null;
|
||||
var major = parseInt(version.substring(0, dot), 10);
|
||||
|
||||
dot++;
|
||||
var nextdot = version.indexOf(".", dot);
|
||||
if (nextdot == -1) return null;
|
||||
var minor = parseInt(version.substring(dot, nextdot), 10);
|
||||
dot = nextdot+1;
|
||||
|
||||
var stop = version.indexOf("-", dot);
|
||||
if (stop == -1) stop = version.length;
|
||||
var build = parseInt(version.substring(dot, stop), 10);
|
||||
|
||||
var id = major;
|
||||
if (minor < 10)
|
||||
id += '0';
|
||||
id += minor;
|
||||
if (build < 10)
|
||||
id += '0';
|
||||
id += build;
|
||||
return id;
|
||||
}
|
||||
|
||||
function ConfigureBDB()
|
||||
{
|
||||
// read in the Unix configure.in file
|
||||
var dbIncTS = fso.OpenTextFile("..\\bdb\\dbinc\\db.in", ForReading);
|
||||
var dbIn = dbIncTS.ReadAll();
|
||||
dbIncTS.Close();
|
||||
|
||||
dbIn = dbIn.replace("@DB_VERSION_MAJOR@", "$DB_VERSION_MAJOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_MINOR@", "$DB_VERSION_MINOR");
|
||||
dbIn = dbIn.replace("@DB_VERSION_PATCH@", "$DB_VERSION_PATCH");
|
||||
dbIn = dbIn.replace("@DB_VERSION_STRING@", "$DB_VERSION_STRING");
|
||||
|
||||
dbIn = dbIn.replace("@u_int8_decl@", "typedef unsigned char u_int8_t;");
|
||||
dbIn = dbIn.replace("@int16_decl@", "typedef short int16_t;");
|
||||
dbIn = dbIn.replace("@u_int16_decl@", "typedef unsigned short u_int16_t;");
|
||||
dbIn = dbIn.replace("@int32_decl@", "typedef int int32_t;");
|
||||
dbIn = dbIn.replace("@u_int32_decl@", "typedef unsigned int u_int32_t;");
|
||||
|
||||
dbIn = dbIn.replace("@u_char_decl@", "{\r\n#if !defined(_WINSOCKAPI_)\r\n" +
|
||||
"typedef unsigned char u_char;");
|
||||
dbIn = dbIn.replace("@u_short_decl@", "typedef unsigned short u_short;");
|
||||
dbIn = dbIn.replace("@u_int_decl@", "typedef unsigned int u_int;");
|
||||
dbIn = dbIn.replace("@u_long_decl@", "typedef unsigned long u_long;");
|
||||
|
||||
dbIn = dbIn.replace("@ssize_t_decl@", "#endif\r\n#if defined(_WIN64)\r\n" +
|
||||
"typedef __int64 ssize_t;\r\n#else\r\n" +
|
||||
"typedef int ssize_t;\r\n#endif");
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue