-git submodule update --init || echo "Failed to update Gnulib sources from git."
-if test -x ./gnulib/gnulib-tool; then
- ./gnulib/gnulib-tool --update -S || die "Failed to update Gnulib."
+err() {
+ printf '%s: %s\n' "$scriptname" "$*" 1>&2
+}
+
+die() {
+ err "$@"
+ exit 1
+}
+
+: ${AUTORECONF=autoreconf}
+: ${AUTOMAKE=automake}
+: ${GNULIB=gnulib}
+: ${GIT=git}
+: ${PERL=perl}
+
+$GIT submodule update --init || err "Failed to update submodules from git."
+
+if test -x $GNULIB/gnulib-tool; then
+ $GNULIB/gnulib-tool --update -S || die "Failed to update Gnulib."
+
+ exec 3>lib/symfiles.tmp 4<lib/symfiles.tmp
+ rm -f lib/symfiles.tmp
+
+ shared_modules='threadlib'
+ set x --extract-recursive-dependencies $shared_modules; shift
+ (set -x; $GNULIB/gnulib-tool "$@" >&3 ) || die "gnulib-tool failed"
+ shared_modules=`LC_ALL=C sort -u <&4`
+
+ set x --extract-filelist $shared_modules; shift
+ ( set -x; $GNULIB/gnulib-tool "$@" >&3 ) || die "gnulib-tool failed"
+ <&4 grep '^lib/.*[.][^vh][^.]*$' | LC_ALL=C sort -u >lib/symfiles