]> sourceware.org Git - automake.git/commitdiff
More error checking
authorTom Tromey <tromey@redhat.com>
Sat, 21 Sep 1996 20:06:36 +0000 (20:06 +0000)
committerTom Tromey <tromey@redhat.com>
Sat, 21 Sep 1996 20:06:36 +0000 (20:06 +0000)
ChangeLog
automake.in
automake.texi
tests/ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/primary.test [new file with mode: 0755]
tests/primary2.test [new file with mode: 0755]
version.texi

index 2bd647b7aeb61b7dc15133a109ef19a753b451c9..622075a54cdc9043056c1bad54ddadbbe5bf3db6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat Sep 21 13:59:15 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+       * automake.in (am_install_var): More error checking.
+
 Fri Sep 20 09:06:37 1996  Tom Tromey  <tromey@creche.cygnus.com>
 
        * tags.am (TAGS): Minor cleanup.
index 33bb04695f0cdb517e2d7653928d45be0b773471..9905c4ad93c55862efbee27cdc4f6af3e70c506c 100755 (executable)
@@ -3617,6 +3617,11 @@ sub am_install_var
     # for Gnitsoids.
     local (%valid) = &am_primary_prefixes ($primary, @prefixes);
 
+    # If a primary includes a configure substitution, then the EXTRA_
+    # form is required.  Otherwise we can't properly do our job.
+    local ($require_extra);
+    local ($warned_about_extra) = 0;
+
     local ($clean_file) = $file . '-clean';
     local ($one_name);
     local ($X);
@@ -3631,7 +3636,23 @@ sub am_install_var
            foreach $rcurs (&variable_value_as_list ($one_name))
            {
                # Skip configure substitutions.  Possibly bogus.
-               next if $rcurs =~ /^\@.*\@$/;
+               if ($rcurs =~ /^\@.*\@$/)
+               {
+                   if ($X eq 'EXTRA')
+                   {
+                       if (! $warned_about_extra)
+                       {
+                           $warned_about_extra = 1;
+                           &am_line_error ($one_name,
+                                           "\`$one_name' contains configure substitution, but shouldn't");
+                       }
+                   }
+                   else
+                   {
+                       $require_extra = $one_name;
+                   }
+                   next;
+               }
                push (@result, $rcurs);
            }
 
@@ -3690,6 +3711,12 @@ sub am_install_var
        $output_vars .= "\n";
     }
 
+    if ($require_extra && ! &variable_defined ('EXTRA_' . $primary))
+    {
+       &am_line_error ($require_extra,
+                       "\`$require_extra' contains configure substitution, but \`EXTRA_$primary' not defined");
+    }
+
     # Push here because PRIMARY might be configure time determined.
     push (@all, '$(' . $primary . ')')
        if $do_all && @used;
index 7e83dfc8ee676786b33075c860e17151ba5ceb1b..394646c53578a2f8dc8ea0d17cf8c44a8bb40556 100644 (file)
@@ -265,15 +265,17 @@ works.
 @node General Operation
 @section General Operation
 
-Automake essentially works by reading a @file{Makefile.am} and
-generating a @file{Makefile.in}.
+Automake works by reading a @file{Makefile.am} and generating a
+@file{Makefile.in}.  Certain macros and targets defined in the
+@file{Makefile.am} instruct automake to generate more specialized code;
+for instances a @samp{bin_PROGRAMS} macro definition will cause targets
+for compiling and linking to be generated.
 
 The macro definitions and targets in the @file{Makefile.am} are copied
-into the generated file.  This allows you to add essentially arbitrary
-code into the generated @file{Makefile.in}.  For instance the Automake
-distribution includes a non-standard @code{cvs-dist} target, which the
-Automake maintainer uses to make distributions from his source control
-system.
+into the generated file.  This allows you to add arbitrary code into the
+generated @file{Makefile.in}.  For instance the Automake distribution
+includes a non-standard @code{cvs-dist} target, which the Automake
+maintainer uses to make distributions from his source control system.
 
 Note that GNU make extensions are not recognized by Automake.  Using
 such extensions in a @file{Makefile.am} will lead to errors or confusing
index b14501e40497a72ab2cb5a24fb706b4eba73a880..a82e7d0523c1a1d7f2e1b18c90b0b5243a0dfb92 100644 (file)
@@ -1,3 +1,8 @@
+Sat Sep 21 14:01:10 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+       * primary2.test: New file.
+       * primary.test: New file.
+
 Fri Sep 20 09:39:27 1996  Tom Tromey  <tromey@creche.cygnus.com>
 
        * confsub.test: New file.
index 102e9b9effc2f18bf9cab587ddb2155a22c8022d..87886b7986d9341fff102c1fd708d0af1e806ed2 100644 (file)
@@ -15,6 +15,6 @@ man.test info.test obsolete.test lex.test scripts.test subdir2.test \
 exsource.test canon4.test dup.test defun.test cxxlink.test cxxnoc.test \
 order.test libobj2.test interp.test alllib.test block.test libobj3.test \
 gnits.test interp2.test colneq.test implicit.test spell.test spell2.test \
-confsub.test
+confsub.test primary.test primary2.test
 
 EXTRA_DIST = defs $(TESTS)
index c940a5fdb6111a0f1c9865e291858880b06dc5cf..8b65426e72a1a9e04f07b208c68b50ae8849edb0 100644 (file)
@@ -53,7 +53,7 @@ man.test info.test obsolete.test lex.test scripts.test subdir2.test \
 exsource.test canon4.test dup.test defun.test cxxlink.test cxxnoc.test \
 order.test libobj2.test interp.test alllib.test block.test libobj3.test \
 gnits.test interp2.test colneq.test implicit.test spell.test spell2.test \
-confsub.test
+confsub.test primary.test primary2.test
 
 EXTRA_DIST = defs $(TESTS)
 mkinstalldirs = $(top_srcdir)/mkinstalldirs
diff --git a/tests/primary.test b/tests/primary.test
new file mode 100755 (executable)
index 0000000..3a561b7
--- /dev/null
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+# Test to make sure errors in am_install_var work.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = @programs@
+END
+
+$AUTOMAKE && exit 1
+exit 0
diff --git a/tests/primary2.test b/tests/primary2.test
new file mode 100755 (executable)
index 0000000..81c5db7
--- /dev/null
@@ -0,0 +1,13 @@
+#! /bin/sh
+
+# Test to make sure errors in am_install_var work.
+
+. $srcdir/defs || exit 1
+
+cat > Makefile.am << 'END'
+bin_PROGRAMS = @programs@
+EXTRA_PROGRAMS = joe @more@
+END
+
+$AUTOMAKE && exit 1
+exit 0
index 3513c74bf995b3124f9017a8fd59d63dfd298423..f1d015185f4e8c229f633df6d79324a1d0b92884 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 20 September 1996
+@set UPDATED 21 September 1996
 @set EDITION 1.1f
 @set VERSION 1.1f
This page took 0.048234 seconds and 5 git commands to generate.