[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/6] fetch: improve, and reduce code duplication
From: |
Stefano Lattarini |
Subject: |
[PATCH 6/6] fetch: improve, and reduce code duplication |
Date: |
Sat, 8 Dec 2012 21:42:42 +0100 |
* Makefile.am (WGET_SV_CVS, WGET_SV_GIT_CF, WGET_SV_GIT_AC,
WGET_SV_GIT_GL): Delete.
(SV_CVS, SV_GIT_CF, SV_GIT_AC, SV_GIT_GL): New.
(fetch): Simplify and enhance.
(update-copyright): Adjust.
Signed-off-by: Stefano Lattarini <address@hidden>
---
Makefile.am | 84 ++++++++++++++++++++++++++++---------------------------------
1 file changed, 38 insertions(+), 46 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 552ea13..bf43592 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -950,55 +950,47 @@ CLEANFILES += announcement
## Synchronize third-party files that are committed in our repository. ##
## --------------------------------------------------------------------- ##
-## Program to use to fetch files.
+# Program to use to fetch files.
WGET = wget
-WGET_SV_CVS = $(WGET) http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/
-WGET_SV_GIT_CF = $(WGET)
'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;hb=HEAD;f='
-WGET_SV_GIT_AC = $(WGET)
'http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob_plain;hb=HEAD;f='
-WGET_SV_GIT_GL = $(WGET)
'http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob_plain;hb=HEAD;f='
-## Files that we fetch and which we compare against.
-## The 'lib/COPYING' file must still be synced by hand.
+# Some repositories we sync files from.
+SV_CVS = 'http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/'
+SV_GIT_CF =
'http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;hb=HEAD;f='
+SV_GIT_AC =
'http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob_plain;hb=HEAD;f='
+SV_GIT_GL =
'http://git.savannah.gnu.org/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 = \
-INSTALL \
-config.guess \
-config.sub \
-gendocs.sh \
-gendocs_template \
-gitlog-to-changelog \
-gnupload \
-texinfo.tex \
-update-copyright
-
-## Fetch the latest versions of files we care about.
+ $(SV_GIT_CF)config.guess \
+ $(SV_GIT_CF)config.sub \
+ $(SV_CVS)texinfo/texinfo/doc/texinfo.tex \
+ $(SV_CVS)texinfo/texinfo/util/gendocs.sh \
+ $(SV_CVS)texinfo/texinfo/util/gendocs_template \
+ $(SV_GIT_GL)build-aux/gitlog-to-changelog \
+ $(SV_GIT_GL)build-aux/gnupload \
+ $(SV_GIT_GL)build-aux/update-copyright \
+ $(SV_GIT_GL)doc/INSTALL
+
+# Fetch the latest versions of few scripts and files we care about.
fetch:
- rm -rf Fetchdir > /dev/null 2>&1
- mkdir Fetchdir
-## If a get fails then that is a problem.
- ($(am__cd) Fetchdir && \
- $(WGET_SV_GIT_CF)config.guess -O config.guess && \
- $(WGET_SV_GIT_CF)config.sub -O config.sub && \
- $(WGET_SV_CVS)texinfo/texinfo/doc/texinfo.tex -O texinfo.tex && \
- $(WGET_SV_CVS)texinfo/texinfo/util/gendocs.sh -O gendocs.sh && \
- $(WGET_SV_CVS)texinfo/texinfo/util/gendocs_template -O gendocs_template
&& \
- $(WGET_SV_GIT_GL)doc/INSTALL -O INSTALL && \
- $(WGET_SV_GIT_GL)build-aux/gnupload -O gnupload && \
- $(WGET_SV_GIT_GL)build-aux/update-copyright -O update-copyright && \
- $(WGET_SV_GIT_GL)build-aux/gitlog-to-changelog -O gitlog-to-changelog)
-## Don't exit after test because we want to give as many errors as
-## possible.
- @stat=0; for file in $(FETCHFILES); do \
- if diff -u $(srcdir)/lib/$$file Fetchdir/$$file \
- >>Fetchdir/update.patch 2>/dev/null; then :; \
- else \
- stat=1; \
- echo "Updating $(srcdir)/lib/$$file ..."; \
- cp Fetchdir/$$file $(srcdir)/lib/$$file; \
- fi; \
- done; \
- test $$stat = 0 || \
- echo "See Fetchdir/update.patch for a log of the changes."; \
- exit $$stat
+ $(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|^.*=||'`; \
+## A retrieval failure usually means a serious problem. Just bail out.
+ $(WGET) $$wget_opts "$$url" -O Fetchdir/$$file || exit 1; \
+ if cmp Fetchdir/$$file $(srcdir)/lib/$$file >/dev/null; then \
+ : Nothing to do; \
+ else \
+ echo "$@: updating file $$file"; \
+## Ditto for a copying failure.
+ cp Fetchdir/$$file $(srcdir)/lib/$$file || exit 1; \
+ fi; \
+ done
+ $(AM_V_at)rm -rf Fetchdir
.PHONY: fetch
## --------------------------------------------------------------------- ##
@@ -1058,7 +1050,7 @@ update-copyright:
sed -i "/^RELEASE_YEAR=/s/=.*$$/=$$current_year/" \
bootstrap.sh configure.ac; \
excluded_re=`echo $(FETCHFILES) \
- | sed -e 's|^|lib/|' -e 's| | lib/|g' -e 's, ,|,g'`; \
+ | sed -e 's|^.*/|lib/|' -e 's| | lib/|g' -e 's, ,|,g'`; \
$(GIT) ls-files \
| grep -Ev '^(lib/)?(COPYING|INSTALL)$$' \
| grep -Ev "^($$excluded_re)$$" \
--
1.8.0.1.347.gf94c325
- [PATCH 0/6] More automation in the release procedure, Stefano Lattarini, 2012/12/08
- [PATCH 1/6] release: distinguish major and minor releases, Stefano Lattarini, 2012/12/08
- [PATCH 2/6] release: generate a stub for the release announcement, Stefano Lattarini, 2012/12/08
- [PATCH 3/6] sync: update files from upstream with "make fetch", Stefano Lattarini, 2012/12/08
- [PATCH 5/6] docs: add rule to generate manuals for www.gnu.org, Stefano Lattarini, 2012/12/08
- [PATCH 6/6] fetch: improve, and reduce code duplication,
Stefano Lattarini <=
- [PATCH 4/6] docs: copy the 'gendocs.sh' script from Texinfo CVS repository, Stefano Lattarini, 2012/12/08
- Re: [PATCH 0/6] More automation in the release procedure, Stefano Lattarini, 2012/12/09