+ # Get the cached settings.
+ cached_specified_modules=
+ cached_avoidlist=
+ cached_sourcebase=
+ cached_m4base=
+ cached_libname=
+ cached_lgpl=
+ cached_libtool=
+ cached_macro_prefix=
+ cached_files=
+ if test -f "$destdir"/$m4base/gnulib-cache.m4; then
+ my_sed_traces='
+ s,#.*$,,
+ s,^dnl .*$,,
+ s, dnl .*$,,
+ /gl_MODULES(/ {
+ s,^.*gl_MODULES([[ ]*\([^])]*\).*$,cached_specified_modules="\1",p
+ }
+ /gl_AVOID(/ {
+ s,^.*gl_AVOID([[ ]*\([^])]*\).*$,cached_avoidlist="\1",p
+ }
+ /gl_SOURCE_BASE(/ {
+ s,^.*gl_SOURCE_BASE([[ ]*\([^])]*\).*$,cached_sourcebase="\1",p
+ }
+ /gl_M4_BASE(/ {
+ s,^.*gl_M4_BASE([[ ]*\([^])]*\).*$,cached_m4base="\1",p
+ }
+ /gl_LIB(/ {
+ s,^.*gl_LIB([[ ]*\([^])]*\).*$,cached_libname="\1",p
+ }
+ /gl_LGPL/ {
+ s,^.*$,cached_lgpl=true,p
+ }
+ /gl_LIBTOOL/ {
+ s,^.*$,cached_libtool=true,p
+ }
+ /gl_MACRO_PREFIX(/ {
+ s,^.*gl_MACRO_PREFIX([[ ]*\([^])]*\).*$,cached_macro_prefix="\1",p
+ }'
+ 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,#.*$,,
+ s,^dnl .*$,,
+ s, dnl .*$,,
+ /AC_DEFUN(\['"${cached_macro_prefix}"'_FILE_LIST\], \[/ {
+ s,^.*$,cached_files=",p
+ n
+ ta
+ :a
+ s,^\]).*$,",
+ tb
+ p
+ n
+ ba
+ :b
+ p
+ }'
+ eval `sed -n -e "$my_sed_traces" < "$destdir"/$m4base/gnulib-comp.m4`
+ fi
+ fi
+
+ # Merge the cached settings with the specified ones.
+ # The m4base must be the same as expected from the pathname.
+ if test -n "$cached_m4base" && test "$cached_m4base" != "$m4base"; then
+ func_fatal_error "$m4base/gnulib-cache.m4 is expected to contain gl_M4_BASE([$m4base])"
+ fi
+ # Append the cached and the specified module names. So that
+ # "gnulib-tool --import foo" means to add the module foo.
+ specified_modules="$cached_specified_modules $1"
+ # Append the cached and the specified avoidlist. This is probably better
+ # than dropping the cached one when --avoid is specified at least once.
+ avoidlist=`echo $cached_avoidlist $avoidlist`
+ # The sourcebase defaults to the cached one.
+ if test -z "$sourcebase"; then
+ sourcebase="$cached_sourcebase"
+ if test -z "$sourcebase"; then
+ func_fatal_error "missing --source-base option"
+ fi
+ fi
+ # The libname defaults to the cached one.
+ if test -z "$supplied_libname"; then
+ libname="$cached_libname"
+ if test -z "$libname"; then
+ func_fatal_error "missing --lib option"
+ fi
+ fi
+ # Require LGPL if specified either way.
+ if test -z "$lgpl"; then
+ lgpl="$cached_lgpl"
+ fi
+ # Use libtool if specified either way, or if guessed.
+ if test -z "$libtool"; then
+ if test -n "$cached_m4base"; then
+ libtool="$cached_libtool"
+ else
+ libtool="$guessed_libtool"
+ fi
+ fi
+ # The macro_prefix defaults to the cached one.
+ if test -z "$macro_prefix"; then
+ macro_prefix="$cached_macro_prefix"
+ if test -z "$macro_prefix"; then
+ func_fatal_error "missing --macro-prefix option"
+ fi
+ fi
+
+ # Canonicalize the list of specified modules.
+ specified_modules=`for m in $specified_modules; do echo $m; done | sort | uniq`