avcodecmap: It's interlace-mode, not interlaced-mode
[platform/upstream/gst-libav.git] / configure.ac
index b3f1de5..17825f0 100644 (file)
@@ -1,16 +1,16 @@
-AC_PREREQ(2.62)
+AC_PREREQ(2.69)
 
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, cvs and prerelease does Werror too
-AC_INIT(GStreamer libav, 1.3.90,
+AC_INIT(GStreamer libav, 1.11.0.1,
     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
     gst-libav)
 
 AG_GST_INIT
 
 dnl initialize automake
-AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
+AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
 
 dnl define PACKAGE_VERSION_* variables
 AS_VERSION
@@ -30,10 +30,8 @@ AM_MAINTAINER_MODE([enable])
 dnl sets host_* variables
 AC_CANONICAL_HOST
 
-dnl use pretty build output with automake >= 1.11
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
-  [AM_DEFAULT_VERBOSITY=1
-   AC_SUBST(AM_DEFAULT_VERBOSITY)])
+dnl use pretty build output by default
+AM_SILENT_RULES([yes])
 
 dnl our libraries and install dirs use major.minor as a version
 GST_API_VERSION=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
@@ -42,11 +40,11 @@ GST_API_VERSION=1.0
 AC_SUBST(GST_API_VERSION)
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 390, 0, 390)
+AS_LIBTOOL(GST, 1100, 0, 1100)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.3.90
-GST_PBREQ=1.3.90
+GST_REQ=1.11.0.1
+GST_PBREQ=1.11.0.1
 
 ORC_REQ=0.4.16
 ORC_CHECK([$ORC_REQ])
@@ -62,6 +60,7 @@ AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
 dnl *** check for arguments to configure ***
 
 AG_GST_ARG_DISABLE_FATAL_WARNINGS
+AG_GST_ARG_ENABLE_EXTRA_CHECKS
 
 AG_GST_ARG_WITH_PKG_CONFIG_PATH
 AG_GST_ARG_WITH_PACKAGE_NAME
@@ -99,6 +98,9 @@ dnl check for libm, for sin()
 LT_LIB_M
 AC_SUBST(LIBM)
 
+dnl check for pthreads
+AX_PTHREAD
+
 dnl *** checks for header files ***
 
 dnl check if we have ANSI C header files
@@ -114,6 +116,11 @@ dnl *** checks for library functions ***
 
 dnl *** checks for dependancy libraries ***
 
+dnl GLib is required
+GLIB_REQ=2.40.0
+AC_SUBST([GLIB_REQ])
+AG_GST_GLIB_CHECK([$GLIB_REQ])
+
 dnl checks for gstreamer
 dnl uninstalled is selected preferentially -- see pkg-config(1)
 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ])
@@ -125,6 +132,21 @@ AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
 AC_MSG_NOTICE(Using GStreamer Core Plugins in $GST_PLUGINS_DIR)
 AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR)
 
