SummaryRefsLogTreeCommitDiffStats
path: root/maint.mk
diff options
context:
space:
mode:
Diffstat (limited to 'maint.mk')
-rw-r--r--maint.mk43
1 files changed, 43 insertions, 0 deletions
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