X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=maint.mk;h=534f2a3f80c6eb7f1f671362aa9bc2c9ff9d4250;hb=0164f83126647476cfb3112441185accdcb157fb;hp=fe09135afbce0677facb73da5bb4aa843019907c;hpb=cc9d8f26dbeadc908248b6992770f531c69b655b;p=platform%2Fupstream%2Fautomake.git diff --git a/maint.mk b/maint.mk index fe09135..534f2a3 100644 --- a/maint.mk +++ b/maint.mk @@ -107,10 +107,16 @@ GIT = git EXTRA_DIST += lib/gnupload -base_version_rx = ^[1-9][0-9]*\.[0-9][0-9]* -stable_major_version_rx = $(base_version_rx)$$ -stable_minor_version_rx = $(base_version_rx)\.[0-9][0-9]*$$ -beta_version_rx = $(base_version_rx)(\.[0-9][0-9]*)?[bdfhjlnprtvxz]$$ +# First component of a version number (mandatory). +rx-0 = ^[1-9][0-9]* +# Later components of a version number (optional). +rx-1 = \.[0-9][0-9]* +# Used in recipes to decide which kind of release we are. +stable_major_version_rx = $(rx-0)\.0$$ +stable_minor_version_rx = $(rx-0)$(rx-1)$$ +stable_micro_version_rx = $(rx-0)$(rx-1)$(rx-1)$$ +beta_version_rx = $(rx-0)($(rx-1)){1,2}[bdfhjlnprtvxz]$$ +alpha_version_rx = $(rx-0)($(rx-1)){1,2}[acegikmoqsuwy]$$ match_version = echo "$(VERSION)" | $(EGREP) >/dev/null # Check that we don't have uncommitted or unstaged changes. @@ -131,14 +137,28 @@ determine_release_type = \ dest=ftp; \ elif $(match_version) '$(stable_minor_version_rx)'; then \ release_type='Minor release'; \ + announcement_type='minor release'; \ + dest=ftp; \ + elif $(match_version) '$(stable_micro_version_rx)'; then \ + release_type='Micro release'; \ announcement_type='maintenance release'; \ dest=ftp; \ elif $(match_version) '$(beta_version_rx)'; then \ release_type='Beta release'; \ announcement_type='test release'; \ dest=alpha; \ + elif $(match_version) '$(alpha_version_rx)'; then \ + echo "$@: improper version '$(VERSION)' for a release" >&2; \ + if test -n '$(strip $(DEVEL_SNAPSHOT))'; then \ + echo "$@: continuing anyway since DEVEL_SNAPSHOT is set" >&2; \ + release_type='Development snapshot'; \ + announcement_type='development snapshot'; \ + dest=alpha; \ + else \ + exit 1; \ + fi; \ else \ - echo "$@: invalid version '$(VERSION)' for a release" >&2; \ + echo "$@: invalid version number '$(VERSION)'" >&2; \ exit 1; \ fi @@ -146,7 +166,7 @@ determine_release_type = \ print-release-type: @$(determine_release_type); \ echo "$$release_type $(VERSION);" \ - "it will be announced as a $$announcement_type" + "it will be announced as a \"$$announcement_type\"" git-tag-release: maintainer-check @set -e -u; \ @@ -262,6 +282,7 @@ compare-autodiffs: autodiffs PACKAGE_MAILINGLIST = automake@gnu.org +announcement: DEVEL_SNAPSHOT = yes announcement: NEWS $(AM_V_GEN): \ && rm -f $@ $@-t \ @@ -294,8 +315,8 @@ announcement: NEWS && X "-*-*-*-" \ && X \ && $(AWK) '\ - ($$0 == "New in $(VERSION):") { wait_for_end=1; } \ - (/^~~~/ && wait_for_end) { exit(0) } \ + ($$0 ~ /^New in .*:/) { wait_for_end=1; } \ + (/^~~~/ && wait_for_end) { print; exit(0) } \ { print } \ ' <$(srcdir)/NEWS >> $@-t \ && mv -f $@-t $@ @@ -391,7 +412,7 @@ web-manual: web-manual-update: $(AM_V_at)$(determine_release_type); \ case $$release_type in \ - [Mm]ajor\ release|[Mm]inor\ release);; \ + [Mm]ajor\ release|[Mm]inor\ release|[Mm]icro\ release);; \ *) echo "Cannot upload manuals from a \"$$release_type\"" >&2; \ exit 1;; \ esac @@ -518,6 +539,12 @@ build-minimal-autoconf: .PHONY: build-minimal-autoconf check-minimal-autoconf: + $(AM_V_at)p='$(ac-d)/bin/autoconf'; \ + if test ! -f "$$p" || test ! -x "$$p"; then \ + echo "$@: program '$$p' seems missing." >&2; \ + echo "$@: have you run '$(MAKE) build-minimal-autoconf'?" >&2; \ + exit 1; \ + fi $(AM_V_GEN): \ && PATH='$(CURDIR)/$(ac-d)/bin$(PATH_SEPARATOR)'$$PATH \ && export PATH \ @@ -527,7 +554,13 @@ check-minimal-autoconf: && AUTOM4TE=autom4te \ && AUTOUPDATE=autoupdate \ && export AUTOCONF AUTOHEADER AUTORECONF AUTOM4TE AUTOUPDATE \ + && echo === check autoconf version '(must be = $(ac-v))' \ + && autoconf --version \ + && autoconf --version | sed -e 's/^/ /; s/$$/ /' -e 1q \ + | $(FGREP) '$(ac-v)' >/dev/null \ + && echo === configure \ && ./configure $(shell ./config.status --config) \ + && echo === build and test \ && $(MAKE) check .PHONY: check-minimal-autoconf @@ -538,7 +571,7 @@ check-minimal-autoconf: # # NOTE (from Stefano Lattarini): -# +# # This section is mostly hacky and ad-hoc, but works for me and # on my system. And while far from clean, it should help catching # real regressions on real world packages, which is important.