# # Maintainer Makefile # # WARNING: # THIS IS EXPERIMENTAL - DO NOT USE (YET) ! # * This Makefile is only useful to RTEMS maintainers # * You must have write access to RTEMS CVS # * Running this Makefile modifies RTEMS CVS # * Watch out for warning and error messages - Do NOT IGNORE them! # MAINTAINER notes: # Cutting a new release: # 1. Perform a non-anonymous cvs checkout of the BRANCH # you want to cut a release tarball from # 2. Run "make -f Makefile.maint new-revision" # (rsp. "make -f Makefile.maint new-minor"). # 3. Run "make -f Makefile.maint commit" # 4. Run "make -f Makefile.maint tag" # 5. Run "make -f Makefine.maint tarball" # ----------------- # SECURITY: Append a string to tag to avoid accidentially screwing up cvs-tags # For "hot runs" you will want to use "make -f Makefile.maint TEST_TAG= " TEST_TAG = -test1 rtems_version := $(shell cat VERSION | sed -n '/.* Version /{s/^.*Version[ ]*\([0-9\.]\+\)/\1/p};') rtems_tag := $(shell echo "rtems-$(rtems_version)" | tr . -) # ----------------- # Cleanup check out and cvs-tag the files inside tag: cvs -z9 up -dP >/dev/null @./bootstrap -p >/dev/null cvs tag -c $(rtems_tag)$(TEST_TAG) >/dev/null # ----------------- # Different stages of cvs-exporting rtems-$(rtems_version)/stamp.export: cvs -z9 export -d rtems-$(rtems_version) -r $(rtems_tag)$(TEST_TAG) rtems touch rtems-$(rtems_version)/stamp.export rtems-$(rtems_version).tar.bz2: rtems-$(rtems_version)/stamp.autofiles rtems-$(rtems_version)/excludes tar -cj -X rtems-$(rtems_version)/excludes \ -f rtems-$(rtems_version).tar.bz2 rtems-$(rtems_version) rtems-$(rtems_version)/stamp.cleanup: rtems-$(rtems_version)/stamp.export find rtems-$(rtems_version) -name .cvsignore -exec rm -f {} \; find rtems-$(rtems_version) -name preinstall.am -exec touch {} \; touch rtems-$(rtems_version)/c/src/librdbg/src/*/*/remdeb*.[hc] rm -rf rtems-$(rtems_version)/contrib touch rtems-$(rtems_version)/stamp.cleanup rtems-$(rtems_version)/stamp.autofiles: rtems-$(rtems_version)/stamp.cleanup cd rtems-$(rtems_version) && ./bootstrap -r touch rtems-$(rtems_version)/stamp.autofiles rtems-$(rtems_version)/excludes: Makefile.maint @echo "Generating $@" @echo "excludes" > $@ @echo "stamp.*" >> $@ @echo "autom4te.cache" >> $@ @echo "Makefile.maint" >> $@ tarball: rtems-$(rtems_version).tar.bz2 # ----------------- # Create a new minor release # increments the 2nd digit of the version number # set the 3rd digit of the version number to 0 # Example: 4.6.99.4 -> 4.7.0 new-minor: @v=$$(echo $(rtems_version) | sed 's,^\([0-9]\+\).*,\1,'); \ r=$$(echo $(rtems_version) | sed 's,^[0-9]\+\.\([0-9]\+\).*,\1,'); \ r=$$(($$r + 1)); version="$$v.$$r.0"; \ echo "New minor release: $$version"; \ sed -i -e "s|\[_RTEMS_VERSION\],\[.*\]|\[_RTEMS_VERSION\],\[$$version\]|" \ $(VERSION_FILES); \ sed -i -e "s,\(^RTEMS Version\).*,\1 $$version," VERSION # Create a new revision release # increments the last digit of the version number # Examples: 4.6.99.4 -> 4.6.99.5 # 4.7.0 -> 4.7.1 new-revision: @m=$$(echo $(rtems_version) | sed 's,^\(.*\)\.[0-9]\+,\1,'); \ n=$$(echo $(rtems_version) | sed 's,^.*\.\([0-9]\+\),\1,'); \ n=$$(($$n + 1)); version="$$m.$$n";\ echo "New revision release: $$version"; \ sed -i -e "s|\[_RTEMS_VERSION\],\[.*\]|\[_RTEMS_VERSION\],\[$$version\]|" \ $(VERSION_FILES); \ sed -i -e "s,\(^RTEMS Version\).*,\1 $$version," VERSION VERSION_FILES += aclocal/version.m4 VERSION_FILES += cpukit/aclocal/version.m4 VERSION_FILES += c/src/aclocal/version.m4 VERSION_FILES += testsuites/aclocal/version.m4 CVS_RUN := $(shell if [ -n "$(TEST_TAG)" ]; then echo "cvs -n"; else echo "cvs"; fi) commit: $(CVS_RUN) commit -m "Upgrade to $(rtems_version)" \ $(VERSION_FILES) VERSION .PHONY: commit new-minor new-revision tag tarball