summaryrefslogtreecommitdiffstats
path: root/Makefile.maint
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile.maint')
-rw-r--r--Makefile.maint95
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 =====================================