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

Reply via email to