mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
163 lines
6.0 KiB
Makefile
163 lines
6.0 KiB
Makefile
#
|
|
# 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 Makefile.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 TAG_SUFFIX= <command>"
|
|
TAG_SUFFIX = -test1
|
|
|
|
rtems_version := $(shell cat VERSION | sed -n '/.* Version /{s/^.*Version[ ]*\([0-9\.]\+\)/\1/p};')
|
|
rtems_tag := $(shell echo "rtems-$(rtems_version)" | tr . -)
|
|
rtems_api := 4.10
|
|
PATH := /opt/rtems-$(rtems_api)/bin:$(PATH)
|
|
|
|
# -----------------
|
|
# Cleanup check out and cvs-tag the files inside
|
|
tag:
|
|
cvs -q -z9 up -dP
|
|
./bootstrap -p >/dev/null
|
|
cvs -q tag -c $(rtems_tag)$(TAG_SUFFIX)
|
|
|
|
# -----------------
|
|
# Different stages of cvs-exporting
|
|
rtems-$(rtems_version)/stamp.export.$(rtems_tag)$(TAG_SUFFIX):
|
|
rm -rf rtems-$(rtems_version)
|
|
@cvs -q -z9 export -d rtems-$(rtems_version) -r $(rtems_tag)$(TAG_SUFFIX) rtems
|
|
@if ! test -f rtems-$(rtems_version)/VERSION; then \
|
|
echo "ERROR export failed"; \
|
|
echo " Did you run 'make -f Makefile.maint tag' ?"; exit 1; fi
|
|
echo "$(rtems_tag)$(TAG_SUFFIX)" > rtems-$(rtems_version)/stamp.export.$(rtems_tag)$(TAG_SUFFIX)
|
|
|
|
rtems-$(rtems_version)$(TAG_SUFFIX).tar.bz2: rtems-$(rtems_version)/stamp.autofiles \
|
|
rtems-$(rtems_version)/excludes \
|
|
rtems-$(rtems_version)/TOOL_VERSIONS
|
|
cd rtems-$(rtems_version) ; \
|
|
touch doc/ada_user/ada_user.texi doc/bsp_howto/bsp_howto.texi \
|
|
doc/cpu_supplement/cpu_supplement.texi \
|
|
doc/develenv/develenv.texi doc/filesystem/filesystem.texi \
|
|
doc/itron3.0/itron.texi doc/networking/networking.texi \
|
|
doc/new_chapters/new_chapters.texi doc/porting/porting.texi \
|
|
doc/posix1003.1/posix1003_1.texi doc/posix_users/posix_users.texi \
|
|
doc/relnotes/relnotes.texi doc/started_ada/started_ada.texi \
|
|
doc/started/started.texi doc/user/c_user.texi
|
|
tar -cj -X rtems-$(rtems_version)/excludes \
|
|
-f rtems-$(rtems_version)$(TAG_SUFFIX).tar.bz2 rtems-$(rtems_version)
|
|
|
|
## Touching the top pages in the various manuals results in the date
|
|
## on their title page matching the release date.
|
|
rtems-$(rtems_version)/stamp.cleanup: rtems-$(rtems_version)/stamp.export.$(rtems_tag)$(TAG_SUFFIX)
|
|
find rtems-$(rtems_version) -name .cvsignore -exec rm -f {} \;
|
|
find rtems-$(rtems_version) -name preinstall.am -exec touch {} \;
|
|
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)$(TAG_SUFFIX).tar.bz2
|
|
|
|
rtems-$(rtems_version)/TOOL_VERSIONS: Makefile.maint
|
|
( \
|
|
date ; \
|
|
echo ; \
|
|
echo "This file contains configuration information on the " ; \
|
|
echo "primary computer used to test and make the $(rtems_version)" ; \
|
|
echo "version of RTEMS" ; \
|
|
echo ; \
|
|
echo "OS Version: " `head -1 /etc/issue` ; \
|
|
echo ; \
|
|
echo "The following RTEMS RPMs were installed on the machine" ; \
|
|
echo "where this release was made:" ; \
|
|
echo ; \
|
|
rpm -qa 'rtems-$(rtems_api)-*' | sort | sed -e 's/^/ /' ; \
|
|
echo \
|
|
) > $@
|
|
|
|
# -----------------
|
|
# 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
|
|
|
|
# -----------------
|
|
# Create a new branch
|
|
# increments the 2nd digit of the version number
|
|
# set the 3rd digit of the version number to 99
|
|
# set the 4rd digit of the version number to 0
|
|
# Example: 4.6.34.4 -> 4.7.99.0
|
|
new-branch:
|
|
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.99.0"; \
|
|
api="$$v.$$(($$r + 1))"; \
|
|
echo "New branch release: $$version"; \
|
|
sed -i -e "s|\[_RTEMS_VERSION\],\[.*\]|\[_RTEMS_VERSION\],\[$$version\]|" \
|
|
-e "s|\[RTEMS_API\],\[.*\]|\[RTEMS_API\],\[$$api\]|" \
|
|
$(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 "$(TAG_SUFFIX)" ]; 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 new-branch tag tarball
|