summaryrefslogtreecommitdiff
path: root/win
diff options
context:
space:
mode:
authortsmith@ramayana.hindu.god <>2007-09-28 10:55:28 -0600
committertsmith@ramayana.hindu.god <>2007-09-28 10:55:28 -0600
commit37cbd6f7b46c2887aea61d32651fd97c67e09f5c (patch)
tree46cf13bd29c548d5b0f651877e446ba0be6c3513 /win
parent7ef6e66bc67bcb003a02f0996fc37315a4f87429 (diff)
parentc22a4a71f633d3308e0b13d1884b7b4b08875542 (diff)
downloadmariadb-git-37cbd6f7b46c2887aea61d32651fd97c67e09f5c.tar.gz
Merge ramayana.hindu.god:/home/tsmith/m/bk/51
into ramayana.hindu.god:/home/tsmith/m/bk/maint/51
Diffstat (limited to 'win')
-rw-r--r--win/configure.js37
1 files changed, 35 insertions, 2 deletions
diff --git a/win/configure.js b/win/configure.js
index 7e10ac34697..c86ec0cf47c 100644
--- a/win/configure.js
+++ b/win/configure.js
@@ -31,6 +31,7 @@ try
configureInTS.Close();
var default_comment = "Source distribution";
var default_port = GetValue(configureIn, "MYSQL_TCP_PORT_DEFAULT");
+ var actual_port = 0;
var configfile = fso.CreateTextFile("win\\configure.data", true);
for (i=0; i < args.Count(); i++)
@@ -59,10 +60,41 @@ try
default_comment = parts[1];
break;
case "MYSQL_TCP_PORT":
- default_port = parts[1];
+ actual_port = parts[1];
break;
}
}
+ if (actual_port == 0)
+ {
+ // if we actually defaulted (as opposed to the pathological case of
+ // --with-tcp-port=<MYSQL_TCP_PORT_DEFAULT> which might in theory
+ // happen if whole batch of servers was built from a script), set
+ // the default to zero to indicate that; we don't lose information
+ // that way, because 0 obviously indicates that we can get the
+ // default value from MYSQL_TCP_PORT. this seems really evil, but
+ // testing for MYSQL_TCP_PORT==MYSQL_TCP_PORT_DEFAULT would make a
+ // a port of MYSQL_TCP_PORT_DEFAULT magic even if the builder did not
+ // intend it to mean "use the default, in fact, look up a good default
+ // from /etc/services if you can", but really, really meant 3306 when
+ // they passed in 3306. When they pass in a specific value, let them
+ // have it; don't second guess user and think we know better, this will
+ // just make people cross. this makes the the logic work like this
+ // (which is complicated enough):
+ //
+ // - if a port was set during build, use that as a default.
+ //
+ // - otherwise, try to look up a port in /etc/services; if that fails,
+ // use MYSQL_TCP_PORT_DEFAULT (at the time of this writing 3306)
+ //
+ // - allow the MYSQL_TCP_PORT environment variable to override that.
+ //
+ // - allow command-line parameters to override all of the above.
+ //
+ // the top-most MYSQL_TCP_PORT_DEFAULT is read from win/configure.js,
+ // so don't mess with that.
+ actual_port = default_port;
+ default_port = 0;
+ }
configfile.WriteLine("SET (COMPILATION_COMMENT \"" +
default_comment + "\")");
@@ -71,7 +103,8 @@ try
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_TCP_PORT_DEFAULT \"" + default_port + "\")");
+ configfile.WriteLine("SET (MYSQL_TCP_PORT \"" + actual_port + "\")");
configfile.WriteLine("SET (MYSQL_UNIX_ADDR \"" +
GetValue(configureIn, "MYSQL_UNIX_ADDR_DEFAULT") + "\")");
var version = GetVersion(configureIn);