+dnl Check for -Bsymbolic-functions linker flag used to avoid
+dnl intra-library PLT jumps, if available.
+AC_ARG_ENABLE(Bsymbolic,
+              [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
+              [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
+               AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
+               LDFLAGS=-Wl,-Bsymbolic-functions
+               LIBS=
+               AC_TRY_LINK([], [return 0],
+                           AC_MSG_RESULT(yes)
+                           enable_Bsymbolic=yes,
+                           AC_MSG_RESULT(no)
+                           enable_Bsymbolic=no)
+               LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
+
 dnl *** set variables based on configure arguments ***
 
 dnl set location of plugin directory
@@ -200,6 +222,9 @@ AC_SUBST(GST_CFLAGS)
 AC_SUBST(GST_LIBS)
 
 GST_ALL_LDFLAGS="-no-undefined"
+if test "x${enable_Bsymbolic}" = "xyes"; then
+  GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
+fi
 AC_SUBST(GST_ALL_LDFLAGS)
 
 dnl this really should only contain flags, not libs - they get added before
@@ -219,23 +244,11 @@ case $host_os in
 esac
 AC_SUBST(DARWIN_LDFLAGS)
 
-dnl *** Check for bz2
-save_LIBS=$LIBS
-LIBS="$LIBS -lbz2"
-AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
-AC_MSG_RESULT($HAVE_BZ2)
-LIBS=$save_LIBS
-AM_CONDITIONAL(HAVE_BZ2, test "x$HAVE_BZ2" = "xyes")
-if test "x$HAVE_BZ2" = "xno"; then
-  AC_WARN([libbz2 not found, matroska demuxer will not be able to read bz2 tracks])
-fi
-
-AC_ARG_ENABLE(lgpl,
-              [AC_HELP_STRING([--enable-lgpl], [build a LGPL licensed gst-libav])])
-AM_CONDITIONAL(GST_LIBAV_ENABLE_LGPL, test "x$enable_lgpl" = "xyes")
-if test "x$enable_lgpl" = "xyes"; then
-  AC_DEFINE([GST_LIBAV_ENABLE_LGPL], [], [Defined if building a LGPL-only version of gst-libav])
+AC_ARG_ENABLE(gpl,
+              [AC_HELP_STRING([--enable-gpl], [build a GPL licensed gst-libav])])
+AM_CONDITIONAL(GST_LIBAV_ENABLE_GPL, test "x$enable_gpl" = "xyes")
+if test "x$enable_gpl" = "xyes"; then
+  AC_DEFINE([GST_LIBAV_ENABLE_GPL], [], [Defined if building a GPL-licensed version of gst-libav])
 fi
 
 dnl *** configure external libs ***
@@ -245,19 +258,57 @@ HAVE_LIBAV_UNINSTALLED=1
 AC_ARG_WITH(system-libav,
             [AC_HELP_STRING([--with-system-libav], [use system Libav libraries])])
 
+HAVE_LZMA="no"
+HAVE_BZ2="no"
 if test "x$with_system_libav" = "xyes"; then
-  PKG_CHECK_MODULES(LIBAV, libavformat libavcodec libavutil) 
+  PKG_CHECK_MODULES(LIBAV, libavfilter libavformat libavcodec libavutil)
   PKG_CHECK_MODULES(SWSCALE, libswscale libavutil)
   saved_CPPFLAGS="$CPPFLAGS"
   CPPFLAGS="$CPPFLAGS $LIBAV_CFLAGS"
   AC_CHECK_HEADERS([avi.h])
-  CPPFLAGS="$saved_CPPFLAGS"
   AC_DEFINE([LIBAV_SOURCE], ["system install"], [Describes where the Libav libraries come from.])
   HAVE_LIBAV_UNINSTALLED=0
   AC_MSG_NOTICE([Using system-installed libav code])
+  AC_MSG_CHECKING([whether libav is provided by FFmpeg])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+    #include <libavcodec/avcodec.h>
+    ]],[[
+        #if LIBAVCODEC_VERSION_MICRO >= 100
+        /* FFmpeg uses 100+ as its micro version */
+        #else
+        #error libav provider should be FFmpeg
+        #endif
+    ]])], [is_ffmpeg=yes], [is_ffmpeg=no])
+  AC_MSG_RESULT([$is_ffmpeg])
+  CPPFLAGS="$saved_CPPFLAGS"
+  if test "$is_ffmpeg" = no; then
+    AC_MSG_ERROR([Uncompatible libavcodec found])
+  fi
 else
   AC_MSG_NOTICE([Using local Libav snapshot])
-  
+
+  dnl *** Check for bz2
+  save_LIBS=$LIBS
+  LIBS="$LIBS -lbz2"
+  AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
+  AC_MSG_RESULT($HAVE_BZ2)
+  LIBS=$save_LIBS
+  if test "x$HAVE_BZ2" = "xno"; then
+    AC_WARN([libbz2 not found, matroska demuxer will not be able to read bz2 tracks])
+  fi
+
+  dnl *** Check for lzma
+  save_LIBS=$LIBS
+  LIBS="$LIBS -llzma"
+  AC_MSG_CHECKING([for lzma_version_string in -llzma])
+  AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <lzma.h>]], [[const char *version = lzma_version_string ();]])],[HAVE_LZMA=yes],[HAVE_LZMA=no])
+  AC_MSG_RESULT($HAVE_LZMA)
+  LIBS=$save_LIBS
+  if test "x$HAVE_LZMA" = "xno"; then
+    AC_WARN([lzma not found, tiff reader will not be able to read lzma files])
+  fi
+
   dnl libgstlibav.la: include dirs
   LIBAV_CFLAGS="-I \$(top_srcdir)/gst-libs/ext/libav \
                 -I \$(top_builddir)/gst-libs/ext/libav \
@@ -265,12 +316,14 @@ else
 
   LIBAV_DEPS="\$(top_builddir)/gst-libs/ext/libav/libavformat/libavformat.a \
               \$(top_builddir)/gst-libs/ext/libav/libavcodec/libavcodec.a \
+              \$(top_builddir)/gst-libs/ext/libav/libavfilter/libavfilter.a \
+              \$(top_builddir)/gst-libs/ext/libav/libswresample/libswresample.a \
               \$(top_builddir)/gst-libs/ext/libav/libavutil/libavutil.a"
   if test "x$enable_static_plugins" = xyes; then
       dnl with static linking we can't use the .a archive directly as they would
       dnl be included in the final libgstlibav.a as a file and won't be usable.
       dnl libav*.a must be copied to the final destination too
