summaryrefslogtreecommitdiff
path: root/Makefile.maint
blob: dda5f9732751e43bf8f6fb6735b5810154c9804b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# -*-Makefile-*-
# This Makefile fragment is shared between fileutils, sh-utils, textutils.

maintainer-check:
	if head ChangeLog| grep 'Version $(VERSION)' > /dev/null; then \
	  :; \
	else \
	  echo "$(VERSION) not in ChangeLog; not tagging" 1>&2; \
	  exit 1; \
	fi
	$(MAKE) distcheck
	$(MAKE) my-distcheck

# Tag before making distribution.  Also, don't make a distribution if
# checks fail.  Also, make sure the NEWS file is up-to-date.
cvs-dist: maintainer-check
	pkg=`echo "$(PACKAGE)" | tr a-z A-Z`; \
	ver=`echo "$(VERSION)" | sed 's/\./_/g'`; \
	tag="$$pkg-$$ver"; \
	echo tag=$$tag; \
	if cvs -n log -h README| grep -e $$tag > /dev/null; then \
	  echo "VERSION not new; not tagging" 1>&2; \
	  exit 1; \
	fi; \
	cvs update po; \
	cvs tag -c $$tag
	$(MAKE) dist

t=./=test
my-distcheck: dist
	-rm -rf $(t)
	mkdir $(t)
	GZIP=$(GZIP) $(TAR) -C $(t) -zxf $(distdir).tar.gz
	cd $(t)/$(distdir) \
	  && ./configure --disable-nls \
	  && $(MAKE) \
	  && $(MAKE) dvi \
	  && $(MAKE) check \
	  && $(MAKE) distclean
	cd $(t) && $(TAR) --diff -z -f ../$(distdir).tar.gz
	-rm -rf $(t)
	@echo "========================"; \
	echo "$(distdir).tar.gz is ready for distribution"; \
	echo "========================"

THIS_VERSION_REGEXP := $(shell echo $(VERSION)|sed 's/\./\\./g')
# FIXME: this works only for test releases.
PREV_VERSION := $(shell echo $(VERSION)|tr a-z Xa-y)
PREV_VERSION_REGEXP := $(shell echo $(PREV_VERSION)|sed 's/\./\\./g')
v = Version
url = ftp://alpha.gnu.org/gnu/$(distdir).tar.gz
md5 = $(shell md5sum < $(distdir).tar.gz|sed 's/  -//')

rel-check:
	tarz=/tmp/rel-check-tarz-$$$$; \
	md5_tmp=/tmp/rel-check-md5-$$$$; \
	set -e; \
	trap 'status=$$?; rm -f $$tarz $$md5_tmp; exit $$status' 0 1 2 3 15; \
	wget -q --output-document=$$tarz $(url); \
	echo "$(md5)  -" > $$md5_tmp; \
	md5sum -c $$md5_tmp < $$tarz

announcement: NEWS ChangeLog $(distdir).tar.gz
	@( \
	  echo Subject: $(distdir) released; \
	  echo; \
	  echo FIXME: put comments here; \
	  echo; \
	  echo "  $(url)"; \
	  echo; \
	  echo "$(md5)  $(distdir).tar.gz"; \
	  echo; \
	  echo NEWS:; \
	  sed -n "/$(THIS_VERSION_REGEXP)/,/$(PREV_VERSION_REGEXP)/p" NEWS \
	    | grep -v '^\['; \
	  echo; \
	  echo ChangeLog entries:; \
	  sed -n "/$v $(THIS_VERSION_REGEXP)/,/$v $(PREV_VERSION_REGEXP)/p" \
	    ChangeLog | grep -v '\* $v'; \
	)