Pierre Joye wrote:
hi Hector,
On Tue, May 20, 2008 at 2:11 AM, Hector Santos <[EMAIL PROTECTED]> wrote:
Pierre Joye wrote:
You can install many SDK on the same machine. But you can't use the
.net SDK with VC6 to build php extensions for our binaries.
Ok, but the one in ZIP.ZIP is the NET 1.1. This is important for the
proper duplication of the build under VC6.0. See more info below.
I think you should forget this zip.zip, from now on :)
Right, didn't Steph, Elizabeth tell you? I am creating a new small
footprint, PHP_BUILD-vc#.ZIP where # is the compiler number:
vc6 => Microsoft Visual Studio 98
vc7 => Microsoft Visual Studio 2002 .NET 1.0
vc71 => Microsoft Visual Studio 2003 .NET 1.1
vc8 => Microsoft Visual Studio 2005 .NET 2.0
vc9 => Microsoft Visual Studio 2008 .NET 3.5
They are created from the new compiler specific pecl2\ files. So we
will have:
PHP_BUILD-VC6.ZIP <-- Includes dotnet\ headers from ZIP.ZIP
PHP_BUILD-VC7.ZIP
PHP_BUILD-VC71.ZIP
PHP_BUILD-VC8.ZIP
PHP_BUILD-VC8x64.ZIP
PHP_BUILD-VC9.ZIP
PHP_BUILD-VC9x64.ZIP
Largest size is 8.8 megs. :-)
The VC6 environment for PHP 5.2/5.3 should only have the SDK from 2003
or below, but .NET from 1.1 (which is vs2003) if you wish to duplicate
the build.
I have not mixed in VC6 INCLUDE/LIB environment with VS2005 SDK
INCLUDE/LIB and I don't that is a good idea (for PHP).
So you are right, the environment INCLUDE/LIB should handle
ext\com_dotnet but only for vs2002+ compiles.
I'm not sure yet which version is used and from where this dotnet
directory comes. That's one of the problem to solve soon.
AC_DEFINE('HAVE_COM_DOTNET', 1, 'Have COM_DOTNET support');
- CHECK_HEADER_ADD_INCLUDE('mscoree.h', 'CFLAGS_COM_DOTNET');
+ CHECK_HEADER_ADD_INCLUDE('mscoree.h', 'CFLAGS_COM_DOTNET',
PHP_PHP_BUILD+"\\dotnet");
}
This change sounds wrong as both the SDK or the PHP_BUILD dir should
be in the include path. The check_header function can find them in
both places (one or the other).
The problem is like I said above, plus other things about this function
above. There are issues with mixed search logic INCLUDE and LIBRARIES,
which I wish to delay discussing it until summarize the work in cleaning
up this Windows building process and trust me, I am not doing anything
that will break current expectations. Not my style. :-)
But a change to the above should include:
var sDotNetPath = PHP_PHP_BUILD+"\\dotnet";
if (VCVAR > 12) sDotNetPath = null; // vs2002+ has .Net
if (!CHECK_HEADER_ADD_INCLUDE('mscoree.h',
'CFLAGS_COM_DOTNET',
sDotNetPath)) {
// maybe an ERROR?
WARNING("! .NET support will be disabled in build.")
}
A pure VC6.0 environment does not have .NET. If someone uses vs2005
SDK, then you are introducing 2.0 into the VC60 PHP 5.2 or 5.3 build.
It might be ok, but that is not the same as was in ZIP.ZIP. For vc6.0
PHP 5.2/5.3 rebuilds, I believe it is "safer" to use what has been used
in ZIP.ZIP for all this time. No? Only with VS2005 should .net 2.0
should begin to be used.
Anyway, the change above says if the compiler version (VCVAR) is 13+,
then it is assumed .NET is automatically installed and no alternate
explicit path is required.
So far, I have tested PHP_BUILD-vc*.zip for the environment I have (vc6
and vc8) and I just finished the comparison with the latest snapshot
php5.3-win32-200805200830.zip and the official 5.2.6 release:
PHP 5.3
5,247,030 php5ts.dll Rebuild using PHP_BUILD-vc6.zip
5,247,032 php5ts.dll Snapshot version
PHP 5.2.6
4,874,298 php5ts.dll Rebuild using PHP_BUILD-vc6.zip
4,874,301 php5ts.dll Official 5.2.6 release
Should I worry about the few bytes difference? <g>
--
Hector Santos
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php