diff options
author | unknown <georg@lmy002.wdf.sap.corp> | 2006-08-31 19:52:42 +0200 |
---|---|---|
committer | unknown <georg@lmy002.wdf.sap.corp> | 2006-08-31 19:52:42 +0200 |
commit | 8f4477281eb5f110094927abe7dabd67c8525fc5 (patch) | |
tree | 1a7d7e96d4dcd302dbe513ad50a16ea05cb7ed16 /win | |
parent | 085446b8c8de9154be2673efd7c8676ececd83ff (diff) | |
download | mariadb-git-8f4477281eb5f110094927abe7dabd67c8525fc5.tar.gz |
Additional files for cmake support
CMakeLists.txt:
New BitKeeper file ``CMakeLists.txt''
bdb/CMakeLists.txt:
New BitKeeper file ``bdb/CMakeLists.txt''
client/CMakeLists.txt:
New BitKeeper file ``client/CMakeLists.txt''
dbug/CMakeLists.txt:
New BitKeeper file ``dbug/CMakeLists.txt''
extra/CMakeLists.txt:
New BitKeeper file ``extra/CMakeLists.txt''
extra/yassl/CMakeLists.txt:
New BitKeeper file ``extra/yassl/CMakeLists.txt''
extra/yassl/taocrypt/CMakeLists.txt:
New BitKeeper file ``extra/yassl/taocrypt/CMakeLists.txt''
heap/CMakeLists.txt:
New BitKeeper file ``heap/CMakeLists.txt''
innobase/CMakeLists.txt:
New BitKeeper file ``innobase/CMakeLists.txt''
libmysql/CMakeLists.txt:
New BitKeeper file ``libmysql/CMakeLists.txt''
myisam/CMakeLists.txt:
New BitKeeper file ``myisam/CMakeLists.txt''
myisammrg/CMakeLists.txt:
New BitKeeper file ``myisammrg/CMakeLists.txt''
mysys/CMakeLists.txt:
New BitKeeper file ``mysys/CMakeLists.txt''
regex/CMakeLists.txt:
New BitKeeper file ``regex/CMakeLists.txt''
server-tools/CMakeLists.txt:
New BitKeeper file ``server-tools/CMakeLists.txt''
server-tools/instance-manager/CMakeLists.txt:
New BitKeeper file ``server-tools/instance-manager/CMakeLists.txt''
sql/CMakeLists.txt:
New BitKeeper file ``sql/CMakeLists.txt''
sql/examples/CMakeLists.txt:
New BitKeeper file ``sql/examples/CMakeLists.txt''
strings/CMakeLists.txt:
New BitKeeper file ``strings/CMakeLists.txt''
tests/CMakeLists.txt:
New BitKeeper file ``tests/CMakeLists.txt''
vio/CMakeLists.txt:
New BitKeeper file ``vio/CMakeLists.txt''
win/Makefile.am:
New BitKeeper file ``win/Makefile.am''
win/README:
New BitKeeper file ``win/README''
win/build-vs71.bat:
New BitKeeper file ``win/build-vs71.bat''
win/build-vs8.bat:
New BitKeeper file ``win/build-vs8.bat''
win/build-vs8_x64.bat:
New BitKeeper file ``win/build-vs8_x64.bat''
win/configure.js:
New BitKeeper file ``win/configure.js''
zlib/CMakeLists.txt:
New BitKeeper file ``zlib/CMakeLists.txt''
Diffstat (limited to 'win')
-rwxr-xr-x | win/Makefile.am | 21 | ||||
-rw-r--r-- | win/README | 82 | ||||
-rwxr-xr-x | win/build-vs71.bat | 7 | ||||
-rwxr-xr-x | win/build-vs8.bat | 6 | ||||
-rwxr-xr-x | win/build-vs8_x64.bat | 6 | ||||
-rwxr-xr-x | win/configure.js | 166 |
6 files changed, 288 insertions, 0 deletions
diff --git a/win/Makefile.am b/win/Makefile.am new file mode 100755 index 00000000000..05c01b61360 --- /dev/null +++ b/win/Makefile.am @@ -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.% diff --git a/win/README b/win/README new file mode 100644 index 00000000000..cbda33e1184 --- /dev/null +++ b/win/README @@ -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. diff --git a/win/build-vs71.bat b/win/build-vs71.bat new file mode 100755 index 00000000000..959067695c5 --- /dev/null +++ b/win/build-vs71.bat @@ -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 + diff --git a/win/build-vs8.bat b/win/build-vs8.bat new file mode 100755 index 00000000000..d9c06241a9b --- /dev/null +++ b/win/build-vs8.bat @@ -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 diff --git a/win/build-vs8_x64.bat b/win/build-vs8_x64.bat new file mode 100755 index 00000000000..f1d96116390 --- /dev/null +++ b/win/build-vs8_x64.bat @@ -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 diff --git a/win/configure.js b/win/configure.js new file mode 100755 index 00000000000..ef90ce982a6 --- /dev/null +++ b/win/configure.js @@ -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"); +} |