echo "AM_CPPFLAGS ="
fi
echo
- if LC_ALL=C 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 *+\{0,1\}= *$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.
:
# the configure.ac resides; if it is run from a different directory, the
# check is skipped.
echo " m4_ifval(${macro_prefix_arg}_LIBSOURCES_LIST, ["
- echo " m4_syscmd([test ! -d ]${macro_prefix_arg}_LIBSOURCES_DIR[ ||"
+ echo " m4_syscmd([test ! -d ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[ ||"
echo " for gl_file in ]${macro_prefix_arg}_LIBSOURCES_LIST[ ; do"
- echo " if test ! -r ]${macro_prefix_arg}_LIBSOURCES_DIR[/\$gl_file ; then"
- echo " echo \"missing file ]${macro_prefix_arg}_LIBSOURCES_DIR[/\$gl_file\" >&2"
+ echo " if test ! -r ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file ; then"
+ echo " echo \"missing file ]m4_defn([${macro_prefix_arg}_LIBSOURCES_DIR])[/\$gl_file\" >&2"
echo " exit 1"
echo " fi"
echo " done])dnl"
s,^.*gl_LOCAL_DIR([[ ]*\([^])]*\).*$,cached_local_gnulib_dir="\1",p
}
/gl_MODULES(/ {
+ ta
+ :a
+ s/)/)/
+ tb
+ N
+ ba
+ :b
s,^.*gl_MODULES([[ ]*\([^])]*\).*$,cached_specified_modules="\1",p
}
/gl_AVOID(/ {
esac ;;
esac
echo "gl_LOCAL_DIR([$relative_local_gnulib_dir])"
- echo "gl_MODULES(["`echo $specified_modules`"])"
+ echo "gl_MODULES(["
+ echo "$specified_modules" | sed 's/^/ /g'
+ echo "])"
echo "gl_AVOID([$avoidlist])"
echo "gl_SOURCE_BASE([$sourcebase])"
echo "gl_M4_BASE([$m4base])"
# 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,'
+ # Treat gnulib-comp.m4 like an added file, even if it already existed.
+ echo "$m4base/|A|gnulib-comp.m4"
} | 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.
func_update_ignorelist ()
{
ignore="$1"
+ if test "$ignore" = .gitignore; then
+ # In a .gitignore file, "foo" applies to the current directory and all
+ # subdirectories, whereas "/foo" applies to the current directory only.
+ anchor='/'
+ escaped_anchor='\/'
+ doubly_escaped_anchor='\\/'
+ else
+ anchor=''
+ escaped_anchor=''
+ doubly_escaped_anchor=''
+ fi
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
+ sed -e "s|^$anchor||" < "$destdir/$dir$ignore" | LC_ALL=C sort > "$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 \
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 \
+ { sed -e 's,^,/^,' -e 's,$,\$/d,' < "$tmp"/ignore-removed
+ if test -n "$anchor"; then sed -e "s,^,/^${doubly_escaped_anchor}," -e 's,$,\$/d,' < "$tmp"/ignore-removed; fi
+ } > "$tmp"/sed-ignore-removed
+ { cat "$destdir/$dir$ignore"~
+ sed -e "s|^|$anchor|" < "$tmp"/ignore-added
+ } | sed -f "$tmp"/sed-ignore-removed \
> "$destdir/$dir$ignore"
else
echo "Update $destdir/$dir$ignore (backup in $destdir/$dir${ignore}~)"
# Automake generates Makefile rules that create .dirstamp files.
echo ".dirstamp"
fi
- echo "$dir_added" | sed -e '/^$/d' | LC_ALL=C sort -u
+ echo "$dir_added" | sed -e '/^$/d' -e "s|^|$anchor|" | LC_ALL=C sort -u
} > "$destdir/$dir$ignore"
else
echo "Create $destdir/$dir$ignore"
fi
fi
echo " - mention \"-I ${m4base}\" in ACLOCAL_AMFLAGS in Makefile.am,"
+ {
+ # Find the first parent directory of $m4base that contains a Makefile.am.
+ sed_last='s,^.*/\([^/][^/]*\)//*$,\1/,
+s,//*$,/,'
+ sed_butlast='s,[^/][^/]*//*$,,'
+ dir1="${m4base}/"; dir2=""
+ while test -n "$dir1" && test ! -f "${destdir}/${dir1}Makefile.am"; do
+ dir2=`echo "$dir1" | sed -e "$sed_last"`"$dir2"
+ dir1=`echo "$dir1" | sed -e "$sed_butlast"`
+ done
+ echo " - mention ${dir2}gnulib-cache.m4 in EXTRA_DIST in ${dir1}Makefile.am."
+ }
echo " - invoke ${macro_prefix}_EARLY in $configure_ac, right after AC_PROG_CC,"
echo " - invoke ${macro_prefix}_INIT in $configure_ac."
}
# Except config-h, which breaks all modules which use HAVE_CONFIG_H.
# Except fnmatch-posix, which conflicts with fnmatch-gnu. FIXME.
# Except ftruncate, mountlist, which abort the configuration on mingw. FIXME.
- # Except gnumakefile, which breaks when there is no file '.tarball-version'.
modules=`func_all_modules`
- modules=`for m in $modules; do case $m in config-h | fnmatch-posix | ftruncate | mountlist | gnumakefile) ;; *) echo $m;; esac; done`
+ modules=`for m in $modules; do case $m in config-h | fnmatch-posix | ftruncate | mountlist) ;; *) echo $m;; esac; done`
fi
modules=`for m in $modules; do echo $m; done | LC_ALL=C sort -u`
# Then, all modules all together.
# Except config-h, which breaks all modules which use HAVE_CONFIG_H.
# Except fnmatch-posix, which conflicts with fnmatch-gnu. FIXME.
- # Except gnumakefile, which breaks when there is no file '.tarball-version'.
- allmodules=`for m in $allmodules; do if test $m != config-h && test $m != fnmatch-posix && test $m != gnumakefile; then echo $m; fi; done`
+ allmodules=`for m in $allmodules; do if test $m != config-h && test $m != fnmatch-posix; then echo $m; fi; done`
func_create_testdir "$megatestdir/ALL" "$allmodules"
func_append megasubdirs "ALL"