We have to consider three distinct versions at this time: the VA-API version, the library package version number, and the DSO version.
* VA-API version: - increment major for any ABI change (which shall not occur!) - increment minor for any interface change (e.g. new or modified function) - increment micro for any other change (e.g. new flag, new codec definitions) - reset micro version to zero when minor version is incremented - reset minor version to zero when major version is incremented * libva package version number: - major version is automatically generated from VA-API major version - minor version is automatically generated from VA-API minor version - increment micro for any library release - reset micro version to zero when VA-API major or minor version is incremented * DSO version: The SONAME shall remain to libva.so.1 for VA-API 0.x.y as long as the ABI is not changed. Thus, the library name is generated as libva.<x>.<y>.0 where <x> = VA-API major version + 1 <y> = 100 * VA-API minor version + VA-API micro version For example: VA-API 0.32.0 generates libva.so.1.3200.0 (libva 1.0.14 as of today) VA-API 0.34.1 generates libva.so.1.3401.0 (e.g. libva 1.2.1) VA-API 1.2.13 generates libva.so.2.213.0 (e.g. libva 2.2.13) Signed-off-by: Gwenole Beauchesne <[email protected]> --- configure.ac | 67 ++++++++++++++++++++++++++++++++++++++++++--------- va/va_version.h.in | 28 +++++++++++----------- 2 files changed, 69 insertions(+), 26 deletions(-) diff --git a/configure.ac b/configure.ac index 0f50222..fe40fd9 100644 --- a/configure.ac +++ b/configure.ac @@ -20,21 +20,55 @@ # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# VA-API version +# - increment major for any ABI change (which shall not occur!) +# - increment minor for any interface change (e.g. new/modified function) +# - increment micro for any other change (new flag, new codec definition, etc.) +# - reset micro version to zero when minor version is incremented +# - reset minor version to zero when major version is incremented +m4_define([va_api_major_version], [0]) +m4_define([va_api_minor_version], [32]) +m4_define([va_api_micro_version], [0]) + +m4_define([va_api_version], + [va_api_major_version.va_api_minor_version.va_api_micro_version]) + # libva package version number, (as distinct from shared library version) -m4_define([libva_major_version], [0]) -m4_define([libva_minor_version], [32]) -m4_define([libva_micro_version], [0]) +# XXX: we want the package version to remain at 1.0.x for VA-API 0.32.y +# +# - major version is automatically generated from VA-API major version +# - minor version is automatically generated from VA-API minor version +# - increment micro for any library release +# - reset micro version to zero when VA-API major or minor version is changed +m4_define([libva_major_version], [m4_eval(va_api_major_version + 1)]) +m4_define([libva_minor_version], [m4_eval(va_api_minor_version - 32)]) +m4_define([libva_micro_version], [14]) m4_define([libva_version], [libva_major_version.libva_minor_version.libva_micro_version]) -# if the library source code has changed, increment revision -m4_define([libva_lt_revision], [14]) -# if any interface was added/removed/changed, then inc current, reset revision -m4_define([libva_lt_current], [1]) -# if any interface was added since last public release, then increment age -# if any interface was removed since last public release, then set age to 0 -m4_define([libva_lt_age], [0]) +# libva library version number (generated, do not change) +# XXX: we want the SONAME to remain at libva.so.1 for VA-API major == 0 +# +# The library name is generated libva.<x>.<y>.0 where +# <x> = VA-API major version + 1 +# <y> = 100 * VA-API minor version + VA-API micro version +# +# For example: +# VA-API 0.32.0 generates libva.so.1.3200.0 +# VA-API 0.34.1 generates libva.so.1.3401.0 +# VA-API 1.2.13 generates libva.so.2.213.0 +m4_define([libva_interface_bias], [m4_eval(va_api_major_version + 1)]) +m4_define([libva_interface_age], [0]) +m4_define([libva_binary_age], + [m4_eval(100 * va_api_minor_version + va_api_micro_version - libva_interface_age)]) + +m4_define([libva_lt_current], + [m4_eval(100 * va_api_minor_version + va_api_micro_version + libva_interface_bias)]) +m4_define([libva_lt_revision], + [m4_eval(libva_interface_age)]) +m4_define([libva_lt_age], + [m4_eval(libva_binary_age - libva_interface_age)]) AC_PREREQ(2.57) AC_INIT([libva], [libva_version], [[email protected]], libva) @@ -44,6 +78,15 @@ AM_INIT_AUTOMAKE([dist-bzip2]) AM_CONFIG_HEADER([config.h]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +VA_API_MAJOR_VERSION=va_api_major_version +VA_API_MINOR_VERSION=va_api_minor_version +VA_API_MICRO_VERSION=va_api_micro_version +VA_API_VERSION=va_api_version +AC_SUBST(VA_API_MAJOR_VERSION) +AC_SUBST(VA_API_MINOR_VERSION) +AC_SUBST(VA_API_MICRO_VERSION) +AC_SUBST(VA_API_VERSION) + LIBVA_MAJOR_VERSION=libva_major_version LIBVA_MINOR_VERSION=libva_minor_version LIBVA_MICRO_VERSION=libva_micro_version @@ -130,7 +173,7 @@ AM_CONDITIONAL(USE_EGL, test "$USE_EGL" = "yes") # Make sure drivers use the correctly versioned __vaDriverInit*() function name -VA_DRIVER_INIT_FUNC="__vaDriverInit_${LIBVA_MAJOR_VERSION}_${LIBVA_MINOR_VERSION}" +VA_DRIVER_INIT_FUNC="__vaDriverInit_${VA_API_MAJOR_VERSION}_${VA_API_MINOR_VERSION}" AC_DEFINE_UNQUOTED([VA_DRIVER_INIT_FUNC], [$VA_DRIVER_INIT_FUNC], [Defined to the versioned __vaDriverInit function name]) AC_DEFINE_UNQUOTED([VA_DRIVER_INIT_FUNC_S], ["$VA_DRIVER_INIT_FUNC"], @@ -175,7 +218,7 @@ AC_OUTPUT([ # Print a small summary echo "" -echo "libva - ${LIBVA_VERSION}" +echo "libva - ${LIBVA_VERSION} (VA-API ${VA_API_VERSION})" echo "" echo " Global :" diff --git a/va/va_version.h.in b/va/va_version.h.in index c9ea97a..6dd6982 100644 --- a/va/va_version.h.in +++ b/va/va_version.h.in @@ -28,43 +28,43 @@ /** * VA_MAJOR_VERSION: * - * The major version of the VA library (1, if %VA_VERSION is 1.2.3) + * The major version of VA-API (1, if %VA_VERSION is 1.2.3) */ -#define VA_MAJOR_VERSION (@LIBVA_MAJOR_VERSION@) +#define VA_MAJOR_VERSION (@VA_API_MAJOR_VERSION@) /** * VA_MINOR_VERSION: * - * The minor version of the VA library (2, if %VA_VERSION is 1.2.3) + * The minor version of VA-API (2, if %VA_VERSION is 1.2.3) */ -#define VA_MINOR_VERSION (@LIBVA_MINOR_VERSION@) +#define VA_MINOR_VERSION (@VA_API_MINOR_VERSION@) /** * VA_MICRO_VERSION: * - * The micro version of the VA library (3, if %VA_VERSION is 1.2.3) + * The micro version of VA-API (3, if %VA_VERSION is 1.2.3) */ -#define VA_MICRO_VERSION (@LIBVA_MICRO_VERSION@) +#define VA_MICRO_VERSION (@VA_API_MICRO_VERSION@) /** * VA_VERSION: * - * The full version of the VA library, like 1.2.3 + * The full version of VA-API, like 1.2.3 */ -#define VA_VERSION @LIBVA_VERSION@ +#define VA_VERSION @VA_API_VERSION@ /** * VA_VERSION_S: * - * The full version of the VA library, in string form (suited for - * string concatenation) + * The full version of VA-API, in string form (suited for string + * concatenation) */ -#define VA_VERSION_S "@LIBVA_VERSION@" +#define VA_VERSION_S "@VA_API_VERSION@" /** * VA_VERSION_HEX: * - * Numerically encoded version of the VA library, like 0x010203 + * Numerically encoded version of VA-API, like 0x010203 */ #define VA_VERSION_HEX ((VA_MAJOR_VERSION << 24) | \ (VA_MINOR_VERSION << 16) | \ @@ -76,8 +76,8 @@ * @minor: minor version, like 2 in 1.2.3 * @micro: micro version, like 3 in 1.2.3 * - * Evaluates to %TRUE if the version of the VA library is greater - * than @major, @minor and @micro + * Evaluates to %TRUE if the version of VA-API is greater than + * @major, @minor and @micro */ #define VA_CHECK_VERSION(major,minor,micro) \ (VA_MAJOR_VERSION > (major) || \ -- 1.7.0.4
_______________________________________________ Libva mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libva
