Perl 4 fixes
authorTom Tromey <tromey@redhat.com>
Wed, 4 Dec 1996 18:04:51 +0000 (18:04 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 4 Dec 1996 18:04:51 +0000 (18:04 +0000)
ChangeLog
Makefile.am
Makefile.in
automake.in
lib/am/Makefile.am
tests/ChangeLog
tests/defs

index 700adc9..6d1238f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 Wed Dec  4 00:41:23 1996  Tom Tromey  <tromey@cygnus.com>
 
+       * automake.in (scan_configure): Skip empty elements when adding to
+       libsources.  Perl 4 bug reported by Greg A Woods.
+
+       * Makefile.am (perl4-check): New target.
+       (cvs-dist): Run perl4-check.
+
+       Perl 4 fixes.  Reported by Greg A. Woods:
+       * automake.in (file_contents_with_transform): If transform caused
+       all chars to go away, then skip rest of loop.
+       (handle_texinfo): Don't use "next" in arg to
+       file_contents_with_transform.
+       (handle_dependencies): Ditto.
+       (handle_tests): Ditto.
+
        * m4/regex.m4 (AM_WITH_REGEX): Check for GNU regex in libc.  From
        Andreas Schwab.
 
index a1a9d89..5274827 100644 (file)
@@ -42,6 +42,12 @@ installcheck-local:
 ## to anybody else
 ##
 
+# Run the test suite using Perl 4.
+perl4-check: automake aclocal
+       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
+         $(MAKE) PERL=perl4.036 check; \
+       else :; fi
+
 # Some simple checks, and then ordinary check.  These are only really
 # guaranteed to work on my machine.
 maintainer-check: automake aclocal
@@ -72,7 +78,7 @@ maintainer-check: automake aclocal
 
 # Tag before making distribution.  Also, don't make a distribution if
 # checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check distcheck
+cvs-dist: maintainer-check perl4-check distcheck
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
index 50a30bb..53df386 100644 (file)
@@ -450,6 +450,12 @@ installcheck-local:
 
 ################################################################
 
+# Run the test suite using Perl 4.
+perl4-check: automake aclocal
+       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
+         $(MAKE) PERL=perl4.036 check; \
+       else :; fi
+
 # Some simple checks, and then ordinary check.  These are only really
 # guaranteed to work on my machine.
 maintainer-check: automake aclocal
@@ -474,7 +480,7 @@ maintainer-check: automake aclocal
 
 # Tag before making distribution.  Also, don't make a distribution if
 # checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check distcheck
+cvs-dist: maintainer-check perl4-check distcheck
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
index eaaeab3..2277dc5 100755 (executable)
@@ -1576,11 +1576,11 @@ sub handle_texinfo
     local ($xform);
     if ($cygnus_mode)
     {
-       $xform = 'next if /^NOTCYGNUS/; s/^CYGNUS//;';
+       $xform = 's/^NOTCYGNUS.*$//; s/^CYGNUS//;';
     }
     else
     {
-       $xform = 'next if /^CYGNUS/; s/^NOTCYGNUS//;';
+       $xform = 's/^CYGNUS.*$//; s/^NOTCYGNUS//;';
     }
     $output_rules .= &file_contents_with_transform ($xform, 'texinfos');
     push (@phony, 'install-info-am', 'uninstall-info');
@@ -2156,7 +2156,7 @@ sub handle_dependencies
                $output_rules .=
                    &file_contents_with_transform ('s/\@EXT\@/' . $ext .'/g;'
                                                   . 's/\@MKDEP\@/CXXMKDEP/g'
-                                                  . 'next if /^ONLYC/;',
+                                                  . 's/^ONLYC.*$//;',
                                                   'depend2');
                $need_cxx = 1;
            }
@@ -2907,7 +2907,7 @@ sub handle_tests
        }
        else
        {
-           $xform = 'next if /^CYGNUS/;';
+           $xform = 's/^CYGNUS.*$//';
        }
        $output_rules .= &file_contents_with_transform ($xform, 'dejagnu');
 
@@ -3136,6 +3136,8 @@ sub scan_configure
            s/\\$//;
            foreach (split)
            {
+               # Need to skip empty elements for Perl 4.
+               next if $_ eq '';
                $libsources{$_ . '.c'} = 1;
            }
        }
@@ -4018,13 +4020,21 @@ sub file_contents_with_transform
     local ($comment) = '';
     local ($spacing) = "\n";
     local ($skipping) = 0;
+    local ($had_chars);
 
     while (<FC_FILE>)
     {
        $_ =~ s/\@MAINT\@//g
            unless $seen_maint_mode;
 
+       $had_chars = length ($_);
        eval $command;
+       # If the transform caused all the characters to go away, then
+       # ignore the line.  Why do this?  Because in Perl 4, a "next"
+       # inside of an eval doesn't affect a loop outside the eval.
+       # So we can't pass in a "transform" that uses next.  We used
+       # to do this.
+       next if $had_chars && $_ eq '';
 
        if (/$IGNORE_PATTERN/o)
        {
index a1a9d89..5274827 100644 (file)
@@ -42,6 +42,12 @@ installcheck-local:
 ## to anybody else
 ##
 
+# Run the test suite using Perl 4.
+perl4-check: automake aclocal
+       @if $(SHELL) -c 'perl4.036 -v' > /dev/null 2>&1; then \
+         $(MAKE) PERL=perl4.036 check; \
+       else :; fi
+
 # Some simple checks, and then ordinary check.  These are only really
 # guaranteed to work on my machine.
 maintainer-check: automake aclocal
@@ -72,7 +78,7 @@ maintainer-check: automake aclocal
 
 # Tag before making distribution.  Also, don't make a distribution if
 # checks fail.  Also, make sure the NEWS file is up-to-date.
-cvs-dist: maintainer-check distcheck
+cvs-dist: maintainer-check perl4-check distcheck
        @if sed 1q $(srcdir)/NEWS | grep -e "$(VERSION)" > /dev/null; then :; else \
          echo "NEWS not updated; not releasing" 1>&2; \
          exit 1;                               \
index bbd2702..77b901c 100644 (file)
@@ -1,5 +1,8 @@
 Wed Dec  4 00:41:44 1996  Tom Tromey  <tromey@cygnus.com>
 
+       * defs: Allow user to set interpreter via PERL environment
+       variable.
+
        * Makefile.am (distclean-local): New target.
 
 Tue Dec  3 11:55:18 1996  Gordon Matzigkeit  <gord@gnu.ai.mit.edu>
index 56fb39b..13a4508 100644 (file)
@@ -35,17 +35,21 @@ END
 : > install-sh
 : > mkinstalldirs
 
-# See how redirections should work.
+# See how redirections should work.  User can set VERBOSE to see all
+# output.
 test -z "$VERBOSE" && {
    exec > /dev/null 2>&1
 }
 
+# User can set PERL to change the perl interpreter used.
+test -z "$PERL" && PERL=perl
+
 echo "=== Running test $0"
 
 # See how Automake should be run.  We put --foreign as the default
 # strictness to avoid having to create lots and lots of files.  A test
 # can override this by specifying a different strictness.
-AUTOMAKE="../../automake --amdir=$srcdir/.. --foreign"
+AUTOMAKE="$PERL ../../automake --amdir=$srcdir/.. --foreign"
 
 # See how aclocal should be run.
-ACLOCAL="../../aclocal --acdir=$srcdir/../m4"
+ACLOCAL="$PERL ../../aclocal --acdir=$srcdir/../m4"