]> sourceware.org Git - automake.git/commitdiff
better error when ldadd/libadd confused
authorTom Tromey <tromey@redhat.com>
Wed, 2 Apr 1997 07:14:57 +0000 (07:14 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 2 Apr 1997 07:14:57 +0000 (07:14 +0000)
ChangeLog
automake.in
tests/ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/ldadd.test [new file with mode: 0755]

index 0eeb524d9010876278995536d0f8bdd81b87e554..dc2265e47686ca3dcb0d59d719d22c81b07daf30 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+Wed Apr  2 00:03:50 1997  Tom Tromey  <tromey@cygnus.com>
+
+       * automake.in (handle_programs): Error if LIBADD used where LDADD
+       meant.
+       (handle_libraries): Error if LDADD used where LIBADD meant.
+       (handle_ltlibraries): Likewise.
+
+Tue Apr  1 22:46:33 1997  Tom Tromey  <tromey@cygnus.com>
+
+       * automake.in (check_canonical_spelling): New sub.
+       (handle_programs): Use it.
+       (handle_libraries): Likewise.
+       (handle_ltlibraries): Likewise.
+
 Mon Mar 31 12:13:08 1997  Tom Tromey  <tromey@cygnus.com>
 
        * depend2.am (.deps/%.P): Make .P file depend on everything the .c
index 469c7a045efb7efd028dd8537b2f616e8ee19555..859d50164a3460685d2ceb414e7b4d3de937971e 100755 (executable)
@@ -1319,6 +1319,30 @@ sub handle_lib_objects
     return $seen_libobjs;
 }
 
