diff options
Diffstat (limited to 'Makefile.maint')
-rw-r--r-- | Makefile.maint | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/Makefile.maint b/Makefile.maint new file mode 100644 index 0000000..c657c8c --- /dev/null +++ b/Makefile.maint @@ -0,0 +1,95 @@ +# -*-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) CFLAGS='-Wformat -Werror' \ + && $(MAKE) dvi \ + && $(MAKE) check \ + && $(MAKE) distclean + cd $(t) && mv $(distdir) $(distdir).old \ + && $(TAR) -zxf ../$(distdir).tar.gz + diff -ur $(t)/$(distdir).old $(t)/$(distdir) + -rm -rf $(t) + @echo "========================"; \ + echo "$(distdir).tar.gz is ready for distribution"; \ + echo "========================" + +THIS_VERSION_REGEXP = $(subst .,\.,$(VERSION)) +# FIXME: this works only for Gnits-style 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-host-prefix = ftp://alpha.gnu.org +url = $(url-host-prefix)/gnu/fetish/$(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 "1,/$v $(PREV_VERSION_REGEXP)/p" \ + ChangeLog; \ + ) + +alpha: + $(MAKE) cvs-dist + $(MAKE) -s announcement > /tmp/announcement + ln $(distdir).tar.gz ../release + chmod a-w $(distdir).tar.gz + @echo ===================================== + @echo 'ncftp -u $(url-host-prefix)/fs/share/ftp/gnu/fetish/' + @echo '# put $(distdir).tar.gz' + @echo '# send the /tmp/announcement e-mail' + @echo 'pot-mail $(distdir).tar.gz | bash' + @echo ===================================== |