X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=94aa6baa9acf9e899c5e9a0e7fc2297f42500fcd;hb=3407b5c28321ad99500521fa9ed7e1af448a64aa;hp=b16d99cff17a42b3368c96df99f815ff8edb8ffe;hpb=35bf4494046c962d4a3effeac867da388c2227f5;p=platform%2Fupstream%2Fgst-plugins-good.git diff --git a/configure.ac b/configure.ac index b16d99c..94aa6ba 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file dnl initialize autoconf dnl releases only do -Wall, git and prerelease does -Werror too dnl use a three digit version number for releases, and four for git/pre -AC_INIT([GStreamer Good Plug-ins],[1.5.2.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good]) +AC_INIT([GStreamer Good Plug-ins],[1.16.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good]) AG_GST_INIT @@ -30,6 +30,9 @@ AM_MAINTAINER_MODE([enable]) dnl sets host_* variables AC_CANONICAL_HOST +dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable +m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR) + dnl use pretty build output with automake >= 1.11 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])], [AM_DEFAULT_VERBOSITY=1 @@ -43,11 +46,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION", [GStreamer API Version]) AG_GST_LIBTOOL_PREPARE -AS_LIBTOOL(GST, 502, 0, 502) +AS_LIBTOOL(GST, 1602, 0, 1602) dnl *** required versions of GStreamer stuff *** -GST_REQ=1.5.2.1 -GSTPB_REQ=1.5.2.1 +GST_REQ=1.16.2 +GSTPB_REQ=1.16.2 dnl *** autotools stuff **** @@ -66,6 +69,7 @@ AG_GST_GETTEXT([gst-plugins-good-$GST_API_VERSION]) dnl *** check for arguments to configure *** AG_GST_ARG_DISABLE_FATAL_WARNINGS +AG_GST_ARG_ENABLE_EXTRA_CHECKS AG_GST_ARG_DEBUG AG_GST_ARG_PROFILING @@ -84,6 +88,8 @@ AG_GST_ARG_ENABLE_EXTERNAL AG_GST_ARG_ENABLE_EXPERIMENTAL +AG_GST_PKG_CONFIG_PATH + dnl *** checks for platform *** dnl * hardware/architecture * @@ -95,6 +101,12 @@ AG_GST_ARCH dnl Determine endianness AC_C_BIGENDIAN +dnl *** software *** + +dnl check for large file support +dnl affected plugins must include config.h +AC_SYS_LARGEFILE + dnl *** checks for programs *** dnl find a compiler @@ -142,6 +154,9 @@ AC_CHECK_FUNCS(clock_gettime, [], [ ]) ]) +dnl check for pthreads +AX_PTHREAD + dnl *** checks for header files *** dnl check if we have ANSI C header files @@ -191,6 +206,7 @@ fi dnl Check for mmap (needed by electricfence plugin) AC_FUNC_MMAP +AC_CHECK_SIZEOF([off_t]) AM_CONDITIONAL(GST_HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes") dnl Check for mmap (needed by electricfence plugin) @@ -203,7 +219,7 @@ dnl *** checks for dependency libraries *** dnl GLib -GLIB_REQ=2.32.0 +GLIB_REQ=2.40.0 AG_GST_GLIB_CHECK([$GLIB_REQ]) dnl Orc @@ -227,6 +243,46 @@ AC_SUBST(GST_TOOLS_DIR) AC_MSG_NOTICE(Using GStreamer Core Plugins in $GST_PLUGINS_DIR) AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR) +AG_GST_PKG_CHECK_MODULES(GST_GL, gstreamer-gl-[$GST_API_VERSION], [$GST_REQ], no) + +dnl FIXME: if uninstalled setup we might not want to pick up an installed gst-gl? +if test "x$HAVE_GST_GL" = "xyes"; then + + AC_MSG_CHECKING([GStreamer OpenGL window systems ...]) + GST_GL_WINSYS=`$PKG_CONFIG --variable=gl_winsys gstreamer-gl-1.0` + AC_MSG_RESULT([$GST_GL_WINSYS]) + GST_GL_HAVE_WINDOW_X11="" + GST_GL_HAVE_WINDOW_WAYLAND="" + GST_GL_HAVE_WINDOW_ANDROID="" + GST_GL_HAVE_WINDOW_COCOA="" + GST_GL_HAVE_WINDOW_EAGL="" + case "$GST_GL_WINSYS" in *x11*) GST_GL_HAVE_WINDOW_X11="1" ;; esac + case "$GST_GL_WINSYS" in *wayland*) GST_GL_HAVE_WINDOW_WAYLAND="1" ;; esac + case "$GST_GL_WINSYS" in *android*) GST_GL_HAVE_WINDOW_ANDROID="1" ;; esac + case "$GST_GL_WINSYS" in *cocoa*) GST_GL_HAVE_WINDOW_COCOA="1" ;; esac + case "$GST_GL_WINSYS" in *eagl*) GST_GL_HAVE_WINDOW_EAGL="1" ;; esac + + AC_MSG_CHECKING([GStreamer OpenGL platforms ...]) + GST_GL_PLATFORMS=`$PKG_CONFIG --variable=gl_platforms gstreamer-gl-1.0` + AC_MSG_RESULT([$GST_GL_PLATFORMS]) + GST_GL_HAVE_PLATFORM_GLX="" + GST_GL_HAVE_PLATFORM_EGL="" + GST_GL_HAVE_PLATFORM_CGL="" + GST_GL_HAVE_PLATFORM_EAGL="" + case "$GST_GL_PLATFORMS" in *glx*) GST_GL_HAVE_PLATFORM_GLX="1" ;; esac + case "$GST_GL_PLATFORMS" in *egl*) GST_GL_HAVE_PLATFORM_EGL="1" ;; esac + case "$GST_GL_PLATFORMS" in *cgl*) GST_GL_HAVE_PLATFORM_CGL="1" ;; esac + case "$GST_GL_PLATFORMS" in *eagl*) GST_GL_HAVE_PLATFORM_EAGL="1" ;; esac + + AC_MSG_CHECKING([GStreamer OpenGL apis ...]) + GST_GL_APIS=`$PKG_CONFIG --variable=gl_apis gstreamer-gl-1.0` + AC_MSG_RESULT([$GST_GL_APIS]) + GST_GL_HAVE_API_GLES2="" + GST_GL_HAVE_API_GL="" + case "$GST_GL_APIS" in *gles2*) GST_GL_HAVE_API_GLES2="1" ;; esac + case "$GST_GL_APIS" in "gl"|"gl "*|*" gl"|*" gl "*) GST_GL_HAVE_API_GL="1" ;; esac +fi + AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes") dnl Check for documentation xrefs @@ -250,6 +306,42 @@ fi AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes") AM_CONDITIONAL(HAVE_GTK_X11, test "x$HAVE_GTK_X11" = "xyes") +AC_ARG_ENABLE(pcmdump, AC_HELP_STRING([--enable-pcmdump], [pcm dump]), + [ + case "${enableval}" in + yes) PCM_DUMP_ENABLE=yes ;; + no) PCM_DUMP_ENABLE=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-pcmdump) ;; + esac + ], + [PCM_DUMP_ENABLE=no]) +AM_CONDITIONAL([PCM_DUMP_ENABLE], [test "x$PCM_DUMP_ENABLE" = "xyes"]) + +if test "x$PCM_DUMP_ENABLE" = "xyes"; then +PKG_CHECK_MODULES(VCONF, vconf) +AC_SUBST(VCONF_CFLAGS) +AC_SUBST(VCONF_LIBS) +fi + +PKG_CHECK_MODULES(GIO, gio-2.0) +AC_SUBST(GIO_CFLAGS) +AC_SUBST(GIO_LIBS) + +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 license and copyright notice @@ -265,28 +357,6 @@ AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO], ["${srcdir}/gst-plugins-good.doap"], [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO]) -dnl build static plugins or not -AC_MSG_CHECKING([whether to build static plugins or not]) -AC_ARG_ENABLE( - static-plugins, - AC_HELP_STRING( - [--enable-static-plugins], - [build static plugins @<:@default=no@:>@]), - [AS_CASE( - [$enableval], [no], [], [yes], [], - [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])], - [enable_static_plugins=no]) -AC_MSG_RESULT([$enable_static_plugins]) -if test "x$enable_static_plugins" = xyes; then - AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1, - [Define if static plugins should be built]) - GST_PLUGIN_LIBTOOLFLAGS="" -else - GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static" -fi -AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS) -AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes") - # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above dnl make sure it doesn't complain about unused variables if debugging is disabled NO_WARNINGS="" @@ -388,7 +458,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [ save_LIBS="$LIBS" CFLAGS="$CFLAGS $DIRECTSOUND_CFLAGS" LDFLAGS="$LDFLAGS $DIRECTSOUND_LDFLAGS" - LIBS="$LIBS -ldsound -ldxerr9 -luser32" + LIBS="$LIBS -ldsound -ldxerr9 -luser32 -lole32" AC_MSG_CHECKING(for DirectSound LDFLAGS) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include @@ -397,6 +467,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [ ]], [[ DXGetErrorString9 (0); DirectSoundCreate(NULL, NULL, NULL); + CLSIDFromString(NULL, NULL); ]]) ], [HAVE_DIRECTSOUND="yes"], @@ -408,7 +479,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [ if test "x$HAVE_DIRECTSOUND" = "xyes"; then dnl this is much more than we want - DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32" + DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32 -lole32" AC_SUBST(DIRECTSOUND_CFLAGS) AC_SUBST(DIRECTSOUND_LDFLAGS) AC_SUBST(DIRECTSOUND_LIBS) @@ -454,12 +525,6 @@ AG_GST_CHECK_FEATURE(OSS4, [Open Sound System 4], oss4, [ [OSS4_MISSING_HEADER="yes";HAVE_OSS4="no"]) ]) -dnl *** Sun Audio *** -translit(dnm, m, l) AM_CONDITIONAL(USE_SUNAUDIO, true) -AG_GST_CHECK_FEATURE(SUNAUDIO, [Sun Audio], sunaudio, [ - AC_CHECK_HEADER(sys/audioio.h, HAVE_SUNAUDIO="yes", HAVE_SUNAUDIO="no") -]) - dnl *** OSX Audio *** translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_AUDIO, true) HAVE_IOS="no" @@ -553,33 +618,79 @@ if test x$HAVE_GST_V4L2 = xyes; then fi fi +dnl Allow enabling v4l2 device probing +default_v4l2_probe=no +AS_CASE([$host], + [*-*linux*], + [AS_CASE([$host_cpu], + [arm*], [ + default_v4l2_probe=yes], + [aarch64*], [ + default_v4l2_probe=yes])]) +AC_ARG_ENABLE( + v4l2-probe, + AC_HELP_STRING( + [--enable-v4l2-probe], + [enable V4L2 plugin to probe devices]), + [], [enable_v4l2_probe=$default_v4l2_probe]) +if test "x$enable_v4l2_probe" = "xyes"; then + AC_DEFINE(GST_V4L2_ENABLE_PROBE, 1, + [Define if Video4Linux probe shall be run at plugin load]) +fi + dnl Check for X11 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true) AG_GST_CHECK_FEATURE(X, [X libraries and plugins], [ximagesrc], [ - PKG_CHECK_MODULES([X], [x11], [ - HAVE_X="yes" + AG_GST_CHECK_X + + if test "x$HAVE_X" = "xyes" + then dnl check for Xfixes - PKG_CHECK_MODULES([XFIXES], [ xfixes ], [ - AC_DEFINE(HAVE_XFIXES, 1, [Defined if Xfixes is available]) - ], [ HAVE_XFIXES="no" ]) + PKG_CHECK_MODULES(XFIXES, xfixes, HAVE_XFIXES="yes", HAVE_XFIXES="no") + if test "x$HAVE_XFIXES" = "xyes" + then + XFIXES_CFLAGS="-DHAVE_XFIXES $XFIXES_CFLAGS" + fi + AC_SUBST(XFIXES_LIBS) + AC_SUBST(XFIXES_CFLAGS) dnl check for Xdamage - PKG_CHECK_MODULES([XDAMAGE], [ xdamage ], [ - AC_DEFINE(HAVE_XDAMAGE, 1, [Defined if Xdamage is available]) - ], [ HAVE_XDAMAGE="no" ]) - - dnl check for X Shm - PKG_CHECK_MODULES([XEXT], [ xext ], [ - AC_CHECK_LIB([Xext], [ XShmAttach ], [ - AC_DEFINE(HAVE_XSHM, 1, [Defined if XShm is available]) - XSHM_LIBS="$XEXT_LIBS" - XSHM_CFLAGS="$XEXT_CFLAGS" - ], [ HAVE_XEXT="no" ] , [ $X_LIBS ]) - ]) - AC_SUBST(XSHM_LIBS) - AC_SUBST(XSHM_CFLAGS) - ], [ HAVE_X="no" ]) + PKG_CHECK_MODULES(XDAMAGE, xdamage, HAVE_XDAMAGE="yes", HAVE_XDAMAGE="no") + if test "x$HAVE_XDAMAGE" = "xyes" + then + XDAMAGE_CFLAGS="-DHAVE_XDAMAGE $XDAMAGE_CFLAGS" + fi + AC_SUBST(XDAMAGE_LIBS) + AC_SUBST(XDAMAGE_CFLAGS) + fi +]) + +dnl FIXME: this should be rolled into the test above, it's just an additional +dnl feature of the ximagesrc plug-in +dnl This is the same as in gst-plugins-base +dnl check for X Shm +translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true) +AG_GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], , [ + if test x$HAVE_X = xyes; then + AC_CHECK_LIB(Xext, XShmAttach, + HAVE_XSHM="yes", HAVE_XSHM="no", + $X_LIBS) + if test "x$HAVE_XSHM" = "xyes"; then + XSHM_LIBS="-lXext" + else + dnl On AIX, it is in XextSam instead, but we still need -lXext + AC_CHECK_LIB(XextSam, XShmAttach, + HAVE_XSHM="yes", HAVE_XSHM="no", + $X_LIBS) + if test "x$HAVE_XSHM" = "xyes"; then + XSHM_LIBS="-lXext -lXextSam" + fi + fi + fi +], ,[ + AC_SUBST(HAVE_XSHM) + AC_SUBST(XSHM_LIBS) ]) dnl *** ext plug-ins *** @@ -615,6 +726,42 @@ AG_GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbuf, [ AG_GST_PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0 >= 2.8.0) ]) +dnl *** gtk+ *** +HAVE_GTK3_GL="no" +translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true) +AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [ + PKG_CHECK_MODULES(GTK3, gtk+-3.0, [ + AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed]) + HAVE_GTK3="yes" + ], [ + HAVE_GTK3="no" + ]) + PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [ + GDK_WINDOWING="no" + if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then + PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [ + GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS" + GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS" + GDK_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])]) + fi + if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then + PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [ + GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS" + GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS" + GDK_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])]) + fi + if test "x$GDK_WINDOWING" = "xyes" -a "x$HAVE_GST_GL" = "xyes"; then + AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed]) + HAVE_GTK3_GL="yes" + fi + ], [ + HAVE_GTK3_GL="no" + ]) +]) +AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes") + dnl *** Jack *** translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true) AG_GST_CHECK_FEATURE(JACK, Jack, jack, [ @@ -653,6 +800,26 @@ AG_GST_CHECK_FEATURE(JPEG, [jpeg library], jpeg, [ AC_SUBST(JPEG_LIBS) ]) +dnl *** lame *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true) +AG_GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [ + AG_GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, $LIBM, lame/lame.h, + [ + HAVE_LAME="yes" + LAME_LIBS="-lmp3lame $LIBM" + dnl is lame presets available + LAME_CFLAGS="" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ int preset = MEDIUM ]])],[LAME_CFLAGS="-DGSTLAME_PRESET"],[LAME_CFLAGS="" + ]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[ + void *ptr = &lame_set_VBR_quality + ]])],[LAME_CFLAGS="$LAME_CFLAGS -DHAVE_LAME_SET_VBR_QUALITY"],[LAME_CFLAGS="$LAME_CFLAGS" + ]) + AC_SUBST(LAME_CFLAGS) + AC_SUBST(LAME_LIBS) + ]) +]) + dnl *** libcaca *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true) AG_GST_CHECK_FEATURE(LIBCACA, [libcaca coloured ASCII art], cacasink, [ @@ -669,6 +836,19 @@ dnl *** libpng *** translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true) AG_GST_CHECK_FEATURE(LIBPNG, [Portable Network Graphics library], png, [ AG_GST_PKG_CHECK_MODULES(LIBPNG, libpng >= 1.2) + if test $HAVE_LIBPNG = "yes"; then + PKG_CHECK_MODULES(LIBPNG_1_5, libpng >= 1.5.1, [ + AC_DEFINE(HAVE_LIBPNG_1_5, 1, [Defined if libpng version is 1.5.1 or newer]) + ], [true]) + fi +]) + +dnl *** mpg123 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPG123, true) +AG_GST_CHECK_FEATURE(MPG123, [mpg123 audio decoder], mpg123, [ + PKG_CHECK_MODULES(MPG123, libmpg123 >= 1.13, HAVE_MPG123="yes", HAVE_MPG123="no") + AC_SUBST(MPG123_CFLAGS) + AC_SUBST(MPG123_LIBS) ]) dnl *** pulseaudio *** @@ -732,6 +912,109 @@ AG_GST_CHECK_FEATURE(DV1394, [raw1394 and avc1394 library], 1394, [ ]) AM_CONDITIONAL(USE_LIBIEC61883, [ test "x${HAVE_LIBIEC61883}" = xyes ] ) +dnl *** Qt *** +translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true) +AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [ + PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [ + QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core` + QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core` + AC_ARG_WITH([moc], + AS_HELP_STRING([--with-moc], [Set location of qt moc tool]), + [MOC=$withval]) + AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) + AC_ARG_WITH([rcc], + AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]), + [RCC=$withval]) + AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) + AC_ARG_WITH([uic], + AS_HELP_STRING([--with-uic], [Set location of qt uic tool]), + [UIC=$withval]) + AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) + if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then + AC_MSG_WARN([One of the required qt build programs was not found]) + HAVE_QT="no" + else + HAVE_QT="yes" + HAVE_QT_WINDOWING="no" + QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`" + QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui + AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [ + QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH" + HAVE_QT_QPA_HEADER="yes" + AC_DEFINE([HAVE_QT_QPA_HEADER], [], [Define if the Qt QPA header is installed]) + ], [AC_MSG_NOTICE([Cannot find QPA])]) + if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then + PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [ + AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed]) + QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS" + QT_LIBS="$QT_LIBS $QT_X11_LIBS" + HAVE_QT_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Qt X11 integration])]) + fi + if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then + PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [ + AC_DEFINE([HAVE_QT_WAYLAND], [], + [Define if Qt Wayland integration is installed]) + QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS" + QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS" + HAVE_QT_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])]) + fi + if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then + if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then + PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [ + # c++ on android requires a standard library and there are multiple + # choices. cerbero provides a pkg-config file the describes a choice + # so try to use that. Outside cerbero one has to pass these flags + # manually for the library one is using + PKG_CHECK_MODULES(GNUSTL, gnustl, [ + QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS" + QT_LIBS="$QT_LIBS $GNUSTL_LIBS" + ], [ + AC_MSG_NOTICE([Could not find Standard C++ library])]) + AC_DEFINE([HAVE_QT_ANDROID], [], + [Define if Qt Android integration is installed]) + QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS" + QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS" + HAVE_QT_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Qt Android integration])]) + else + AC_DEFINE([HAVE_QT_EGLFS], [], + [Define if Qt eglfs integration is installed]) + HAVE_QT_WINDOWING="yes" + fi + fi + if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then + PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [ + AC_DEFINE([HAVE_QT_MAC], [], + [Define if Qt Mac integration is installed]) + QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core` + QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras" + QT_LIBS="$QT_LIBS $QT_MAC_LIBS" + HAVE_QT_WINDOWING="yes" + ], [AC_MSG_NOTICE([Could not find Qt Mac integration])]) + fi + if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then + if test "x$HAVE_IOS" = "xyes"; then + # iOS doesn't have its own extras package so if we have the core + # modules we are good to go + AC_DEFINE([HAVE_QT_IOS], [], + [Define if Qt iOS integration is installed]) + HAVE_QT_WINDOWING="yes" + fi + fi + if test "x$HAVE_QT_WINDOWING" = "xno"; then + AC_MSG_WARN([Could not find any Qt Windowing integration]) + HAVE_QT="no" + fi + AC_SUBST([QT_CFLAGS]) + AC_SUBST([QT_LIBS]) + fi + ], [ + HAVE_QT="no" + ]) +]) + dnl *** shout2 *** translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true) AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ @@ -741,7 +1024,7 @@ AG_GST_CHECK_FEATURE(SHOUT2, [Shoutcast/Icecast client library], shout2, [ dnl *** soup *** translit(dnm, m, l) AM_CONDITIONAL(USE_SOUP, true) AG_GST_CHECK_FEATURE(SOUP, [soup http client plugin (2.4)], souphttpsrc, [ - PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.40, [HAVE_SOUP="yes"], [HAVE_SOUP="no"]) + PKG_CHECK_MODULES(SOUP, libsoup-2.4 >= 2.48, [HAVE_SOUP="yes"], [HAVE_SOUP="no"]) AC_SUBST(SOUP_CFLAGS) AC_SUBST(SOUP_LIBS) ]) @@ -770,6 +1053,21 @@ AG_GST_CHECK_FEATURE(TAGLIB, [taglib tagging library], taglib, [ fi ]) +dnl *** twolame *** +translit(dnm, m, l) AM_CONDITIONAL(USE_TWOLAME, true) +AG_GST_CHECK_FEATURE(TWOLAME, [twolame], twolame, [ + PKG_CHECK_MODULES(TWOLAME, twolame >= 0.3.10, [ + HAVE_TWOLAME="yes"], [ + HAVE_TWOLAME="no" + ]) + AC_SUBST(TWOLAME_CFLAGS) + AC_SUBST(TWOLAME_LIBS) +]) + +PKG_CHECK_MODULES(TBM, libtbm) +AC_SUBST(TBM_CFLAGS) +AC_SUBST(TBM_LIBS) + dnl *** vpx *** translit(dnm, m, l) AM_CONDITIONAL(USE_VPX, vpx) AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ @@ -801,6 +1099,15 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [ AC_DEFINE(HAVE_VP9_DECODER, 1, [Defined if the VP9 decoder is available]) ]) ], [true]) + + PKG_CHECK_MODULES(VPX_140, vpx >= 1.4.0, [ + AC_DEFINE(HAVE_VPX_1_4, 1, [Defined if the VPX library version is 1.4 or bigger]) + ], [true]) + + PKG_CHECK_MODULES(VPX_180, vpx >= 1.8.0, [ + AC_DEFINE(HAVE_VPX_1_8, 1, [Defined if the VPX library version is 1.8 or bigger]) + ], [true]) + LIBS="$OLD_LIBS" CFLAGS="$OLD_CFLAGS" fi @@ -851,26 +1158,32 @@ AM_CONDITIONAL(USE_DIRECTSOUND, false) AM_CONDITIONAL(USE_DV1394, false) AM_CONDITIONAL(USE_FLAC, false) AM_CONDITIONAL(USE_GDK_PIXBUF, false) +AM_CONDITIONAL(USE_GTK3, false) +AM_CONDITIONAL(USE_GTK3_GL, false) AM_CONDITIONAL(USE_JACK, false) AM_CONDITIONAL(USE_JPEG, false) +AM_CONDITIONAL(USE_LAME, false) AM_CONDITIONAL(USE_LIBCACA, false) AM_CONDITIONAL(USE_LIBDV, false) AM_CONDITIONAL(USE_LIBIEC61883, false) AM_CONDITIONAL(USE_LIBPNG, false) +AM_CONDITIONAL(USE_MPG123, false) AM_CONDITIONAL(USE_OSS, false) AM_CONDITIONAL(USE_OSS4, false) AM_CONDITIONAL(USE_OSX_AUDIO, false) AM_CONDITIONAL(USE_OSX_VIDEO, false) AM_CONDITIONAL(USE_PULSE, false) +AM_CONDITIONAL(USE_QT, false) AM_CONDITIONAL(USE_SHOUT2, false) AM_CONDITIONAL(USE_SOUP, false) AM_CONDITIONAL(USE_SPEEX, false) -AM_CONDITIONAL(USE_SUNAUDIO, false) AM_CONDITIONAL(USE_TAGLIB, false) +AM_CONDITIONAL(USE_TWOLAME, false) AM_CONDITIONAL(USE_VPX, false) AM_CONDITIONAL(USE_WAVEFORM, false) AM_CONDITIONAL(USE_WAVPACK, false) AM_CONDITIONAL(USE_X, false) +AM_CONDITIONAL(USE_XSHM, false) AM_CONDITIONAL(USE_ZLIB, false) fi dnl of EXT plugins @@ -899,6 +1212,20 @@ else fi AC_SUBST(DEPRECATED_CFLAGS) +VISIBILITY_CFLAGS="" +AS_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CFLAGS="-fvisibility=hidden"]) +AC_SUBST(VISIBILITY_CFLAGS) + +VISIBILITY_CXXFLAGS="" +if test "x$HAVE_CXX" = "xyes"; then + AS_CXX_COMPILER_FLAG([-fvisibility=hidden], [VISIBILITY_CXXFLAGS="-fvisibility=hidden"]) +fi +AC_SUBST(VISIBILITY_CXXFLAGS) + +dnl disable strict aliasing +AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"]) +AC_SUBST(EXTRA_CFLAGS) + dnl every flag in GST_OPTION_CFLAGS, GST_OPTION_CXXFLAGS and GST_OPTION_OBJCFLAGS can be overridden dnl at make time with e.g. make ERROR_CFLAGS="" GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" @@ -916,9 +1243,9 @@ dnl prefer internal headers to already installed ones dnl also add builddir include for enumtypes and marshal dnl add ERROR_CFLAGS, but overridable GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API" -GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)" -GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)" -GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)" +GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(VISIBILITY_CXXFLAGS)" +GST_OBJCFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)" +GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $EXTRA_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(VISIBILITY_CFLAGS)" AC_SUBST(GST_CFLAGS) AC_SUBST(GST_CXXFLAGS) AC_SUBST(GST_OBJCFLAGS) @@ -927,11 +1254,14 @@ AC_SUBST(GST_LIBS) dnl LDFLAGS really should only contain flags, not libs - they get added before dnl whatevertarget_LIBS and -L flags here affect the rest of the linking 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 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking -GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS" +GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS" AC_SUBST(GST_PLUGIN_LDFLAGS) dnl *** output files *** @@ -991,16 +1321,21 @@ ext/cairo/Makefile ext/dv/Makefile ext/flac/Makefile ext/gdk_pixbuf/Makefile +ext/gtk/Makefile ext/jack/Makefile ext/jpeg/Makefile +ext/lame/Makefile ext/libcaca/Makefile ext/libpng/Makefile +ext/mpg123/Makefile ext/pulse/Makefile +ext/qt/Makefile ext/raw1394/Makefile ext/shout2/Makefile ext/soup/Makefile ext/speex/Makefile ext/taglib/Makefile +ext/twolame/Makefile ext/vpx/Makefile ext/wavpack/Makefile sys/Makefile @@ -1009,7 +1344,6 @@ sys/oss/Makefile sys/oss4/Makefile sys/osxaudio/Makefile sys/osxvideo/Makefile -sys/sunaudio/Makefile sys/v4l2/Makefile sys/waveform/Makefile sys/ximage/Makefile @@ -1020,10 +1354,11 @@ tests/examples/Makefile tests/examples/audiofx/Makefile tests/examples/cairo/Makefile tests/examples/equalizer/Makefile +tests/examples/gtk/Makefile tests/examples/jack/Makefile tests/examples/level/Makefile -tests/examples/pulse/Makefile tests/examples/rtp/Makefile +tests/examples/rtsp/Makefile tests/examples/shapewipe/Makefile tests/examples/spectrum/Makefile tests/examples/v4l2/Makefile @@ -1037,49 +1372,7 @@ docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-good-uninstalled.pc -gst-plugins-good.spec ) - -dnl Create the config.h file for Visual Studio builds -dnl Beware of spaces and /'s in some of the shell variable contents. -sed \ - -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"\n\n#define GST_INSTALL_PLUGINS_HELPER PREFIX "\\\\libexec\\\\gst-install-plugins-helper.exe"/' \ - -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \ - -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \ - -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \ - -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \ - -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \ - -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \ - -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \ - -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \ - -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \ - -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \ - -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \ - -e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \ - -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \ - -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \ - -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \ - -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \ - -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \ - -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \ - -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \ - -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \ - -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \ - -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \ - -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \ - -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \ - -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \ - -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \ - -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \ - -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n# define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n# define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \ - -e 's/.* USE_BINARY_REGISTRY$/#define USE_BINARY_REGISTRY/' \ - -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \ - -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \ - -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \ - -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \ - -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \ - config.h.in >win32/common/config.h-new - AC_OUTPUT AG_GST_OUTPUT_PLUGINS