SummaryRefsLogTreeCommitDiffStats
diff options
context:
space:
mode:
-rw-r--r--HACKING2
-rwxr-xr-xbuild-aux/gnu-fetch97
-rw-r--r--maint.mk43
3 files changed, 44 insertions, 98 deletions
diff --git a/HACKING b/HACKING
index e51515c..a2f0d13 100644
--- a/HACKING
+++ b/HACKING
@@ -55,7 +55,7 @@ follows.
* Updating auxilary scripts
Fetch new versions of the files that are maintained in other GNU
- repositories by running "cd build-aux; ./gnu-fetch". In case any file in the
+ repositories by running "make fetch". In case any file in the
Mcron repository has been updated, commit and re-run the testsuite.
* Code coverage
diff --git a/build-aux/gnu-fetch b/build-aux/gnu-fetch
deleted file mode 100755
index 5655b16..0000000
--- a/build-aux/gnu-fetch
+++ /dev/null
@@ -1,97 +0,0 @@
-#!/bin/sh
-# Fetch files maintained in other GNU repositories.
-
-scriptversion=2018-03-24.21; # UTC
-
-# Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-set -e
-
-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/gitlog-to-changelog
- ${sv_git_gl}build-aux/do-release-commit-and-tag
- ${sv_git_gl}build-aux/gnu-web-doc-update
- ${sv_git_gl}build-aux/gnupload
-"
-
-usage="Usage: $0
-
-fetch files maintained in other GNU repositories
-"
-
-while test -n "$1"
-do
- case $1 in
- -*)
- case $1 in
- --help)
- echo "$usage"
- exit $?
- ;;
- --version)
- echo "gnu-fetch $scriptversion"
- exit $?
- ;;
- --)
- shift
- break
- ;;
- -*)
- echo "$0: Unknown option '$1', try '$0 --help'" 1>&2
- exit 1
- ;;
- esac
- ;;
- esac
- shift
-done
-
-rm -rf Fetchdir
-mkdir Fetchdir
-for url in ${FETCHFILES}
-do
- file=`printf '%s\n' "$url" | sed 's|^.*/||; s|^.*=||'`
- "$WGET" -nv "$url" -O "Fetchdir/$file" || exit 1
- if cmp "Fetchdir/$file" "$file" >/dev/null; then
- : Nothing to do
- else
- echo "$0: updating file $file"
- cp "Fetchdir/$file" "$file" || exit 1
- fi
-done
-rm -rf Fetchdir
-
-exit 0
-
-# Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC0"
-# time-stamp-end: "; # UTC"
-# End:
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