#! /bin/sh
#
-# Copyright (C) 2002-2006 Free Software Foundation, Inc.
+# Copyright (C) 2002-2007 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
progname=$0
package=gnulib
-cvsdatestamp='$Date: 2006-12-22 12:49:38 $'
+cvsdatestamp='$Date: 2007-03-17 16:27:48 $'
last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'`
version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'`
nl='
AUTOPOINT="${GETTEXTPATH}autopoint"
fi
-# GNU sort is needed. Set SORT to its location (not needed if it's called
-# 'sort' and already in the PATH).
-if test -z "$SORT"; then
- SORT=sort
-fi
-
-# A sed program is needed. When using GNU sed, turn off a maximum of GNU
-# extensions, to minimize the risk of accidentally using non-portable features
-# of GNU sed.
-if test -z "$SED"; then
- SED=sed
-fi
-if echo | $SED --posix d >/dev/null 2>&1; then
- SED="$SED --posix"
+# When using GNU sed, turn off as many GNU extensions as possible,
+# to minimize the risk of accidentally using non-portable features.
+# However, do this only for gnulib-tool itself, not for the code that
+# gnulib-tool generates, since we don't want "sed --posix" to leak
+# into makefiles.
+if (alias) > /dev/null 2>&1 && echo | sed --posix -e d >/dev/null 2>&1; then
+ alias sed='sed --posix'
fi
# func_usage
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
# outputs to stdout the --version message.
func_version ()
{
- year=`echo "$last_checkin_date" | $SED -e 's,/.*$,,'`
+ year=`echo "$last_checkin_date" | sed -e 's,/.*$,,'`
echo "\
$progname (GNU $package) $version
Copyright (C) $year Free Software Foundation, Inc.
# outputs to stdout a header for a generated file.
func_emit_copyright_notice ()
{
- echo "# Copyright (C) 2004-2006 Free Software Foundation, Inc."
+ echo "# Copyright (C) 2004-2007 Free Software Foundation, Inc."
echo "#"
echo "# This file is free software, distributed under the terms of the GNU"
echo "# General Public License. As a special exception to the GNU General"
{
# Use two sed invocations. A single sed -n -e 's,^.* -> \(.*\)$,\1,p'
# would do the wrong thing if the link target contains " -> ".
- LC_ALL=C ls -l "$1" | $SED -e 's, -> ,#%%#,' | $SED -n -e 's,^.*#%%#\(.*\)$,\1,p'
+ LC_ALL=C ls -l "$1" | sed -e 's, -> ,#%%#,' | sed -n -e 's,^.*#%%#\(.*\)$,\1,p'
}
fi
sed_last='s,^.*/\([^/]*\)$,\1,'
sed_butlast='s,/*[^/]*$,,'
while test -n "$dir1"; do
- first=`echo "$dir1" | $SED -e "$sed_first"`
+ first=`echo "$dir1" | sed -e "$sed_first"`
if test "$first" != "."; then
if test "$first" = ".."; then
- dir2=`echo "$dir0" | $SED -e "$sed_last"`/"$dir2"
- dir0=`echo "$dir0" | $SED -e "$sed_butlast"`
+ dir2=`echo "$dir0" | sed -e "$sed_last"`/"$dir2"
+ dir0=`echo "$dir0" | sed -e "$sed_butlast"`
else
- first2=`echo "$dir2" | $SED -e "$sed_first"`
+ first2=`echo "$dir2" | sed -e "$sed_first"`
if test "$first2" = "$first"; then
- dir2=`echo "$dir2" | $SED -e "$sed_rest"`
+ dir2=`echo "$dir2" | sed -e "$sed_rest"`
else
dir2="../$dir2"
fi
dir0="$dir0"/"$first"
fi
fi
- dir1=`echo "$dir1" | $SED -e "$sed_rest"`
+ dir1=`echo "$dir1" | sed -e "$sed_rest"`
done
reldir="$dir2"
}
sed_last='s,^.*/\([^/]*\)$,\1,'
sed_butlast='s,/*[^/]*$,,'
while true; do
- first=`echo "$dir2" | $SED -e "$sed_first"`
+ first=`echo "$dir2" | sed -e "$sed_first"`
if test "$first" = "."; then
- dir2=`echo "$dir2" | $SED -e "$sed_rest"`
+ dir2=`echo "$dir2" | sed -e "$sed_rest"`
if test -z "$dir2"; then
relconcat="$dir1"
break
fi
else
- last=`echo "$dir1" | $SED -e "$sed_last"`
+ last=`echo "$dir1" | sed -e "$sed_last"`
while test "$last" = "."; do
- dir1=`echo "$dir1" | $SED -e "$sed_butlast"`
- last=`echo "$dir1" | $SED -e "$sed_last"`
+ dir1=`echo "$dir1" | sed -e "$sed_butlast"`
+ last=`echo "$dir1" | sed -e "$sed_last"`
done
if test -z "$dir1"; then
relconcat="$dir2"
relconcat="$dir1/$dir2"
break
fi
- dir1=`echo "$dir1" | $SED -e "$sed_butlast"`
- dir2=`echo "$dir2" | $SED -e "$sed_rest"`
+ dir1=`echo "$dir1" | sed -e "$sed_butlast"`
+ dir2=`echo "$dir2" | sed -e "$sed_rest"`
if test -z "$dir1"; then
relconcat="$dir2"
break
/*)
ln -s "`pwd`/$1" "$2" ;;
*) # DEST is relative too.
- ln_destdir=`echo "$2" | $SED -e 's,[^/]*$,,'`
+ ln_destdir=`echo "$2" | sed -e 's,[^/]*$,,'`
test -n "$ln_destdir" || ln_destdir="."
func_relativize "$ln_destdir" "$1"
ln -s "$reldir" "$2"
mode=megatest
shift ;;
--extract-* )
- mode=`echo "X$1" | $SED -e 's/^X--//'`
+ mode=`echo "X$1" | sed -e 's/^X--//'`
shift ;;
--dir )
shift
destdir=$1
shift ;;
--dir=* )
- destdir=`echo "X$1" | $SED -e 's/^X--dir=//'`
+ destdir=`echo "X$1" | sed -e 's/^X--dir=//'`
shift ;;
--local-dir )
shift
local_gnulib_dir=$1
shift ;;
--local-dir=* )
- local_gnulib_dir=`echo "X$1" | $SED -e 's/^X--local-dir=//'`
+ local_gnulib_dir=`echo "X$1" | sed -e 's/^X--local-dir=//'`
shift ;;
--lib )
shift
supplied_libname=true
shift ;;
--lib=* )
- libname=`echo "X$1" | $SED -e 's/^X--lib=//'`
+ libname=`echo "X$1" | sed -e 's/^X--lib=//'`
supplied_libname=true
shift ;;
--source-base )
sourcebase=$1
shift ;;
--source-base=* )
- sourcebase=`echo "X$1" | $SED -e 's/^X--source-base=//'`
+ sourcebase=`echo "X$1" | sed -e 's/^X--source-base=//'`
shift ;;
--m4-base )
shift
m4base=$1
shift ;;
--m4-base=* )
- m4base=`echo "X$1" | $SED -e 's/^X--m4-base=//'`
+ m4base=`echo "X$1" | sed -e 's/^X--m4-base=//'`
shift ;;
--doc-base )
shift
docbase=$1
shift ;;
--doc-base=* )
- docbase=`echo "X$1" | $SED -e 's/^X--doc-base=//'`
+ docbase=`echo "X$1" | sed -e 's/^X--doc-base=//'`
shift ;;
--tests-base )
shift
testsbase=$1
shift ;;
--tests-base=* )
- testsbase=`echo "X$1" | $SED -e 's/^X--tests-base=//'`
+ testsbase=`echo "X$1" | sed -e 's/^X--tests-base=//'`
shift ;;
--aux-dir )
shift
auxdir=$1
shift ;;
--aux-dir=* )
- auxdir=`echo "X$1" | $SED -e 's/^X--aux-dir=//'`
+ auxdir=`echo "X$1" | sed -e 's/^X--aux-dir=//'`
shift ;;
--with-tests )
inctests=true
func_append avoidlist " $1"
shift ;;
--avoid=* )
- arg=`echo "X$1" | $SED -e 's/^X--avoid=//'`
+ arg=`echo "X$1" | sed -e 's/^X--avoid=//'`
func_append avoidlist " $arg"
shift ;;
--lgpl )
makefile_name="$1"
shift ;;
--makefile-name=* )
- makefile_name=`echo "X$1" | $SED -e 's/^X--makefile-name=//'`
+ makefile_name=`echo "X$1" | sed -e 's/^X--makefile-name=//'`
shift ;;
--libtool )
libtool=true
macro_prefix="$1"
shift ;;
--macro-prefix=* )
- macro_prefix=`echo "X$1" | $SED -e 's/^X--macro-prefix=//'`
+ macro_prefix=`echo "X$1" | sed -e 's/^X--macro-prefix=//'`
shift ;;
--no-changelog | --no-changelo | --no-changel | --no-change | --no-chang | --no-chan | --no-cha | --no-ch | --no-c )
do_changelog=false
s,^dnl .*$,,
s, dnl .*$,,
/AC_PREREQ/ {
- s,^.*AC_PREREQ([[ ]*\([^])]*\).*$,prereqs="$prereqs \1",p
+ s,^.*AC_PREREQ([[ ]*\([^])]*\).*$,\1,p
}'
- eval `$SED -n -e "$my_sed_traces" < "$configure_ac"`
+ prereqs=`sed -n -e "$my_sed_traces" < "$configure_ac"`
if test -n "$prereqs"; then
- autoconf_minversion=`for version in $prereqs; do echo $version; done | $SORT -g -u | tail -1`
+ autoconf_minversion=`
+ for version in $prereqs; do echo $version; done |
+ LC_ALL=C sort -nru | sed 1q
+ `
fi
fi
if test -z "$autoconf_minversion"; then
# m4base (to avoid an error in func_import) and optional for the others.
sed_trimtrailingslashes='s,\([^/]\)//*$,\1,'
case "$local_gnulib_dir" in
- */ ) local_gnulib_dir=`echo "$local_gnulib_dir" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) local_gnulib_dir=`echo "$local_gnulib_dir" | sed -e "$sed_trimtrailingslashes"` ;;
esac
case "$sourcebase" in
- */ ) sourcebase=`echo "$sourcebase" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) sourcebase=`echo "$sourcebase" | sed -e "$sed_trimtrailingslashes"` ;;
esac
case "$m4base" in
- */ ) m4base=`echo "$m4base" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) m4base=`echo "$m4base" | sed -e "$sed_trimtrailingslashes"` ;;
esac
case "$docbase" in
- */ ) docbase=`echo "$docbase" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) docbase=`echo "$docbase" | sed -e "$sed_trimtrailingslashes"` ;;
esac
case "$testsbase" in
- */ ) testsbase=`echo "$testsbase" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) testsbase=`echo "$testsbase" | sed -e "$sed_trimtrailingslashes"` ;;
esac
case "$auxdir" in
- */ ) auxdir=`echo "$auxdir" | $SED -e "$sed_trimtrailingslashes"` ;;
+ */ ) auxdir=`echo "$auxdir" | sed -e "$sed_trimtrailingslashes"` ;;
esac
}
case "$0" in
/*) self_abspathname="$0" ;;
*/*) self_abspathname=`pwd`/"$0" ;;
- *) for d in `echo ":$PATH:" | $SED -e 's/:::*/:.:/g' | $SED -e 's/:/ /g'`; do
+ *) for d in `echo ":$PATH:" | sed -e 's/:::*/:.:/g' | sed -e 's/:/ /g'`; do
if test -x "$d/$0" && test ! -d "$d/$0"; then
self_abspathname="$d/$0"
break
test -n "$linkval" || break
case "$linkval" in
/* ) self_abspathname="$linkval" ;;
- * ) self_abspathname=`echo "$self_abspathname" | $SED -e 's,/[^/]*$,,'`/"$linkval" ;;
+ * ) self_abspathname=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`/"$linkval" ;;
esac
done
-gnulib_dir=`echo "$self_abspathname" | $SED -e 's,/[^/]*$,,'`
+gnulib_dir=`echo "$self_abspathname" | sed -e 's,/[^/]*$,,'`
func_tmpdir
trap 'exit_status=$?
else
if test -f "$gnulib_dir/$lkfile"; then
if test -n "$local_gnulib_dir" && test -f "$local_gnulib_dir/$lkfile.diff"; then
- lkbase=`echo "$lkfile" | $SED -e 's,^.*/,,'`
+ lkbase=`echo "$lkfile" | sed -e 's,^.*/,,'`
rm -f "$tmp/$lkbase"
cp "$gnulib_dir/$lkfile" "$tmp/$lkbase"
patch -s "$tmp/$lkbase" < "$local_gnulib_dir/$lkfile.diff" \
# Filter out unit test modules; they can be retrieved through
# --extract-tests-module if desired.
{
- (cd "$gnulib_dir/modules" && ls -1)
+ (cd "$gnulib_dir" && find modules -type f -print | sed -e 's,^modules/,,')
if test -n "$local_gnulib_dir" && test -d "$local_gnulib_dir/modules"; then
- (cd "$local_gnulib_dir/modules" && ls -1 | $SED -e 's,\.diff$,,')
+ (cd "$local_gnulib_dir" && find modules -type f -print | sed -e 's,^modules/,,' -e 's,\.diff$,,')
fi
} \
- | $SED -e '/^CVS$/d' -e '/^ChangeLog$/d' -e '/^COPYING$/d' -e '/^README$/d' -e '/^TEMPLATE$/d' -e '/^TEMPLATE-TESTS$/d' -e '/~$/d' \
- | $SED -e '/-tests$/d' \
+ | sed -e '/^CVS\//d' -e '/\/CVS\//d' \
+ -e '/^ChangeLog$/d' -e '/\/ChangeLog$/d' \
+ -e '/^COPYING$/d' -e '/\/COPYING$/d' \
+ -e '/^README$/d' -e '/\/README$/d' \
+ -e '/^TEMPLATE$/d' \
+ -e '/^TEMPLATE-TESTS$/d' \
+ -e '/^\..*/d' \
+ -e '/~$/d' \
+ | sed -e '/-tests$/d' \
| LC_ALL=C sort -u
}
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
func_get_description ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^Description$sed_extract_prog" < "$lookedup_file"
+ sed -n -e "/^Description$sed_extract_prog" < "$lookedup_file"
}
# func_get_filelist module
func_get_filelist ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^Files$sed_extract_prog" < "$lookedup_file"
+ sed -n -e "/^Files$sed_extract_prog" < "$lookedup_file"
+ echo m4/gnulib-common.m4
case "$autoconf_minversion" in
2.59)
#echo m4/onceonly.m4
func_get_dependencies ()
{
# ${module}-tests always implicitly depends on ${module}.
- echo "$1" | $SED -n -e 's/-tests//p'
+ echo "$1" | sed -n -e 's/-tests//p'
# Then the explicit dependencies listed in the module description.
func_lookup_file "modules/$1"
- $SED -n -e "/^Depends-on$sed_extract_prog" < "$lookedup_file"
+ 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
func_get_autoconf_snippet ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^configure\.ac$sed_extract_prog" < "$lookedup_file"
+ sed -n -e "/^configure\.ac$sed_extract_prog" < "$lookedup_file"
}
# func_get_automake_snippet module
func_get_automake_snippet ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file"
+ sed -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file"
case "$1" in
*-tests)
# *-tests module live in tests/, not lib/.
s/\\$/\\/
ta
}'
- sed_extract_mentioned_files='s/^lib_SOURCES[ ]*+=[ ]*//p'
+ sed_extract_mentioned_files='s/^lib_SOURCES[ ]*+=[ ]*//p'
already_mentioned_files=` \
- $SED -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file" \
- | $SED -e "$sed_combine_lines" \
- | $SED -n -e "$sed_extract_mentioned_files" | $SED -e 's/#.*//'`
+ sed -n -e "/^Makefile\.am$sed_extract_prog" < "$lookedup_file" \
+ | sed -e "$sed_combine_lines" \
+ | sed -n -e "$sed_extract_mentioned_files" | sed -e 's/#.*//'`
all_files=`func_get_filelist $1`
lib_files=`for f in $all_files; do \
case $f in \
lib/*) echo $f ;; \
esac; \
- done | $SED -e 's,^lib/,,'`
+ done | sed -e 's,^lib/,,'`
# Remove $already_mentioned_files from $lib_files.
echo "$lib_files" | LC_ALL=C sort -u > "$tmp"/lib-files
extra_files=`for f in $already_mentioned_files; do echo $f; done \
# If some .c file exists and is not used with AC_LIBOBJ - for example,
# a .c file is preprocessed into another .c file for BUILT_SOURCES -,
# automake will generate a useless dependency; this is harmless.
- sed_extract_c_files='/\.c$/p'
- extra_files=`echo "$extra_files" | $SED -n -e "$sed_extract_c_files"`
- if test -n "$extra_files"; then
- echo "EXTRA_lib_SOURCES +=" $extra_files
- echo
- fi
+ case "$1" in
+ relocatable-prog-wrapper) ;;
+ *)
+ sed_extract_c_files='/\.c$/p'
+ extra_files=`echo "$extra_files" | sed -n -e "$sed_extract_c_files"`
+ if test -n "$extra_files"; then
+ echo "EXTRA_lib_SOURCES +=" $extra_files
+ echo
+ fi
+ ;;
+ esac
;;
esac
}
func_get_include_directive ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^Include$sed_extract_prog" < "$lookedup_file" | \
- $SED -e 's/^\(["<]\)/#include \1/'
+ sed -n -e "/^Include$sed_extract_prog" < "$lookedup_file" | \
+ 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
func_get_license ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^License$sed_extract_prog" < "$lookedup_file"
+ { sed -n -e "/^License$sed_extract_prog" < "$lookedup_file"
+ # The default is GPL.
+ echo "GPL"
+ } | sed -e 's,^ *$,,' | sed -e 1q
}
# func_get_maintainer module
func_get_maintainer ()
{
func_lookup_file "modules/$1"
- $SED -n -e "/^Maintainer$sed_extract_prog" < "$lookedup_file"
+ sed -n -e "/^Maintainer$sed_extract_prog" < "$lookedup_file"
}
# func_get_tests_module module
func_verify_nontests_module
if test -n "$module"; then
# Extract the value of "lib_SOURCES += ...".
- for file in `func_get_automake_snippet "$module" | $SED -e "$sed_remove_backslash_newline" | $SED -n -e 's,^lib_SOURCES[ ]*+=\([^#]*\).*$,\1,p'`; do
+ for file in `func_get_automake_snippet "$module" | sed -e "$sed_remove_backslash_newline" | sed -n -e 's,^lib_SOURCES[ ]*+=\([^#]*\).*$,\1,p'`; do
# Ignore .h files since they are not compiled.
case "$file" in
*.h) ;;
# - 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
if test -n "$module"; then
{
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'
+ 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' |
+ 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.
:
fi
echo
cat allsnippets.tmp \
- | $SED -e 's|\$(top_srcdir)/build-aux/|$(top_srcdir)/'"$auxdir"'/|g'
+ | sed -e 's|\$(top_srcdir)/build-aux/|$(top_srcdir)/'"$auxdir"'/|g'
echo
echo "mostlyclean-local: mostlyclean-generic"
echo " @for dir in '' \$(MOSTLYCLEANDIRS); do \\"
# - 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
- testsbase_inverse=`echo "$testsbase" | $SED -e 's,/$,,' | $SED -e 's,[^/][^/]*,..,g'`
+ 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."
func_emit_copyright_notice
if test -n "$module"; then
{
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'
+ 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' |
+ 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 ="
echo " if test -n \"\$${macro_prefix}_LIBOBJS\"; then"
echo " # Remove the extension."
echo " sed_drop_objext='s/\\.o\$//;s/\\.obj\$//'"
- echo " for i in \`for i in \$${macro_prefix}_LIBOBJS; do echo \"\$i\"; done | $SED \"\$sed_drop_objext\" | sort | uniq\`; do"
+ echo " for i in \`for i in \$${macro_prefix}_LIBOBJS; do echo \"\$i\"; done | sed \"\$sed_drop_objext\" | sort | uniq\`; do"
echo " ${macro_prefix}_libobjs=\"\$${macro_prefix}_libobjs \$i.\$ac_objext\""
echo " ${macro_prefix}_ltlibobjs=\"\$${macro_prefix}_ltlibobjs \$i.lo\""
echo " done"
/gl_MACRO_PREFIX(/ {
s,^.*gl_MACRO_PREFIX([[ ]*\([^])]*\).*$,cached_macro_prefix="\1",p
}'
- eval `$SED -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-cache.m4`
+ eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-cache.m4`
if test -f "$destdir"/$m4base/gnulib-comp.m4; then
my_sed_traces='
s,#.*$,,
:b
p
}'
- eval `$SED -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-comp.m4`
+ eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-comp.m4`
fi
fi
modules="$specified_modules"
func_modules_transitive_closure
echo "Module list with included dependencies:"
- echo "$modules" | $SED -e 's/^/ /'
+ echo "$modules" | sed -e 's/^/ /'
# Add the dummy module if needed.
func_modules_add_dummy
# Determine final file list.
func_modules_to_filelist
echo "File list:"
- echo "$files" | $SED -e 's/^/ /'
+ echo "$files" | sed -e 's/^/ /'
test -n "$files" \
|| func_fatal_error "refusing to do nothing"
# Create directories.
{ echo "$sourcebase"
echo "$m4base"
- docfiles=`echo "$files" | $SED -n -e 's,^doc/,,p'`
+ docfiles=`echo "$files" | sed -n -e 's,^doc/,,p'`
if test -n "$docfiles"; then
echo "$docbase"
fi
fi
echo "$auxdir"
for f in $files; do echo $f; done \
- | $SED -e "$sed_rewrite_new_files" \
- | $SED -n -e 's,^\(.*\)/[^/]*,\1,p' \
+ | sed -e "$sed_rewrite_new_files" \
+ | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
| LC_ALL=C sort -u
} > "$tmp"/dirs
{ # Rearrange file descriptors. Needed because "while ... done < ..."
}
# Copy files or make symbolic links. Remove obsolete files.
+ added_files=''
+ removed_files=''
delimiter=' '
# Construct a table with 2 columns: rewritten-file-name original-file-name,
# representing the files according to the last gnulib-tool invocation.
for f in $old_files; do echo $f; done \
- | $SED -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_old_files" \
+ | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_old_files" \
| LC_ALL=C sort \
> "$tmp"/old-files
# Construct a table with 2 columns: rewritten-file-name original-file-name,
# representing the files after this gnulib-tool invocation.
for f in $new_files; do echo $f; done \
- | $SED -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" \
+ | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" \
| LC_ALL=C sort \
> "$tmp"/new-files
# First the files that are in old-files, but not in new-files:
sed_take_first_column='s,'"$delimiter"'.*,,'
- for g in `LC_ALL=C join -t"$delimiter" -v1 "$tmp"/old-files "$tmp"/new-files | $SED -e "$sed_take_first_column"`; do
+ for g in `LC_ALL=C join -t"$delimiter" -v1 "$tmp"/old-files "$tmp"/new-files | sed -e "$sed_take_first_column"`; do
# Remove the file. Do nothing if the user already removed it.
if test -f "$destdir/$g"; then
if $doit; then
else
echo "Remove file $g (backup in ${g}~)"
fi
+ func_append removed_files "$g$nl"
fi
done
# func_add_or_update handles a file that ought to be present afterwards.
if test -n "$sed_transform_lib_file"; then
case "$f" in
lib/*)
- $SED -e "$sed_transform_lib_file" \
+ sed -e "$sed_transform_lib_file" \
< "$lookedup_file" > "$tmpfile" || func_fatal_error "failed"
;;
esac
else
echo "Copy file $g"
fi
+ func_append added_files "$g$nl"
fi
rm -f "$tmpfile"
}
sed_take_last_column='s,^.*'"$delimiter"',,'
already_present=
LC_ALL=C join -t"$delimiter" -v2 "$tmp"/old-files "$tmp"/new-files \
- | $SED -e "$sed_take_last_column" \
- | $SED -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/added-files
+ | sed -e "$sed_take_last_column" \
+ | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/added-files
{ # Rearrange file descriptors. Needed because "while ... done < ..."
# constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
exec 5<&0 < "$tmp"/added-files
# Then the files that are in new-files and in old-files:
already_present=true
LC_ALL=C join -t"$delimiter" "$tmp"/old-files "$tmp"/new-files \
- | $SED -e "$sed_take_last_column" \
- | $SED -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/kept-files
+ | sed -e "$sed_take_last_column" \
+ | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_new_files" > "$tmp"/kept-files
{ # Rearrange file descriptors. Needed because "while ... done < ..."
# constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
exec 5<&0 < "$tmp"/kept-files
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"
echo "Create $sourcebase/$makefile_am"
rm -f "$tmpfile"
fi
+ func_append added_files "$sourcebase/$makefile_am$nl"
fi
# Create m4/gnulib-cache.m4.
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"
s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
ba
}'
- sed_replace_build_aux=`echo "$sed_replace_build_aux" | $SED -e 1d -e 's/^ *//'`
+ sed_replace_build_aux=`echo "$sed_replace_build_aux" | sed -e 1d -e 's/^ *//'`
else
sed_replace_build_aux=
fi
func_verify_module
if test -n "$module"; then
func_get_autoconf_snippet "$module" \
- | $SED -e '/^$/d;' -e 's/^/ /' \
- -e 's/AM_GNU_GETTEXT(\[external\])/dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac./' \
- -e "$sed_replace_build_aux"
+ | sed -e '/^$/d;' -e 's/^/ /' \
+ -e 's/AM_GNU_GETTEXT(\[external\])/dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac./' \
+ -e "$sed_replace_build_aux"
if test "$module" = 'alloca' && test "$libtool" = true; then
echo 'changequote(,)dnl'
- echo 'LTALLOCA=`echo "$ALLOCA" | $SED '"'"'s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'"'"'`'
+ echo 'LTALLOCA=`echo "$ALLOCA" | sed '"'"'s/\.[^.]* /.lo /g;s/\.[^.]*$/.lo/'"'"'`'
echo 'changequote([, ])dnl'
echo 'AC_SUBST([LTALLOCA])'
fi
# _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 "# This macro records the list of files which have been installed by"
echo "# gnulib-tool and may be removed by future gnulib-tool invocations."
echo "AC_DEFUN([${macro_prefix}_FILE_LIST], ["
- echo "$files" | $SED -e 's,^, ,'
+ echo "$files" | sed -e 's,^, ,'
echo "])"
) > "$tmpfile"
if test -f "$destdir"/$m4base/gnulib-comp.m4; then
echo "Create $testsbase/$makefile_am"
rm -f "$tmpfile"
fi
+ func_append added_files "$testsbase/$makefile_am$nl"
fi
fi
+ # Update the .cvsignore and .gitignore files.
+ { echo "$added_files" | sed -e '/^$/d' -e 's,\([^/]*\)$,|A|\1,'
+ echo "$removed_files" | sed -e '/^$/d' -e 's,\([^/]*\)$,|R|\1,'
+ } | LC_ALL=C sort -t'|' -k1,1 > "$tmp"/fileset-changes
+ { # Rearrange file descriptors. Needed because "while ... done < ..."
+ # constructs are executed in a subshell e.g. by Solaris 10 /bin/sh.
+ exec 5<&0 < "$tmp"/fileset-changes
+ func_update_ignorelist ()
+ {
+ ignore="$1"
+ if test -f "$destdir/$dir$ignore"; then
+ if test -n "$dir_added" || test -n "$dir_removed"; then
+ LC_ALL=C sort "$destdir/$dir$ignore" > "$tmp"/ignore
+ echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u \
+ | LC_ALL=C join -v 2 "$tmp"/ignore - > "$tmp"/ignore-added
+ echo "$dir_removed" | sed -e '/^$/d' | LC_ALL=C sort -u \
+ | LC_ALL=C join -v 2 "$tmp"/ignore - > "$tmp"/ignore-removed
+ if test -s "$tmp"/ignore-added || test -s "$tmp"/ignore-removed; then
+ if $doit; then
+ echo "Updating $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
+ mv -f "$destdir/$dir$ignore" "$destdir/$dir$ignore"~
+ sed -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed > "$tmp"/sed-ignore-removed
+ cat "$destdir/$dir$ignore"~ "$tmp"/ignore-added \
+ | sed -f "$tmp"/sed-ignore-removed \
+ > "$destdir/$dir$ignore"
+ else
+ echo "Update $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
+ fi
+ fi
+ fi
+ else
+ if test -n "$dir_added"; then
+ if $doit; then
+ echo "Creating $destdir/$dir$ignore"
+ echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u > "$destdir/$dir$ignore"
+ else
+ echo "Create $destdir/$dir$ignore"
+ fi
+ fi
+ fi
+ }
+ func_done_dir ()
+ {
+ dir="$1"
+ dir_added="$2"
+ dir_removed="$3"
+ if test -d "$destdir/${dir}CVS" || test -f "$destdir/${dir}.cvsignore"; then
+ func_update_ignorelist .cvsignore
+ fi
+ if test -d "$destdir/.git" || test -f "$destdir/${dir}.gitignore"; then
+ func_update_ignorelist .gitignore
+ fi
+ }
+ last_dir=
+ last_dir_added=
+ last_dir_removed=
+ while read line; do
+ # Why not ''read next_dir op file'' ? Because the dir column can be empty.
+ next_dir=`echo "$line" | sed -e 's,|.*,,'`
+ op=`echo "$line" | sed -e 's,^[^|]*|\([^|]*\)|.*$,\1,'`
+ file=`echo "$line" | sed -e 's,^[^|]*|[^|]*|,,'`
+ if test "$next_dir" != "$last_dir"; then
+ func_done_dir "$last_dir" "$last_dir_added" "$last_dir_removed"
+ last_dir="$next_dir"
+ last_dir_added=
+ last_dir_removed=
+ fi
+ case $op in
+ A) func_append last_dir_added "$file$nl";;
+ R) func_append last_dir_removed "$file$nl";;
+ esac
+ done
+ func_done_dir "$last_dir" "$last_dir_added" "$last_dir_removed"
+ exec 0<&5 5<&-
+ }
+
echo "Finished."
echo
echo "You may need to add #include directives for the following .h files."
LC_ALL=C sort -u "$tmp"/include-angles
LC_ALL=C sort -u "$tmp"/include-quotes
cat "$tmp"/include-if
- ) | $SED -e '/^$/d' -e 's/^/ /'
+ ) | 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
fi
fi
if test "$makefile_am" = Makefile.am; then
- sourcebase_dir=`echo "$sourcebase" | $SED -n -e 's,/[^/]*$,/,p'`
+ sourcebase_dir=`echo "$sourcebase" | sed -n -e 's,/[^/]*$,/,p'`
sourcebase_base=`basename "$sourcebase"`
echo " - mention \"${sourcebase_base}\" in SUBDIRS in ${sourcebase_dir}Makefile.am,"
fi
if test -n "$inctests"; then
if test "$makefile_am" = Makefile.am; then
- testsbase_dir=`echo "$testsbase" | $SED -n -e 's,/[^/]*$,/,p'`
+ testsbase_dir=`echo "$testsbase" | sed -n -e 's,/[^/]*$,/,p'`
testsbase_base=`basename "$testsbase"`
echo " - mention \"${testsbase_base}\" in SUBDIRS in ${testsbase_dir}Makefile.am,"
fi
# Check that the license of every module is consistent with the license of
# its dependencies.
saved_modules="$modules"
+ saved_inctests="$inctests"
+ # When computing transitive closures, don't consider $module to depend on
+ # $module-tests. Need this becauses tests are implicitly GPL and may depend
+ # on GPL modules - therefore we don't want a warning in this case.
+ inctests=""
for requested_module in $saved_modules; do
requested_license=`func_get_license "$requested_module"`
if test "$requested_license" != GPL; then
fi
done
modules="$saved_modules"
+ inctests="$saved_inctests"
# Subdirectory names.
sourcebase=gllib
# Determine final module list.
func_modules_transitive_closure
echo "Module list with included dependencies:"
- echo "$modules" | $SED -e 's/^/ /'
+ echo "$modules" | sed -e 's/^/ /'
# Add the dummy module if needed.
func_modules_add_dummy
# Determine final file list.
func_modules_to_filelist
echo "File list:"
- echo "$files" | $SED -e 's/^/ /'
+ echo "$files" | sed -e 's/^/ /'
sed_rewrite_files="\
s,^build-aux/,$auxdir/,
# Create directories.
for f in $files; do echo $f; done \
- | $SED -e "$sed_rewrite_files" \
- | $SED -n -e 's,^\(.*\)/[^/]*,\1,p' \
+ | sed -e "$sed_rewrite_files" \
+ | sed -n -e 's,^\(.*\)/[^/]*,\1,p' \
| LC_ALL=C sort -u \
> "$tmp"/dirs
{ # Rearrange file descriptors. Needed because "while ... done < ..."
# Copy files or make symbolic links.
delimiter=' '
for f in $files; do echo $f; done \
- | $SED -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_files" \
+ | sed -e "s,^.*\$,&$delimiter&," -e "$sed_rewrite_files" \
| LC_ALL=C sort \
> "$tmp"/files
{ # Rearrange file descriptors. Needed because "while ... done < ..."
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"
for f in $files; do
case "$f" in
m4/* )
- echo "EXTRA_DIST += "`echo "$f" | $SED -e 's,^m4/,,'` ;;
+ echo "EXTRA_DIST += "`echo "$f" | sed -e 's,^m4/,,'` ;;
esac
done
) > "$testdir/$m4base/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"
sed_replace_build_aux='
:a
/AC_CONFIG_FILES(.*:build-aux\/.*)/{
- s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:../'"$auxdir"'/\2)|
- ba
+ s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:../'"$auxdir"'/\2)|
+ ba
}'
- sed_replace_build_aux=`echo "$sed_replace_build_aux" | $SED -e 1d -e 's/^ *//'`
+ sed_replace_build_aux=`echo "$sed_replace_build_aux" | sed -e 1d -e 's/^ *//'`
# We don't have explicit ordering constraints between the various
# autoconf snippets. It's cleanest to put those of the library before
# those of the tests.
func_verify_nontests_module
if test -n "$module"; then
func_get_autoconf_snippet "$module" \
- | $SED -e "$sed_replace_build_aux"
+ | sed -e "$sed_replace_build_aux"
fi
done
echo "gl_source_base='.'"
func_verify_tests_module
if test -n "$module"; then
func_get_autoconf_snippet "$module" \
- | $SED -e "$sed_replace_build_aux"
+ | 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'`
+ 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_PROG_INSTALL"
echo "AC_PROG_MAKE_SET"
echo
+ echo "# For autobuild."
+ echo "AC_CANONICAL_BUILD"
+ echo "AC_CANONICAL_HOST"
+ echo
echo "m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace"
echo "m4_pattern_allow([^gl_ES\$])dnl a valid locale name"
echo "m4_pattern_allow([^gl_LIBOBJS\$])dnl a variable"
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"
s|AC_CONFIG_FILES(\(.*\):build-aux/\(.*\))|AC_CONFIG_FILES(\1:'"$auxdir"'/\2)|
ba
}'
- sed_replace_build_aux=`echo "$sed_replace_build_aux" | $SED -e 1d -e 's/^ *//'`
+ sed_replace_build_aux=`echo "$sed_replace_build_aux" | sed -e 1d -e 's/^ *//'`
else
sed_replace_build_aux=
fi
func_verify_nontests_module
if test -n "$module"; then
func_get_autoconf_snippet "$module" \
- | $SED -e "$sed_replace_build_aux"
+ | 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'`
+ 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 "executing ${AUTOPOINT} --force"
${AUTOPOINT} --force || func_exit 1
for f in $m4base/*.m4~; do
- mv -f $f `echo $f | $SED -e 's,~$,,'` || func_exit 1
+ mv -f $f `echo $f | sed -e 's,~$,,'` || func_exit 1
done
fi
echo "executing ${ACLOCAL} -I $m4base"
echo "executing ${AUTOPOINT} --force"
${AUTOPOINT} --force || func_exit 1
for f in ../$m4base/*.m4~; do
- mv -f $f `echo $f | $SED -e 's,~$,,'` || func_exit 1
+ mv -f $f `echo $f | sed -e 's,~$,,'` || func_exit 1
done
fi
echo "executing ${ACLOCAL} -I ../$m4base"
${AUTOMAKE} --add-missing --copy || func_exit 1
) || func_exit 1
fi
- if grep '^BUILT_SOURCES *+=' "$testdir/$sourcebase/Makefile.am" > /dev/null; then
+ # Need to run configure and make once, to create built files that are to be
+ # distributed (such as getdate.c).
+ # Extract the value of "CLEANFILES += ..." and "MOSTLYCLEANFILES += ...".
+ cleaned_files=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \
+ | sed -n -e 's,^CLEANFILES[ ]*+=\([^#]*\).*$,\1,p' -e 's,^MOSTLYCLEANFILES[ ]*+=\([^#]*\).*$,\1,p'`
+ cleaned_files=`for file in $cleaned_files; do echo " $file "; done`
+ # Extract the value of "BUILT_SOURCES += ...". Remove variable references
+ # such $(FOO_H) because they don't refer to distributed files.
+ sed_remove_make_variables='s,[$]([A-Za-z0-9_]*),,g'
+ built_sources=`sed -e "$sed_remove_backslash_newline" < "$testdir/$sourcebase/Makefile.am" \
+ | sed -n -e 's,^BUILT_SOURCES[ ]*+=\([^#]*\).*$,\1,p' \
+ | sed -e "$sed_remove_make_variables"`
+ distributed_built_sources=`for file in $built_sources; do
+ case "$cleaned_files" in
+ *" "$file" "*) ;;
+ *) echo $file ;;
+ esac;
+ done`
+ if test -n "$distributed_built_sources"; then
(cd "$testdir"
./configure || func_exit 1
cd "$sourcebase"
func_create_testdir "$megatestdir/ALL" "$allmodules"
func_append megasubdirs "ALL"
+ # Create autobuild.
+ cvsdate=`sh "$gnulib_dir/build-aux/mdate-sh" "$gnulib_dir/CVS/Entries" \
+ | sed -e 's,January,01,' -e 's,Jan,01,' \
+ -e 's,February,02,' -e 's,Feb,02,' \
+ -e 's,March,03,' -e 's,Mar,03,' \
+ -e 's,April,04,' -e 's,Apr,04,' \
+ -e 's,May,05,' \
+ -e 's,June,06,' -e 's,Jun,06,' \
+ -e 's,July,07,' -e 's,Jul,07,' \
+ -e 's,August,08,' -e 's,Aug,08,' \
+ -e 's,September,09,' -e 's,Sep,09,' \
+ -e 's,October,10,' -e 's,Oct,10,' \
+ -e 's,November,11,' -e 's,Nov,11,' \
+ -e 's,December,12,' -e 's,Dec,12,' \
+ | sed -e 's,^,00,' | sed -e 's,^[0-9]*\([0-9][0-9] \),\1,' \
+ | sed -e 's,^\([0-9]*\) \([0-9]*\) \([0-9]*\),\3\2\1,'`
+ (echo '#!/bin/sh'
+ echo "CVSDATE=$cvsdate"
+ echo "test -d logs || mkdir logs"
+ echo "for module in $megasubdirs; do"
+ echo " echo \"Working on module \$module...\""
+ echo " safemodule=\`echo \$module | sed -e 's|/|-|g'\`"
+ echo " (echo \"To: gnulib@autobuild.josefsson.org\""
+ echo " echo"
+ echo " set -x"
+ echo " : autobuild project... \$module"
+ echo " : autobuild revision... cvs-\$CVSDATE-000000"
+ echo " : autobuild timestamp... \`date \"+%Y%m%d-%H%M%S\"\`"
+ echo " : autobuild hostname... \`hostname\`"
+ echo " cd \$module && ./configure \$CONFIGURE_OPTIONS && make && make check && make distclean"
+ echo " echo rc=\$?"
+ echo " ) 2>&1 | { if test -n \"\$AUTOBUILD_SUBST\"; then sed -e \"\$AUTOBUILD_SUBST\"; else cat; fi; } > logs/\$safemodule"
+ echo "done"
+ ) > "$megatestdir/autobuild"
+ chmod a+x "$megatestdir/autobuild"
+
# Create Makefile.am.
(echo "## Process this file with automake to produce Makefile.in."
echo
echo "AUTOMAKE_OPTIONS = 1.5 foreign"
echo
echo "SUBDIRS = $megasubdirs"
+ echo
+ echo "EXTRA_DIST = autobuild"
) > "$megatestdir/Makefile.am"
# Create configure.ac.
/A[CM]_PROG_LIBTOOL/ {
s,^.*$,guessed_libtool=true,p
}'
- eval `$SED -n -e "$my_sed_traces" < "$configure_ac"`
+ eval `sed -n -e "$my_sed_traces" < "$configure_ac"`
if test -z "$auxdir"; then
auxdir="$guessed_auxdir"
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
sedexpr1='s,^m4_include(\[\(.*\)])$,\1,p'
sedexpr2='s,^[^/]*$,.,'
sedexpr3='s,/[^/]*$,,'
- m4dirs=`$SED -n -e "$sedexpr1" aclocal.m4 | $SED -e "$sedexpr2" -e "$sedexpr3" | LC_ALL=C sort -u`
+ m4dirs=`sed -n -e "$sedexpr1" aclocal.m4 | sed -e "$sedexpr2" -e "$sedexpr3" | LC_ALL=C sort -u`
m4dirs_count=`echo "$m4dirs" | wc -l`
fi
fi
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