Skip to content
Snippets Groups Projects
Commit 59c5a82e authored by Ralph Giles's avatar Ralph Giles
Browse files

Move the release version string to version.mk.

Previously we defined the release version string in configure.ac,
and overrode that with 'git describe --tags' if possible. This
made it difficult for non-autoconf builds to set their version
string correctly.

Instead we create, and check into version control, a file called
version.mk which defines OPUS_VERSION. The configure script reads
that file and uses it as a fallback if the git revision isn't available.

The expectation is that version.mk will be manually updated for
releases, just as the previous configure.ac version was. However,
since this is a simpler format, it is easier for alternate build
systems to use, reducing the number of places which must be updated.

Also removes the OPUS_MINOR_VERSION, etc. defines from config.h.
parent 9322362b
No related branches found
No related tags found
No related merge requests found
......@@ -82,7 +82,8 @@ opus_custom_demo_SOURCES = celt/opus_custom_demo.c
opus_custom_demo_LDADD = libopus.la -lm
endif
EXTRA_DIST = opus.pc.in \
EXTRA_DIST = version.mk \
opus.pc.in \
opus-uninstalled.pc.in \
opus.sln \
celt/celt.vcxproj \
......
......@@ -7,12 +7,25 @@ AM_CONFIG_HEADER([config.h])
dnl enable silent rules on automake 1.11 and later
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
OPUS_MAJOR_VERSION=1
OPUS_MINOR_VERSION=0
OPUS_MICRO_VERSION=1
OPUS_EXTRA_VERSION=-rc2
# Read our default version string from version.mk.
# Please update this file for releases.
AC_MSG_CHECKING([version.mk])
MK_VERSION=$(awk 'BEGIN { FS = "=" }
/OPUS_VERSION/ { ver = $2}
END {
gsub(/"/, "", ver);
gsub(/^ /, "", ver);
gsub(/ $/, "", ver);
print ver;
}' $srcdir/version.mk)
if test -z "$MK_VERSION"; then
AC_MSG_RESULT([no])
else
AC_MSG_RESULT([$MK_VERSION])
OPUS_VERSION="$MK_VERSION"
fi
OPUS_VERSION="$OPUS_MAJOR_VERSION.$OPUS_MINOR_VERSION.$OPUS_MICRO_VERSION$OPUS_EXTRA_VERSION"
# Override with the git version, if available.
AC_MSG_CHECKING([git revision])
GIT_VERSION=$(git describe --tags --match 'v*' 2>/dev/null | sed 's/^v//')
if test -z "$GIT_VERSION"; then
......@@ -22,21 +35,20 @@ else
OPUS_VERSION="$GIT_VERSION"
fi
# Use 'unknown' if all else fails.
if test -z "$OPUS_VERSION"; then
OPUS_VERSION="unknown"
fi
# For automake.
VERSION=$OPUS_VERSION
PACKAGE=opus
VERSION=$OPUS_VERSION
# For our version string.
# For config.h.
AC_SUBST(OPUS_VERSION)
# For config.h
AC_DEFINE_UNQUOTED(OPUS_VERSION, "${OPUS_VERSION}", [Complete version string])
AC_DEFINE_UNQUOTED(OPUS_MAJOR_VERSION, ${OPUS_MAJOR_VERSION}, [Version major])
AC_DEFINE_UNQUOTED(OPUS_MINOR_VERSION, ${OPUS_MINOR_VERSION}, [Version minor])
AC_DEFINE_UNQUOTED(OPUS_MICRO_VERSION, ${OPUS_MICRO_VERSION}, [Version micro])
AC_DEFINE_UNQUOTED(OPUS_EXTRA_VERSION, "${OPUS_EXTRA_VERSION}", [Version extra])
# For libtool.
dnl Please update these for releases.
OPUS_LT_CURRENT=2
OPUS_LT_REVISION=0
OPUS_LT_AGE=2
......
# static version string; update manually every release.
OPUS_VERSION = "1.0.1-rc2"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment