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 <Updating auxilary scripts>: Update instructions.
This commit is contained in:
parent
6c4f93371c
commit
e66f0dcdd6
3 changed files with 44 additions and 98 deletions
2
HACKING
2
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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
43
maint.mk
43
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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue