From e66f0dcdd6f1838c8d4f5d70cea7ca63dc150ead Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Sun, 25 Mar 2018 22:55:01 +0200 Subject: maint: Replace "build-aux/gnu-fetch" with 'fetch' maintainer rule Fetching third-party files inside a make rule is convenient and less error prone since 'make' has access to '$srcdir'. * build-aux/gnu-fetch: Delete. * maint.mk (WGET, git_sv_host, sv_git_am, sv_git_gl) (fetchfiles): New macros. (fetch): New target. * HACKING : Update instructions. --- maint.mk | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'maint.mk') diff --git a/maint.mk b/maint.mk index 791e366..115fde6 100644 --- a/maint.mk +++ b/maint.mk @@ -18,3 +18,46 @@ # Rebuild Makefile.in if this file is modifed. Makefile.in: maint.mk + +## -------------------- ## +## Third-party files. ## +## ---------------------## + +WGET = wget + +# Git repositories on Savannah. +git_sv_host = git.savannah.gnu.org + +# Some repositories we sync files from. +sv_git_am = 'https://$(git_sv_host)/gitweb/?p=automake.git;a=blob_plain;hb=HEAD;f=' +sv_git_gl = 'https://$(git_sv_host)/gitweb/?p=gnulib.git;a=blob_plain;hb=HEAD;f=' + +# Files that we fetch and which we compare against. +# Note that the 'lib/COPYING' file must still be synced by hand. +fetchfiles = \ + $(sv_git_am)contrib/test-driver.scm \ + $(sv_git_gl)build-aux/do-release-commit-and-tag \ + $(sv_git_gl)build-aux/gitlog-to-changelog \ + ${sv_git_gl}build-aux/gnu-web-doc-update \ + $(sv_git_gl)build-aux/gnupload + +# Fetch the latest versions of few scripts and files we care about. +# A retrieval failure or a copying failure usually mean serious problems, +# so we'll just bail out if 'wget' or 'cp' fail. +fetch: + $(AM_V_at)rm -rf Fetchdir + $(AM_V_at)mkdir Fetchdir + $(AM_V_GEN)set -e; \ + if $(AM_V_P); then wget_opts=; else wget_opts=-nv; fi; \ + for url in $(fetchfiles); do \ + file=`printf '%s\n' "$$url" | sed 's|^.*/||; s|^.*=||'`; \ + $(WGET) $$wget_opts "$$url" -O Fetchdir/$$file || exit 1; \ + if cmp Fetchdir/$$file $(srcdir)/build-aux/$$file >/dev/null; then \ + : Nothing to do; \ + else \ + echo "$@: updating file $$file"; \ + cp Fetchdir/$$file $(srcdir)/build-aux/$$file || exit 1; \ + fi; \ + done + $(AM_V_at)rm -rf Fetchdir +.PHONY: fetch -- cgit v1.2.3