#!@prefix@/bin/php -Cq 1) { die("No support yet for multiple libraries in one package.\n"); } $wp = @fopen("Makefile.in", "w"); if (is_resource($wp)) { print "Creating Makefile.in..."; flush(); } else { die("Could not create Makefile.in in current directory.\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 INCLUDES = $includes LTLIBRARY_NAME = lib{$lib}.la LTLIBRARY_SOURCES = $sources LTLIBRARY_SHARED_NAME = {$lib}.la LTLIBRARY_SHARED_LIBADD = $libadd include \$(top_srcdir)/build/dynlib.mk "); } fclose($wp); print "done.\n"; } // }}} // {{{ parse_package_file() function parse_package_file($file) { global $in_file, $curlib, $curelem, $libdata, $cdata; $in_file = false; $curlib = ''; $curelem = ''; $libdata = array(); $cdata = array(); $xp = xml_parser_create(); xml_set_element_handler($xp, "start_handler", "end_handler"); xml_set_character_data_handler($xp, "cdata_handler"); xml_parser_set_option($xp, XML_OPTION_CASE_FOLDING, false); $fp = @fopen($file, "r"); if (!is_resource($fp)) { die("Could not open file `$file'.\n"); } while (!feof($fp)) { xml_parse($xp, fread($fp, 2048), feof($fp)); } xml_parser_free($xp); } // }}} // {{{ start_handler() function start_handler($xp, $elem, $attrs) { global $cdata, $in_file, $curelem; switch ($elem) { case "File": { switch ($attrs['Role']) { case "ext": { $in_file = true; $cdata = array(); break; } case "php": default: { break; } } break; } case "Includes": case "LibName": case "LibAdd": case "Sources": { $curelem = $elem; break; } } } // }}} // {{{ end_handler() function end_handler($xp, $elem) { global $in_file, $curlib, $curelem, $libdata, $cdata; switch ($elem) { case "File": { if ($in_file === true) { $libname = trim($cdata['LibName']); $libdata[$libname] = array( "sources" => trim($cdata['Sources']), "includes" => trim($cdata['Includes']), "libadd" => trim($cdata['LibAdd']), ); $in_file = false; } break; } } } // }}} // {{{ cdata_handler() function cdata_handler($xp, $data) { global $curelem, $cdata; switch ($curelem) { case "Includes": case "LibAdd": case "LibName": case "Sources": { $cdata[$curelem] .= $data; break; } } } // }}} /* * Local variables: * tab-width: 4 * c-basic-offset: 4 * indent-tabs-mode: t * End: */ ?>