-      LIBAV_LIBS="-lavformat -lavcodec -lavutil"
+      LIBAV_LIBS="-lavformat -lavcodec -lswresample -lavutil -lavfilter"
   else
       dnl libgstlibav.la: libs to statically link to
       LIBAV_LIBS="$LIBAV_DEPS"
@@ -297,7 +350,7 @@ else
   AC_DEFINE(HAVE_AVI_H)
   AC_DEFINE([LIBAV_SOURCE], ["local snapshot"], [Describes where the Libav libraries come from.])
 
-  AC_ARG_WITH(libav-extra-configure, 
+  AC_ARG_WITH(libav-extra-configure,
       AC_HELP_STRING([--with-libav-extra-configure="xxx"],
       [extra configure options for internal libav ./configure script]),,
       with_libav=no)
@@ -306,13 +359,19 @@ else
   emblibav_configure_args="--prefix=$prefix"
 
   # Enable pic and static so that we get .a files, but with PIC code.
-  emblibav_configure_args="$emblibav_configure_args --disable-avserver --disable-avplay\
-        --disable-avconv --disable-avprobe --enable-static --enable-pic \
-       --disable-encoder=flac --disable-decoder=cavs --disable-protocols --disable-devices\
-       --disable-network --disable-hwaccels --disable-dxva2 --disable-vdpau\
-       --disable-filters --disable-doc --enable-optimizations"
-
-  if test "x$enable_lgpl" != "xyes"; then
+  emblibav_configure_args="$emblibav_configure_args \
+        --enable-static --enable-pic \
+        --disable-avdevice --disable-postproc \
+        --disable-programs --disable-ffserver --disable-ffplay --disable-ffprobe --disable-ffmpeg \
+        --disable-encoder=flac --disable-protocols --disable-devices \
+        --disable-network --disable-hwaccels --disable-dxva2 --disable-vdpau \
+        --disable-filters --enable-filter=yadif --disable-doc --disable-vda --disable-d3d11va --disable-dxva2 \
+        --disable-audiotoolbox --disable-videotoolbox --disable-vaapi --disable-crystalhd \
+        --disable-mediacodec --disable-nvenc --disable-mmal --disable-omx \
+        --disable-omx-rpi --disable-cuda --disable-cuvid --disable-libmfx \
+        --disable-libnpp --disable-iconv --disable-jni --enable-optimizations"
+
+  if test "x$enable_gpl" == "xyes"; then
     emblibav_configure_args="$emblibav_configure_args --enable-gpl"
   fi
 
@@ -407,6 +466,9 @@ else
   AC_MSG_NOTICE([Using included Libav code])
 fi
 
+AM_CONDITIONAL(HAVE_BZ2, test "x$HAVE_BZ2" = "xyes")
+AM_CONDITIONAL(HAVE_LZMA, test "x$HAVE_LZMA" = "xyes")
+
 AC_SUBST(LIBAV_CFLAGS)
 AC_SUBST(LIBAV_DEPS)
 AC_SUBST(LIBAV_LIBS)
@@ -415,7 +477,7 @@ AC_SUBST(SWSCALE_CFLAGS)
 AC_SUBST(SWSCALE_DEPS)
 AC_SUBST(SWSCALE_LIBS)
 AC_SUBST(WIN32_LIBS)
+
 if test x$HAVE_LIBAV_UNINSTALLED = x1; then
   AC_DEFINE(HAVE_LIBAV_UNINSTALLED, [], [Defined if building against uninstalled Libav source])
 fi