wez Fri Aug 12 16:05:24 2005 EDT
Modified files:
/php-src/win32/build config.w32
Log:
/GB option is the default; remove it.
Add compiler version checks, as vs.net 2005 has dropped support for /YX and
/GB
options, and deprecated ANSI stdio (in favour of more secure, non-standard
versions).
http://cvs.php.net/diff.php/php-src/win32/build/config.w32?r1=1.45&r2=1.46&ty=u
Index: php-src/win32/build/config.w32
diff -u php-src/win32/build/config.w32:1.45 php-src/win32/build/config.w32:1.46
--- php-src/win32/build/config.w32:1.45 Fri Aug 12 07:37:44 2005
+++ php-src/win32/build/config.w32 Fri Aug 12 16:05:19 2005
@@ -1,10 +1,30 @@
// vim:ft=javascript
-// $Id: config.w32,v 1.45 2005/08/12 11:37:44 edink Exp $
+// $Id: config.w32,v 1.46 2005/08/12 20:05:19 wez Exp $
// "Master" config file; think of it as a configure.in
// equivalent.
ARG_WITH('cygwin', 'Path to cygwin utilities on your system', '\\cygwin');
-PATH_PROG('cl');
+CL = PATH_PROG('cl');
+if (!CL) {
+ ERROR("MS C++ compiler is required");
+}
+// Which version of the compiler do we have ?
+function probe_msvc_compiler_version(CL)
+{
+ // tricky escapes to get stderr redirection to work
+ var banner = execute('cmd /c ""' + CL + '" 2>&1"');
+ if (banner.match(/(\d+)\.(\d+)\.(\d+)(\.(\d+))?/)) {
+ return RegExp.$1;
+ }
+ return 0;
+}
+
+VCVERS = probe_msvc_compiler_version(CL);
+STDOUT.WriteLine("Detected MS compiler version " + VCVERS);
+
+// 12 is VC6
+// 13 is vs.net 2003
+// 14 is vs.net 2005
// cygwin now ships with link.exe. Avoid searching the cygwin path
// for this, as we want the MS linker, not the fileutil
@@ -61,9 +81,20 @@
DEFINE('CFLAGS_PHP_OBJ', '$(CFLAGS_PHP) $(STATIC_EXT_CFLAGS)');
// General CFLAGS for building objects
-DEFINE("CFLAGS", "/nologo /YX /FD $(BASE_INCLUDES) /D _WINDOWS \
+DEFINE("CFLAGS", "/nologo /FD $(BASE_INCLUDES) /D _WINDOWS \
/D ZEND_WIN32=1 /D PHP_WIN32=1 /D WIN32 /D _MBCS");
+if (VCVERS < 14) {
+ // Enable automatic precompiled headers
+ ADD_FLAG('CFLAGS', ' /YX ');
+}
+
+if (VCVERS >= 14) {
+ // fun stuff: MS deprecated ANSI stdio and similar functions
+ // disable annoying warnings
+ ADD_FLAG('CFLAGS', ' /wd4996 ');
+}
+
// General link flags
DEFINE("LDFLAGS", "/nologo /version:" +
PHP_VERSION + "." + PHP_MINOR_VERSION + "." + PHP_RELEASE_VERSION);
@@ -102,7 +133,7 @@
}
// Equivalent to Release_TSInline build -> best optimization
ADD_FLAG("CFLAGS", "/LD /MD /W3 /Ox /D NDebug /D NDEBUG \
-/D ZEND_WIN32_FORCE_INLINE /GB /GF /D ZEND_DEBUG=0");
+/D ZEND_WIN32_FORCE_INLINE /GF /D ZEND_DEBUG=0");
// if you have VS.Net /GS hardens the binary against buffer overruns
// ADD_FLAG("CFLAGS", "/GS");
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php