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.
This commit is contained in:
parent
9322362b1b
commit
59c5a82e51
3 changed files with 32 additions and 17 deletions
|
@ -82,7 +82,8 @@ opus_custom_demo_SOURCES = celt/opus_custom_demo.c
|
||||||
opus_custom_demo_LDADD = libopus.la -lm
|
opus_custom_demo_LDADD = libopus.la -lm
|
||||||
endif
|
endif
|
||||||
|
|
||||||
EXTRA_DIST = opus.pc.in \
|
EXTRA_DIST = version.mk \
|
||||||
|
opus.pc.in \
|
||||||
opus-uninstalled.pc.in \
|
opus-uninstalled.pc.in \
|
||||||
opus.sln \
|
opus.sln \
|
||||||
celt/celt.vcxproj \
|
celt/celt.vcxproj \
|
||||||
|
|
44
configure.ac
44
configure.ac
|
@ -7,12 +7,25 @@ AM_CONFIG_HEADER([config.h])
|
||||||
dnl enable silent rules on automake 1.11 and later
|
dnl enable silent rules on automake 1.11 and later
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
|
|
||||||
OPUS_MAJOR_VERSION=1
|
# Read our default version string from version.mk.
|
||||||
OPUS_MINOR_VERSION=0
|
# Please update this file for releases.
|
||||||
OPUS_MICRO_VERSION=1
|
AC_MSG_CHECKING([version.mk])
|
||||||
OPUS_EXTRA_VERSION=-rc2
|
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])
|
AC_MSG_CHECKING([git revision])
|
||||||
GIT_VERSION=$(git describe --tags --match 'v*' 2>/dev/null | sed 's/^v//')
|
GIT_VERSION=$(git describe --tags --match 'v*' 2>/dev/null | sed 's/^v//')
|
||||||
if test -z "$GIT_VERSION"; then
|
if test -z "$GIT_VERSION"; then
|
||||||
|
@ -22,21 +35,20 @@ else
|
||||||
OPUS_VERSION="$GIT_VERSION"
|
OPUS_VERSION="$GIT_VERSION"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For automake.
|
# Use 'unknown' if all else fails.
|
||||||
VERSION=$OPUS_VERSION
|
if test -z "$OPUS_VERSION"; then
|
||||||
PACKAGE=opus
|
OPUS_VERSION="unknown"
|
||||||
|
fi
|
||||||
|
|
||||||
# For our version string.
|
# For automake.
|
||||||
|
PACKAGE=opus
|
||||||
|
VERSION=$OPUS_VERSION
|
||||||
|
|
||||||
|
# For config.h.
|
||||||
AC_SUBST(OPUS_VERSION)
|
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.
|
# For libtool.
|
||||||
|
dnl Please update these for releases.
|
||||||
OPUS_LT_CURRENT=2
|
OPUS_LT_CURRENT=2
|
||||||
OPUS_LT_REVISION=0
|
OPUS_LT_REVISION=0
|
||||||
OPUS_LT_AGE=2
|
OPUS_LT_AGE=2
|
||||||
|
|
2
version.mk
Normal file
2
version.mk
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# static version string; update manually every release.
|
||||||
|
OPUS_VERSION = "1.0.1-rc2"
|
Loading…
Add table
Add a link
Reference in a new issue