mariadb/win/config-version.js
unknown 3fa2273ac1 initial cmake fileset. It is not production ready but stable enough to start working with
win/build-vs71.bat:
  batch file to build project files for Visual Studio 2003
win/build-vs8.bat:
  batch file to build project files for Visual Studio 2005
win/cmakefiles/base:
  cmakefile that will later be moved into the target directory
win/cmakefiles/bdb:
  cmakefile that will later be moved into the target directory
win/cmakefiles/client:
  cmakefile that will later be moved into the target directory
win/cmakefiles/dbug:
  cmakefile that will later be moved into the target directory
win/cmakefiles/deploy.bat:
  cmakefile that will later be moved into the target directory
win/cmakefiles/extra:
  cmakefile that will later be moved into the target directory
win/cmakefiles/heap:
  cmakefile that will later be moved into the target directory
win/cmakefiles/innobase:
  cmakefile that will later be moved into the target directory
win/cmakefiles/myisam:
  cmakefile that will later be moved into the target directory
win/cmakefiles/myisammrg:
  cmakefile that will later be moved into the target directory
win/cmakefiles/mysys:
  cmakefile that will later be moved into the target directory
win/cmakefiles/regex:
  cmakefile that will later be moved into the target directory
win/cmakefiles/sql:
  cmakefile that will later be moved into the target directory
win/cmakefiles/strings:
  cmakefile that will later be moved into the target directory
win/cmakefiles/taocrypt:
  cmakefile that will later be moved into the target directory
win/cmakefiles/vio:
  cmakefile that will later be moved into the target directory
win/cmakefiles/yassl:
  cmakefile that will later be moved into the target directory
win/cmakefiles/zlib:
  cmakefile that will later be moved into the target directory
win/config-handlerton.js:
  javascript file for updating handlerton.cc based on configure options
win/config-version.js:
  javascript file for updating mysql_version.h based on configure.in data
win/configure.js:
  basic configure javascript
2006-01-31 07:52:16 -06:00

142 lines
4.3 KiB
JavaScript

// 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");
ConfigureMySqlVersion();
//ConfigureBDB();
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;
}