(remove_cwd_entries): Don't apply CLOSEDIR to a NULL
[coreutils.git] / Makefile.maint
blob374661bec0b425c70e3fd9982a3a6cc7b11d9a12
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) && mv $(distdir) $(distdir).old \
41           && $(TAR) -zxf ../$(distdir).tar.gz
42         diff -ur $(t)/$(distdir).old $(t)/$(distdir)
43         -rm -rf $(t)
44         @echo "========================"; \
45         echo "$(distdir).tar.gz is ready for distribution"; \
46         echo "========================"
48 THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION))
49 # FIXME: this works only for Gnits-style test releases.
50 PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
51 PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
52 v = Version
53 url-host-prefix = ftp://alpha.gnu.org
54 url = $(url-host-prefix)/gnu/fetish/$(distdir).tar.gz
55 md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/  -//')
57 rel-check:
58         tarz=/tmp/rel-check-tarz-$$$$; \
59         md5_tmp=/tmp/rel-check-md5-$$$$; \
60         set -e; \
61         trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
62         wget -q --output-document=$$tarz $(url); \
63         echo "$(md5)  -" > $$md5_tmp; \
64         md5sum -c $$md5_tmp < $$tarz
66 announcement: NEWS ChangeLog $(distdir).tar.gz
67         @( \
68           echo Subject: $(distdir) released; \
69           echo; \
70           echo FIXME: put comments here; \
71           echo; \
72           echo "  $(url)"; \
73           echo; \
74           echo "$(md5)  $(distdir).tar.gz"; \
75           echo; \
76           echo NEWS:; \
77           sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
78             | grep -v '^\['; \
79           echo; \
80           echo ChangeLog entries:; \
81           sed -n "1,/$v $(PREV_VERSION_REGEXP)/p" \
82             ChangeLog; \
83         )
85 alpha:
86         $(MAKE) cvs-dist
87         $(MAKE) -s announcement > /tmp/announcement
88         ln $(distdir).tar.gz ../release
89         chmod a-w $(distdir).tar.gz
90         @echo =====================================
91         @echo 'ncftp -u $(url-host-prefix)/fs/share/ftp/gnu/fetish/'
92         @echo '#   put $(distdir).tar.gz'
93         @echo '# send the /tmp/announcement e-mail'
94         @echo 'pot-mail $(distdir).tar.gz | bash'
95         @echo =====================================