From a262d09ebd4dd126c66922ded7cd4857811f7736 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 9 Sep 2006 19:02:08 +0000 Subject: [PATCH] For libraries not built with libtool: - Fix the _LDFLAGS issue. - Generate _LIBDEPS and _LTLIBDEPS variables. --- ChangeLog | 15 +++++++++++ gnulib-tool | 65 +++++++++++++++++++++++++++++++++++++++++++++--- modules/gc | 6 +++-- modules/iconvme | 6 +++-- modules/striconv | 6 +++-- 5 files changed, 89 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2ddf4cdce6..743938e5db 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2006-09-09 Bruno Haible + + * 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 Don't make generated files read-only. That would bother too many diff --git a/gnulib-tool b/gnulib-tool index 63747735d8..5b44ee09f6 100755 --- a/gnulib-tool +++ b/gnulib-tool @@ -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 diff --git a/modules/gc b/modules/gc index 78ace10078..c35e912173 100644 --- a/modules/gc +++ b/modules/gc @@ -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: diff --git a/modules/iconvme b/modules/iconvme index 34636ddf8f..da4fbff468 100644 --- a/modules/iconvme +++ b/modules/iconvme @@ -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: diff --git a/modules/striconv b/modules/striconv index 887681e281..496fea0b33 100644 --- a/modules/striconv +++ b/modules/striconv @@ -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: -- 2.30.2