diff options
author | unknown <knielsen@mysql.com> | 2006-03-28 13:49:29 +0200 |
---|---|---|
committer | unknown <knielsen@mysql.com> | 2006-03-28 13:49:29 +0200 |
commit | 99d603c91d592937048738d4f07ba16f6e8b99cd (patch) | |
tree | 0ab6436926b8e47727166a5e1e772a27d418c910 | |
parent | fb36d9180649d699519555ff2ce338b8144b9dbd (diff) | |
download | mariadb-git-99d603c91d592937048738d4f07ba16f6e8b99cd.tar.gz |
Clean up CMake configuration following review.
BitKeeper/deleted/.del-config-version.js~b31bb5a8:
Delete: win/config-version.js
BitKeeper/deleted/.del-config-handlerton.js~553d3402:
Delete: win/config-handlerton.js
cmakelists.txt:
Clean up configuration, better integration with CMake.
sql/cmakelists.txt:
Only build ha_xxx.cc for configured storage engines.
Only link with configured storage engine projects.
win/configure.js:
Move the task of config-version.js into configure.js.
-rw-r--r-- | cmakelists.txt | 36 | ||||
-rw-r--r-- | sql/cmakelists.txt | 27 | ||||
-rw-r--r-- | win/config-handlerton.js | 196 | ||||
-rw-r--r-- | win/config-version.js | 223 | ||||
-rw-r--r-- | win/configure.js | 114 |
5 files changed, 143 insertions, 453 deletions
diff --git a/cmakelists.txt b/cmakelists.txt index 5ed5069fb46..21a68752b32 100644 --- a/cmakelists.txt +++ b/cmakelists.txt @@ -1,8 +1,10 @@ PROJECT(MySql) -EXEC_PROGRAM(cscript.exe win ARGS config-version.js OUT_VARIABLE out) +# This reads user configuration, generated by configure.js. INCLUDE(win/configure.data) +CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in ${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY) + # in some places we use DBUG_OFF SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D DBUG_OFF") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D DBUG_OFF") @@ -32,6 +34,32 @@ ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7" OR CMAKE_GENERATOR MATCHES "Visu ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D _CRT_SECURE_NO_DEPRECATE") -SUBDIRS(vio dbug strings regex mysys extra/yassl extra/yassl/taocrypt extra - zlib storage/heap storage/myisam storage/myisammrg client - ${se_subdirs} sql server-tools/instance-manager libmysql tests) +ADD_SUBDIRECTORY(vio) +ADD_SUBDIRECTORY(dbug) +ADD_SUBDIRECTORY(strings) +ADD_SUBDIRECTORY(regex) +ADD_SUBDIRECTORY(mysys) +ADD_SUBDIRECTORY(extra/yassl) +ADD_SUBDIRECTORY(extra/yassl/taocrypt) +ADD_SUBDIRECTORY(extra) +ADD_SUBDIRECTORY(zlib) +ADD_SUBDIRECTORY(storage/heap) +ADD_SUBDIRECTORY(storage/myisam) +ADD_SUBDIRECTORY(storage/myisammrg) +ADD_SUBDIRECTORY(client) +IF(WITH_ARCHIVE_STORAGE_ENGINE) + ADD_SUBDIRECTORY(storage/archive) +ENDIF(WITH_ARCHIVE_STORAGE_ENGINE) +IF(WITH_BERKELEY_STORAGE_ENGINE) + ADD_SUBDIRECTORY(storage/bdb) +ENDIF(WITH_BERKELEY_STORAGE_ENGINE) +IF(WITH_EXAMPLE_STORAGE_ENGINE) + ADD_SUBDIRECTORY(storage/example) +ENDIF(WITH_EXAMPLE_STORAGE_ENGINE) +IF(WITH_INNOBASE_STORAGE_ENGINE) + ADD_SUBDIRECTORY(storage/innobase) +ENDIF(WITH_INNOBASE_STORAGE_ENGINE) +ADD_SUBDIRECTORY(sql) +ADD_SUBDIRECTORY(server-tools/instance-manager) +ADD_SUBDIRECTORY(libmysql) +ADD_SUBDIRECTORY(tests) diff --git a/sql/cmakelists.txt b/sql/cmakelists.txt index 81b4c3de10e..82268feba69 100644 --- a/sql/cmakelists.txt +++ b/sql/cmakelists.txt @@ -24,11 +24,13 @@ IF(WITH_ARCHIVE_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_ARCHIVE_STORAGE_ENGINE) SET (mysql_se_htons "${mysql_se_htons}, &archive_hton") SET (mysql_se_decls "${mysql_se_decls}, archive_hton") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_archive.cc") ENDIF(WITH_ARCHIVE_STORAGE_ENGINE) IF(WITH_BLACKHOLE_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_BLACKHOLE_STORAGE_ENGINE) SET (mysql_se_htons "${mysql_se_htons}, &blackhole_hton") SET (mysql_se_decls "${mysql_se_decls}, blackhole_hton") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_blackhole.cc") ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE) IF(WITH_EXAMPLE_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_EXAMPLE_STORAGE_ENGINE) @@ -44,27 +46,35 @@ IF(WITH_PARTITION_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_PARTITION_STORAGE_ENGINE) SET (mysql_se_htons "${mysql_se_htons}, &partition_hton") SET (mysql_se_decls "${mysql_se_decls}, partition_hton") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_innodb.cc") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_partition.cc") ENDIF(WITH_PARTITION_STORAGE_ENGINE) IF(WITH_FEDERATED_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE) SET (mysql_se_htons "${mysql_se_htons}, &federated_hton") SET (mysql_se_decls "${mysql_se_decls}, federated_hton") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_federated.cc") ENDIF(WITH_FEDERATED_STORAGE_ENGINE) IF(WITH_BERKELEY_STORAGE_ENGINE) ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE) SET (mysql_se_htons "${mysql_se_htons}, &berkeley_hton") SET (mysql_se_decls "${mysql_se_decls}, berkeley_hton") + SET (mysql_se_ha_src "${mysql_se_ha_src} ha_berkeley.cc") ENDIF(WITH_BERKELEY_STORAGE_ENGINE) IF(__NT__) ADD_DEFINITIONS(-D __NT__) ENDIF(__NT__) +IF(CYBOZU) + ADD_DEFINITIONS(-D CYBOZU) +ENDIF(CYBOZU) CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/handlerton.cc.in ${CMAKE_SOURCE_DIR}/sql/handlerton.cc @ONLY) ADD_DEFINITIONS(-DHAVE_ROW_BASED_REPLICATION -DMYSQL_SERVER -D_CONSOLE -DHAVE_DLOPEN) +SEPARATE_ARGUMENTS(mysql_se_ha_src) ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover.cc ../libmysql/errmsg.c field.cc field_conv.cc filesort.cc gstream.cc ha_heap.cc ha_myisam.cc ha_myisammrg.cc - ${handlertons} handler.cc hash_filo.cc hash_filo.h hostname.cc + ${mysql_se_ha_src} handler.cc hash_filo.cc hash_filo.h hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc item_create.cc item_func.cc item_geofunc.cc item_row.cc item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc item_uniq.cc key.cc log.cc lock.cc log_event.cc message.rc message.h mf_iocache.cc @@ -89,7 +99,20 @@ ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc discover. ${PROJECT_SOURCE_DIR}/include/mysql_version.h ${PROJECT_SOURCE_DIR}/sql/handlerton.cc ${PROJECT_SOURCE_DIR}/sql/lex_hash.h) -TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg ${se_deps} mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32) +TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg mysys yassl zlib dbug yassl taocrypt strings vio regex wsock32) +IF(WITH_ARCHIVE_STORAGE_ENGINE) + TARGET_LINK_LIBRARIES(mysqld archive) +ENDIF(WITH_ARCHIVE_STORAGE_ENGINE) +IF(WITH_EXAMPLE_STORAGE_ENGINE) + TARGET_LINK_LIBRARIES(mysqld example) +ENDIF(WITH_EXAMPLE_STORAGE_ENGINE) +IF(WITH_INNOBASE_STORAGE_ENGINE) + TARGET_LINK_LIBRARIES(mysqld innobase) +ENDIF(WITH_INNOBASE_STORAGE_ENGINE) +IF(WITH_BERKELEY_STORAGE_ENGINE) + TARGET_LINK_LIBRARIES(mysqld bdb) +ENDIF(WITH_BERKELEY_STORAGE_ENGINE) + ADD_DEPENDENCIES(mysqld GenError) # Sql Parser custom command diff --git a/win/config-handlerton.js b/win/config-handlerton.js deleted file mode 100644 index 1c20767695a..00000000000 --- a/win/config-handlerton.js +++ /dev/null @@ -1,196 +0,0 @@ -// Configure.js - -ForReading = 1; -ForWriting = 2; -ForAppending = 8; - -try -{ - // first we attempt to open the main configure.in file - var fso = new ActiveXObject("Scripting.FileSystemObject"); - - var args = WScript.Arguments - - var datafile = fso.OpenTextFile(args.Item(0), ForReading); - var extern_line = ''; - var address_line = ''; - while (! datafile.AtEndOfStream) - { - var line = datafile.ReadLine(); - if (line == "WITH_INNOBASE_STORAGE_ENGINE") - { - extern_line += ",innobase_hton"; - address_line += ",&innobase_hton"; - } - else if (line == "WITH_PARTITION_STORAGE_ENGINE") - { - extern_line += ",partition_hton"; - address_line += ",&partition_hton"; - } - else if (line == "WITH_ARCHIVE_STORAGE_ENGINE") - { - extern_line += ",archive_hton"; - address_line += ",&archive_hton"; - } - else if (line == "WITH_BERKELEY_STORAGE_ENGINE") - { - extern_line += ",berkeley_hton"; - address_line += ",&berkeley_hton"; - } - else if (line == "WITH_BLACKHOLE_STORAGE_ENGINE") - { - extern_line += ",blackhole_hton"; - address_line += ",&blackhole_hton"; - } - else if (line == "WITH_EXAMPLE_STORAGE_ENGINE") - { - extern_line += ",example_hton"; - address_line += ",&example_hton"; - } - else if (line == "WITH_FEDERATED_STORAGE_ENGINE") - { - extern_line += ",federated_hton"; - address_line += ",&federated_hton"; - } - } - datafile.Close(); - - var infile = fso.OpenTextFile("..\\sql\\handlerton.cc.in", ForReading); - var infile_contents = infile.ReadAll(); - infile.Close(); - infile_contents = infile_contents.replace("@mysql_se_decls@", extern_line); - infile_contents = infile_contents.replace("@mysql_se_htons@", address_line); - - var outfile = fso.CreateTextFile("..\\sql\\handlerton.cc", true) - outfile.Write(infile_contents); - outfile.Close(); - - fso = null; - - WScript.Echo("done!"); -} -catch (e) -{ - WScript.Echo("Error: " + e.description); -} - -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"); -} - -function ConfigureMySqlVersion() -{ - // read in the Unix configure.in file - var configureInTS = fso.OpenTextFile("..\\configure.in", ForReading); - var configureIn = configureInTS.ReadAll(); - configureInTS.Close(); - - // read in the mysql_version.h.in file - var mysqlTS = fso.OpenTextFile("..\\include\\mysql_version.h.in", ForReading); - var mysqlin = mysqlTS.ReadAll(); - mysqlTS.Close(); - - mysqlin = mysqlin.replace("@PROTOCOL_VERSION@", GetValue(configureIn, "PROTOCOL_VERSION")); - mysqlin = mysqlin.replace("@DOT_FRM_VERSION@", GetValue(configureIn, "DOT_FRM_VERSION")); - mysqlin = mysqlin.replace("@MYSQL_TCP_PORT@", GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT")); - mysqlin = mysqlin.replace("@MYSQL_UNIX_ADDR@", GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT")); - mysqlin = mysqlin.replace("@MYSQL_SERVER_SUFFIX@", ''); - mysqlin = mysqlin.replace("@COMPILATION_COMMENT@", 'Source distribution'); - - - var version = GetVersion(configureIn); - mysqlin = mysqlin.replace("@VERSION@", version); - mysqlin = mysqlin.replace("@MYSQL_BASE_VERSION@", GetBaseVersion(version)); - mysqlin = mysqlin.replace("@MYSQL_VERSION_ID@", GetVersionId(version)); - - - var mysqlfile = fso.CreateTextFile("..\\include\\mysql_version.h", true); - mysqlfile.Write(mysqlin); - mysqlfile.Close(); - -} - -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; -} - diff --git a/win/config-version.js b/win/config-version.js deleted file mode 100644 index 689069c3030..00000000000 --- a/win/config-version.js +++ /dev/null @@ -1,223 +0,0 @@ -// Configure.js - -ForReading = 1; -ForWriting = 2; -ForAppending = 8; - -try -{ - // first we attempt to open the main configure.in file - var fso = new ActiveXObject("Scripting.FileSystemObject"); - - var args = WScript.Arguments - - // Find any configured MYSQL_SERVER_SUFFIX. - // Find any extra preprocessor definitions. - var datafile = fso.OpenTextFile(args.Item(0), ForReading); - var server_suffix = ''; - var server_comment = 'Source distribution'; - var server_port = ''; - var defs = ''; - var htons = ''; - var subdirs = ''; - var depends = ''; - while (! datafile.AtEndOfStream) - { - var line = datafile.ReadLine(); - if (line.indexOf("MYSQL_SERVER_SUFFIX=") == 0) - { - server_suffix = line.substring(20, line.length); - } - else if (line.indexOf("COMPILATION_COMMENT=") == 0) - { - server_comment = line.substring(20, line.length); - } - else if (line.indexOf("MYSQL_TCP_PORT=") == 0) - { - server_port = line.substring(15, line.length); - } - else if (line == "WITH_ARCHIVE_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_archive.cc"; - subdirs += " storage/archive"; - depends += " archive"; - } - else if (line == "WITH_BERKELEY_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_berkeley.cc"; - subdirs += " storage/bdb"; - depends += " bdb"; - } - else if (line == "WITH_BLACKHOLE_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_blackhole.cc"; - } - else if (line == "WITH_EXAMPLE_STORAGE_ENGINE") - { - defs += " -D" + line; - subdirs += " storage/example"; - depends += " example"; - } - else if (line == "WITH_FEDERATED_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_federated.cc"; - } - else if (line == "WITH_INNOBASE_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_innodb.cc"; - subdirs += " storage/innobase"; - depends += " innobase"; - } - else if (line == "WITH_PARTITION_STORAGE_ENGINE") - { - defs += " -D" + line; - htons += " ha_partition.cc"; - } - else if (line == "__NT__" || - line == "CYBOZU" || - line.indexOf("LICENSE=") == 0) { - defs += " -D" + line; - } - } - datafile.Close(); - - ConfigureMySqlVersion(); - //ConfigureBDB(); - fso = null; - - WScript.Echo("DEFINITIONS@" + defs + "@"); - WScript.Echo("HANDLERTONS@" + htons + "@"); - WScript.Echo("DEPENDS@" + depends + "@"); - WScript.Echo("SUBDIRS@" + subdirs + "@"); -} -catch (e) -{ - WScript.Echo("Error: " + e.description); -} - -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"); -} - -function ConfigureMySqlVersion() -{ - // read in the Unix configure.in file - var configureInTS = fso.OpenTextFile("..\\configure.in", ForReading); - var configureIn = configureInTS.ReadAll(); - configureInTS.Close(); - - // read in the mysql_version.h.in file - var mysqlTS = fso.OpenTextFile("..\\include\\mysql_version.h.in", ForReading); - var mysqlin = mysqlTS.ReadAll(); - mysqlTS.Close(); - - mysqlin = mysqlin.replace("@PROTOCOL_VERSION@", GetValue(configureIn, "PROTOCOL_VERSION")); - mysqlin = mysqlin.replace("@DOT_FRM_VERSION@", GetValue(configureIn, "DOT_FRM_VERSION")); - if (server_port == '') { server_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT"); } - mysqlin = mysqlin.replace("@MYSQL_TCP_PORT@", server_port); - mysqlin = mysqlin.replace("@MYSQL_UNIX_ADDR@", GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT")); - mysqlin = mysqlin.replace("@MYSQL_SERVER_SUFFIX@", server_suffix); - mysqlin = mysqlin.replace("@COMPILATION_COMMENT@", server_comment); - - - var version = GetVersion(configureIn); - mysqlin = mysqlin.replace("@VERSION@", version); - mysqlin = mysqlin.replace("@MYSQL_BASE_VERSION@", GetBaseVersion(version)); - mysqlin = mysqlin.replace("@MYSQL_VERSION_ID@", GetVersionId(version)); - - - var mysqlfile = fso.CreateTextFile("..\\include\\mysql_version.h", true); - mysqlfile.Write(mysqlin); - mysqlfile.Close(); - -} - -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; -} - diff --git a/win/configure.js b/win/configure.js index 263b4fe7da0..ef90ce982a6 100644 --- a/win/configure.js +++ b/win/configure.js @@ -6,39 +6,69 @@ ForAppending = 8; try { - // first we attempt to open the main configure.in file var fso = new ActiveXObject("Scripting.FileSystemObject"); + + var args = WScript.Arguments - 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__": - line = "SET (" + args.Item(i) + " TRUE)"; - break; - case "MYSQL_SERVER_SUFFIX": - case "COMPILATION_COMMENT": - case "MYSQL_TCP_PORT": - line = "SET (" + parts[0] + " " + parts[1] + ")"; - break; - } - - configfile.WriteLine(line); + 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(); - fso = null; + //ConfigureBDB(); + + fso = null; WScript.Echo("done!"); } @@ -54,9 +84,9 @@ function GetValue(str, key) pos += key.length + 1; var end = str.indexOf("\n", pos); if (str.charAt(pos) == "\"") - pos++; - if (str.charAt(end-1) == "\"") - end--; + pos++; + if (str.charAt(end-1) == "\"") + end--; return str.substring(pos, end); } @@ -106,3 +136,31 @@ function GetVersionId(version) 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"); +} |