progname=$0
package=gnulib
-cvsdatestamp='$Date: 2007-01-21 20:07:09 $'
+cvsdatestamp='$Date: 2007-02-04 19:09:25 $'
last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
nl='
gnulib-tool --extract-autoconf-snippet module
gnulib-tool --extract-automake-snippet module
gnulib-tool --extract-include-directive module
+ gnulib-tool --extract-link-directive module
gnulib-tool --extract-license module
gnulib-tool --extract-maintainer module
gnulib-tool --extract-tests-module module
--extract-autoconf-snippet extract the snippet for configure.ac
--extract-automake-snippet extract the snippet for library makefile
--extract-include-directive extract the #include directive
+ --extract-link-directive extract the linker directive
--extract-license report the license terms of the source files
under lib/
--extract-maintainer report the maintainer(s) inside gnulib
s/^Description:[ ]*$//
s/^Files:[ ]*$//
s/^Depends-on:[ ]*$//
+ s/^configure\.ac-early:[ ]*$//
s/^configure\.ac:[ ]*$//
s/^Makefile\.am:[ ]*$//
s/^Include:[ ]*$//
+ s/^Link:[ ]*$//
s/^License:[ ]*$//
s/^Maintainer:[ ]*$//
tb
sed -n -e "/^Depends-on$sed_extract_prog" < "$lookedup_file"
}
+# func_get_autoconf_early_snippet module
+# Input:
+# - local_gnulib_dir from --local-dir
+func_get_autoconf_early_snippet ()
+{
+ func_lookup_file "modules/$1"
+ sed -n -e "/^configure\.ac-early$sed_extract_prog" < "$lookedup_file"
+}
+
# func_get_autoconf_snippet module
# Input:
# - local_gnulib_dir from --local-dir
sed -e 's/^\(["<]\)/#include \1/'
}
+# func_get_link_directive module
+# Input:
+# - local_gnulib_dir from --local-dir
+func_get_link_directive ()
+{
+ func_lookup_file "modules/$1"
+ sed -n -e "/^Link$sed_extract_prog" < "$lookedup_file"
+}
+
# func_get_license module
# Input:
# - local_gnulib_dir from --local-dir
# - libtool true if libtool will be used, false or blank otherwise
# - macro_prefix prefix of gl_LIBOBJS macros to use
# - actioncmd (optional) command that will reproduce this invocation
+# - for_test true if creating a package for testing, false otherwise
# Output:
# - uses_subdirs nonempty if object files in subdirs exist
func_emit_lib_Makefile_am ()
perhapsLT=
sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d'
fi
+ if $for_test; then
+ # When creating a package for testing: Attempt to provoke failures,
+ # especially link errors, already during "make" rather than during
+ # "make check", because "make check" is not possible in a cross-compiling
+ # situation. Turn check_PROGRAMS into noinst_PROGRAMS.
+ sed_transform_check_PROGRAMS='s,check_PROGRAMS,noinst_PROGRAMS,g'
+ else
+ sed_transform_check_PROGRAMS=
+ fi
echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
echo "## Process this file with automake to produce Makefile.in."
func_emit_copyright_notice
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'
+ -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' |
+ sed -e "$sed_transform_check_PROGRAMS"
if test "$module" = 'alloca'; then
echo "${libname}_${libext}_LIBADD += @${perhapsLT}ALLOCA@"
echo "${libname}_${libext}_DEPENDENCIES += @${perhapsLT}ALLOCA@"
echo "AM_CPPFLAGS ="
fi
echo
- if grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *= *$libname\\.$libext\$" allsnippets.tmp > /dev/null; then
+ if LC_ALL=C grep "^[a-zA-Z0-9_]*_${perhapsLT}LIBRARIES *= *$libname\\.$libext\$" allsnippets.tmp > /dev/null; then
# One of the snippets already specifies an installation location for the
# library. Don't confuse automake by saying it should not be installed.
:
# - sourcebase relative directory containing lib source code
# - m4base relative directory containing autoconf macros
# - testsbase relative directory containing unit test code
+# - for_test true if creating a package for testing, false otherwise
func_emit_tests_Makefile_am ()
{
if test "$libtool" = true; then
libext=a
sed_eliminate_LDFLAGS='/^lib_LDFLAGS[ ]*+=/d'
fi
+ if $for_test; then
+ # When creating a package for testing: Attempt to provoke failures,
+ # especially link errors, already during "make" rather than during
+ # "make check", because "make check" is not possible in a cross-compiling
+ # situation. Turn check_PROGRAMS into noinst_PROGRAMS.
+ sed_transform_check_PROGRAMS='s,check_PROGRAMS,noinst_PROGRAMS,g'
+ else
+ sed_transform_check_PROGRAMS=
+ fi
testsbase_inverse=`echo "$testsbase" | sed -e 's,/$,,' | sed -e 's,[^/][^/]*,..,g'`
echo "## DO NOT EDIT! GENERATED AUTOMATICALLY!"
echo "## Process this file with automake to produce Makefile.in."
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'
+ -e 's,lib%_LTLIBRARIES,lib_LTLIBRARIES,g' |
+ sed -e "$sed_transform_check_PROGRAMS"
} > amsnippet.tmp
# Skip the contents if its entirely empty.
if grep '[^ ]' amsnippet.tmp > /dev/null ; then
echo "TESTS ="
echo "TESTS_ENVIRONMENT ="
echo "noinst_PROGRAMS ="
- echo "check_PROGRAMS ="
+ if ! $for_test; then
+ echo "check_PROGRAMS ="
+ fi
echo "noinst_HEADERS ="
if grep '^pkgdata_DATA *+=' allsnippets.tmp > /dev/null; then
echo "pkgdata_DATA ="
makefile_am=Makefile.am
fi
+ # Create normal Makefile.ams.
+ for_test=false
+
# Create library makefile.
func_dest_tmpfilename $sourcebase/$makefile_am
func_emit_lib_Makefile_am > "$tmpfile"
if grep AC_GNU_SOURCE "$destdir"/$m4base/*.m4 >/dev/null 2>/dev/null; then
echo " AC_REQUIRE([AC_GNU_SOURCE])"
fi
- if grep gl_USE_SYSTEM_EXTENSIONS "$destdir"/$m4base/*.m4 >/dev/null 2>/dev/null; then
- echo " AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])"
- fi
- if grep gl_LOCK "$destdir"/$m4base/*.m4 >/dev/null 2>/dev/null; then
- echo " AC_REQUIRE([gl_LOCK_EARLY])"
- fi
+ for module in $modules; do
+ func_verify_module
+ if test -n "$module"; then
+ func_get_autoconf_early_snippet "$module"
+ fi
+ done \
+ | sed -e '/^$/d;' -e 's/^/ /'
echo "])"
echo
echo "# This macro should be invoked from $configure_ac, in the section"
# _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'`
+ libname_upper=`echo "$libname" | LC_ALL=C tr 'a-z' 'A-Z'`
echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
echo " AC_SUBST([${libname_upper}_LIBDEPS])"
echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
) | sed -e '/^$/d' -e 's/^/ /'
rm -f "$tmp"/include-angles "$tmp"/include-quotes "$tmp"/include-if
+ for module in $modules; do
+ func_get_link_directive "$module"
+ done \
+ | LC_ALL=C sort -u | sed -e '/^$/d' -e 's/^/ /' > "$tmp"/link
+ if test `wc -l < "$tmp"/link` != 0; then
+ echo
+ echo "You may need to use the following Makefile variables when linking."
+ echo "Use them in <program>_LDADD when linking a program, or"
+ echo "in <library>_a_LDFLAGS or <library>_la_LDFLAGS when linking a library."
+ cat "$tmp"/link
+ fi
+ rm -f "$tmp"/link
+
echo
echo "Don't forget to"
if test "$makefile_am" = Makefile.am; then
exec 0<&5 5<&-
}
+ # Create Makefile.ams that are for testing.
+ for_test=true
+
# Create $sourcebase/Makefile.am.
mkdir -p "$testdir/$sourcebase"
func_emit_lib_Makefile_am > "$testdir/$sourcebase/Makefile.am"
echo "AC_GNU_SOURCE"
echo
fi
- if grep gl_USE_SYSTEM_EXTENSIONS "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then
- echo "gl_USE_SYSTEM_EXTENSIONS"
- echo
- fi
- if grep gl_LOCK "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then
- echo "gl_LOCK_EARLY"
- echo
- fi
+ for module in $modules; do
+ func_verify_module
+ if test -n "$module"; then
+ func_get_autoconf_early_snippet "$module"
+ fi
+ done \
+ | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
if test "$libtool" = true; then
echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
echo "gl_cond_libtool=true"
# _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'`
+ libname_upper=`echo "$libname" | LC_ALL=C 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_GNU_SOURCE"
echo
fi
- if grep gl_USE_SYSTEM_EXTENSIONS "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then
- echo "gl_USE_SYSTEM_EXTENSIONS"
- echo
- fi
- if grep gl_LOCK "$testdir/$m4base"/*.m4 >/dev/null 2>/dev/null; then
- echo "gl_LOCK_EARLY"
- echo
- fi
+ for module in $modules; do
+ func_verify_nontests_module
+ if test -n "$module"; then
+ func_get_autoconf_early_snippet "$module"
+ fi
+ done \
+ | sed -e '/^$/d;' -e 's/AC_REQUIRE(\[\([^()]*\)\])/\1/'
if test "$libtool" = true; then
echo "AM_CONDITIONAL([GL_COND_LIBTOOL], [true])"
echo "gl_cond_libtool=true"
# _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'`
+ libname_upper=`echo "$libname" | LC_ALL=C tr 'a-z' 'A-Z'`
echo " ${libname_upper}_LIBDEPS=\"\$gl_libdeps\""
echo " AC_SUBST([${libname_upper}_LIBDEPS])"
echo " ${libname_upper}_LTLIBDEPS=\"\$gl_ltlibdeps\""
m4dirs=
m4dirs_count=0
if test -f "$destdir"/Makefile.am; then
- aclocal_amflags=`grep '^ACLOCAL_AMFLAGS[ ]*=' "$destdir"/Makefile.am | sed -e 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/'`
+ aclocal_amflags=`sed -n 's/^ACLOCAL_AMFLAGS[ ]*=\(.*\)$/\1/p' "$destdir"/Makefile.am`
m4dir_is_next=
for arg in $aclocal_amflags; do
if test -n "$m4dir_is_next"; then
fi
;;
esac
+ m4dir_is_next=
else
if test "X$arg" = "X-I"; then
m4dir_is_next=yes
done
;;
+ extract-link-directive )
+ for module
+ do
+ func_verify_module
+ if test -n "$module"; then
+ func_get_link_directive "$module"
+ fi
+ done
+ ;;
+
extract-license )
for module
do