summaryrefslogtreecommitdiff
path: root/pear/scripts/pearize.in
diff options
context:
space:
mode:
Diffstat (limited to 'pear/scripts/pearize.in')
-rw-r--r--pear/scripts/pearize.in225
1 files changed, 0 insertions, 225 deletions
diff --git a/pear/scripts/pearize.in b/pear/scripts/pearize.in
deleted file mode 100644
index 1a17d3f2d0..0000000000
--- a/pear/scripts/pearize.in
+++ /dev/null
@@ -1,225 +0,0 @@
-#!@prefix@/bin/php -Cq
-<?php // -*- PHP -*-
-
-main($argc, $argv, $_ENV);
-
-// {{{ main()
-
-function main(&$argc, &$argv, &$env)
-{
- global $debug;
- $debug = false;
- $file = check_options($argc, $argv, $env);
- parse_package_file($file);
- make_makefile_in($env);
-}
-
-// }}}
-// {{{ check_options()
-
-function check_options($argc, $argv, $env)
-{
- global $debug;
- array_shift($argv);
- while ($argv[0]{0} == '-' && $argv[0] != '-') {
- $opt = array_shift($argv);
- switch ($opt) {
- case '--': {
- break 2;
- }
- case '-d': {
- $debug = true;
- break;
- }
- default: {
- die("pearize: unrecognized option `$opt'\n");
- }
- }
- }
- $file = array_shift($argv);
- if (empty($file)) {
- $file = "package.xml";
- } elseif ($file == '-') {
- $file = "php://stdin";
- }
- return $file;
-}
-
-// }}}
-// {{{ make_makefile_in()
-
-function make_makefile_in(&$env)
-{
- global $libdata, $debug;
- if (sizeof($libdata) > 1) {
- die("No support yet for multiple libraries in one package.\n");
- }
-
- if ($debug) {
- $wp = fopen("php://stdout", "w");
- } else {
- $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");
- }
-
- $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);
- 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);
- print "done.\n";
-}
-
-// }}}
-// {{{ parse_package_file()
-
-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");
- 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, $curfile, $filerole;
- global $baseinstalldir, $currinstalldir;
- switch ($elem) {
- case "file": {
- $curfile = '';
- $filerole = $attrs['role'];
- switch ($filerole) {
- case "ext": {
- $in_file = true;
- $cdata = array();
- break;
- }
- case "php": default: {
- break;
- }
- }
- 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":
- case "sources": {
- $curelem = $elem;
- break;
- }
- }
-}
-
-// }}}
-// {{{ end_handler()
-
-function end_handler($xp, $elem)
-{
- global $in_file, $curlib, $curelem, $libdata, $cdata;
- global $baseinstalldir, $currinstalldir;
- 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;
- }
- case "dir": {
- array_pop($currinstalldir);
- array_pop($baseinstalldir);
- break;
- }
- }
-}
-
-// }}}
-// {{{ cdata_handler()
-
-function cdata_handler($xp, $data)
-{
- global $curelem, $cdata, $curfile;
- switch ($curelem) {
- case "file": {
- $curfile .= $data;
- break;
- }
- 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:
- */
-?>