From: Stig Bakken Date: Tue, 28 Aug 2001 11:18:08 +0000 (+0000) Subject: * started work on php file support X-Git-Tag: PRE_SUBST_Z_MACROS~326 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=36c27603b153aedc5bcc36e504fff6164a41158f;p=php * started work on php file support --- diff --git a/pear/scripts/pearize.in b/pear/scripts/pearize.in index 48ff2d257e..5c971a985e 100644 --- a/pear/scripts/pearize.in +++ b/pear/scripts/pearize.in @@ -1,12 +1,14 @@ #!@prefix@/bin/php -Cq 1) { + global $libdata, $debug; + if (sizeof($libdata) > 1) { die("No support yet for multiple libraries in one package.\n"); } - $wp = @fopen("Makefile.in", "w"); + if ($debug) { + $wp = fopen("php://stdout", "w"); + } else { + $wp = @fopen("Makefile.in", "w"); + } if (is_resource($wp)) { print "Creating Makefile.in..."; flush(); @@ -44,17 +67,22 @@ function make_makefile_in(&$env) die("Could not create Makefile.in in current directory.\n"); } + $who = $env["USER"]; + $when = gmdate('Y-m-d h:i'); + fwrite($wp, "# This file was generated by `pearize' by $who at $when GMT\n\n"); + foreach ($libdata as $lib => $info) { extract($info); - $_who = $env["USER"]; - $_when = gmdate('Y-m-d h:i'); - fwrite($wp, "# This file was generated by `pearize' by $_who at $_when GMT + fwrite($wp, "\ INCLUDES = $includes LTLIBRARY_NAME = lib{$lib}.la LTLIBRARY_SOURCES = $sources LTLIBRARY_SHARED_NAME = {$lib}.la LTLIBRARY_SHARED_LIBADD = $libadd "); + } + + if (sizeof($libdata) > 0) { fwrite($wp, "include \$(top_srcdir)/build/dynlib.mk\n"); } fclose($wp); @@ -67,12 +95,15 @@ LTLIBRARY_SHARED_LIBADD = $libadd function parse_package_file($file) { global $in_file, $curlib, $curelem, $libdata, $cdata; + global $currinstalldir, $baseinstalldir; $in_file = false; $curlib = ''; $curelem = ''; $libdata = array(); $cdata = array(); + $baseinstalldir = array(); + $currinstalldir = array(); $xp = xml_parser_create(); xml_set_element_handler($xp, "start_handler", "end_handler"); @@ -94,10 +125,13 @@ function parse_package_file($file) function start_handler($xp, $elem, $attrs) { - global $cdata, $in_file, $curelem; + global $cdata, $in_file, $curelem, $curfile, $filerole; + global $baseinstalldir, $currinstalldir; switch ($elem) { case "FILE": { - switch ($attrs['ROLE']) { + $curfile = ''; + $filerole = $attrs['ROLE']; + switch ($filerole) { case "ext": { $in_file = true; $cdata = array(); @@ -109,6 +143,17 @@ function start_handler($xp, $elem, $attrs) } break; } + case "DIR": { + $cdir = $currinstalldir[sizeof($currinstalldir)-1]; + $bdir = $baseinstalldir[sizeof($baseinstalldir)-1]; + array_push($currinstalldir, "$cdir/{$attrs[NAME]}"); + if (isset($attrs["BASEINSTALLDIR"])) { + array_push($baseinstalldir, "$bdir/{$attrs[BASEINSTALLDIR]}"); + } else { + array_push($baseinstalldir, $bdir); + } + break; + } case "INCLUDES": case "LIBNAME": case "LIBADD": @@ -125,6 +170,7 @@ function start_handler($xp, $elem, $attrs) function end_handler($xp, $elem) { global $in_file, $curlib, $curelem, $libdata, $cdata; + global $baseinstalldir, $currinstalldir; switch ($elem) { case "FILE": { if ($in_file === true) { @@ -138,6 +184,11 @@ function end_handler($xp, $elem) } break; } + case "DIR": { + array_pop($currinstalldir); + array_pop($baseinstalldir); + break; + } } } @@ -146,8 +197,12 @@ function end_handler($xp, $elem) function cdata_handler($xp, $data) { - global $curelem, $cdata; + global $curelem, $cdata, $curfile; switch ($curelem) { + case "FILE": { + $curfile .= $data; + break; + } case "INCLUDES": case "LIBADD": case "LIBNAME":