Commit 79f80f5c authored by Alexander Strasser's avatar Alexander Strasser Committed by Michael Niedermayer

build: Allow building old API/ABI libpostproc version

  Allows our users to still build against a libpostproc with the old
API/ABI. Distributions can use this option to defer the soname bump.
Signed-off-by: 's avatarAlexander Strasser <eclipse7@gmx.net>
Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent 5dfc7f73
...@@ -262,6 +262,8 @@ Advanced options (experts only): ...@@ -262,6 +262,8 @@ Advanced options (experts only):
--enable-sram allow use of on-chip SRAM --enable-sram allow use of on-chip SRAM
--disable-symver disable symbol versioning --disable-symver disable symbol versioning
--optflags override optimization-related compiler flags --optflags override optimization-related compiler flags
--postproc-version=V build libpostproc version V.
Where V can be '$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO' or 'current'. [$postproc_version_default]
Developer options (useful when working on FFmpeg itself): Developer options (useful when working on FFmpeg itself):
--enable-coverage build with test coverage instrumentation --enable-coverage build with test coverage instrumentation
...@@ -1319,6 +1321,7 @@ CMDLINE_SET=" ...@@ -1319,6 +1321,7 @@ CMDLINE_SET="
target_exec target_exec
target_os target_os
target_path target_path
postproc_version
valgrind valgrind
yasmexe yasmexe
" "
...@@ -1789,6 +1792,7 @@ incdir_default='${prefix}/include' ...@@ -1789,6 +1792,7 @@ incdir_default='${prefix}/include'
libdir_default='${prefix}/lib' libdir_default='${prefix}/lib'
mandir_default='${prefix}/share/man' mandir_default='${prefix}/share/man'
shlibdir_default="$libdir_default" shlibdir_default="$libdir_default"
postproc_version_default="current"
# toolchain # toolchain
ar_default="ar" ar_default="ar"
...@@ -1816,6 +1820,12 @@ cpu="generic" ...@@ -1816,6 +1820,12 @@ cpu="generic"
target_os_default=$(tolower $(uname -s)) target_os_default=$(tolower $(uname -s))
host_os=$target_os_default host_os=$target_os_default
# alternative libpostproc version
ALT_PP_VER_MAJOR=51
ALT_PP_VER_MINOR=2
ALT_PP_VER_MICRO=101
ALT_PP_VER=$ALT_PP_VER_MAJOR.$ALT_PP_VER_MINOR.$ALT_PP_VER_MICRO
# configurable options # configurable options
enable $PROGRAM_LIST enable $PROGRAM_LIST
...@@ -2022,7 +2032,17 @@ if enabled cross_compile; then ...@@ -2022,7 +2032,17 @@ if enabled cross_compile; then
die "Must specify target arch and OS when cross-compiling" die "Must specify target arch and OS when cross-compiling"
fi fi
set_default arch target_os set_default arch target_os postproc_version
# Check if we should build alternative libpostproc version instead of current
if test "$postproc_version" = $ALT_PP_VER; then
LIBPOSTPROC_VERSION=$ALT_PP_VER
LIBPOSTPROC_VERSION_MAJOR=$ALT_PP_VER_MAJOR
LIBPOSTPROC_VERSION_MINOR=$ALT_PP_VER_MINOR
LIBPOSTPROC_VERSION_MICRO=$ALT_PP_VER_MICRO
elif test "$postproc_version" != current; then
die "Invalid argument to --postproc-version. See --help output."
fi
ar_default="${cross_prefix}${ar_default}" ar_default="${cross_prefix}${ar_default}"
cc_default="${cross_prefix}${cc_default}" cc_default="${cross_prefix}${cc_default}"
...@@ -3591,8 +3611,11 @@ EOF ...@@ -3591,8 +3611,11 @@ EOF
get_version(){ get_version(){
name=$1 name=$1
file=$source_path/$2 file=$source_path/$2
# This condition will be removed when we stop supporting old libpostproc versions
if ! test "$name" = LIBPOSTPROC || test "$postproc_version" = current; then
eval $(grep "#define ${name}_VERSION_M" "$file" | awk '{ print $2"="$3 }') eval $(grep "#define ${name}_VERSION_M" "$file" | awk '{ print $2"="$3 }')
eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
fi
lcname=$(tolower $name) lcname=$(tolower $name)
eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
...@@ -3669,6 +3692,12 @@ cat > $TMPH <<EOF ...@@ -3669,6 +3692,12 @@ cat > $TMPH <<EOF
#define AVUTIL_AVCONFIG_H #define AVUTIL_AVCONFIG_H
EOF EOF
test "$postproc_version" != current && cat >> $TMPH <<EOF
#define LIBPOSTPROC_VERSION_MAJOR $LIBPOSTPROC_VERSION_MAJOR
#define LIBPOSTPROC_VERSION_MINOR $LIBPOSTPROC_VERSION_MINOR
#define LIBPOSTPROC_VERSION_MICRO $LIBPOSTPROC_VERSION_MICRO
EOF
print_config AV_HAVE_ $TMPH $HAVE_LIST_PUB print_config AV_HAVE_ $TMPH $HAVE_LIST_PUB
echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH echo "#endif /* AVUTIL_AVCONFIG_H */" >> $TMPH
......
...@@ -29,9 +29,11 @@ ...@@ -29,9 +29,11 @@
#include "libavutil/avutil.h" #include "libavutil/avutil.h"
#ifndef LIBPOSTPROC_VERSION_MAJOR
#define LIBPOSTPROC_VERSION_MAJOR 52 #define LIBPOSTPROC_VERSION_MAJOR 52
#define LIBPOSTPROC_VERSION_MINOR 0 #define LIBPOSTPROC_VERSION_MINOR 0
#define LIBPOSTPROC_VERSION_MICRO 100 #define LIBPOSTPROC_VERSION_MICRO 100
#endif
#define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \
LIBPOSTPROC_VERSION_MINOR, \ LIBPOSTPROC_VERSION_MINOR, \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment