wez             Tue May 18 05:58:45 2004 EDT

  Modified files:              
    /php-src/win32/build        confutils.js 
  Log:
  Primitive support for probing headers for functions using a regexp
  
  
http://cvs.php.net/diff.php/php-src/win32/build/confutils.js?r1=1.40&r2=1.41&ty=u
Index: php-src/win32/build/confutils.js
diff -u php-src/win32/build/confutils.js:1.40 php-src/win32/build/confutils.js:1.41
--- php-src/win32/build/confutils.js:1.40       Wed Apr 28 20:17:09 2004
+++ php-src/win32/build/confutils.js    Tue May 18 05:58:45 2004
@@ -17,7 +17,7 @@
   +----------------------------------------------------------------------+
 */
 
-// $Id: confutils.js,v 1.40 2004/04/29 00:17:09 wez Exp $
+// $Id: confutils.js,v 1.41 2004/05/18 09:58:45 wez Exp $
 
 var STDOUT = WScript.StdOut;
 var STDERR = WScript.StdErr;
@@ -708,6 +708,64 @@
 
 }
 
+function CHECK_FUNC_IN_HEADER(header_name, func_name, path_to_check)
+{
+       var c = false;
+       var sym;
+
+       STDOUT.Write("Checking for " + func_name + " in " + header_name + " ... ");
+
+       c = GREP_HEADER(header_name, func_name, path_to_check);
+
+       sym = func_name.toUpperCase();
+       sym = sym.replace(new RegExp("[\\\\/\.-]", "g"), "_");
+
+       AC_DEFINE("HAVE_" + sym, c ? 1 : 0);
+
+       if (c) {
+               STDOUT.WriteLine("OK");
+               return c;
+       }
+       STDOUT.WriteLine("No");
+       return false;   
+}
+
+function GREP_HEADER(header_name, regex, path_to_check)
+{
+       var c = false;
+
+       if (FSO.FileExists(path_to_check + "\\" + header_name)) {
+               c = file_get_contents(path_to_check + "\\" + header_name);
+       }
+
+       if (!c) {
+               /* look in the include path */
+
+               var p = search_paths(header_name, path_to_check, "INCLUDE");
+               if (typeof(p) == "string") {
+                       c = file_get_contents(p);
+               } else if (p == false) {
+                       p = search_paths(header_name, PHP_EXTRA_INCLUDES, null);
+                       if (typeof(p) == "string") {
+                               c = file_get_contents(p);
+                       }
+               } 
+               if (!c) {
+                       return false;
+               }
+       }
+
+       if (typeof(regex) == "string") {
+               regex = new RegExp(regex);
+       }
+
+       if (c.match(regex)) {
+               /* caller can now use RegExp.$1 etc. to get at patterns */
+               return true;
+       }
+       return false;
+}
+
 function CHECK_HEADER_ADD_INCLUDE(header_name, flag_name, path_to_check, use_env, 
add_dir_part)
 {
        var dir_part_to_add = "";
@@ -853,10 +911,15 @@
 function file_get_contents(filename)
 {
        var f, c;
-       f = FSO.OpenTextFile(filename, 1);
-       c = f.ReadAll();
-       f.Close();
-       return c;
+       try {
+               f = FSO.OpenTextFile(filename, 1);
+               c = f.ReadAll();
+               f.Close();
+               return c;
+       } catch (e) {
+               STDOUT.WriteLine("Problem reading " + filename);
+               return false;
+       }
 }
 
 // Add a dependency on another extension, so that

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

Reply via email to