(rel-check): New rule.
[coreutils.git] / Makefile.maint
blobdda5f9732751e43bf8f6fb6735b5810154c9804b
1 # -*-Makefile-*-
2 # This Makefile fragment is shared between fileutils, sh-utils, textutils.
4 maintainer-check:
5         if head ChangeLog| grep 'Version $(VERSION)' > /dev/null; then \
6           :; \
7         else \
8           echo "$(VERSION) not in ChangeLog; not tagging" 1>&2; \
9           exit 1; \
10         fi
11         $(MAKE) distcheck
12         $(MAKE) my-distcheck
14 # Tag before making distribution.  Also, don't make a distribution if
15 # checks fail.  Also, make sure the NEWS file is up-to-date.
16 cvs-dist: maintainer-check
17         pkg=`echo "$(PACKAGE)" | tr a-z A-Z`; \
18         ver=`echo "$(VERSION)" | sed 's/\./_/g'`; \
19         tag="$$pkg-$$ver"; \
20         echo tag=$$tag; \
21         if cvs -n log -h README| grep -e $$tag > /dev/null; then \
22           echo "VERSION not new; not tagging" 1>&2; \
23           exit 1; \
24         fi; \
25         cvs update po; \
26         cvs tag -c $$tag
27         $(MAKE) dist
29 t=./=test
30 my-distcheck: dist
31         -rm -rf $(t)
32         mkdir $(t)
33         GZIP=$(GZIP) $(TAR) -C $(t) -zxf $(distdir).tar.gz
34         cd $(t)/$(distdir) \
35           && ./configure --disable-nls \
36           && $(MAKE) \
37           && $(MAKE) dvi \
38           && $(MAKE) check \
39           && $(MAKE) distclean
40         cd $(t) && $(TAR) --diff -z -f ../$(distdir).tar.gz
41         -rm -rf $(t)
42         @echo "========================"; \
43         echo "$(distdir).tar.gz is ready for distribution"; \
44         echo "========================"
46 THIS_VERSION_REGEXP := $(shell echo $(VERSION)|sed 's/\./\\./g')
47 # FIXME: this works only for test releases.
48 PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
49 PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
50 v = Version
51 url = ftp://alpha.gnu.org/gnu/$(distdir).tar.gz
52 md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/  -//')
54 rel-check:
55         tarz=/tmp/rel-check-tarz-$$$$; \
56         md5_tmp=/tmp/rel-check-md5-$$$$; \
57         set -e; \
58         trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
59         wget -q --output-document=$$tarz $(url); \
60         echo "$(md5)  -" > $$md5_tmp; \
61         md5sum -c $$md5_tmp < $$tarz
63 announcement: NEWS ChangeLog $(distdir).tar.gz
64         @( \
65           echo Subject: $(distdir) released; \
66           echo; \
67           echo FIXME: put comments here; \
68           echo; \
69           echo "  $(url)"; \
70           echo; \
71           echo "$(md5)  $(distdir).tar.gz"; \
72           echo; \
73           echo NEWS:; \
74           sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
75             | grep -v '^\['; \
76           echo; \
77           echo ChangeLog entries:; \
78           sed -n "/$v $(THIS_VERSION_REGEXP)/,/$v $(PREV_VERSION_REGEXP)/p" \
79             ChangeLog | grep -v '\* $v'; \
80         )