2006-01-31 14:52:16 +01:00
|
|
|
// Configure.js
|
2006-12-31 02:29:11 +01:00
|
|
|
//
|
|
|
|
// Copyright (C) 2006 MySQL 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; version 2 of the License.
|
|
|
|
//
|
|
|
|
// 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
2006-01-31 14:52:16 +01:00
|
|
|
|
|
|
|
ForReading = 1;
|
|
|
|
ForWriting = 2;
|
|
|
|
ForAppending = 8;
|
|
|
|
|
|
|
|
try
|
|
|
|
{
|
|
|
|
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
2006-03-28 13:49:29 +02:00
|
|
|
|
|
|
|
var args = WScript.Arguments
|
2006-01-31 14:52:16 +01:00
|
|
|
|
2006-03-28 13:49:29 +02:00
|
|
|
// 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");
|
|
|
|
|
2006-01-31 20:10:05 +01:00
|
|
|
var configfile = fso.CreateTextFile("win\\configure.data", true);
|
2006-01-31 14:52:16 +01:00
|
|
|
for (i=0; i < args.Count(); i++)
|
|
|
|
{
|
2006-03-28 13:49:29 +02:00
|
|
|
var parts = args.Item(i).split('=');
|
|
|
|
switch (parts[0])
|
|
|
|
{
|
|
|
|
case "WITH_ARCHIVE_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":
|
2007-04-23 22:23:32 +02:00
|
|
|
case "EMBED_MANIFESTS":
|
2007-06-15 20:32:16 +02:00
|
|
|
case "EMBEDDED_ONLY":
|
2006-03-28 13:49:29 +02:00
|
|
|
configfile.WriteLine("SET (" + args.Item(i) + " TRUE)");
|
|
|
|
break;
|
|
|
|
case "MYSQL_SERVER_SUFFIX":
|
2007-07-18 15:53:10 +02:00
|
|
|
case "MYSQLD_EXE_SUFFIX":
|
2006-03-28 13:49:29 +02:00
|
|
|
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;
|
|
|
|
}
|
2006-01-31 14:52:16 +01:00
|
|
|
}
|
2006-03-28 13:49:29 +02:00
|
|
|
|
|
|
|
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) + "\")");
|
|
|
|
|
2006-01-31 14:52:16 +01:00
|
|
|
configfile.Close();
|
|
|
|
|
2006-03-28 13:49:29 +02:00
|
|
|
fso = null;
|
2006-01-31 14:52:16 +01:00
|
|
|
|
|
|
|
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) == "\"")
|
2006-03-28 13:49:29 +02:00
|
|
|
pos++;
|
|
|
|
if (str.charAt(end-1) == "\"")
|
|
|
|
end--;
|
2006-01-31 14:52:16 +01:00
|
|
|
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;
|
|
|
|
}
|