Re: Re: .NET Enabled
| From: | Hector Santos | Date: | Tue, 20 May 2008 12:00:05 +0000 |
| Subject: | Re: Re: .NET Enabled | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-37737@lists.php.net to get a copy of this message | ||
Pierre Joye wrote:
hi Hector, On Tue, May 20, 2008 at 2:11 AM, Hector Santos <hsantos@isdg.net> wrote: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.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.
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.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',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).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"); }
'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