Hello Steph,

Tuesday, March 18, 2008, 6:10:20 PM, you wrote:

> sfox            Tue Mar 18 17:10:20 2008 UTC

>   Modified files:              (Branch: PHP_5_3)
>     /php-src/win32/build        config.w32 
>   Log:
>   Generic function for binary probes, kill the other two. And get rid of the 
> annoying double check for CL.
>   
> http://cvs.php.net/viewvc.cgi/php-src/win32/build/config.w32?r1=1.40.2.8.2.10.2.10&r2=1.40.2.8.2.10.2.11&diff_format=u
> Index: php-src/win32/build/config.w32
> diff -u php-src/win32/build/config.w32:1.40.2.8.2.10.2.10
> php-src/win32/build/config.w32:1.40.2.8.2.10.2.11
> --- php-src/win32/build/config.w32:1.40.2.8.2.10.2.10   Tue Mar 18 03:12:42 
> 2008
> +++ php-src/win32/build/config.w32      Tue Mar 18 17:10:20 2008
> @@ -1,44 +1,44 @@
>  // vim:ft=javascript
> -// $Id: config.w32,v 1.40.2.8.2.10.2.10 2008/03/18 03:12:42 sfox Exp $
> +// $Id: config.w32,v 1.40.2.8.2.10.2.11 2008/03/18 17:10:20 sfox 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)
> +
> +function probe_binary(EXE, what)
>  {
>         // 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;
> +       var command = 'cmd /c ""' + EXE;
> +       if (what == "version") {
> +               command = command + '" -v"';
> +       }
> +       var version = execute(command + '" 2>&1"');
> +
> +       if (what == "64") {
> +               if (version.match(/x64/)) {
> +                       return 1;
> +               }
> +       } else {
> +               if (version.match(/(\d+\.\d+\.\d+(\.\d+)?)/)) {

This does not sound right. Some distributions add stuff ad the end,
typically the distribution name. I dunnot if that is an issue on windows as
well. What I do know is that for instance development versions of re2c add
'.dev' here. Also note that re2c is one of the tools that provide a way
easier way to check the version number. That is you call it using either
'-V' or '--vernum' which gives you back an integer number which can be
checked easier.

marcus

> +                       return RegExp.$1;
> +               }
>         }
>         return 0;
>  }
>  
> -VCVERS = probe_msvc_compiler_version(CL);
> +// Which version of the compiler do we have?
> +VCVERS = probe_binary(CL).substr(0, 2);
>  STDOUT.WriteLine("Detected MS compiler version " + VCVERS);
> -
>  // 12 is VC6
>  // 13 is vs.net 2003
>  // 14 is vs.net 2005
>  
>  // do we use x64 or 80x86 version of compiler?
> -function probe_msvc_compiler_x64(CL)
> -{
> -       // tricky escapes to get stderr redirection to work
> -       var banner = execute('cmd /c ""' + CL + '" 2>&1"');
> -       if (banner.match(/x64/)) {
> -               return 1;
> -       }
> -       return 0;
> -}
> -
> -X64 = probe_msvc_compiler_x64(CL);
> +X64 = probe_binary(CL, 64);
>  if (X64) {
>         STDOUT.WriteLine("Detected 64-bit compiler");
>  } else {
> @@ -48,7 +48,6 @@
>  // cygwin now ships with link.exe.  Avoid searching the cygwin path
>  // for this, as we want the MS linker, not the fileutil
>  PATH_PROG('link', WshShell.Environment("Process").Item("PATH"));
> -
>  PATH_PROG('nmake');
>  
>  // we don't want to define LIB, as that will override the default library 
> path
> @@ -61,23 +60,12 @@
>  // There's a minimum requirement for re2c..
>  MINRE2C = "0.13.3";
>  
> -function probe_re2c_version(RE2C)
> -{
> -       var command = "cmd /c " + RE2C + " -v";
> -       var version = execute(command + '" 2>&1"');
> -
> -       if (version.match(/((\d+)\.(\d+)\.(\d+))/)) {
> -               return RegExp.$1;
> -       }
> -       return 0;
> -}
> -
>  RE2C = PATH_PROG('re2c');
>  if (RE2C) {
>         var intvers, intmin;
>         var pattern = /\./g;
>  
> -       RE2CVERS = probe_re2c_version(RE2C);
> +       RE2CVERS = probe_binary(RE2C, "version");
>         intvers = RE2CVERS.replace(pattern, '') - 0;
>         intmin = MINRE2C.replace(pattern, '') - 0;
>  






Best regards,
 Marcus


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to