use /Ox flag for release build (all optimizations on).

If no php_build dir is specified, then look for either of the two
"standard" things in reasonable locations.
Allow CHECK_LIB to search for the "same" library using a ; separated
list of alternatives.
Tweak nsapi config and remove redundant or unused flags.
Add ZTS checks for both isapi and nsapi configs.
This commit is contained in:
Wez Furlong 2003-12-05 02:41:00 +00:00
parent b842917d84
commit 6201a56070
4 changed files with 53 additions and 32 deletions

View File

@ -4,6 +4,10 @@
ARG_ENABLE('isapi', 'Build ISAPI version of PHP', 'no');
if (PHP_ISAPI == "yes") {
if (PHP_ZTS == "no") {
ERROR("ISAPI module requires an --enable-zts build of PHP");
}
SAPI('isapi', 'php4isapi.c', 'php' + PHP_VERSION + 'isapi.dll', '/D PHP4ISAPI_EXPORTS');
ADD_FLAG('LDFLAGS_ISAPI', '/DEF:sapi\\isapi\\php4isapi.def');
}

View File

@ -6,23 +6,21 @@ ARG_ENABLE('nsapi', 'Build NSAPI for Netscape/iPlanet/SunONE webservers', 'no');
ARG_WITH('nsapi-includes', 'Where to find NSAPI headers', null);
ARG_WITH('nsapi-libs', 'Where to find NSAPI libraries', null);
if (PHP_NSAPI == "yes") {
if (PHP_NSAPI != "no") {
if (!CHECK_HEADER_ADD_INCLUDE("nsapi.h", "CFLAGS_NSAPI", php_usual_include_suspects + ";" + PHP_NSAPI_INCLUDES)) {
if (PHP_ZTS == "no") {
ERROR("NSAPI module requires an --enable-zts build of PHP");
}
if (!CHECK_HEADER_ADD_INCLUDE("nsapi.h", "CFLAGS_NSAPI",
PHP_NSAPI + ';' + PHP_NSAPI_INCLUDES)) {
ERROR("Could not find NSAPI headers");
}
if (!CHECK_LIB("ns-httpd40.lib", "nsapi", php_usual_lib_suspects + ";" + PHP_NSAPI_LIBS)) {
if (!CHECK_LIB("ns-httpd36.lib", "nsapi", php_usual_lib_suspects + ";" + PHP_NSAPI_LIBS)) {
if (!CHECK_LIB("ns-httpd35.lib", "nsapi", php_usual_lib_suspects + ";" + PHP_NSAPI_LIBS)) {
if (!CHECK_LIB("ns-httpd30.lib", "nsapi", php_usual_lib_suspects + ";" + PHP_NSAPI_LIBS)) {
ERROR("Could not find NSAPI libraries");
}
}
}
if (!CHECK_LIB("ns-httpd40.lib;ns-httpd36.lib;ns-httpd35.lib;ns-httpd30.lib",
"nsapi", PHP_NSAPI + ";" + PHP_NSAPI_LIBS)) {
ERROR("Could not find NSAPI libraries");
}
SAPI('nsapi', 'nsapi.c',
'php' + PHP_VERSION + 'nsapi.dll',
'/D "XP_WIN32" /D "php' + PHP_VERSION + 'nsapi_EXPORTS"');
SAPI('nsapi', 'nsapi.c', 'php' + PHP_VERSION + 'nsapi.dll', '/D XP_WIN32 ');
}

View File

@ -54,7 +54,7 @@ if (PHP_DEBUG == "yes") {
ADD_FLAG("PHP_LDFLAGS", "/nodefaultlib:msvcrt");
} else {
// Equivalent to Release_TSInline build -> best optimization
ADD_FLAG("CFLAGS", "/LD /MD /W3 /O2 /D NDebug /D NDEBUG \
ADD_FLAG("CFLAGS", "/LD /MD /W3 /Ox /D NDebug /D NDEBUG \
/D ZEND_WIN32_FORCE_INLINE /GB /GF /D ZEND_DEBUG=0");
// if you have VS.Net /GS hardens the binary against buffer overruns
// ADD_FLAG("CFLAGS", "/GS");
@ -90,6 +90,14 @@ if (PHP_DEBUG == "yes" && PHP_ZTS == "yes") {
// that we need
ARG_WITH('php-build', 'Path to where you extracted http://www.php.net/extra/win32build.zip. Assumes that it is a sibling of this source dir (..\\php_build) if not specified', 'no');
if (PHP_PHP_BUILD == 'no') {
if (FSO.FolderExists("..\\php_build")) {
PHP_PHP_BUILD = "..\\php_build";
} else if (FSO.FolderExists("..\\win32build")) {
PHP_PHP_BUILD = "..\\win32build";
}
}
ARG_WITH('extra-includes', 'Extra include path to use when building everything', '');
ARG_WITH('extra-libs', 'Extra library path to use when linking everything', '');

View File

@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
// $Id: confutils.js,v 1.16 2003-12-04 17:03:20 fmk Exp $
// $Id: confutils.js,v 1.17 2003-12-05 02:41:00 wez Exp $
var STDOUT = WScript.StdOut;
var STDERR = WScript.StdErr;
@ -362,33 +362,44 @@ function PATH_PROG(progname, def, additional_paths)
return place;
}
function CHECK_LIB(libname, target, path_to_check)
function CHECK_LIB(libnames, target, path_to_check)
{
if (path_to_check == null) {
path_to_check = php_usual_lib_suspects;
} else {
path_to_check += ";" + php_usual_lib_suspects;
}
var p = search_paths(libname, path_to_check, "LIB");
var have = 0;
var p;
var i;
var libname;
if (typeof(p) == "string") {
ADD_FLAG("LDFLAGS_" + target.toUpperCase(), '/libpath:"' + p + '" ');
ADD_FLAG("LIBS_" + target.toUpperCase(), libname);
have = 1;
} else if (p == true) {
ADD_FLAG("LIBS_" + target.toUpperCase(), libname);
have = 1;
} else {
/* not found in the defaults or the explicit paths,
* so check the general extra libs; if we find
* it here, no need to add another /libpath: for it as we
* already have it covered, but we need to add the lib
* to LIBS_XXX */
if (false != search_paths(libname, PHP_EXTRA_LIBS, null)) {
libnames = libnames.split(';');
for (i = 0; i < libnames.length; i++) {
libname = libnames[i];
p = search_paths(libname, path_to_check, "LIB");
if (typeof(p) == "string") {
ADD_FLAG("LDFLAGS_" + target.toUpperCase(), '/libpath:"' + p + '" ');
ADD_FLAG("LIBS_" + target.toUpperCase(), libname);
have = 1;
} else if (p == true) {
ADD_FLAG("LIBS_" + target.toUpperCase(), libname);
have = 1;
} else {
/* not found in the defaults or the explicit paths,
* so check the general extra libs; if we find
* it here, no need to add another /libpath: for it as we
* already have it covered, but we need to add the lib
* to LIBS_XXX */
if (false != search_paths(libname, PHP_EXTRA_LIBS, null)) {
ADD_FLAG("LIBS_" + target.toUpperCase(), libname);
have = 1;
}
}
if (have) {
break;
}
}