diff options
-rwxr-xr-x | build-aux/fetch.sh | 77 | ||||
-rw-r--r-- | cfg.mk | 60 |
2 files changed, 83 insertions, 54 deletions
diff --git a/build-aux/fetch.sh b/build-aux/fetch.sh new file mode 100755 index 00000000..bbb7d409 --- /dev/null +++ b/build-aux/fetch.sh @@ -0,0 +1,77 @@ +#! /bin/sh + +: "${WGET=wget}" +: "${PERL=perl}" + +gitweb_base="https://git.savannah.gnu.org/gitweb/?p=" +gitweb_op=";a=blob_plain;hb=HEAD;f=" + +gnulib_gitweb="${gitweb_base}gnulib.git${gitweb_op}" +automake_gitweb="${gitweb_base}automake.git${gitweb_op}" + +# This list should be in alphabetical order, *except* that this script +# uses move-if-change itself, so that one should be first. +gnulib_files=" + build-aux/move-if-change + build-aux/announce-gen + build-aux/config.guess + build-aux/config.sub + build-aux/gendocs.sh + build-aux/git-version-gen + build-aux/gitlog-to-changelog + build-aux/gnupload + build-aux/install-sh + build-aux/mdate-sh + build-aux/texinfo.tex + build-aux/update-copyright + build-aux/useless-if-before-free + build-aux/vc-list-files + doc/fdl.texi + doc/gendocs_template + doc/gnu-oids.texi + doc/make-stds.texi + doc/standards.texi + m4/autobuild.m4 + top/GNUmakefile + top/maint.mk +" + +automake_files=" + lib/Automake/Channels.pm + lib/Automake/FileUtils.pm + lib/Automake/Getopt.pm + lib/Automake/XFile.pm +" + +srcdir="$1" +shift + +move_if_change="${srcdir}/build-aux/move-if-change" + +scratch="$(mktemp -p . -d fetch.XXXXXXXXX)" +trap "rm -rf '$scratch'" 0 + +run () { + printf '+ %s\n' "$*" + "$@" || exit 1 +} + +for file in $gnulib_files; do + fbase="${file##*/}" + destdir="${file%/*}" + if [ "$destdir" = top ]; then + dest="${srcdir}/${fbase}" + else + dest="${srcdir}/${file}" + fi + run "$WGET" -nv -O "${scratch}/${fbase}" "${gnulib_gitweb}${file}" + run "$move_if_change" "${scratch}/${fbase}" "$dest" +done + +for file in $automake_files; do + fbase="${file##*/}" + dest="${srcdir}/lib/Autom4te/${fbase}" + run "$WGET" -nv -O "${scratch}/${fbase}" "${automake_gitweb}${file}" + run "$PERL" -pi -e 's/Automake::/Autom4te::/g' "${scratch}/${fbase}" + run "$move_if_change" "${scratch}/${fbase}" "$dest" +done @@ -46,62 +46,14 @@ To: $(announcement_mail-$(RELEASE_TYPE)) \ CC: $(announcement_Cc_) \ Mail-Followup-To: autoconf@gnu.org -# Update files from gnulib. -.PHONY: fetch gnulib-update autom4te-update -fetch: gnulib-update autom4te-update - -gnulib-update: - cp $(gnulib_dir)/build-aux/announce-gen $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/config.guess $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/config.sub $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/gendocs.sh $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/git-version-gen $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/gitlog-to-changelog $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/gnupload $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/install-sh $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/mdate-sh $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/move-if-change $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/texinfo.tex $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/update-copyright $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/useless-if-before-free $(srcdir)/build-aux - cp $(gnulib_dir)/build-aux/vc-list-files $(srcdir)/build-aux - cp $(gnulib_dir)/doc/fdl.texi $(srcdir)/doc - cp $(gnulib_dir)/doc/gendocs_template $(srcdir)/doc - cp $(gnulib_dir)/doc/gnu-oids.texi $(srcdir)/doc - cp $(gnulib_dir)/doc/make-stds.texi $(srcdir)/doc - cp $(gnulib_dir)/doc/standards.texi $(srcdir)/doc - cp $(gnulib_dir)/m4/autobuild.m4 $(srcdir)/m4 - cp $(gnulib_dir)/top/GNUmakefile $(srcdir) - cp $(gnulib_dir)/top/maint.mk $(srcdir) +# Update files maintained in gnulib and autom4te. +.PHONY: fetch WGET = wget -WGETFLAGS = -C off - -## Fetch the latest versions of files we care about. -automake_gitweb = \ - https://git.savannah.gnu.org/gitweb/?p=automake.git;a=blob_plain;hb=HEAD; -autom4te_files = \ - Autom4te/Channels.pm \ - Autom4te/FileUtils.pm \ - Autom4te/Getopt.pm \ - Autom4te/XFile.pm - -move_if_change = '$(abs_srcdir)'/build-aux/move-if-change - -autom4te-update: - rm -fr Fetchdir > /dev/null 2>&1 - mkdir -p Fetchdir/Autom4te - for file in $(autom4te_files); do \ - infile=`echo $$file | sed 's/Autom4te/Automake/g'`; \ - $(WGET) $(WGET_FLAGS) \ - "$(automake_gitweb)f=lib/$$infile" \ - -O "Fetchdir/$$file" || exit; \ - done - perl -pi -e 's/Automake::/Autom4te::/g' Fetchdir/Autom4te/*.pm - for file in $(autom4te_files); do \ - $(move_if_change) Fetchdir/$$file $(srcdir)/lib/$$file || exit; \ - done - rm -fr Fetchdir > /dev/null 2>&1 + +fetch: + WGET="$(WGET)" PERL="$(PERL)" \ + $(SHELL) $(srcdir)/build-aux/fetch.sh "$(abs_top_srcdir)" # Tests not to run. local-checks-to-skip ?= \ |