X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=17825f0304b1943b8dc27a45e06ffa0cbaeff2c7;hb=2c38c99a869f56c6f59e553a0f7475633129e2e0;hp=b3f1de506fede61967eb39ebf1720435f06ad3eb;hpb=79a9865c3f8a06fe8edd61dfbd8dca4934d2c582;p=platform%2Fupstream%2Fgst-libav.git diff --git a/configure.ac b/configure.ac index b3f1de5..17825f0 100644 --- a/configure.ac +++ b/configure.ac @@ -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 ]], [[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 + ]],[[ + #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 ]], [[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 ]], [[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