GZIP_PROG = gzip -f
+SED_I = sed -i -e
+
# # # # # # # # # # Release variables (for maintainer only):
#
# Files removed from `cvs export' output before creating the tar-ball:
RELEASE_COMMIT_FILES = ChangeLog README \
lisp/ChangeLog lisp/gnus.el \
texi/ChangeLog texi/gnus.texi texi/message.texi texi/gnus-faq.texi
-# Pattern matching previous version(s):
-OLD_PATTERN = \(5.10.[0-9]*\|0\.[1-9][0-9]*\)
+# Pattern matching previous version numbers:
+OLD_PATTERN = \(5\.[0-9][0-9]\.[0-9]*\|5\.[0-9][0-9]\|0\.[1-9][0-9]*\)
+# Codename pattern
+CODENAME_PATTERN = [A-Z]*[a-z]* *
# CVS tag of the previous version:
OLD_TAG = v5-10-6
# CVS tag of the current release:
# Needs GNU grep and a recent GNU sed:
release-bump-version: release-check-settings
- sed -i -e '/^(defconst gnus-version-number /s,"$(OLD_PATTERN)","$(VERSION)",' lisp/gnus.el
- sed -i -e '/^.newcommand{.gnusversionname}{[A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
- sed -i -e '/^This manual corresponds to [A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
- sed -i -e '/^@samp.{[A-Za-z ]*Gnus v.*@c Adjust Makefile/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
- sed -i -e '/^corresponding to this manual is [A-Za-z ]*Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/message.texi
- sed -i -e 's,/[a-z]*gnus-[0-9.]*/,/$(CIN)gnus-$(VERSION)/,' README
+ $(SED_I) '/^(defconst gnus-version-number /s,"$(OLD_PATTERN)","$(VERSION)",' lisp/gnus.el
+ $(SED_I) '/^.newcommand{.gnusversionname}{$(CODENAME_PATTERN)Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
+ $(SED_I) '/^This manual corresponds to $(CODENAME_PATTERN)Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
+ $(SED_I) '/^@samp.{$(CODENAME_PATTERN)Gnus v.*@c Adjust Makefile/s,$(OLD_PATTERN),$(VERSION),' texi/gnus.texi
+ $(SED_I) '/^corresponding to this manual is $(CODENAME_PATTERN)Gnus v/s,$(OLD_PATTERN),$(VERSION),' texi/message.texi
+ $(SED_I) 's,/[a-z]*gnus-[0-9.]*/,/$(CIN)gnus-$(VERSION)/,' README
+ if [ "x$(CODENAME)" = "x" ]; then \
+ $(SED_I) '/The current release ($(OLD_PATTERN)) should/s,$(OLD_PATTERN),$(VERSION),' texi/gnus-faq.texi; \
+ else \
+ true; \
+ fi
+# Only for going from the development version to release...
if [ "x$(CODENAME)" = "x" ]; then \
- sed -i -e '/The current release ($(OLD_PATTERN)) should/s,$(OLD_PATTERN),$(VERSION),' texi/gnus-faq.texi; \
+ $(SED_I) '/^(defconst gnus-version /s,"$(CODENAME_PATTERN)Gnus v,"Gnus v,' lisp/gnus.el; \
+ $(SED_I) '/^.newcommand{.gnusversionname}{$(CODENAME_PATTERN)Gnus v/s,$(CODENAME_PATTERN)Gnus v$(OLD_PATTERN),Gnus v$(VERSION),' texi/gnus.texi; \
+ $(SED_I) '/^This manual corresponds to $(CODENAME_PATTERN)Gnus v/s,$(CODENAME_PATTERN)Gnus v$(OLD_PATTERN),Gnus v$(VERSION),' texi/gnus.texi; \
+ $(SED_I) '/^corresponding to this manual is $(CODENAME_PATTERN)Gnus v/s,$(CODENAME_PATTERN)Gnus v$(OLD_PATTERN),Gnus v$(VERSION),' texi/message.texi; \
else \
true; \
fi
+# Add ChangeLog entry...
@if grep -q "$(CODENAME)Gnus v$(VERSION) is released" ChangeLog; then \
echo "ChangeLog is already updated"; \
else \
- sed -i -e "1s|^|`date -I` $(COMMITTER)\n\n\t* README: $(COMMIT_STRING)\n\n|" ChangeLog; \
+ $(SED_I) "1s|^|`date -I` $(COMMITTER)\n\n\t* README: $(COMMIT_STRING)\n\n|" ChangeLog; \
fi
+ @echo "Updating ChangeLog files..."
@if grep -q "$(CODENAME)Gnus v$(VERSION) is released" texi/ChangeLog; then \
echo "texi/ChangeLog is already updated"; \
else \
- sed -i -e "1s|^|`date -I` $(COMMITTER)\n\n\t* gnus.texi, gnus-faq.texi, message.texi: $(COMMIT_STRING)\n\n|" texi/ChangeLog; \
+ $(SED_I) "1s|^|`date -I` $(COMMITTER)\n\n\t* gnus.texi, gnus-faq.texi, message.texi: $(COMMIT_STRING)\n\n|" texi/ChangeLog; \
fi
@if grep -q "$(CODENAME)Gnus v$(VERSION) is released" lisp/ChangeLog; then \
echo "lisp/ChangeLog is already updated"; \
else \
- sed -i -e "1s|^|`date -I` $(COMMITTER)\n\n\t* gnus.el: $(COMMIT_STRING)\n\n|" lisp/ChangeLog; \
+ $(SED_I) "1s|^|`date -I` $(COMMITTER)\n\n\t* gnus.el: $(COMMIT_STRING)\n\n|" lisp/ChangeLog; \
fi
cvs diff -U0 $(RELEASE_COMMIT_FILES); sleep 2