+ rm -f "$tmpfile"
+ }
+ # Then the files that are in new-files, but not in old-files:
+ 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
+ { # 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
+ while read g f; do
+ func_add_or_update
+ done
+ exec 0<&5 5<&-
+ }
+ # 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
+ { # 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
+ while read g f; do
+ func_add_or_update
+ done
+ exec 0<&5 5<&-
+ }
+
+ # Command-line invocation printed in a comment in generated gnulib-cache.m4.
+ actioncmd="gnulib-tool --import"
+ func_append actioncmd " --dir=$destdir"
+ if test -n "$local_gnulib_dir"; then
+ func_append actioncmd " --local-dir=$local_gnulib_dir"
+ fi
+ func_append actioncmd " --lib=$libname"
+ func_append actioncmd " --source-base=$sourcebase"
+ func_append actioncmd " --m4-base=$m4base"
+ if test -n "$pobase"; then
+ func_append actioncmd " --po-base=$pobase"
+ fi
+ func_append actioncmd " --doc-base=$docbase"
+ func_append actioncmd " --tests-base=$testsbase"
+ func_append actioncmd " --aux-dir=$auxdir"
+ if test -n "$inctests"; then
+ func_append actioncmd " --with-tests"
+ fi
+ if test -n "$incobsolete"; then
+ func_append actioncmd " --with-obsolete"
+ fi
+ if test -n "$inc_cxx_tests"; then
+ func_append actioncmd " --with-c++-tests"
+ fi
+ if test -n "$inc_longrunning_tests"; then
+ func_append actioncmd " --with-longrunning-tests"
+ fi
+ if test -n "$inc_privileged_tests"; then
+ func_append actioncmd " --with-privileged-tests"
+ fi
+ if test -n "$inc_unportable_tests"; then
+ func_append actioncmd " --with-unportable-tests"
+ fi
+ if test -n "$inc_all_tests"; then
+ func_append actioncmd " --with-all-tests"
+ fi
+ for module in $avoidlist; do
+ func_append actioncmd " --avoid=$module"
+ done
+ if test -n "$lgpl"; then
+ if test "$lgpl" = yes; then
+ func_append actioncmd " --lgpl"
+ else
+ func_append actioncmd " --lgpl=$lgpl"
+ fi
+ fi
+ if test -n "$makefile_name"; then
+ func_append actioncmd " --makefile-name=$makefile_name"
+ fi
+ if test "$cond_dependencies" = true; then
+ func_append actioncmd " --conditional-dependencies"
+ else
+ func_append actioncmd " --no-conditional-dependencies"
+ fi
+ if test "$libtool" = true; then
+ func_append actioncmd " --libtool"
+ else
+ func_append actioncmd " --no-libtool"
+ fi
+ func_append actioncmd " --macro-prefix=$macro_prefix"
+ if test -n "$po_domain"; then
+ func_append actioncmd " --po-domain=$po_domain"
+ fi
+ if test -n "$witness_c_macro"; then
+ func_append actioncmd " --witness-c-macro=$witness_c_macro"
+ fi
+ if test -n "$vc_files"; then
+ if test "$vc_files" = true; then
+ func_append actioncmd " --vc-files"
+ else
+ func_append actioncmd " --no-vc-files"
+ fi
+ fi
+ func_append actioncmd " `echo $specified_modules`"
+
+ # Determine include_guard_prefix.
+ func_compute_include_guard_prefix
+
+ # Default the makefile name to Makefile.am.
+ if test -n "$makefile_name"; then
+ makefile_am=$makefile_name
+ else
+ makefile_am=Makefile.am
+ fi
+
+ # Create normal Makefile.ams.
+ for_test=false
+
+ # Setup list of Makefile.am edits that are to be performed afterwards.
+ # Some of these edits apply to files that we will generate; others are
+ # under the responsibility of the developer.
+ makefile_am_edits=0
+ # func_note_Makefile_am_edit dir var value
+ # remembers that ${dir}Makefile.am needs to be edited to that ${var} mentions
+ # ${value}.
+ func_note_Makefile_am_edit ()
+ {
+ makefile_am_edits=`expr $makefile_am_edits + 1`
+ eval makefile_am_edit${makefile_am_edits}_dir=\"\$1\"
+ eval makefile_am_edit${makefile_am_edits}_var=\"\$2\"
+ eval makefile_am_edit${makefile_am_edits}_val=\"\$3\"
+ }
+ if test "$makefile_am" = Makefile.am; then
+ sourcebase_dir=`echo "$sourcebase" | sed -n -e 's,/[^/]*$,/,p'`
+ sourcebase_base=`basename "$sourcebase"`
+ func_note_Makefile_am_edit "$sourcebase_dir" SUBDIRS "$sourcebase_base"
+ fi
+ if test -n "$pobase"; then
+ pobase_dir=`echo "$pobase" | sed -n -e 's,/[^/]*$,/,p'`
+ pobase_base=`basename "$pobase"`
+ func_note_Makefile_am_edit "$pobase_dir" SUBDIRS "$pobase_base"
+ fi
+ if test -n "$inctests"; then
+ if test "$makefile_am" = Makefile.am; then
+ testsbase_dir=`echo "$testsbase" | sed -n -e 's,/[^/]*$,/,p'`
+ testsbase_base=`basename "$testsbase"`
+ func_note_Makefile_am_edit "$testsbase_dir" SUBDIRS "$testsbase_base"
+ fi
+ fi
+ func_note_Makefile_am_edit "" ACLOCAL_AMFLAGS "-I ${m4base}"
+ {
+ # Find the first parent directory of $m4base that contains or will contain
+ # a Makefile.am.
+ sed_last='s,^.*/\([^/][^/]*\)//*$,\1/,
+s,//*$,/,'
+ sed_butlast='s,[^/][^/]*//*$,,'
+ dir1="${m4base}/"; dir2=""
+ while test -n "$dir1" \
+ && ! { test -f "${destdir}/${dir1}Makefile.am" \
+ || test "${dir1}Makefile.am" = "$sourcebase/$makefile_am" \
+ || test "./${dir1}Makefile.am" = "$sourcebase/$makefile_am" \
+ || { test -n "$inctests" \
+ && { test "${dir1}Makefile.am" = "$testsbase/$makefile_am" \
+ || test "./${dir1}Makefile.am" = "$testsbase/$makefile_am"; }; }; }; do
+ dir2=`echo "$dir1" | sed -e "$sed_last"`"$dir2"
+ dir1=`echo "$dir1" | sed -e "$sed_butlast"`
+ done
+ func_note_Makefile_am_edit "$dir1" EXTRA_DIST "${dir2}gnulib-cache.m4"
+ }
+
+ # Create library makefile.
+ func_dest_tmpfilename $sourcebase/$makefile_am
+ destfile="$sourcebase/$makefile_am"
+ modules="$main_modules"
+ func_emit_lib_Makefile_am > "$tmpfile"
+ if test -f "$destdir"/$sourcebase/$makefile_am; then
+ if cmp "$destdir"/$sourcebase/$makefile_am "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ if $doit; then
+ echo "Updating $sourcebase/$makefile_am (backup in $sourcebase/$makefile_am~)"
+ mv -f "$destdir"/$sourcebase/$makefile_am "$destdir"/$sourcebase/$makefile_am~
+ mv -f "$tmpfile" "$destdir"/$sourcebase/$makefile_am
+ else
+ echo "Update $sourcebase/$makefile_am (backup in $sourcebase/$makefile_am~)"
+ rm -f "$tmpfile"
+ fi
+ fi
+ else
+ if $doit; then
+ echo "Creating $sourcebase/$makefile_am"
+ mv -f "$tmpfile" "$destdir"/$sourcebase/$makefile_am
+ else
+ echo "Create $sourcebase/$makefile_am"
+ rm -f "$tmpfile"
+ fi
+ func_append added_files "$sourcebase/$makefile_am$nl"
+ fi
+
+ # Create po/ directory.
+ if test -n "$pobase"; then
+ # Create po makefile and auxiliary files.
+ for file in Makefile.in.in remove-potcdate.sin; do
+ func_dest_tmpfilename $pobase/$file
+ func_lookup_file build-aux/po/$file
+ cat "$lookedup_file" > "$tmpfile"
+ if test -f "$destdir"/$pobase/$file; then
+ if cmp "$destdir"/$pobase/$file "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ if $doit; then
+ echo "Updating $pobase/$file (backup in $pobase/$file~)"
+ mv -f "$destdir"/$pobase/$file "$destdir"/$pobase/$file~
+ mv -f "$tmpfile" "$destdir"/$pobase/$file
+ else
+ echo "Update $pobase/$file (backup in $pobase/$file~)"
+ rm -f "$tmpfile"
+ fi
+ fi
+ else
+ if $doit; then
+ echo "Creating $pobase/$file"
+ mv -f "$tmpfile" "$destdir"/$pobase/$file
+ else
+ echo "Create $pobase/$file"
+ rm -f "$tmpfile"
+ fi
+ func_append added_files "$pobase/$file$nl"
+ fi
+ done
+ # Create po makefile parameterization, part 1.
+ func_dest_tmpfilename $pobase/Makevars
+ func_emit_po_Makevars > "$tmpfile"
+ if test -f "$destdir"/$pobase/Makevars; then
+ if cmp "$destdir"/$pobase/Makevars "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ if $doit; then
+ echo "Updating $pobase/Makevars (backup in $pobase/Makevars~)"
+ mv -f "$destdir"/$pobase/Makevars "$destdir"/$pobase/Makevars~
+ mv -f "$tmpfile" "$destdir"/$pobase/Makevars
+ else
+ echo "Update $pobase/Makevars (backup in $pobase/Makevars~)"
+ rm -f "$tmpfile"
+ fi
+ fi
+ else
+ if $doit; then
+ echo "Creating $pobase/Makevars"
+ mv -f "$tmpfile" "$destdir"/$pobase/Makevars
+ else
+ echo "Create $pobase/Makevars"
+ rm -f "$tmpfile"
+ fi
+ func_append added_files "$pobase/Makevars$nl"
+ fi
+ # Create po makefile parameterization, part 2.
+ func_dest_tmpfilename $pobase/POTFILES.in
+ func_emit_po_POTFILES_in > "$tmpfile"
+ if test -f "$destdir"/$pobase/POTFILES.in; then
+ if cmp "$destdir"/$pobase/POTFILES.in "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ if $doit; then
+ echo "Updating $pobase/POTFILES.in (backup in $pobase/POTFILES.in~)"
+ mv -f "$destdir"/$pobase/POTFILES.in "$destdir"/$pobase/POTFILES.in~
+ mv -f "$tmpfile" "$destdir"/$pobase/POTFILES.in
+ else
+ echo "Update $pobase/POTFILES.in (backup in $pobase/POTFILES.in~)"
+ rm -f "$tmpfile"
+ fi
+ fi
+ else
+ if $doit; then
+ echo "Creating $pobase/POTFILES.in"
+ mv -f "$tmpfile" "$destdir"/$pobase/POTFILES.in
+ else
+ echo "Create $pobase/POTFILES.in"
+ rm -f "$tmpfile"
+ fi
+ func_append added_files "$pobase/POTFILES.in$nl"
+ fi
+ # Fetch PO files.
+ TP_URL="http://translationproject.org/latest/"
+ TP_RSYNC_URI="translationproject.org::tp/latest/"
+ if $doit; then
+ echo "Fetching gnulib PO files from $TP_URL"
+ (cd "$destdir"/$pobase \
+ && { # Prefer rsync over wget if it is available, since it consumes
+ # less network bandwidth, due to compression.
+ if type rsync 2>/dev/null | grep / > /dev/null; then
+ rsync -Lrtz "${TP_RSYNC_URI}gnulib/" .
+ else
+ wget --quiet -r -l1 -nd -np -A.po "${TP_URL}gnulib"
+ fi
+ }
+ )
+ else
+ echo "Fetch gnulib PO files from $TP_URL"
+ fi
+ # Create po/LINGUAS.
+ if $doit; then
+ func_dest_tmpfilename $pobase/LINGUAS
+ (cd "$destdir"/$pobase \
+ && { echo '# Set of available languages.'
+ LC_ALL=C ls -1 *.po | sed -e 's,\.po$,,'
+ }
+ ) > "$tmpfile"
+ if test -f "$destdir"/$pobase/LINGUAS; then
+ if cmp "$destdir"/$pobase/LINGUAS "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ echo "Updating $pobase/LINGUAS (backup in $pobase/LINGUAS~)"
+ mv -f "$destdir"/$pobase/LINGUAS "$destdir"/$pobase/LINGUAS~
+ mv -f "$tmpfile" "$destdir"/$pobase/LINGUAS
+ fi
+ else
+ echo "Creating $pobase/LINGUAS"
+ mv -f "$tmpfile" "$destdir"/$pobase/LINGUAS
+ func_append added_files "$pobase/LINGUAS$nl"
+ fi
+ else
+ if test -f "$destdir"/$pobase/LINGUAS; then
+ echo "Update $pobase/LINGUAS (backup in $pobase/LINGUAS~)"
+ else
+ echo "Create $pobase/LINGUAS"
+ fi
+ fi
+ fi
+
+ # Create m4/gnulib-cache.m4.
+ func_dest_tmpfilename $m4base/gnulib-cache.m4
+ (
+ func_emit_copyright_notice
+ echo "#"
+ echo "# This file represents the specification of how gnulib-tool is used."
+ echo "# It acts as a cache: It is written and read by gnulib-tool."
+ echo "# In projects that use version control, this file is meant to be put under"
+ echo "# version control, like the configure.ac and various Makefile.am files."
+ echo
+ echo
+ echo "# Specification in the form of a command-line invocation:"
+ echo "# $actioncmd"
+ echo
+ echo "# Specification in the form of a few gnulib-tool.m4 macro invocations:"
+ # Store the local_gnulib_dir relative to destdir.
+ case "$local_gnulib_dir" in
+ "" | /*)
+ relative_local_gnulib_dir="$local_gnulib_dir" ;;
+ * )
+ case "$destdir" in
+ /*) relative_local_gnulib_dir="$local_gnulib_dir" ;;
+ *)
+ # destdir, local_gnulib_dir are both relative.
+ func_relativize "$destdir" "$local_gnulib_dir"
+ relative_local_gnulib_dir="$reldir" ;;
+ esac ;;
+ esac
+ echo "gl_LOCAL_DIR([$relative_local_gnulib_dir])"
+ echo "gl_MODULES(["
+ echo "$specified_modules" | sed -e 's/^/ /g'
+ echo "])"
+ test -z "$incobsolete" || echo "gl_WITH_OBSOLETE"
+ test -z "$inc_cxx_tests" || echo "gl_WITH_CXX_TESTS"
+ test -z "$inc_longrunning_tests" || echo "gl_WITH_LONGRUNNING_TESTS"
+ test -z "$inc_privileged_tests" || echo "gl_WITH_PRIVILEGED_TESTS"
+ test -z "$inc_unportable_tests" || echo "gl_WITH_UNPORTABLE_TESTS"
+ test -z "$inc_all_tests" || echo "gl_WITH_ALL_TESTS"
+ echo "gl_AVOID([$avoidlist])"
+ echo "gl_SOURCE_BASE([$sourcebase])"
+ echo "gl_M4_BASE([$m4base])"
+ echo "gl_PO_BASE([$pobase])"
+ echo "gl_DOC_BASE([$docbase])"
+ echo "gl_TESTS_BASE([$testsbase])"
+ test -z "$inctests" || echo "gl_WITH_TESTS"
+ echo "gl_LIB([$libname])"
+ if test -n "$lgpl"; then
+ if test "$lgpl" = yes; then
+ echo "gl_LGPL"
+ else
+ echo "gl_LGPL([$lgpl])"
+ fi
+ fi
+ echo "gl_MAKEFILE_NAME([$makefile_name])"
+ if test "$cond_dependencies" = true; then
+ echo "gl_CONDITIONAL_DEPENDENCIES"
+ fi
+ if test "$libtool" = true; then
+ echo "gl_LIBTOOL"
+ fi
+ echo "gl_MACRO_PREFIX([$macro_prefix])"
+ echo "gl_PO_DOMAIN([$po_domain])"
+ echo "gl_WITNESS_C_DOMAIN([$witness_c_macro])"
+ if test -n "$vc_files"; then
+ echo "gl_VC_FILES([$vc_files])"
+ fi
+ ) > "$tmpfile"
+ if test -f "$destdir"/$m4base/gnulib-cache.m4; then
+ if cmp "$destdir"/$m4base/gnulib-cache.m4 "$tmpfile" > /dev/null; then
+ rm -f "$tmpfile"
+ else
+ if $doit; then
+ echo "Updating $m4base/gnulib-cache.m4 (backup in $m4base/gnulib-cache.m4~)"
+ mv -f "$destdir"/$m4base/gnulib-cache.m4 "$destdir"/$m4base/gnulib-cache.m4~
+ mv -f "$tmpfile" "$destdir"/$m4base/gnulib-cache.m4
+ else
+ echo "Update $m4base/gnulib-cache.m4 (backup in $m4base/gnulib-cache.m4~)"
+ if false; then
+ cat "$tmpfile"
+ echo
+ echo "# gnulib-cache.m4 ends here"
+ fi
+ rm -f "$tmpfile"
+ fi