+# Canonicalize a name, and check to make sure the non-canonical name
+# is never used.  Returns canonical name.  Arguments are name and a
+# list of suffixes to check for.
+sub check_canonical_spelling
+{
+    local ($name, @suffixes) = @_;
+    local ($xname, $xt);
+
+    ($xname = $name) =~ tr/A-Za-z0-9_/_/c;
+    if ($xname ne $name)
+    {
+       local ($xt);
+       foreach $xt (@suffixes)
+       {
+           &am_line_error ($name . $xt,
+                           "invalid variable \`" . $name . $xt
+                           . "'; should be \`" . $xname . $xt . "'")
+               if &variable_defined ($name . $xt);
+       }
+    }
+
+    return $xname;
+}
+
 # Handle C programs.
 sub handle_programs
 {
@@ -1341,19 +1365,10 @@ sub handle_programs
     {
        local ($obj) = &get_object_extension ($one_file);
 
-       # Canonicalize names.
-       ($xname = $one_file) =~ tr/A-Za-z0-9_/_/c;
-       if ($xname ne $one_file)
-       {
-           local ($xt);
-           foreach $xt ('_LDADD', '_LDFLAGS', '_SOURCES', '_OBJECTS', '_DEPENDENCIES')
-           {
-               &am_line_error ($one_file . $xt,
-                               "invalid variable \`" . $one_file . $xt
-                               . "'; should be \`" . $xname . $xt . "'")
-                   if &variable_defined ($one_file . $xt);
-           }
-       }
+       # Canonicalize names and check for misspellings.
+       $xname = &check_canonical_spelling ($one_file, '_LDADD', '_LDFLAGS',
+                                           '_SOURCES', '_OBJECTS',
+                                           '_DEPENDENCIES');
 
        # FIXME: Using a trick to figure out if any lex sources appear
        # in our program; should use some cleaner method.
@@ -1390,6 +1405,13 @@ sub handle_programs
            $xt = '_SOURCES'
        }
 
+       if (&variable_defined ($xname . '_LIBADD'))
+       {
+           &am_line_error ($xname . '_LIBADD',
+                           "use \`" . $xname . "_LDADD', not \`"
+                           . $xname . "_LIBADD'");
+       }
+
        if (! &variable_defined ($xname . '_LDFLAGS'))
        {
            # Define the prog_LDFLAGS variable.
@@ -1499,19 +1521,9 @@ sub handle_libraries
 
        local ($obj) = &get_object_extension ($onelib);
 
-       # Canonicalize names.
-       ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
-       if ($xlib ne $onelib)
-       {
-           local ($xt);
-           foreach $xt ('_LIBADD', '_SOURCES', '_OBJECTS', '_DEPENDENCIES')
-           {
-               &am_line_error ($onelib . $xt,
-                               "invalid variable \`" . $onelib . $xt
-                               . "'; should be \`" . $xlib . $xt . "'")
-                   if &variable_defined ($onelib . $xt);
-           }
-       }
+       # Canonicalize names and check for misspellings.
+       $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_SOURCES',
+                                          '_OBJECTS', '_DEPENDENCIES');
 
        if (&variable_defined ($xlib . '_LIBADD'))
        {
@@ -1527,6 +1539,13 @@ sub handle_libraries
            &define_variable ($xlib . "_LIBADD", '');
        }
 
+       if (&variable_defined ($xlib . '_LDADD'))
+       {
+           &am_line_error ($xlib . '_LDADD',
+                           "use \`" . $xlib . "_LIBADD', not \`"
+                           . $xlib . "_LDADD'");
+       }
+
        &handle_source_transform ($xlib, $onelib, $obj);
 
        $output_rules .=
@@ -1610,19 +1629,10 @@ sub handle_ltlibraries
 
        local ($obj) = &get_object_extension ($onelib);
 
-       # Canonicalize names.
-       ($xlib = $onelib) =~ tr/A-Za-z0-9_/_/c;
-       if ($xlib ne $onelib)
-       {
-           local ($xt);
-           foreach $xt ('_LIBADD', '_LDFLAGS', '_SOURCES', '_OBJECTS', '_DEPENDENCIES')
-           {
-               &am_line_error ($onelib . $xt,
-                               "invalid variable \`" . $onelib . $xt
-                               . "'; should be \`" . $xlib . $xt . "'")
-                   if &variable_defined ($onelib . $xt);
-           }
-       }
+       # Canonicalize names and check for misspellings.
+       $xlib = &check_canonical_spelling ($onelib, '_LIBADD', '_LDFLAGS',
+                                          '_SOURCES', '_OBJECTS',
+                                          '_DEPENDENCIES');
 
        if (! &variable_defined ($xlib . '_LDFLAGS'))
        {
@@ -1644,6 +1654,13 @@ sub handle_ltlibraries
            &define_variable ($xlib . "_LIBADD", '');
        }
 
+       if (&variable_defined ($xlib . '_LDADD'))
+       {
+           &am_line_error ($xlib . '_LDADD',
+                           "use \`" . $xlib . "_LIBADD', not \`"
+                           . $xlib . "_LDADD'");
+       }
+
        local ($linker) = &handle_source_transform ($xlib, $onelib, $obj);
 
        # Determine program to use for link.
index 9b2365988a9f0cfb01b217b2338997fb284589bd..8109eb9263a46f983d017ba9da04a998622f7c2d 100644 (file)
@@ -1,3 +1,7 @@
+Wed Apr  2 00:12:26 1997  Tom Tromey  <tromey@cygnus.com>
+
+       * ldadd.test: New file.
+
 Fri Mar 28 23:36:04 1997  Tom Tromey  <tromey@cygnus.com>
 
        * stamph.test: New file.
index 7fff1693e1be98301d450c8bd80938be102624b7..8ad2634eed4843518a68e635e0b47d4d044cfe58 100644 (file)
@@ -24,7 +24,8 @@ ranlib.test confvar.test confvar2.test stdlib.test cxxo.test \
 colon2.test colon3.test remake.test output.test output2.test \
 remake2.test output3.test output4.test colneq2.test subst.test \
 defun2.test yaccpp.test texinfo3.test texinfo4.test tagsub.test        \
-cxxlibobj.test seenc.test cygwin32.test lisp.test stamph.test
+cxxlibobj.test seenc.test cygwin32.test lisp.test stamph.test \
+ldadd.test
 
 EXTRA_DIST = defs $(TESTS)
 
index 8d3f401d5f1c0686b343d88eed5f509af7d6fab2..0631497fa631659feec7377028f1187c242c78d0 100644 (file)
@@ -78,7 +78,8 @@ ranlib.test confvar.test confvar2.test stdlib.test cxxo.test \
 colon2.test colon3.test remake.test output.test output2.test \
 remake2.test output3.test output4.test colneq2.test subst.test \
 defun2.test yaccpp.test texinfo3.test texinfo4.test tagsub.test        \
-cxxlibobj.test seenc.test cygwin32.test lisp.test stamph.test
+cxxlibobj.test seenc.test cygwin32.test lisp.test stamph.test \
+ldadd.test
 
 EXTRA_DIST = defs $(TESTS)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
diff --git a/tests/ldadd.test b/tests/ldadd.test
new file mode 100755 (executable)
index 0000000..80aba9a
--- /dev/null
@@ -0,0 +1,33 @@
+#! /bin/sh
+
+# Check to make sure incorrect LDADD usage is diagnosed.
+
+. $srcdir/defs || exit 1
+
+cat > configure.in << 'END'
+PACKAGE=nonesuch
+VERSION=nonesuch
+AC_PROG_CC
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AM_PROG_LIBTOOL
+AC_OUTPUT(Makefile)
+LTLIBOBJS="$LTLIBOBJS q.o"
+LIBOBJS="$LIBOBJS q.o"
+AC_SUBST(LTLIBOBJS)
+END
+
+cat > Makefile.am << 'END'
+lib_LTLIBRARIES = libtu.la
+libtu_la_SOURCES = foo.c
+libtu_la_LDADD = @LTLIBOBJS@
+END
+
+: > ltconfig
+: > ltmain.sh
+: > config.guess
+: > config.sub
+: > q.c
+
+$AUTOMAKE && exit 1
+exit 0
This page took 0.050196 seconds and 5 git commands to generate.