For libraries not built with libtool:
authorBruno Haible <bruno@clisp.org>
Sat, 9 Sep 2006 19:02:08 +0000 (19:02 +0000)
committerBruno Haible <bruno@clisp.org>
Sat, 9 Sep 2006 19:02:08 +0000 (19:02 +0000)
  - Fix the _LDFLAGS issue.
  - Generate _LIBDEPS and _LTLIBDEPS variables.

ChangeLog
gnulib-tool
modules/gc
modules/iconvme
modules/striconv

index 2ddf4cd..743938e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2006-09-09  Bruno Haible  <bruno@clisp.org>
+
+       * gnulib-tool (func_emit_lib_Makefile_am): Eliminate lib_LDFLAGS
+       assignments if building a library without libtool.
+       (func_emit_tests_Makefile_am): Likewise. Handle lib_* variables as
+       in func_emit_lib_Makefile_am.
+       (func_import): When building a static library libfoo.a, arrange to
+       define variables LIBFOO_LIBDEPS and LIBFOO_LTLIBDEPS.
+       (func_create_testdir): Likewise.
+       * modules/gc (configure.ac, Makefile.am): If building statically,
+       augment gl_libdeps and gl_ltlibdeps instead of lib_LDFLAGS.
+       * modules/iconvme (configure.ac, Makefile.am): Likewise.
+       * modules/striconv (configure.ac, Makefile.am): Likewise.
+       Based on a suggestion by Ralf Wildenhues.
+
 2006-09-08  Jim Meyering  <jim@meyering.net>
 
        Don't make generated files read-only.  That would bother too many
index 6374773..5b44ee0 100755 (executable)
@@ -22,7 +22,7 @@
 
 progname=$0
 package=gnulib
-cvsdatestamp='$Date: 2006-09-07 13:00:56 $'
+cvsdatestamp='$Date: 2006-09-09 19:02:08 $'
 last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
 version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
 
@@ -1043,9 +1043,11 @@ func_emit_lib_Makefile_am ()
   if test "$libtool" = true; then
     libext=la
     perhapsLT=LT
+    sed_eliminate_LDFLAGS=
   else
     libext=a
     perhapsLT=
+    sed_eliminate_LDFLAGS='/^lib_LDFLAGS[      ]*+=/d'
   fi
   echo "## Process this file with automake to produce Makefile.in."
   func_emit_copyright_notice
@@ -1066,6 +1068,7 @@ func_emit_lib_Makefile_am ()
           func_get_automake_snippet "$module" |
             sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
                 -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' |
+            sed -e "$sed_eliminate_LDFLAGS" |
             sed -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' |
             sed -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
                 -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g'
@@ -1096,7 +1099,9 @@ func_emit_lib_Makefile_am ()
   echo
   echo "${libname}_${libext}_SOURCES ="
   echo "${libname}_${libext}_LIBADD = @${perhapsLT}LIBOBJS@"
-  echo "${libname}_${libext}_LDFLAGS = \$(AM_LDFLAGS)"
+  if test "$libtool" = true; then
+    echo "${libname}_${libext}_LDFLAGS = \$(AM_LDFLAGS)"
+  fi
   if test -z "$makefile_name"; then
     echo "noinst_HEADERS ="
     # Automake versions < 1.9b create an empty pkgdatadir at installation time
@@ -1148,6 +1153,13 @@ func_emit_tests_Makefile_am ()
   else
     libext=a
   fi
+  if test "$libtool" = true; then
+    libext=la
+    sed_eliminate_LDFLAGS=
+  else
+    libext=a
+    sed_eliminate_LDFLAGS='/^lib_LDFLAGS[      ]*+=/d'
+  fi
   testsbase_inverse=`echo "$testsbase" | sed -e 's,/$,,' | sed -e 's,[^/][^/]*,..,g'`
   echo "## Process this file with automake to produce Makefile.in."
   func_emit_copyright_notice
@@ -1161,7 +1173,15 @@ func_emit_tests_Makefile_am ()
     for module in $modules; do
       func_verify_tests_module
       if test -n "$module"; then
-        func_get_automake_snippet "$module" > amsnippet.tmp
+        {
+          func_get_automake_snippet "$module" |
+            sed -e 's,lib_LIBRARIES,lib%_LIBRARIES,g' \
+                -e 's,lib_LTLIBRARIES,lib%_LTLIBRARIES,g' |
+            sed -e "$sed_eliminate_LDFLAGS" |
+            sed -e 's,lib_\([A-Z][A-Z]*\),'"${libname}_${libext}"'_\1,g' |
+            sed -e 's,lib%_LIBRARIES,lib_LIBRARIES,g' \
+                -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g'
+        } > amsnippet.tmp
         # Skip the contents if its entirely empty.
         if grep '[^     ]' amsnippet.tmp > /dev/null ; then
           echo "## begin gnulib module $module"
@@ -1816,8 +1836,12 @@ func_import ()
     echo "["
     if test "$libtool" = true; then
       echo "  AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
