# -*-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. # FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck. 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: -rm -rf $(t) mkdir $(t) GZIP=$(GZIP) $(AMTAR) -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 \ && $(AMTAR) -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 a_host=alpha.gnu.org b_host=tug.org c_host=ftp.enst.fr a_url_dir=gnu/fetish b_url_dir=gnu/fetish c_url_dir=pub/gnu/gnits/fetish a_real_dir=/fs/share/ftp/gnu/fetish b_real_dir=/home/ftp/pub/gnu/fetish c_real_dir=/pub/gnu/gnits/fetish url_dir_list = $(foreach x,a b c,ftp://$($(x)_host)/$($(x)_url_dir)) real_dir_list = $(foreach x,a b c,ftp://$($(x)_host)$($(x)_real_dir)) 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; \ for url in $(url_dir_list); do \ echo " $$url/$(distdir).tar.gz"; \ done; \ 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 ===================================== @for url in $(real_dir_list); do \ echo "ncftp -u $$url/"; \ done @echo '# put $(distdir).tar.gz' @echo '# send the /tmp/announcement e-mail' @echo 'pot-mail $(distdir).tar.gz | bash' @echo =====================================