1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
#--*- Makefile -*--
.PHONY: release major minor patch
VFILE = .version
VERSION := $(shell grep -v "^\#" ${VFILE})
VERSION_PM ?= lib/RestfulDB/Version.pm
VERSION_PMIN ?= ${VERSION_PM:%=%in}
RESTFULDB_VERSION_SCRIPT ?= tools/scripts/restfuldb-version
RESTFULDB_VERSION_SCRIPT_IN ?= ${RESTFULDB_VERSION_SCRIPT:%=%.in}
version.h: version.hin ${VFILE}
sed 's/@VERSION@/${VERSION}/' $< > $@
${VERSION_PM}: ${VERSION_PMIN} ${VFILE}
sed 's/@VERSION@/${VERSION}/' $< > $@
${RESTFULDB_VERSION_SCRIPT}: ${RESTFULDB_VERSION_SCRIPT_IN}
sed 's/@VERSION@/${VERSION}/' $< > $@
chmod 755 $@
release:
svn ci
perl -lpi -e 's/\(unreleased\)/(${VERSION})/ if $$. == 1' CHANGELOG
svn ci -m "CHANGELOG: switching from 'unreleased' to '${VERSION}'"
svn cp ^/trunk ^/branches/release/v${VERSION} \
-m "Preparing version ${VERSION} for release in the release branch."
${MAKE} minor
major:
awk -F. '/^#/{print} !/^#/{print $$1+1 ".0" ($$3 ? ".0" : "")}' \
${VFILE} > ${VFILE}.$$$$; \
cat ${VFILE}.$$$$ > ${VFILE}; \
rm -f ${VFILE}.$$$$
minor:
awk -F. '/^#/{print} !/^#/{print $$1 "." $$2+1 ($$3 ? ".0" : "")}' \
${VFILE} > ${VFILE}.$$$$; \
cat ${VFILE}.$$$$ > ${VFILE}; \
rm -f ${VFILE}.$$$$
patch:
awk -F. '/^#/{print} !/^#/{print $$1 "." $$2 "." $$3+1}' \
${VFILE} > ${VFILE}.$$$$; \
cat ${VFILE}.$$$$ > ${VFILE}; \
rm -f ${VFILE}.$$$$
distclean: clean-version
clean-version:
rm -f ${VESRSION_PM} ${RESTFULDB_VERSION_SCRIPT}
|