summaryrefslogtreecommitdiff
path: root/win
diff options
context:
space:
mode:
authorunknown <georg@lmy002.wdf.sap.corp>2006-08-31 19:52:42 +0200
committerunknown <georg@lmy002.wdf.sap.corp>2006-08-31 19:52:42 +0200
commit8f4477281eb5f110094927abe7dabd67c8525fc5 (patch)
tree1a7d7e96d4dcd302dbe513ad50a16ea05cb7ed16 /win
parent085446b8c8de9154be2673efd7c8676ececd83ff (diff)
downloadmariadb-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-xwin/Makefile.am21
-rw-r--r--win/README82
-rwxr-xr-xwin/build-vs71.bat7
-rwxr-xr-xwin/build-vs8.bat6
-rwxr-xr-xwin/build-vs8_x64.bat6
-rwxr-xr-xwin/configure.js166
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");
+}