+      echo "  gl_cond_libtool=true"
     else
       echo "  AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
+      echo "  gl_cond_libtool=false"
+      echo "  gl_libdeps="
+      echo "  gl_ltlibdeps="
     fi
     if test "$auxdir" != "build-aux"; then
       sed_replace_build_aux='
@@ -1845,6 +1869,15 @@ func_import ()
         fi
       fi
     done
+    # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
+    # created using libtool, because libtool already handles the dependencies.
+    if test "$libtool" != true; then
+      libname_upper=`echo "$libname" | tr 'a-z' 'A-Z'`
+      echo "  ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
+      echo "  AC_SUBST([${libname_upper}_LIBDEPS])"
+      echo "  ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
+      echo "  AC_SUBST([${libname_upper}_LTLIBDEPS])"
+    fi
     echo "])"
     echo
     echo "# This macro records the list of files which have been installed by"
@@ -2089,8 +2122,12 @@ func_create_testdir ()
      fi
      if test "$libtool" = true; then
        echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
+       echo "gl_cond_libtool=true"
      else
        echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
+       echo "gl_cond_libtool=false"
+       echo "gl_libdeps="
+       echo "gl_ltlibdeps="
      fi
      # Wrap the set of autoconf snippets into an autoconf macro that is then
      # invoked. This is needed because autoconf does not support AC_REQUIRE
@@ -2128,6 +2165,15 @@ func_create_testdir ()
            | sed -e "$sed_replace_build_aux"
        fi
      done
+     # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
+     # created using libtool, because libtool already handles the dependencies.
+     if test "$libtool" != true; then
+       libname_upper=`echo "$libname" | tr 'a-z' 'A-Z'`
+       echo "  ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
+       echo "  AC_SUBST([${libname_upper}_LIBDEPS])"
+       echo "  ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
+       echo "  AC_SUBST([${libname_upper}_LTLIBDEPS])"
+     fi
      echo "])"
      echo "gl_INIT"
      echo
@@ -2184,8 +2230,12 @@ func_create_testdir ()
    fi
    if test "$libtool" = true; then
      echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
+     echo "gl_cond_libtool=true"
    else
      echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [false])"
+     echo "gl_cond_libtool=false"
+     echo "gl_libdeps="
+     echo "gl_ltlibdeps="
    fi
    # Wrap the set of autoconf snippets into an autoconf macro that is then
    # invoked. This is needed because autoconf does not support AC_REQUIRE
@@ -2213,6 +2263,15 @@ func_create_testdir ()
          | sed -e "$sed_replace_build_aux"
      fi
    done
+   # _LIBDEPS and _LTLIBDEPS variables are not needed if this library is
+   # created using libtool, because libtool already handles the dependencies.
+   if test "$libtool" != true; then
+     libname_upper=`echo "$libname" | tr 'a-z' 'A-Z'`
+     echo "  ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
+     echo "  AC_SUBST([${libname_upper}_LIBDEPS])"
+     echo "  ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
+     echo "  AC_SUBST([${libname_upper}_LTLIBDEPS])"
+   fi
    echo "])"
    echo "gl_INIT"
    echo
index 78ace10..c35e912 100644 (file)
@@ -12,13 +12,15 @@ havelib
 
 configure.ac:
 gl_GC
+if test $gl_cond_libtool = false; then
+  gl_ltlibdeps="$gl_ltlibdeps $LTLIBGCRYPT"
+  gl_libdeps="$gl_libdeps $LIBGCRYPT"
+fi
 
 Makefile.am:
 EXTRA_DIST += gc.h
 if GL_COND_LIBTOOL
 lib_LDFLAGS += $(LTLIBGCRYPT)
-else
-lib_LDFLAGS += $(LIBGCRYPT)
 endif
 
 Include:
index 34636dd..da4fbff 100644 (file)
@@ -12,13 +12,15 @@ strdup
 
 configure.ac:
 gl_ICONVME
+if test $gl_cond_libtool = false; then
+  gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
+  gl_libdeps="$gl_libdeps $LIBICONV"
+fi
 
 Makefile.am:
 lib_SOURCES += iconvme.h iconvme.c
 if GL_COND_LIBTOOL
 lib_LDFLAGS += $(LTLIBICONV)
-else
-lib_LDFLAGS += $(LIBICONV)
 endif
 
 Include:
index 887681e..496fea0 100644 (file)
@@ -11,13 +11,15 @@ strdup
 c-strcase
 
 configure.ac:
+if test $gl_cond_libtool = false; then
+  gl_ltlibdeps="$gl_ltlibdeps $LTLIBICONV"
+  gl_libdeps="$gl_libdeps $LIBICONV"
+fi
 
 Makefile.am:
 lib_SOURCES += striconv.h striconv.c
 if GL_COND_LIBTOOL
 lib_LDFLAGS += $(LTLIBICONV)
-else
-lib_LDFLAGS += $(LIBICONV)
 endif
 
 Include: