| 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, git and prerelease does Werror too |
| AC_INIT([GStreamer Bad Plug-ins],[1.7.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad]) |
| |
| AG_GST_INIT |
| |
| dnl initialize automake |
| AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects]) |
| |
| dnl define PACKAGE_VERSION_* variables |
| AS_VERSION |
| |
| dnl check if this is a release version |
| AS_NANO(GST_GIT="no", GST_GIT="yes") |
| |
| dnl can autoconf find the source ? |
| AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml]) |
| |
| dnl define the output header for config |
| AC_CONFIG_HEADERS([config.h]) |
| |
| dnl AM_MAINTAINER_MODE only provides the option to configure to enable it |
| 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 PKG_CONFIG_SYSROOT_DIR is a valid environment variable |
| m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR) |
| |
| dnl our libraries and install dirs use GST_API_VERSION in the filename |
| dnl to allow side-by-side installation of different API versions |
| GST_API_VERSION=1.0 |
| AC_SUBST(GST_API_VERSION) |
| AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION", |
| [GStreamer API Version]) |
| |
| AG_GST_LIBTOOL_PREPARE |
| |
| dnl CURRENT, REVISION, AGE |
| dnl - library source changed -> increment REVISION |
| dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 |
| dnl - interfaces added -> increment AGE |
| dnl - interfaces removed -> AGE = 0 |
| dnl sets GST_LT_LDFLAGS |
| AS_LIBTOOL(GST, 790, 0, 790) |
| |
| dnl *** required versions of GStreamer stuff *** |
| GST_REQ=1.7.90 |
| GSTPB_REQ=1.7.90 |
| |
| dnl *** autotools stuff **** |
| |
| dnl allow for different autotools |
| AS_AUTOTOOLS_ALTERNATE |
| |
| dnl Add parameters for aclocal |
| AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4") |
| |
| dnl set up gettext |
| dnl the version check needs to stay here because autopoint greps for it |
| AM_GNU_GETTEXT_VERSION([0.17]) |
| AM_GNU_GETTEXT([external]) |
| AG_GST_GETTEXT([gst-plugins-bad-$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 |
| AG_GST_ARG_VALGRIND |
| AG_GST_ARG_GCOV |
| |
| AG_GST_ARG_EXAMPLES |
| |
| AG_GST_ARG_WITH_PKG_CONFIG_PATH |
| AG_GST_ARG_WITH_PACKAGE_NAME |
| AG_GST_ARG_WITH_PACKAGE_ORIGIN |
| |
| AG_GST_ARG_WITH_PLUGINS |
| |
| AG_GST_ARG_ENABLE_EXTERNAL |
| |
| AG_GST_ARG_ENABLE_EXPERIMENTAL |
| |
| AG_GST_PKG_CONFIG_PATH |
| |
| dnl *** checks for platform *** |
| AG_GST_PLATFORM |
| |
| dnl * hardware/architecture * |
| |
| dnl common/m4/gst-arch.m4 |
| dnl check CPU type |
| AG_GST_ARCH |
| |
| dnl Determine endianness |
| AC_C_BIGENDIAN |
| |
| dnl *** checks for programs *** |
| |
| dnl find a compiler |
| AC_PROG_CC |
| AC_PROG_CC_STDC |
| |
| dnl determine c++ compiler |
| AC_PROG_CXX |
| dnl determine if c++ is available on this system |
| AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) |
| |
| AC_PROG_OBJC |
| |
| dnl check if the compiler supports '-c' and '-o' options |
| AM_PROG_CC_C_O |
| |
| dnl check if the compiler supports do while(0) macros |
| AG_GST_CHECK_DOWHILE_MACROS |
| |
| AC_PATH_PROG(VALGRIND_PATH, valgrind, no) |
| AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") |
| |
| dnl check for gobject-introspection |
| GOBJECT_INTROSPECTION_CHECK([1.31.1]) |
| |
| dnl check for documentation tools |
| GTK_DOC_CHECK([1.12]) |
| AG_GST_PLUGIN_DOCS([1.12]) |
| |
| dnl *** checks for libraries *** |
| |
| dnl check for libm, for sin() etc. |
| LT_LIB_M |
| AC_SUBST(LIBM) |
| |
| AC_FUNC_MMAP |
| |
| dnl check for pthreads |
| AX_PTHREAD |
| |
| dnl *** checks for header files *** |
| |
| AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes) |
| AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes") |
| |
| if test "x$HAVE_UNISTD_H" != "xyes"; then |
| GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//` |
| fi |
| |
| AC_CHECK_HEADERS([sys/time.h]) |
| |
| dnl used by ext/dts |
| AX_CREATE_STDINT_H |
| |
| AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes) |
| AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes") |
| |
| if test "x$HAVE_PTHREAD_H" != "xyes"; then |
| GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//` |
| fi |
| |
| dnl *** checks for types/defines *** |
| |
| dnl Check for FIONREAD ioctl declaration |
| dnl used in gst/dccp |
| GST_CHECK_FIONREAD |
| |
| dnl *** checks for structures *** |
| |
| dnl *** checks for compiler characteristics *** |
| |
| dnl *** checks for library functions *** |
| AC_CHECK_FUNCS([gmtime_r]) |
| |
| dnl *** checks for headers *** |
| AC_CHECK_HEADERS([sys/utsname.h]) |
| |
| dnl *** checks for dependency libraries *** |
| |
| dnl *** checks for socket and nsl libraries *** |
| AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)]) |
| AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) |
| |
| dnl GLib is required |
| GLIB_REQ=2.40.0 |
| 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], yes) |
| AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes) |
| AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no) |
| AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes) |
| AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes) |
| AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes") |
| |
| AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes) |
| |
| dnl check for uninstalled plugin directories for unit tests |
| AG_GST_CHECK_UNINSTALLED_SETUP([ |
| AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0]) |
| AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0]) |
| AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0]) |
| ]) |
| |
| dnl Check for documentation xrefs |
| GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" |
| GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`" |
| GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`" |
| AC_SUBST(GLIB_PREFIX) |
| AC_SUBST(GST_PREFIX) |
| AC_SUBST(GSTPB_PREFIX) |
| |
| dnl GTK is optional and used in examples |
| HAVE_GTK=NO |
| GTK2_REQ=2.14.0 |
| GTK3_REQ=2.91.3 |
| if test "x$BUILD_EXAMPLES" = "xyes"; then |
| AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)]) |
| AC_ARG_WITH([gtk], |
| AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]), |
| [case "$with_gtk" in |
| 2.0) GTK_REQ=$GTK2_REQ ;; |
| 3.0) GTK_REQ=$GTK3_REQ ;; |
| *) AC_MSG_ERROR([invalid gtk+ version specified]);; |
| esac], |
| [with_gtk=2.0 |
| GTK_REQ=$GTK2_REQ]) |
| AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)]) |
| PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no) |
| AC_SUBST(GTK_LIBS) |
| AC_SUBST(GTK_CFLAGS) |
| fi |
| AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes") |
| |
| 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 GTK is optional and used in examples |
| HAVE_GTK3=NO |
| if test "x$BUILD_EXAMPLES" = "xyes"; then |
| PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no) |
| if test "x$HAVE_GTK3" = "xyes"; then |
| HAVE_GTK=yes |
| GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0` |
| AC_SUBST(GTK_VERSION) |
| GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` |
| AC_SUBST(GTK_BASE_DIR) |
| fi |
| fi |
| AC_SUBST(GTK3_LIBS) |
| AC_SUBST(GTK3_CFLAGS) |
| AC_SUBST(HAVE_GTK3) |
| AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes") |
| |
| dnl clutter is optional and used in examples |
| HAVE_CLUTTER=no |
| HAVE_CLUTTER_X11=no |
| HAVE_CLUTTER_GLX=no |
| if test "x$BUILD_EXAMPLES" = "xyes"; then |
| PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no) |
| AC_SUBST(CLUTTER_LIBS) |
| AC_SUBST(CLUTTER_CFLAGS) |
| AC_SUBST(HAVE_CLUTTER) |
| |
| PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no) |
| AC_SUBST(CLUTTER_GLX_LIBS) |
| AC_SUBST(CLUTTER_GLX_CFLAGS) |
| AC_SUBST(HAVE_CLUTTER_GLX) |
| |
| PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no) |
| AC_SUBST(CLUTTER_X11_LIBS) |
| AC_SUBST(CLUTTER_X11_CFLAGS) |
| AC_SUBST(HAVE_CLUTTER_X11) |
| fi |
| AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes") |
| AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes") |
| AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes") |
| |
| dnl used in the gl/clutteractor example |
| if test "x$BUILD_EXAMPLES" = "xyes"; then |
| PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no) |
| AC_SUBST(XCOMPOSITE_CFLAGS) |
| AC_SUBST(XCOMPOSITE_LIBS) |
| fi |
| AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes") |
| |
| dnl graphene-1.0 is optional and used in gltransformation |
| HAVE_GRAPHENE=NO |
| PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no) |
| if test "x$HAVE_GRAPHENE" = "xyes"; then |
| AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene]) |
| fi |
| AC_SUBST(HAVE_GRAPHENE) |
| AC_SUBST(GRAPHENE_LIBS) |
| AC_SUBST(GRAPHENE_CFLAGS) |
| AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes") |
| |
| |
| dnl sdl is optional and used in examples |
| HAVE_SDL=NO |
| if test "x$BUILD_EXAMPLES" = "xyes"; then |
| PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no) |
| AC_SUBST(SDL_LIBS) |
| AC_SUBST(SDL_CFLAGS) |
| AC_SUBST(SDL_CLUTTER) |
| fi |
| AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes") |
| |
| |
| dnl Needed for GtkBuilder to autoconnect signals |
| PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no) |
| |
| dnl Needed by plugins that use g_module_*() API |
| PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0) |
| |
| dnl x11 is optional for librfb |
| HAVE_X11=NO |
| PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no) |
| AC_SUBST(X11_LIBS) |
| AC_SUBST(X11_CFLAGS) |
| AC_SUBST(HAVE_X11) |
| AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes") |
| if test "x$HAVE_X11" = "xyes"; then |
| AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library]) |
| fi |
| |
| dnl exif (used on jifmux tests) **** |
| PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no") |
| AC_SUBST(EXIF_LIBS) |
| AC_SUBST(EXIF_CFLAGS) |
| AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes") |
| |
| dnl Orc |
| ORC_CHECK([0.4.17]) |
| |
| dnl set license and copyright notice |
| GST_LICENSE="LGPL" |
| AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license]) |
| AC_SUBST(GST_LICENSE) |
| |
| dnl define LIBDIR so we can inform people where we live |
| AS_AC_EXPAND(LIBDIR, $libdir) |
| AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir]) |
| |
| dnl set location of plugin directory |
| AG_GST_SET_PLUGINDIR |
| |
| dnl set release date/time |
| AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO], |
| ["${srcdir}/gst-plugins-bad.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") |
| |
| AC_ARG_WITH([player-tests], |
| AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)])) |
| if test x$with_player_tests = xyes; then |
| AC_PATH_PROG([WGET], [wget], no) |
| if test x$WGET = xno; then |
| AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling]) |
| with_player_tests=no |
| fi |
| fi |
| AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "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="" |
| AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""]) |
| |
| dnl define an ERROR_CFLAGS Makefile variable |
| dnl -Waggregate-return - libexif returns aggregates |
| dnl -Wundef - Windows headers check _MSC_VER unconditionally |
| AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [ |
| -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls |
| -Wwrite-strings -Wformat-security -Wold-style-definition |
| -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar |
| -Wnested-externs $NO_WARNINGS]) |
| |
| dnl define an ERROR_CXXFLAGS Makefile variable |
| AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [ |
| -Wmissing-declarations -Wredundant-decls |
| -Wwrite-strings -Wformat-nonliteral -Wformat-security |
| -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS]) |
| |
| dnl define an ERROR_OBJCFLAGS Makefile variable |
| AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [ |
| -Wmissing-declarations -Wredundant-decls |
| -Wwrite-strings -Wformat-nonliteral -Wformat-security |
| -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS]) |
| |
| dnl define correct level for debugging messages |
| AG_GST_SET_LEVEL_DEFAULT($GST_GIT) |
| |
| dnl used in examples |
| AG_GST_DEFAULT_ELEMENTS |
| |
| dnl *** plug-ins to include *** |
| dnl Non ported plugins (non-dependant, then dependant) |
| dnl Make sure you have a space before and after all plugins |
| GST_PLUGINS_NONPORTED=" cdxaparse \ |
| dccp faceoverlay \ |
| hdvparse \ |
| mve nuvdemux \ |
| patchdetect \ |
| sdi tta \ |
| videomeasure \ |
| linsys \ |
| apexsink dc1394 \ |
| musepack nas sdl timidity \ |
| wininet \ |
| xvid lv2 sndio libvisual" |
| AC_SUBST(GST_PLUGINS_NONPORTED) |
| |
| dnl these are all the gst plug-ins, compilable without additional libs |
| AG_GST_CHECK_PLUGIN(accurip) |
| AG_GST_CHECK_PLUGIN(adpcmdec) |
| AG_GST_CHECK_PLUGIN(adpcmenc) |
| AG_GST_CHECK_PLUGIN(aiff) |
| AG_GST_CHECK_PLUGIN(videoframe_audiolevel) |
| AG_GST_CHECK_PLUGIN(asfmux) |
| AG_GST_CHECK_PLUGIN(audiofxbad) |
| AG_GST_CHECK_PLUGIN(audiomixer) |
| AG_GST_CHECK_PLUGIN(compositor) |
| AG_GST_CHECK_PLUGIN(audiovisualizers) |
| AG_GST_CHECK_PLUGIN(autoconvert) |
| AG_GST_CHECK_PLUGIN(bayer) |
| AG_GST_CHECK_PLUGIN(camerabin2) |
| AG_GST_CHECK_PLUGIN(cdxaparse) |
| AG_GST_CHECK_PLUGIN(coloreffects) |
| AG_GST_CHECK_PLUGIN(dataurisrc) |
| AG_GST_CHECK_PLUGIN(dccp) |
| AG_GST_CHECK_PLUGIN(debugutils) |
| AG_GST_CHECK_PLUGIN(dvbsuboverlay) |
| AG_GST_CHECK_PLUGIN(dvdspu) |
| AG_GST_CHECK_PLUGIN(faceoverlay) |
| AG_GST_CHECK_PLUGIN(festival) |
| AG_GST_CHECK_PLUGIN(fieldanalysis) |
| AG_GST_CHECK_PLUGIN(freeverb) |
| AG_GST_CHECK_PLUGIN(frei0r) |
| AG_GST_CHECK_PLUGIN(gaudieffects) |
| AG_GST_CHECK_PLUGIN(geometrictransform) |
| AG_GST_CHECK_PLUGIN(gdp) |
| AG_GST_CHECK_PLUGIN(hdvparse) |
| AG_GST_CHECK_PLUGIN(id3tag) |
| AG_GST_CHECK_PLUGIN(inter) |
| AG_GST_CHECK_PLUGIN(interlace) |
| AG_GST_CHECK_PLUGIN(ivfparse) |
| AG_GST_CHECK_PLUGIN(ivtc) |
| AG_GST_CHECK_PLUGIN(jp2kdecimator) |
| AG_GST_CHECK_PLUGIN(jpegformat) |
| AG_GST_CHECK_PLUGIN(librfb) |
| AG_GST_CHECK_PLUGIN(midi) |
| AG_GST_CHECK_PLUGIN(mpegdemux) |
| AG_GST_CHECK_PLUGIN(mpegtsdemux) |
| AG_GST_CHECK_PLUGIN(mpegtsmux) |
| AG_GST_CHECK_PLUGIN(mpegpsmux) |
| AG_GST_CHECK_PLUGIN(mve) |
| AG_GST_CHECK_PLUGIN(mxf) |
| AG_GST_CHECK_PLUGIN(netsim) |
| AG_GST_CHECK_PLUGIN(nuvdemux) |
| AG_GST_CHECK_PLUGIN(onvif) |
| AG_GST_CHECK_PLUGIN(patchdetect) |
| AG_GST_CHECK_PLUGIN(pcapparse) |
| AG_GST_CHECK_PLUGIN(pnm) |
| AG_GST_CHECK_PLUGIN(rawparse) |
| AG_GST_CHECK_PLUGIN(removesilence) |
| AG_GST_CHECK_PLUGIN(sdi) |
| AG_GST_CHECK_PLUGIN(sdp) |
| AG_GST_CHECK_PLUGIN(segmentclip) |
| AG_GST_CHECK_PLUGIN(siren) |
| AG_GST_CHECK_PLUGIN(smooth) |
| AG_GST_CHECK_PLUGIN(speed) |
| AG_GST_CHECK_PLUGIN(subenc) |
| AG_GST_CHECK_PLUGIN(stereo) |
| AG_GST_CHECK_PLUGIN(tta) |
| AG_GST_CHECK_PLUGIN(videofilters) |
| AG_GST_CHECK_PLUGIN(videomeasure) |
| AG_GST_CHECK_PLUGIN(videoparsers) |
| AG_GST_CHECK_PLUGIN(videosignal) |
| AG_GST_CHECK_PLUGIN(vmnc) |
| AG_GST_CHECK_PLUGIN(y4m) |
| AG_GST_CHECK_PLUGIN(yadif) |
| |
| dnl *** plug-ins to exclude *** |
| |
| AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-]) |
| AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-]) |
| AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-]) |
| |
| if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then |
| old_LIBS=$LIBS |
| LIBS="$LIBS -framework VideoToolbox" |
| AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [ |
| AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6]) |
| ], [ |
| ]) |
| LIBS=$old_LIBS |
| fi |
| |
| AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes") |
| if test "x$HAVE_AVFOUNDATION" = "xyes"; then |
| AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation]) |
| fi |
| |
| AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes") |
| if test "x$HAVE_IOS" = "xyes"; then |
| AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS]) |
| fi |
| |
| AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes") |
| if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then |
| AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox]) |
| fi |
| |
| dnl disable gst plugins we might not be able to build on this |
| dnl platform: (ugly but minimally invasive) |
| dnl FIXME: maybe move to sys, or make work with winsock2 |
| AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes) |
| AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes) |
| |
| if test "x$HAVE_WINSOCK2_H" = "xyes"; then |
| WINSOCK2_LIBS="-lws2_32" |
| AC_SUBST(WINSOCK2_LIBS) |
| fi |
| |
| if test "x$HAVE_PTHREAD_H" = "xyes"; then |
| DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS" |
| AC_SUBST(DCCP_LIBS) |
| else |
| AG_GST_DISABLE_PLUGIN(dccp) |
| fi |
| |
| dnl *** opengl *** |
| AC_ARG_ENABLE([opengl], |
| [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_GL=yes ;; |
| no) NEED_GL=no ;; |
| auto) NEED_GL=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;; |
| esac],[NEED_GL=auto]) |
| |
| AC_ARG_WITH([opengl-module-name], |
| AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)])) |
| if test x$with_opengl_module_name != x; then |
| AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name]) |
| fi |
| |
| AC_ARG_ENABLE([gles2], |
| [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_GLES2=yes ;; |
| no) NEED_GLES2=no ;; |
| auto) NEED_GLES2=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;; |
| esac],[NEED_GLES2=auto]) |
| |
| AC_ARG_WITH([gles2-module-name], |
| AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)])) |
| if test x$with_gles2_module_name != x; then |
| AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name]) |
| fi |
| |
| AC_ARG_ENABLE([egl], |
| [ --enable-egl Enable EGL support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_EGL=yes ;; |
| no) NEED_EGL=no ;; |
| auto) NEED_EGL=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;; |
| esac],[NEED_EGL=auto]) |
| |
| AC_ARG_WITH([egl-module-name], |
| AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)])) |
| if test x$with_egl_module_name != x; then |
| AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name]) |
| fi |
| |
| AC_ARG_ENABLE([wgl], |
| [ --enable-wgl Enable WGL support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_WGL=yes ;; |
| no) NEED_WGL=no ;; |
| auto) NEED_WGL=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;; |
| esac],[NEED_WGL=auto]) |
| |
| AC_ARG_ENABLE([glx], |
| [ --enable-glx Enable GLX support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_GLX=yes ;; |
| no) NEED_GLX=no ;; |
| auto) NEED_GLX=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;; |
| esac],[NEED_GLX=auto]) |
| |
| AC_ARG_ENABLE([cocoa], |
| [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_COCOA=yes ;; |
| no) NEED_COCOA=no ;; |
| auto) NEED_COCOA=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;; |
| esac],[NEED_COCOA=auto]) |
| |
| AC_ARG_ENABLE([x11], |
| [ --enable-x11 Enable x11 support @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_X11=yes ;; |
| no) NEED_X11=no ;; |
| auto) NEED_X11=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;; |
| esac],[NEED_X11=auto]) |
| |
| AC_ARG_ENABLE([wayland], |
| [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_WAYLAND_EGL=yes ;; |
| no) NEED_WAYLAND_EGL=no ;; |
| auto) NEED_WAYLAND_EGL=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;; |
| esac],[NEED_WAYLAND_EGL=auto]) |
| |
| AC_ARG_ENABLE([dispmanx], |
| [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@], |
| [case "${enableval}" in |
| yes) NEED_DISPMANX=yes ;; |
| no) NEED_DISPMANX=no ;; |
| auto) NEED_DISPMANX=auto ;; |
| *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;; |
| esac],[NEED_DISPMANX=auto]) |
| |
| AG_GST_PKG_CHECK_MODULES(X, x11) |
| save_CPPFLAGS="$CPPFLAGS" |
| save_LIBS="$LIBS" |
| |
| HAVE_GL=no |
| HAVE_GLES2=no |
| HAVE_WAYLAND_EGL=no |
| |
| HAVE_EGL_RPI=no |
| |
| case $host in |
| *-mingw32* ) |
| LIBS="$LIBS -lgdi32" |
| AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h) |
| AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>]) |
| if test "x$HAVE_WGLEXT" = "xyes"; then |
| HAVE_WGL=yes |
| HAVE_GL=yes |
| fi |
| ;; |
| *) |
| if test "x$NEED_GL" != "xno"; then |
| AG_GST_PKG_CHECK_MODULES(GL, gl) |
| if test "x$HAVE_GL" != "xyes"; then |
| AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h) |
| fi |
| fi |
| if test "x$NEED_GLES2" != "xno"; then |
| AG_GST_PKG_CHECK_MODULES(GLES2, glesv2) |
| if test "x$HAVE_GLES2" != "xyes"; then |
| AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h) |
| fi |
| fi |
| if test "x$NEED_EGL" != "xno"; then |
| AG_GST_PKG_CHECK_MODULES(EGL, egl) |
| if test "x$HAVE_EGL" != "xyes"; then |
| AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h) |
| fi |
| fi |
| |
| old_LIBS=$LIBS |
| old_CFLAGS=$CFLAGS |
| |
| dnl FIXME: Mali EGL depends on GLESv1 or GLESv2 |
| AC_CHECK_HEADER([EGL/fbdev_window.h], |
| [ |
| LIBS="$LIBS -lUMP" |
| AC_CHECK_LIB([Mali], [mali_image_create], |
| [ |
| LIBS="$LIBS -lMali" |
| AC_CHECK_LIB([GLESv2], [glEnable], |
| [ |
| AC_CHECK_HEADER([GLES2/gl2.h], |
| [ |
| AC_CHECK_LIB([EGL], [eglGetProcAddress], |
| [ |
| AC_CHECK_HEADER([EGL/egl.h], |
| [ |
| HAVE_EGL=yes |
| HAVE_GLES2=yes |
| EGL_LIBS="-lMali -lUMP" |
| EGL_CFLAGS="" |
| AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform]) |
| ]) |
| ]) |
| ]) |
| ]) |
| ]) |
| ]) |
| |
| dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2 |
| dnl FIXME: GLESv2 of RPi depends on EGL... WTF! |
| LIBS="$LIBS -lvcos -lvchiq_arm" |
| AC_CHECK_LIB([bcm_host], [bcm_host_init], |
| [ |
| LIBS="$LIBS -lbcm_host" |
| AC_CHECK_HEADER(bcm_host.h, |
| [ |
| LIBS="$LIBS -lGLESv2" |
| AC_CHECK_LIB([EGL], [eglGetProcAddress], |
| [ |
| LIBS="$LIBS -lEGL" |
| AC_CHECK_HEADER([EGL/egl.h], |
| [ |
| AC_CHECK_LIB([GLESv2], [glEnable], |
| [ |
| AC_CHECK_HEADER([GLES2/gl2.h], |
| [ |
| HAVE_EGL=yes |
| HAVE_GLES2=yes |
| HAVE_EGL_RPI=yes |
| EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm" |
| EGL_CFLAGS="" |
| AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform]) |
| ]) |
| ]) |
| ]) |
| ]) |
| ]) |
| ]) |
| |
| LIBS=$old_LIBS |
| CFLAGS=$old_CFLAGS |
| |
| PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no) |
| ;; |
| esac |
| |
| CPPFLAGS="$save_CPPFLAGS" |
| LIBS="$save_LIBS" |
| |
| USE_OPENGL=no |
| USE_GLES2=no |
| USE_GLX=no |
| USE_COCOA=no |
| USE_WGL=no |
| USE_X11=no |
| USE_EAGL=no |
| GL_LIBS= |
| GL_CFLAGS= |
| GL_OBJCFLAGS= |
| |
| dnl Check for what the user asked for and what we could find |
| if test "x$HAVE_EGL" = "xno"; then |
| if test "x$NEED_EGL" = "xyes"; then |
| AC_MSG_ERROR([Could not find the required EGL libraries]) |
| fi |
| fi |
| |
| if test "x$HAVE_GL" = "xno"; then |
| if test "x$NEED_GL" = "xyes"; then |
| AC_MSG_ERROR([Could not find the required OpenGL libraries]) |
| fi |
| fi |
| |
| if test "x$HAVE_GLES2" = "xno"; then |
| if test "x$NEED_GLES2" = "xyes"; then |
| AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries]) |
| fi |
| fi |
| |
| dnl X, GLX and OpenGL |
| if test "x$HAVE_X" = "xno"; then |
| if test "x$NEED_GLX" = "xyes"; then |
| AC_MSG_ERROR([Building the GLX backend without X11 is unsupported]) |
| fi |
| if test "x$NEED_X11" = "xyes"; then |
| AC_MSG_ERROR([Could not find X11 development libraries]) |
| fi |
| else |
| if test "x$NEED_GL" != "xno"; then |
| if test "x$HAVE_GL" = "xno"; then |
| if test "x$NEED_GLX" = "xyes"; then |
| AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported]) |
| fi |
| else dnl HAVE_GL=yes |
| USE_OPENGL=yes |
| if test "x$NEED_GLX" != "xno"; then |
| USE_GLX=yes |
| fi |
| fi |
| fi |
| fi |
| |
| dnl check for DMABUF support |
| HAVE_DRM_FOURCC_HEADER=no |
| AC_CHECK_HEADER(libdrm/drm_fourcc.h, |
| HAVE_DRM_FOURCC_HEADER=yes, ) |
| |
| HAVE_GST_ALLOCATORS=no |
| PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0, |
| HAVE_GST_ALLOCATORS=yes, ) |
| |
| if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \ |
| "x$HAVE_GST_ALLOCATORS" = "xyes" -a \ |
| "x$HAVE_EGL" = "xyes"; then |
| AC_DEFINE(GST_GL_HAVE_DMABUF, [1] , [DMABUF available for gl plugins]) |
| fi |
| |
| dnl check if we can include both GL and GLES2 at the same time |
| if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then |
| GL_INCLUDES=" |
| #ifdef __GNUC__ |
| # pragma GCC diagnostic push |
| # pragma GCC diagnostic ignored \"-Wredundant-decls\" |
| #endif |
| #ifndef GL_GLEXT_PROTOTYPES |
| #define GL_GLEXT_PROTOTYPES 1 |
| #endif |
| # ifdef HAVE_IOS |
| # include <OpenGLES/ES2/gl.h> |
| # include <OpenGLES/ES2/glext.h> |
| # else |
| # include <GLES2/gl2.h> |
| # include <GLES2/gl2ext.h> |
| # endif |
| # ifdef __APPLE__ |
| # include <OpenGL/OpenGL.h> |
| # include <OpenGL/gl.h> |
| # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 |
| # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED |
| # include <OpenGL/gl3.h> |
| # endif |
| # else |
| # include <GL/gl.h> |
| # if __WIN32__ || _WIN32 |
| # include <GL/glext.h> |
| # endif |
| # endif |
| int main (int argc, char **argv) { return 0; } |
| " |
| AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers]) |
| save_CFLAGS="$CFLAGS" |
| CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS" |
| AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[ |
| #if !defined(GL_FALSE) |
| #error Failed to include GL headers |
| #endif |
| ]])],[ AC_MSG_RESULT(yes) |
| ],[AC_MSG_RESULT(no) |
| if test "x$NEED_GLES2" = "xyes"; then |
| if test "x$NEED_GL" = "xyes"; then |
| AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API]) |
| fi |
| AC_MSG_WARN([Disabling Desktop GL support]) |
| HAVE_GL=no |
| USE_OPENGL=no |
| else |
| AC_MSG_WARN([Disabling GL|ES 2.0 support]) |
| HAVE_GLES2=no |
| fi |
| ]) |
| CFLAGS="$save_CFLAGS" |
| fi |
| |
| #dnl Check for OpenGL |
| echo host is $host |
| case $host in |
| *-android*) |
| if test "x$NEED_WGL" = "xyes"; then |
| AC_MSG_ERROR([WGL is not available on Android]) |
| fi |
| if test "x$NEED_GLX" = "xyes"; then |
| AC_MSG_ERROR([GLX is not available on Android]) |
| fi |
| if test "x$NEED_GL" = "xyes"; then |
| AC_MSG_ERROR([GL is not available on Android]) |
| fi |
| if test "x$NEED_X11" = "xyes"; then |
| AC_MSG_ERROR([X11 is not available on Android]) |
| fi |
| if test "x$NEED_COCOA" = "xyes"; then |
| AC_MSG_ERROR([Cocoa is not available on Android]) |
| fi |
| |
| dnl OpenGL|ES 2.0 |
| if test "x$HAVE_GLES2" = "xyes"; then |
| if test "x$NEED_GLES2" != "xno"; then |
| GL_LIBS="$GL_LIBS -lGLESv2" |
| USE_GLES2=yes |
| fi |
| fi |
| |
| dnl EGL |
| if test "x$HAVE_EGL" = "xyes"; then |
| if test "x$NEED_EGL" != "xno"; then |
| GL_LIBS="$GL_LIBS -lEGL" |
| USE_EGL=yes |
| fi |
| fi |
| |
| if test "x$USE_EGL" != "xyes"; then |
| AC_MSG_ERROR([Need EGL on Android]) |
| fi |
| |
| if test "x$USE_GLES2" != "xyes"; then |
| AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android]) |
| fi |
| |
| HAVE_WINDOW_ANDROID=yes |
| ;; |
| *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* ) |
| if test "x$NEED_WGL" = "xyes"; then |
| AC_MSG_ERROR([WGL is not available on unix]) |
| fi |
| |
| if test "x$HAVE_X" = "xno"; then |
| if test "x$HAVE_WAYLAND_EGL" = "xno"; then |
| AC_MSG_WARN([X or Wayland is required for OpenGL support]) |
| fi |
| fi |
| |
| dnl check Desktop OpenGL |
| if test "x$HAVE_GL" = "xyes"; then |
| if test "x$NEED_GL" != "xno"; then |
| GL_LIBS="$GL_LIBS -lGL" |
| fi |
| fi |
| |
| dnl OpenGL|ES 2.0 |
| if test "x$HAVE_GLES2" = "xyes"; then |
| if test "x$NEED_GLES2" != "xno"; then |
| GL_LIBS="$GL_LIBS -lGLESv2" |
| USE_GLES2=yes |
| fi |
| fi |
| |
| if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then |
| if test "x$NEED_X11" != "xno"; then |
| GL_LIBS="$GL_LIBS $X_LIBS" |
| GL_CFLAGS="$GL_CFLAGS $X_CFLAGS" |
| HAVE_WINDOW_X11=yes |
| fi |
| fi |
| |
| if test "x$HAVE_WAYLAND_EGL" = "xyes"; then |
| if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then |
| AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support]) |
| else |
| if test "x$NEED_WAYLAND_EGL" != "xno"; then |
| HAVE_WINDOW_WAYLAND=yes |
| GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS" |
| GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS" |
| fi |
| fi |
| fi |
| |
| if test "x$HAVE_EGL_RPI" = "xyes"; then |
| if test "x$NEED_DISPMANX" != "xno"; then |
| HAVE_WINDOW_DISPMANX=yes |
| USE_EGL=yes |
| fi |
| fi |
| |
| dnl EGL |
| if test "x$HAVE_EGL" = "xno"; then |
| if test "x$HAVE_GL" = "xno"; then |
| AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support]) |
| fi |
| else |
| if test "x$NEED_EGL" != "xno"; then |
| if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then |
| GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" |
| GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" |
| USE_EGL=yes |
| fi |
| fi |
| fi |
| ;; |
| *-darwin*) |
| if test "x$HAVE_IOS" = "xyes"; then |
| if test "x$NEED_WGL" = "xyes"; then |
| AC_MSG_ERROR([WGL is not available on iOS]) |
| fi |
| if test "x$NEED_GLX" = "xyes"; then |
| AC_MSG_ERROR([GLX is not available on iOS]) |
| fi |
| if test "x$NEED_GL" = "xyes"; then |
| AC_MSG_ERROR([GL is not available on iOS]) |
| fi |
| if test "x$NEED_X11" = "xyes"; then |
| AC_MSG_ERROR([X11 is not available on iOS]) |
| fi |
| if test "x$NEED_COCOA" = "xyes"; then |
| AC_MSG_ERROR([Cocoa is not available on iOS]) |
| fi |
| if test "x$NEED_EGL" = "xyes"; then |
| AC_MSG_ERROR([EGL is not available on iOS]) |
| fi |
| |
| GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation" |
| GL_CFLAGS="$GL_CFLAGS" |
| USE_GLES2=yes |
| USE_EAGL=yes |
| HAVE_WINDOW_EAGL=yes |
| |
| ac_cv_type_GLsizeiptr=yes |
| ac_cv_type_GLintptr=yes |
| ac_cv_type_GLchar=yes |
| else |
| dnl Only osx supports cocoa. |
| if test "x$NEED_WGL" = "xyes"; then |
| AC_MSG_ERROR([WGL is not available on Mac OS X]) |
| fi |
| |
| if test "x$NEED_COCOA" != "xno"; then |
| GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation" |
| GL_CFLAGS="$GL_CFLAGS" |
| USE_COCOA=yes |
| HAVE_WINDOW_COCOA=yes |
| USE_OPENGL=yes |
| fi |
| |
| if test "x$USE_GLX" = "xyes"; then |
| if test "x$HAVE_X" = "xyes"; then |
| if test "x$NEED_X11" != "xno"; then |
| GL_LIBS="$GL_LIBS $X_LIBS" |
| GL_CFLAGS="$GL_CFLAGS $X_CFLAGS" |
| HAVE_WINDOW_X11=yes |
| fi |
| fi |
| |
| if test "x$HAVE_GL" = "xyes"; then |
| if test "x$NEED_GL" != "xno"; then |
| GL_LIBS="$GL_LIBS -lGL" |
| fi |
| USE_OPENGL=yes |
| fi |
| fi |
| |
| if test "x$HAVE_EGL" = "xyes"; then |
| if test "x$NEED_EGL" != "xno"; then |
| if test "x$HAVE_WINDOW_X11" = "xyes"; then |
| GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS" |
| GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS" |
| USE_EGL=yes |
| fi |
| fi |
| fi |
| |
| dnl OpenGL|ES 2.0 |
| if test "x$HAVE_GLES2" = "xyes"; then |
| if test "x$NEED_GLES2" != "xno"; then |
| GL_LIBS="$GL_LIBS -lGLESv2" |
| USE_GLES2=yes |
| fi |
| fi |
| fi |
| ;; |
| *-mingw32*) |
| if test "x$NEED_GLX" = "xyes"; then |
| AC_MSG_ERROR([GLX is not available on Windows]) |
| fi |
| if test "x$NEED_GLES2" = "xyes"; then |
| AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet]) |
| fi |
| |
| if test "x$HAVE_GL" = "xyes"; then |
| if test "x$NEED_GL" != "xno"; then |
| if test "x$HAVE_WGL" = "xyes"; then |
| if test "$NEED_WGL" != "xno"; then |
| GL_LIBS="$GL_LIBS -lgdi32 -lopengl32" |
| HAVE_WINDOW_WIN32=yes |
| USE_OPENGL=yes |
| USE_WGL=yes |
| fi |
| fi |
| fi |
| fi |
| ;; |
| *) |
| AC_MSG_WARN([Don't know how to check for OpenGL on your platform.]) |
| ;; |
| esac |
| |
| GL_PLATFORMS= |
| GL_WINDOWS= |
| GL_APIS= |
| GL_CONFIG_DEFINES= |
| |
| dnl APIs |
| |
| GST_GL_HAVE_OPENGL=0 |
| GST_GL_HAVE_GLES2=0 |
| GST_GL_HAVE_GLES3=0 |
| |
| if test "x$USE_OPENGL" = "xyes"; then |
| GL_APIS="gl $GL_APIS" |
| GST_GL_HAVE_OPENGL=1 |
| fi |
| if test "x$USE_GLES2" = "xyes"; then |
| GL_APIS="gles2 $GL_APIS" |
| GST_GL_HAVE_GLES2=1 |
| fi |
| |
| GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES |
| #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL |
| #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2 |
| #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3 |
| " |
| |
| dnl WINDOW's |
| |
| GST_GL_HAVE_WINDOW_X11=0 |
| GST_GL_HAVE_WINDOW_COCOA=0 |
| GST_GL_HAVE_WINDOW_WIN32=0 |
| GST_GL_HAVE_WINDOW_WAYLAND=0 |
| GST_GL_HAVE_WINDOW_ANDROID=0 |
| GST_GL_HAVE_WINDOW_DISPMANX=0 |
| GST_GL_HAVE_WINDOW_EAGL=0 |
| |
| if test "x$HAVE_WINDOW_X11" = "xyes"; then |
| GL_WINDOWS="x11 $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_X11=1 |
| fi |
| if test "x$HAVE_WINDOW_COCOA" = "xyes"; then |
| GL_WINDOWS="cocoa $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_COCOA=1 |
| fi |
| if test "x$HAVE_WINDOW_WIN32" = "xyes"; then |
| GL_WINDOWS="win32 $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_WIN32=1 |
| fi |
| if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then |
| GL_WINDOWS="wayland $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_WAYLAND=1 |
| fi |
| if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then |
| GL_WINDOWS="android $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_ANDROID=1 |
| fi |
| if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then |
| GL_WINDOWS="dispmanx $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_DISPMANX=1 |
| fi |
| if test "x$HAVE_WINDOW_EAGL" = "xyes"; then |
| GL_WINDOWS="eagl $GL_WINDOWS" |
| GST_GL_HAVE_WINDOW_EAGL=1 |
| fi |
| |
| GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES |
| #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11 |
| #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA |
| #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32 |
| #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND |
| #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID |
| #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX |
| #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL |
| " |
| |
| dnl PLATFORM's |
| |
| GST_GL_HAVE_PLATFORM_EGL=0 |
| GST_GL_HAVE_PLATFORM_GLX=0 |
| GST_GL_HAVE_PLATFORM_WGL=0 |
| GST_GL_HAVE_PLATFORM_CGL=0 |
| GST_GL_HAVE_PLATFORM_EAGL=0 |
| |
| if test "x$USE_EGL" = "xyes"; then |
| GL_PLATFORMS="egl $GL_PLATFORMS" |
| GST_GL_HAVE_PLATFORM_EGL=1 |
| fi |
| if test "x$USE_GLX" = "xyes"; then |
| GL_PLATFORMS="glx $GL_PLATFORMS" |
| GST_GL_HAVE_PLATFORM_GLX=1 |
| fi |
| if test "x$USE_WGL" = "xyes"; then |
| GL_PLATFORMS="wgl $GL_PLATFORMS" |
| GST_GL_HAVE_PLATFORM_WGL=1 |
| fi |
| if test "x$USE_COCOA" = "xyes"; then |
| GL_PLATFORMS="cgl $GL_PLATFORMS" |
| GST_GL_HAVE_PLATFORM_CGL=1 |
| fi |
| if test "x$USE_EAGL" = "xyes"; then |
| GL_PLATFORMS="eagl $GL_PLATFORMS" |
| GST_GL_HAVE_PLATFORM_EAGL=1 |
| fi |
| |
| GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES |
| #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL |
| #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX |
| #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL |
| #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL |
| #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL |
| " |
| |
| dnl Check for no platforms/window systems |
| if test "x$GL_APIS" = "x"; then |
| AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support]) |
| fi |
| if test "x$GL_PLATFORMS" = "x"; then |
| AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX]) |
| fi |
| if test "x$GL_WINDOWS" = "x"; then |
| AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11]) |
| fi |
| |
| if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then |
| GL_LIBS= |
| GL_CFLAGS= |
| GL_OBJCFLAGS= |
| USE_OPENGL=no |
| USE_GLES2=no |
| USE_GLX=no |
| USE_EGL=no |
| USE_WGL=no |
| USE_COCOA=no |
| USE_EGL_MALI=no |
| USE_EGL_RPI=no |
| USE_EAGL=no |
| |
| HAVE_WINDOW_X11=no |
| HAVE_WINDOW_WIN32=no |
| HAVE_WINDOW_DISPMANX=no |
| HAVE_WINDOW_WAYLAND=no |
| HAVE_WINDOW_ANDROID=no |
| HAVE_WINDOW_COCOA=no |
| HAVE_WINDOW_EAGL=no |
| fi |
| |
| AC_SUBST(GL_LIBS) |
| AC_SUBST(GL_CFLAGS) |
| AC_SUBST(GL_OBJCFLAGS) |
| AC_SUBST(USE_OPENGL) |
| AC_SUBST(USE_GLES2) |
| |
| AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes") |
| AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes") |
| |
| AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes") |
| AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes") |
| AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes") |
| AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes") |
| AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes") |
| AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes") |
| AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes") |
| AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes") |
| AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes") |
| |
| AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes") |
| |
| dnl Check for some types that are not always present |
| GL_INCLUDES="" |
| if test "x$USE_GLES2" = "xyes"; then |
| GL_INCLUDES="$GL_INCLUDES |
| #ifndef GL_GLEXT_PROTOTYPES |
| #define GL_GLEXT_PROTOTYPES 1 |
| #endif |
| # ifdef HAVE_IOS |
| # include <OpenGLES/ES2/gl.h> |
| # include <OpenGLES/ES2/glext.h> |
| # else |
| # include <GLES2/gl2.h> |
| # include <GLES2/gl2ext.h> |
| # endif |
| " |
| fi |
| |
| if test "x$USE_OPENGL" = "xyes"; then |
| GL_INCLUDES="$GL_INCLUDES |
| # ifdef __APPLE__ |
| # include <OpenGL/OpenGL.h> |
| # include <OpenGL/gl.h> |
| # else |
| # include <GL/gl.h> |
| # if __WIN32__ || _WIN32 |
| # include <GL/glext.h> |
| # endif |
| # endif |
| " |
| fi |
| |
| GST_GL_HAVE_GLEGLIMAGEOES=0 |
| GST_GL_HAVE_GLCHAR=0 |
| GST_GL_HAVE_GLSIZEIPTR=0 |
| GST_GL_HAVE_GLINTPTR=0 |
| GST_GL_HAVE_GLSYNC=0 |
| GST_GL_HAVE_GLUINT64=0 |
| GST_GL_HAVE_GLINT64=0 |
| |
| old_CFLAGS=$CFLAGS |
| CFLAGS="$GL_CFLAGS $CFLAGS" |
| |
| AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then |
| GST_GL_HAVE_GLEGLIMAGEOES=1 |
| fi |
| |
| AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLchar" = "xyes"; then |
| GST_GL_HAVE_GLCHAR=1 |
| fi |
| |
| AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then |
| GST_GL_HAVE_GLSIZEIPTR=1 |
| fi |
| |
| AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLintptr" = "xyes"; then |
| GST_GL_HAVE_GLINTPTR=1 |
| fi |
| |
| AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLsync" = "xyes"; then |
| GST_GL_HAVE_GLSYNC=1 |
| fi |
| |
| AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLuint64" = "xyes"; then |
| GST_GL_HAVE_GLUINT64=1 |
| fi |
| |
| AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]]) |
| if test "x$ac_cv_type_GLint64" = "xyes"; then |
| GST_GL_HAVE_GLINT64=1 |
| fi |
| |
| CFLAGS=$old_CFLAGS |
| |
| GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES |
| #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES |
| #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR |
| #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR |
| #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR |
| #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC |
| #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64 |
| #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64 |
| " |
| |
| AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [ |
| outfile=gstglconfig.h-tmp |
| cat > $outfile <<\_______EOF |
| /* gstglconfig.h |
| * |
| * This is a generated file. Please modify `configure.ac' |
| */ |
| |
| #ifndef __GST_GL_CONFIG_H__ |
| #define __GST_GL_CONFIG_H__ |
| |
| #include <gst/gst.h> |
| |
| G_BEGIN_DECLS |
| |
| _______EOF |
| |
| cat >>$outfile <<_______EOF |
| $gl_config_defines |
| _______EOF |
| |
| cat >>$outfile <<_______EOF |
| |
| G_END_DECLS |
| |
| #endif /* __GST_GL_CONFIG_H__ */ |
| _______EOF |
| |
| |
| if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then |
| AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged]) |
| rm -f $outfile |
| else |
| mv $outfile gst-libs/gst/gl/gstglconfig.h |
| fi |
| ],[ |
| gl_config_defines='$GL_CONFIG_DEFINES' |
| ]) |
| |
| dnl libpng is optional |
| PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no) |
| if test "x$HAVE_PNG" = "xyes"; then |
| AC_DEFINE(HAVE_PNG, [1] , [Use libpng]) |
| fi |
| AC_SUBST(HAVE_PNG) |
| AC_SUBST(LIBPNG_LIBS) |
| AC_SUBST(LIBPNG_CFLAGS) |
| AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes") |
| |
| dnl libjpeg is optional |
| AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library]) |
| OLD_LIBS="$LIBS" |
| if test x$with_jpeg_mmx != x; then |
| LIBS="$LIBS -L$with_jpeg_mmx" |
| fi |
| AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") |
| JPEG_LIBS="$LIBS -ljpeg-mmx" |
| LIBS="$OLD_LIBS" |
| if test x$HAVE_JPEG != xyes; then |
| JPEG_LIBS="-ljpeg" |
| AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") |
| fi |
| |
| if test x$HAVE_JPEG = xyes; then |
| AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg]) |
| else |
| AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg]) |
| JPEG_LIBS= |
| fi |
| AC_SUBST(JPEG_LIBS) |
| AC_SUBST(HAVE_JPEG) |
| AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes") |
| |
| dnl Vulkan |
| VULKAN_CONFIG_DEFINES="" |
| |
| PKG_CHECK_MODULES(XCB, xcb >= 1.10, HAVE_XCB=yes, HAVE_XCB=no) |
| |
| AM_CONDITIONAL(USE_XCB, test "x$HAVE_XCB" = "xyes") |
| if test "x$HAVE_XCB" = "xyes"; then |
| VULKAN_CONFIG_DEFINES="$VULKAN_CONFIG_DEFINES |
| #define GST_VULKAN_HAVE_WINDOW_XCB 1" |
| fi |
| |
| AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [ |
| outfile=vkconfig.h-tmp |
| cat > $outfile <<\_______EOF |
| /* vkconfig.h |
| * |
| * This is a generated file. Please modify `configure.ac' |
| */ |
| |
| #ifndef __GST_VULKAN_CONFIG_H__ |
| #define __GST_VULKAN_CONFIG_H__ |
| |
| #include <gst/gst.h> |
| |
| G_BEGIN_DECLS |
| |
| _______EOF |
| |
| cat >>$outfile <<_______EOF |
| $vulkan_config_defines |
| _______EOF |
| |
| cat >>$outfile <<_______EOF |
| |
| G_END_DECLS |
| |
| #endif /* __GST_VULKAN_CONFIG_H__ */ |
| _______EOF |
| |
| |
| if cmp -s $outfile ext/vulkan/vkconfig.h; then |
| AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged]) |
| rm -f $outfile |
| else |
| mv $outfile ext/vulkan/vkconfig.h |
| fi |
| ],[ |
| vulkan_config_defines='$VULKAN_CONFIG_DEFINES' |
| ]) |
| |
| dnl *** sys plug-ins *** |
| |
| dnl DirectSound |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true) |
| AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [ |
| HAVE_DIRECTSOUND="no" |
| save_CFLAGS="$CFLAGS" |
| save_LDFLAGS="$LDFLAGS" |
| save_LIBS="$LIBS" |
| CFLAGS="$CFLAGS $DIRECTX_CFLAGS" |
| LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" |
| LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32" |
| AC_MSG_CHECKING(for DirectSound LDFLAGS) |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
| #include <windows.h> |
| #include <dxerr9.h> |
| #include <dsound.h> |
| #include <mmsystem.h> |
| ]], [[ |
| DXGetErrorString9 (0); |
| DirectSoundCreate(NULL, NULL, NULL); |
| ]])], |
| [HAVE_DIRECTSOUND="yes"], |
| [HAVE_DIRECTSOUND="no"]) |
| AC_MSG_RESULT($HAVE_DIRECTSOUND) |
| CFLAGS=$save_CFLAGS |
| LDFLAGS=$save_LDFLAGS |
| LIBS=$save_LIBS |
| |
| if test "x$HAVE_DIRECTSOUND" = "xyes"; then |
| dnl this is much more than we want |
| DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32" |
| AC_SUBST(DIRECTX_CFLAGS) |
| AC_SUBST(DIRECTX_LDFLAGS) |
| AC_SUBST(DIRECTSOUND_LIBS) |
| fi |
| AC_SUBST(HAVE_DIRECTSOUND) |
| ]) |
| |
| dnl WASAPI |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true) |
| AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [ |
| HAVE_WASAPI="no" |
| save_CFLAGS="$CFLAGS" |
| save_LDFLAGS="$LDFLAGS" |
| save_LIBS="$LIBS" |
| CFLAGS="$CFLAGS $DIRECTX_CFLAGS" |
| LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" |
| LIBS="$LIBS -lole32 -lwinmm -lksuser" |
| AC_MSG_CHECKING(for WASAPI LDFLAGS) |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
| #include <windows.h> |
| #include <stdio.h> |
| #include <mmsystem.h> |
| #include <mmdeviceapi.h> |
| ]], [[ |
| int main () |
| { |
| HRESULT hr = S_OK; |
| |
| hr = CoInitialize(NULL); |
| if (FAILED(hr)) { |
| printf("CoInitialize failed: hr = 0x%08x", hr); |
| return __LINE__; |
| } |
| |
| int result = 0; |
| // result = do_everything(argc, argv); |
| |
| CoUninitialize(); |
| return result; |
| } |
| ]])], |
| [HAVE_WASAPI="yes"], |
| [HAVE_WASAPI="no"]) |
| AC_MSG_RESULT($HAVE_WASAPI) |
| CFLAGS=$save_CFLAGS |
| LDFLAGS=$save_LDFLAGS |
| LIBS=$save_LIBS |
| |
| if test "x$HAVE_WASAPI" = "xyes"; then |
| WASAPI_LIBS="-lole32 -lwinmm -lksuser" |
| AC_SUBST(WASAPI_LIBS) |
| fi |
| AC_SUBST(HAVE_WASAPI) |
| ]) |
| |
| dnl Direct3D |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true) |
| AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [ |
| HAVE_DIRECT3D="no" |
| save_CFLAGS="$CFLAGS" |
| save_LDFLAGS="$LDFLAGS" |
| save_LIBS="$LIBS" |
| CFLAGS="$CFLAGS $DIRECTX_CFLAGS" |
| LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" |
| LIBS="$LIBS -ld3d9 -lgdi32" |
| AC_MSG_CHECKING(for Direct3D LDFLAGS) |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
| #include <windows.h> |
| #include <d3d9.h> |
| ]], [[ |
| Direct3DCreate9(D3D_SDK_VERSION); |
| ]])], |
| [HAVE_DIRECT3D="yes"], |
| [HAVE_DIRECT3D="no"]) |
| AC_MSG_RESULT($HAVE_DIRECT3D) |
| CFLAGS=$save_CFLAGS |
| LDFLAGS=$save_LDFLAGS |
| LIBS=$save_LIBS |
| |
| if test "x$HAVE_DIRECT3D" = "xyes"; then |
| DIRECT3D_LIBS="-ld3d9 -lgdi32" |
| AC_SUBST(DIRECT3D_LIBS) |
| fi |
| AC_SUBST(HAVE_DIRECT3D) |
| ]) |
| |
| dnl winscreencap |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true) |
| AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [ |
| HAVE_WINSCREENCAP="no" |
| save_CFLAGS="$CFLAGS" |
| save_LDFLAGS="$LDFLAGS" |
| save_LIBS="$LIBS" |
| CFLAGS="$CFLAGS $DIRECTX_CFLAGS" |
| LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" |
| LIBS="$LIBS -ld3d9 -lgdi32" |
| AC_MSG_CHECKING(for Direct3D LDFLAGS) |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
| #include <windows.h> |
| #include <d3d9.h> |
| ]], [[ |
| Direct3DCreate9(D3D_SDK_VERSION); |
| ]])], |
| [HAVE_WINSCREENCAP="yes"], |
| [HAVE_WINSCREENCAP="no"]) |
| AC_MSG_RESULT($HAVE_WINSCREENCAP) |
| CFLAGS=$save_CFLAGS |
| LDFLAGS=$save_LDFLAGS |
| LIBS=$save_LIBS |
| |
| if test "x$HAVE_WINSCREENCAP" = "xyes"; then |
| WINSCREENCAP_LIBS="-ld3d9 -lgdi32" |
| AC_SUBST(WINSCREENCAP_LIBS) |
| fi |
| AC_SUBST(HAVE_WINSCREENCAP) |
| ]) |
| |
| dnl winks |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true) |
| AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [ |
| HAVE_WINKS="no" |
| save_CFLAGS="$CFLAGS" |
| save_LDFLAGS="$LDFLAGS" |
| save_LIBS="$LIBS" |
| CFLAGS="$CFLAGS $DIRECTX_CFLAGS" |
| LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" |
| LIBS="$LIBS -lole32 -luuid -lstrmiids" |
| AC_MSG_CHECKING(for Winks LDFLAGS) |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[ |
| #include <windows.h> |
| #include <strmif.h> |
| #include <uuids.h> |
| ]], [[ |
| int main () { |
| IGraphBuilder *pGraph = NULL; |
| HRESULT hr = CoInitialize(NULL); |
| hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, |
| &IID_IGraphBuilder, (void **)&pGraph); |
| |
| return 0; |
| } |
| ]])], |
| [HAVE_WINKS="yes"], |
| [HAVE_WINKS="no"]) |
| AC_MSG_RESULT($HAVE_WINKS) |
| CFLAGS=$save_CFLAGS |
| LDFLAGS=$save_LDFLAGS |
| LIBS=$save_LIBS |
| |
| if test "x$HAVE_WINKS" = "xyes"; then |
| dnl this is much more than we want |
| WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi" |
| AC_SUBST(DIRECTX_CFLAGS) |
| AC_SUBST(DIRECTX_LDFLAGS) |
| AC_SUBST(WINKS_LIBS) |
| fi |
| AC_SUBST(HAVE_WINKS) |
| ]) |
| |
| dnl *** Android Media *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true) |
| HAVE_ANDROID_MEDIA="no" |
| AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [ |
| case "$host" in |
| *android*) |
| AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no") |
| ;; |
| *) |
| HAVE_ANDROID_MEDIA="no" |
| ;; |
| esac |
| ]) |
| |
| dnl *** AppleMedia (OS X and iOS) *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true) |
| HAVE_APPLE_MEDIA="no" |
| dnl SystemConfiguration.h is common to OS X and iOS, so we check for that |
| AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [ |
| AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no") |
| dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h |
| if test "x$HAVE_IOS" = "xno"; then |
| AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no") |
| fi |
| ]) |
| |
| dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms |
| case "$host" in |
| *-*darwin*) |
| ;; |
| *) |
| HAVE_APPLE_MEDIA="no" |
| ;; |
| esac |
| |
| dnl *** bluez *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true) |
| AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [ |
| PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [ |
| PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [ |
| AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen]) |
| HAVE_BLUEZ=yes |
| AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected]) |
| ], [ |
| HAVE_BLUEZ=no |
| ]) |
| ], [ |
| HAVE_BLUEZ=no |
| ]) |
| ]) |
| |
| dnl *** OS/X AVCVideoServices *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true) |
| HAVE_AVC="no" |
| AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [ |
| AC_LANG_PUSH([C++]) |
| save_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation" |
| save_LIBS="$LIBS" |
| LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation" |
| AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no]) |
| LIBS=$save_LIBS |
| CPPFLAGS=$save_CPPFLAGS |
| AC_LANG_POP([C++]) |
| ]) |
| dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms |
| case "$host" in |
| *-*darwin*) |
| ;; |
| *) |
| HAVE_AVC="no" |
| ;; |
| esac |
| |
| dnl check for shm_open (for shm plugin) |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true) |
| AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [ |
| if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then |
| case $host in |
| *-darwin* | *-macos10*) |
| AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected]) |
| HAVE_SHM=yes |
| ;; |
| *) |
| AC_CHECK_LIB([rt], [shm_open], |
| AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [ |
| #include <sys/socket.h> |
| ]), |
| HAVE_SHM=no) |
| AC_SUBST(SHM_LIBS, "-lrt") |
| ;; |
| esac |
| else |
| HAVE_SHM=no |
| fi |
| ]) |
| |
| dnl check for Video CD |
| translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true) |
| AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [ |
| AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no") |
| ]) |
| |
| dnl check for OpenSL ES |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true) |
| AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [ |
| AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no") |
| ]) |
| |
| dnl *** UVC H264 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true) |
| AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [ |
| AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no) |
| PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [ |
| AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed]) |
| HAVE_GUDEV="yes" ], |
| [HAVE_GUDEV="no"]) |
| PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [ |
| AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed]) |
| HAVE_LIBUSB="yes" ], |
| [HAVE_LIBUSB="no"]) |
| if test "x$HAVE_UVCVIDEO_H" = "xyes" && \ |
| test "x$HAVE_GUDEV" = "xyes" && \ |
| test "x$HAVE_LIBUSB" = "xyes"; then |
| HAVE_UVCH264=yes |
| else |
| HAVE_UVCH264=no |
| fi |
| ]) |
| AC_SUBST(LIBUDEV_CFLAGS) |
| AC_SUBST(LIBUDEV_LIBS) |
| AC_SUBST(LIBUSB_CFLAGS) |
| AC_SUBST(LIBUSB_LIBS) |
| |
| dnl *** NVENC *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true) |
| AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [ |
| AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0) |
| AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0) |
| AC_ARG_WITH([cuda-prefix], |
| AS_HELP_STRING([--with-cuda-prefix], |
| [Use the provided prefix for detecting the cuda installation]), |
| [AS_IF([test "x$with_cuda_prefix" != "x"], |
| [CUDA_PREFIX="$with_cuda_prefix"])], |
| [CUDA_PREFIX=""]) |
| |
| HAVE_CUDA="yes" |
| if test "x$CUDA_PREFIX" != "x"; then |
| dnl only override if not already set |
| if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then |
| dnl this is an educated guess, user can always override these |
| CUDA_CFLAGS="-I$CUDA_PREFIX/include" |
| CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart" |
| fi |
| else |
| PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [ |
| PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [ |
| PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [ |
| AC_MSG_WARN([Could not find cuda headers/libraries])])])]) |
| fi |
| |
| HAVE_CUDA_H=no |
| HAVE_CUDART_H=no |
| save_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS " |
| AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes], |
| AC_MSG_WARN([Could not find cuda.h])) |
| AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes], |
| AC_MSG_WARN([Could not find cuda_runtime_api.h])) |
| CPPFLAGS=$save_CPPFLAGS |
| |
| dnl libcuda and libcudart libraries |
| save_LIBS="$LIBS" |
| LIBS="$CUDA_LIBS $save_LIBS" |
| HAVE_CUDART_LIB="no" |
| AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [ |
| AC_MSG_WARN([Could not find cudart library])]) |
| HAVE_CUDA_LIB="no" |
| AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [ |
| AC_MSG_WARN([Could not find cuda library])]) |
| LIBS="$save_LIBS" |
| |
| dnl nvEncodeAPI.h header |
| HAVE_NVENCODEAPI_H=no |
| AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h]) |
| save_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS" |
| AC_CHECK_HEADER([nvEncodeAPI.h], [ |
| AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h> |
| #if NVENCAPI_MAJOR_VERSION < 5 |
| #error "Need nvEncodeAPI.h >= 5.0" |
| #endif |
| ]])], [ |
| HAVE_NVENCODEAPI_H=yes |
| ], [ |
| AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0]) |
| ]) |
| ], |
| AC_MSG_WARN([Could not find nvEncodeAPI.h])) |
| AC_SUBST(NVENCODE_CFLAGS) |
| CPPFLAGS="$save_CPPFLAGS" |
| |
| dnl libnvnidia-encode library |
| HAVE_NVENCODE_LIB=no |
| AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode]) |
| saved_LIBS="$LIBS" |
| LIBS="$NVENCODE_LIBS $saved_LIBS" |
| AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"], |
| AC_MSG_WARN([Could not find library nvidia-encode])) |
| NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode" |
| AC_SUBST(NVENCODE_LIBS) |
| LIBS="$saved_LIBS" |
| |
| USE_NVENC_GST_GL=no |
| if test "x$HAVE_CUDA_H" = "xyes" \ |
| -a "x$HAVE_CUDART_H" = "xyes" \ |
| -a "x$HAVE_CUDA_LIB" = "xyes" \ |
| -a "x$HAVE_CUDART_LIB" = "xyes" \ |
| -a "x$HAVE_NVENCODEAPI_H" = "xyes" \ |
| -a "x$HAVE_NVENCODE_LIB" = "xyes"; then |
| HAVE_NVENC="yes" |
| if test x"$USE_OPENGL" = x"yes"; then |
| dnl cuda-gl interop header |
| save_CPPFLAGS="$CPPFLAGS" |
| CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS" |
| AC_CHECK_HEADER([cuda_gl_interop.h], [ |
| USE_NVENC_GST_GL="yes" |
| AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available]) |
| ]) |
| CPPFLAGS="$save_CPPFLAGS" |
| fi |
| else |
| HAVE_NVENC="no" |
| fi |
| ]) |
| AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes") |
| |
| dnl check for tinyalsa |
| translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true) |
| AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [ |
| AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no") |
| ]) |
| |
| dnl *** ext plug-ins *** |
| dnl keep this list sorted alphabetically ! |
| |
| if test "x$BUILD_EXTERNAL" = "xyes"; then |
| |
| dnl *** assrender *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true) |
| AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [ |
| PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [ |
| HAVE_ASSRENDER="yes" ], [ |
| HAVE_ASSRENDER="no" |
| ]) |
| ]) |
| AC_SUBST(ASSRENDER_CFLAGS) |
| AC_SUBST(ASSRENDER_LIBS) |
| |
| dnl *** vo-amrwbenc *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true) |
| AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [ |
| AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0) |
| ]) |
| |
| dnl *** vo-aacenc *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true) |
| AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [ |
| AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0) |
| ]) |
| |
| dnl *** apexsink *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true) |
| AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [ |
| PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [ |
| HAVE_APEXSINK="yes" |
| saved_LIBS="$LIBS" |
| LIBS="" |
| AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ]) |
| AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ]) |
| APEXSINK_LIBS="$APEXSINK_LIBS $LIBS" |
| LIBS="$saved_LIBS" |
| AC_SUBST(APEXSINK_CFLAGS) |
| AC_SUBST(APEXSINK_LIBS) |
| ], [ |
| APEXSINK="no" |
| ]) |
| ]) |
| |
| dnl *** bs2b *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true) |
| AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [ |
| PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [ |
| HAVE_BS2B="no" |
| ]) |
| AC_SUBST(BS2B_CFLAGS) |
| AC_SUBST(BS2B_LIBS) |
| ]) |
| |
| dnl *** BZ2 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true) |
| AG_GST_CHECK_FEATURE(BZ2, [bz2 library], 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" = "xyes"; then |
| BZ2_LIBS="-lbz2" |
| fi |
| AC_SUBST(BZ2_LIBS) |
| |
| ]) |
| |
| #dnl *** cairo *** |
| #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true) |
| #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [ |
| # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [ |
| # HAVE_CAIRO=no |
| # ]) |
| # AC_SUBST(CAIRO_CFLAGS) |
| # AC_SUBST(CAIRO_LIBS) |
| #]) |
| |
| dnl *** chromaprint *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true) |
| AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [ |
| PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [ |
| HAVE_CHROMAPRINT="no" |
| ]) |
| AC_SUBST(CHROMAPRINT_CFLAGS) |
| AC_SUBST(CHROMAPRINT_LIBS) |
| ]) |
| |
| dnl *** Curl *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true) |
| AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ |
| PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [ |
| HAVE_CURL="yes" |
| AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [ |
| AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"]) |
| ]) |
| AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"], |
| [[#ifdef HAVE_SYS_TYPES_H |
| # include <sys/types.h> |
| #endif |
| #ifdef HAVE_NETINET_IN_H |
| # include <netinet/in.h> |
| #endif |
| ]]) |
| AC_MSG_CHECKING([for socket support needed by curlsink]) |
| AC_MSG_RESULT($HAVE_CURL) |
| ], [ |
| HAVE_CURL="no" |
| ]) |
| AC_SUBST(CURL_CFLAGS) |
| AC_SUBST(CURL_LIBS) |
| PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [ |
| HAVE_SSH2="yes" |
| AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available]) |
| ], [ |
| HAVE_SSH2="no" |
| ]) |
| AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes") |
| AC_SUBST(SSH2_CFLAGS) |
| AC_SUBST(SSH2_LIBS) |
| ],,,[AM_CONDITIONAL(USE_SSH2, false)]) |
| |
| dnl **** DASH **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true) |
| AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [ |
| PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes" |
| HAVE_DASH="yes"], [HAVE_LIBXML2="no" |
| HAVE_DASH="no"]) |
| AC_SUBST(LIBXML2_CFLAGS) |
| AC_SUBST(LIBXML2_LIBS) |
| ]) |
| |
| dnl *** dc1394 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true) |
| AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [ |
| PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [ |
| if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then |
| HAVE_DC1394="yes" |
| else |
| HAVE_DC1394="no" |
| fi |
| ], [ |
| HAVE_DC1394="no" |
| AC_MSG_RESULT(no) |
| ]) |
| AC_SUBST(LIBDC1394_CFLAGS) |
| AC_SUBST(LIBDC1394_LIBS) |
| ]) |
| |
| dnl *** decklink *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true) |
| AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [ |
| HAVE_DECKLINK=no |
| case "$host" in |
| *android*) |
| HAVE_DECKLINK=no |
| ;; |
| *-*linux*) |
| if test "x$HAVE_PTHREAD_H" = "xyes"; then |
| AC_CHECK_LIB(dl, dlopen, |
| [ |
| HAVE_DECKLINK=yes |
| DECKLINK_CXXFLAGS= |
| DECKLINK_LIBS="-lpthread -ldl" |
| ]) |
| fi |
| ;; |
| *-*darwin*) |
| if test "x$HAVE_PTHREAD_H" = "xyes"; then |
| AC_CHECK_LIB(dl, dlopen, |
| [ |
| HAVE_DECKLINK=yes |
| DECKLINK_CXXFLAGS= |
| DECKLINK_LIBS="-lpthread -ldl" |
| HAVE_DECKLINK_OSX=yes |
| ]) |
| fi |
| ;; |
| *) |
| HAVE_DECKLINK=no |
| ;; |
| esac |
| |
| AC_SUBST(DECKLINK_CXXFLAGS) |
| AC_SUBST(DECKLINK_LIBS) |
| ]) |
| AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes) |
| |
| dnl **** DirectFB **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true) |
| AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [ |
| PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [ |
| HAVE_DIRECTFB="no" |
| ]) |
| ]) |
| |
| dnl **** Wayland **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true) |
| AC_PATH_PROG([wayland_scanner], [wayland-scanner]) |
| AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [ |
| PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [ |
| if test "x$wayland_scanner" != "x"; then |
| HAVE_WAYLAND="yes" |
| else |
| AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin]) |
| HAVE_WAYLAND="no" |
| fi |
| ], |
| [ HAVE_WAYLAND="no" |
| ]) |
| ]) |
| |
| dnl **** WebP **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true) |
| AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [ |
| PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [ |
| HAVE_WEBP="yes" ], [ HAVE_WEBP="no" |
| ]) |
| AC_SUBST(WEBP_CFLAGS) |
| AC_SUBST(WEBP_LIBS) |
| ]) |
| |
| dnl *** Daala *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true) |
| AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [ |
| if test "x$BUILD_EXPERIMENTAL" = "xyes"; then |
| PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [ |
| HAVE_DAALA="yes" |
| ], [ |
| HAVE_DAALA="no" |
| ]) |
| AC_SUBST(DAALA_CFLAGS) |
| AC_SUBST(DAALA_LIBS) |
| fi |
| ]) |
| |
| dnl *** DTS *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true) |
| AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [ |
| HAVE_DTS="yes" |
| AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h, |
| DTS_LIBS="-ldca $LIBM", HAVE_DTS="no") |
| if test $HAVE_DTS = "no"; then |
| AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h, |
| [ DTS_LIBS="-ldts_pic $LIBM" |
| AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used]) |
| ]) |
| fi |
| AC_SUBST(DTS_LIBS) |
| ]) |
| |
| dnl *** resindvd *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true) |
| AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [ |
| PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [ |
| HAVE_RESINDVD="no" |
| ]) |
| ]) |
| |
| dnl **** Free AAC Encoder (FAAC) **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true) |
| AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [ |
| AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h, |
| FAAC_LIBS="-lfaac $LIBM") |
| AC_SUBST(FAAC_LIBS) |
| ]) |
| |
| dnl **** Free AAC Decoder (FAAD2) **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true) |
| AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [ |
| AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [ |
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[ |
| #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE) |
| #error Not faad2 |
| #elif !defined(LATM) |
| #error Not faad2 >= 2.7 |
| #endif |
| ]])],[ |
| HAVE_FAAD="yes" |
| FAAD_LIBS="-lfaad" |
| ], [ |
| AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7]) |
| HAVE_FAAD="no" |
| ]) |
| ], [ |
| HAVE_FAAD="no" |
| ]) |
| AC_SUBST(FAAD_LIBS) |
| ]) |
| |
| dnl *** fbdev *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true) |
| AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [ |
| if test "x$HAVE_FBDEV" != "xyes"; then |
| AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no) |
| fi |
| ]) |
| |
| dnl *** flite *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true) |
| AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [ |
| AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h, |
| FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM") |
| |
| AC_SUBST(FLITE_CFLAGS) |
| AC_SUBST(FLITE_LIBS) |
| ]) |
| |
| dnl *** gsm *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true) |
| AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [ |
| AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm") |
| if test $HAVE_GSM != "yes"; then |
| AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm") |
| if test $HAVE_GSM = "yes"; then |
| AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir]) |
| fi |
| fi |
| AC_SUBST(GSM_LIBS) |
| ]) |
| |
| dnl *** fluidSynth *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true) |
| AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [ |
| PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [ |
| HAVE_FLUIDSYNTH="no" |
| ]) |
| ]) |
| |
| dnl *** kate *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true) |
| AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [ |
| PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [ |
| HAVE_KATE="no" |
| ]) |
| AC_SUBST(KATE_CFLAGS) |
| AC_SUBST(KATE_LIBS) |
| PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2, |
| [ |
| HAVE_TIGER="yes" |
| AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available]) |
| ], |
| [ |
| HAVE_TIGER="no" |
| ] |
| ) |
| AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes") |
| AC_SUBST(TIGER_CFLAGS) |
| AC_SUBST(TIGER_LIBS) |
| ],,,[AM_CONDITIONAL(USE_TIGER, false)]) |
| |
| dnl *** ladspa *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true) |
| AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [ |
| AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no") |
| |
| PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no) |
| if test $HAVE_LRDF = "yes"; then |
| AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf]) |
| fi |
| AC_SUBST(LRDF_LIBS) |
| AC_SUBST(LRDF_CFLAGS) |
| ]) |
| |
| dnl *** LV2 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true) |
| AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [ |
| PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no") |
| AC_SUBST(SLV2_CFLAGS) |
| AC_SUBST(SLV2_LIBS) |
| ]) |
| |
| dnl *** libde265 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true) |
| AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [ |
| PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no") |
| AC_SUBST(LIBDE265_CFLAGS) |
| AC_SUBST(LIBDE265_LIBS) |
| ]) |
| |
| dnl *** libmms *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true) |
| AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [ |
| dnl check with pkg-config first |
| PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [ |
| HAVE_LIBMMS="no" |
| ]) |
| ]) |
| AC_SUBST(LIBMMS_LIBS) |
| |
| |
| dnl *** libsrtp *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true) |
| AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [ |
| PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes", |
| AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp") |
| ) |
| AC_SUBST(SRTP_LIBS) |
| AC_SUBST(SRTP_CFLAGS) |
| ]) |
| |
| dnl *** dtls *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true) |
| AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [ |
| PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [ |
| HAVE_DTLS="yes" |
| AC_SUBST(DTLS_CFLAGS) |
| AC_SUBST(DTLS_LIBS) |
| ], [ |
| HAVE_DTLS="no" |
| ]) |
| ]) |
| |
| dnl *** linsys *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true) |
| AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [ |
| case "$host" in |
| *-*linux*) |
| HAVE_LINSYS=yes |
| ;; |
| *) |
| HAVE_LINSYS=no |
| ;; |
| esac |
| ]) |
| |
| dnl *** modplug *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true) |
| AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [ |
| if test "x$HAVE_CXX" != "xyes"; then |
| AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler]) |
| HAVE_MODPLUG="no" |
| else |
| PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no") |
| fi |
| AC_SUBST(MODPLUG_CFLAGS) |
| AC_SUBST(MODPLUG_LIBS) |
| ]) |
| |
| dnl *** mimic *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true) |
| AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [ |
| MIMIC_REQUIRED=1.0 |
| PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED, |
| HAVE_MIMIC=yes, HAVE_MIMIC=no) |
| AC_SUBST(MIMIC_CFLAGS) |
| AC_SUBST(MIMIC_LIBS) |
| ]) |
| |
| dnl *** mjpegtools version info *** |
| dnl some may prefer older version (given quirks above) |
| dnl hm, no version info seems available within mjpegtools headers |
| dnl and API really moves along |
| echo |
| PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [ |
| mjpegtools_api=10601 |
| ], [ |
| PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [ |
| mjpegtools_api=10800 |
| ], [ |
| PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [ |
| mjpegtools_api=20000 |
| ], [ |
| PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [ |
| dnl logging API changed in release candidates |
| OLD_CFLAGS="$CFLAGS" |
| OLD_LIBS="$LIBS" |
| CFLAGS="$MJPEG_CFLAGS" |
| LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS" |
| AC_CHECK_FUNC(mjpeg_loglev_t, [ |
| mjpegtools_api=10903 |
| ], [ |
| mjpegtools_api=10900 |
| ]) |
| CFLAGS="$OLD_CFLAGS" |
| LIBS="$OLD_LIBS" |
| ], [ |
| mjpegtools_api=0 |
| ]) |
| ]) |
| ]) |
| ]) |
| AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api, |
| [mjpegtools API evolution]) |
| |
| dnl *** mpeg2enc *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true) |
| AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [ |
| HAVE_MPEG2ENC="no" |
| dnl we require a c++ compiler for this one |
| if [ test x$HAVE_CXX = xyes ]; then |
| dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92) |
| dnl since many distros include mjpegtools specifically without mplex |
| dnl and mpeg2enc, we check for mpeg2enc on its own, too. |
| PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [ |
| dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h' |
| touch config.h |
| dnl switch over to c++ to test things |
| AC_LANG([C++]) |
| OLD_CPPFLAGS="$CPPFLAGS" |
| dnl HACK as above |
| CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS" |
| CPPFLAGS="$CPPFLAGS_GOOD -I." |
| dnl check headers |
| mpeg2enc_headers_ok=no |
| AC_CHECK_HEADER([mpeg2encoder.hh], [ |
| MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS" |
| OLD_LIBS="$LIBS" |
| LIBS="$LIBS $MPEG2ENC_LIBS" |
| AC_MSG_CHECKING([for valid mpeg2enc objects]) |
| AC_RUN_IFELSE([AC_LANG_SOURCE([[ |
| #include <mpeg2encoder.hh> |
| #include <mpeg2encoptions.hh> |
| |
| int |
| main (int argc, |
| char *argv[]) |
| { |
| MPEG2EncOptions *options = new MPEG2EncOptions (); |
| MPEG2Encoder *encoder = new MPEG2Encoder (*options); |
| return 0; |
| } |
| ]])],[ |
| AC_MSG_RESULT(yes) |
| dnl so far so good, let's check more things: |
| dnl mjpegtools-1.8.0 does not install the required |
| dnl mpeg2syntaxcodes.h header by default, and a new release |
| dnl is not in sight, so check for this oversight in case |
| dnl distros or folks have fixed this themselves |
| if test "$mjpegtools_api" -ge "10800"; then |
| AC_CHECK_HEADER([mpeg2syntaxcodes.h], [ |
| mpeg2enc_headers_ok=yes |
| ], [ |
| mpeg2enc_headers_ok=no |
| ]) |
| else |
| mpeg2enc_headers_ok=yes |
| fi |
| if test "x$mpeg2enc_headers_ok" = "xyes"; then |
| HAVE_MPEG2ENC="yes" |
| fi |
| CPPFLAGS="$CPPFLAGS_GOOD" |
| AC_SUBST(MPEG2ENC_CFLAGS) |
| AC_SUBST(MPEG2ENC_LIBS) |
| ],[ |
| AC_MSG_RESULT(no) |
| ],[]) |
| LIBS="$OLD_LIBS" |
| ]) |
| |
| CPPFLAGS="$OLD_CPPFLAGS" |
| AC_LANG([C]) |
| ], [ |
| HAVE_MPEG2ENC="no" |
| ]) |
| fi |
| ]) |
| |
| dnl *** mplex *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true) |
| AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [ |
| HAVE_MPLEX="no" |
| dnl we require a c++ compiler for this one |
| if [ test x$HAVE_CXX = xyes ]; then |
| dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93) |
| dnl since many distros include mjpegtools specifically without mplex |
| dnl and mpeg2enc, we check for mplex on its own, too. |
| dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems |
| PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [ |
| dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h' |
| touch config.h |
| dnl switch over to c++ to test things |
| AC_LANG([C++]) |
| OLD_CPPFLAGS="$CPPFLAGS" |
| dnl HACK as above |
| CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS" |
| CPPFLAGS="$CPPFLAGS_GOOD -I." |
| AC_CHECK_HEADER(interact.hpp, [ |
| MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM" |
| OLD_LIBS="$LIBS" |
| LIBS="$LIBS $MPLEX_LIBS" |
| OLD_LDFLAGS="$LDFLAGS" |
| LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS" |
| dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI; |
| dnl don't want this here |
| AC_MSG_CHECKING([for valid mplex objects]) |
| AC_RUN_IFELSE([AC_LANG_SOURCE([[ |
| |
| #include <interact.hpp> |
| #include <outputstrm.hpp> |
| #include <multiplexor.hpp> |
| int |
| main (int argc, |
| char *argv[]) |
| { |
| class TestOutputStream : public OutputStream { |
| public: |
| TestOutputStream () : OutputStream () { } |
| void Write (uint8_t *a, unsigned int b) { } |
| void NextSegment () { } |
| uint64_t SegmentSize () { } |
| void Close () { } |
| int Open () { } |
| }; |
| MultiplexJob *job = new MultiplexJob (); |
| vector<IBitStream *> inputs; |
| job->SetupInputStreams (inputs); |
| TestOutputStream *out = new TestOutputStream (); |
| Multiplexor *mux = new Multiplexor(*job, *out, NULL); |
| return 0; |
| } |
| ]])],[ |
| HAVE_MPLEX="yes" |
| CPPFLAGS="$CPPFLAGS_GOOD" |
| AC_SUBST(MPLEX_CFLAGS) |
| AC_SUBST(MPLEX_LIBS) |
| AC_SUBST(MPLEX_LDFLAGS) |
| AC_MSG_RESULT(yes) |
| ],[AC_MSG_RESULT(no)],[]) |
| LIBS="$OLD_LIBS" |
| LDFLAGS="$OLD_LDFLAGS" |
| ]) |
| CPPFLAGS="$OLD_CPPFLAGS" |
| AC_LANG([C]) |
| ], HAVE_MPLEX="no") |
| fi |
| ]) |
| |
| dnl *** musepack *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true) |
| AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [ |
| AC_CHECK_HEADER([mpc/mpcdec.h], [ |
| HAVE_MUSEPACK="yes" |
| MUSEPACK_LIBS="-lmpcdec" |
| AC_SUBST(MUSEPACK_LIBS) |
| ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [ |
| HAVE_MUSEPACK="yes" |
| MUSEPACK_LIBS="-lmpcdec" |
| AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used]) |
| AC_SUBST(MUSEPACK_LIBS) |
| ], [HAVE_MUSEPACK="no"])]) |
| ]) |
| |
| dnl *** nas *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true) |
| AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [ |
| HAVE_NAS="no" |
| if test "x$HAVE_X" = "xyes"; then |
| save_cppflags=$CFLAGS |
| CPPFLAGS="$CPPFLAGS $X_CFLAGS" |
| AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h, |
| NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS") |
| CPPFLAGS="$save_cppflags" |
| fi |
| AC_SUBST(NAS_CFLAGS) |
| AC_SUBST(NAS_LIBS) |
| ]) |
| |
| dnl *** neon *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true) |
| AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [ |
| PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [ |
| HAVE_NEON="no" |
| ]) |
| AC_SUBST(NEON_CFLAGS) |
| AC_SUBST(NEON_LIBS) |
| ]) |
| |
| dnl *** ofa *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true) |
| AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [ |
| PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [ |
| HAVE_OFA="no" |
| ]) |
| AC_SUBST(OFA_CFLAGS) |
| AC_SUBST(OFA_LIBS) |
| ]) |
| |
| dnl *** OpenAL *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true) |
| AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [ |
| PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [ |
| HAVE_OPENAL="no" |
| ]) |
| AC_SUBST(OPENAL_CFLAGS) |
| AC_SUBST(OPENAL_LIBS) |
| ]) |
| |
| dnl *** opencv *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true) |
| AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ |
| dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY |
| dnl and don't want the build to break when a new opencv version comes out. |
| dnl Need to adjust this upwards once we know that our code compiles fine with |
| dnl a new version and the no-backward-compatibility define. (There doesn't |
| dnl seem to be a switch to suppress the warnings the cvcompat.h header |
| dnl causes.) |
| PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [ |
| AC_PROG_CXX |
| AC_LANG([C++]) |
| OLD_CPPFLAGS=$CPPFLAGS |
| CPPFLAGS=$OPENCV_CFLAGS |
| something_not_found=no |
| AC_CHECK_HEADERS([opencv2/contrib/contrib.hpp \ |
| opencv2/core/core_c.h \ |
| opencv2/core/types_c.h \ |
| opencv2/core/version.hpp \ |
| opencv2/highgui/highgui_c.h \ |
| opencv2/imgproc/imgproc.hpp \ |
| opencv2/imgproc/imgproc_c.h \ |
| opencv2/legacy/compat.hpp \ |
| opencv2/legacy/legacy.hpp \ |
| opencv2/objdetect/objdetect.hpp \ |
| opencv2/video/background_segm.hpp], [], [something_not_found=yes]) |
| CPPFLAGS=$OLD_CPPFLAGS |
| AC_LANG([C]) |
| |
| if test $something_not_found = "yes"; then |
| AC_MSG_RESULT([not all opencv2 headers were found]) |
| HAVE_OPENCV="no" |
| else |
| HAVE_OPENCV="yes" |
| fi |
| ], [ |
| HAVE_OPENCV="no" |
| ]) |
| OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`" |
| AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix]) |
| AC_SUBST(OPENCV_PREFIX) |
| AC_SUBST(OPENCV_CFLAGS) |
| AC_SUBST(OPENCV_LIBS) |
| dnl the OpenCV prefix is used at runtime for some object properties, and also |
| dnl used here to detect which directory is the correct one. For the second |
| dnl case, make sure the right sysroot is used, ensuring correct behavior |
| dnl during cross compilation. |
| if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then |
| AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name]) |
| else |
| AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name]) |
| fi |
| ]) |
| |
| dnl *** OpenEXR *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true) |
| AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [ |
| AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR) |
| ]) |
| |
| dnl *** openh264 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true) |
| AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [ |
| AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0) |
| ]) |
| |
| dnl *** OpenJPEG *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true) |
| AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [ |
| HAVE_OPENJPEG="no" |
| |
| save_LIBS="$LIBS" |
| save_CFLAGS="$CFLAGS" |
| OPENJPEG_LIBS="-lopenjp2" |
| LIBS="$LIBS $OPENJPEG_LIBS" |
| CFLAGS="$CFLAGS $OPENJPEG_CFLAGS" |
| AC_LINK_IFELSE([ |
| AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>], |
| [return (int) *opj_version ();]) |
| ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no]) |
| LIBS="$save_LIBS" |
| CFLAGS="$save_CFLAGS" |
| |
| if test x"$HAVE_OPENJPEG" = x"no"; then |
| OPENJPEG_LIBS="" |
| PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1, |
| HAVE_OPENJPEG="yes", |
| AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg") |
| ) |
| if test x"$HAVE_OPENJPEG" = x"yes"; then |
| AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used]) |
| fi |
| fi |
| AC_SUBST(OPENJPEG_CFLAGS) |
| AC_SUBST(OPENJPEG_LIBS) |
| ]) |
| |
| dnl *** OpenNI2 *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true) |
| AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [ |
| PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] ) |
| AC_SUBST(OPENNI2_CFLAGS) |
| AC_SUBST(OPENNI2_LIBS) |
| ]) |
| |
| dnl *** Opus *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true) |
| AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [ |
| PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [ |
| AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed]) |
| HAVE_OPUS="yes" |
| ], [ |
| HAVE_OPUS="no" |
| ]) |
| AC_SUBST(OPUS_CFLAGS) |
| AC_SUBST(OPUS_LIBS) |
| ]) |
| |
| dnl *** pvr *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true) |
| AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [ |
| PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no) |
| AC_SUBST(PVR_CFLAGS) |
| AC_SUBST(PVR_LIBS) |
| ]) |
| |
| AC_ARG_WITH([pvr-external-headers], |
| AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]), |
| [AS_IF([test "x$with_pvr_external_headers" = "xno"], |
| [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])], |
| [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"]) |
| |
| dnl *** rsvg *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true) |
| AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [ |
| AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2) |
| ]) |
| |
| dnl *** gl *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true) |
| AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [ |
| HAVE_GL="no" |
| |
| if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then |
| HAVE_GL="yes" |
| fi |
| ]) |
| |
| 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"; 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 *** 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_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
| AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"]) |
| 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" |
| if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "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"; 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_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "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])]) |
| 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 *** Vulkan *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true) |
| AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [ |
| HAVE_VULKAN=no |
| AC_CHECK_HEADER(vulkan/vulkan.h, [ |
| AC_CHECK_LIB(vulkan, vkCreateDevice, [ |
| VULKAN_LIBS="-lvulkan" |
| AC_SUBST(VULKAN_LIBS) |
| dnl TODO check platform support (x11, win32, wayland, android, etc) |
| if test "x$HAVE_XCB" = "xyes"; then |
| HAVE_VULKAN=yes |
| fi |
| ], []) |
| ], []) |
| ]) |
| |
| dnl *** libvisual *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true) |
| AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [ |
| AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0) |
| if test x$HAVE_LIBVISUAL = xyes; then |
| LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`" |
| fi |
| AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR]) |
| if test x$LIBVIS_PLUGINSDIR != x; then |
| AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR, |
| "$LIBVIS_PLUGINSDIR", |
| [directory in which the detected libvisual's plugins are located]) |
| fi |
| ]) |
| |
| dnl *** timidity *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true) |
| AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [ |
| PKG_CHECK_MODULES(TIMIDITY, libtimidity, [ |
| HAVE_TIMIDITY="yes", |
| AC_MSG_CHECKING([for timidity.cfg]) |
| timidity_cfg="" |
| if test -r /etc/timidity.cfg; then |
| timidity_cfg=/etc/timidity.cfg |
| elif test -r /etc/timidity/timidity.cfg; then |
| timidity_cfg=/etc/timidity/timidity.cfg |
| elif test -r /usr/share/timidity/timidity.cfg; then |
| timidity_cfg=/usr/share/timidity/timidity.cfg |
| elif test -r /usr/local/share/timidity/timidity.cfg; then |
| timidity_cfg=/usr/local/share/timidity/timidity.cfg |
| fi |
| if test "x$timidity_cfg" != "x"; then |
| AC_MSG_RESULT($timidity_cfg) |
| AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg]) |
| else |
| AC_MSG_RESULT([not found]) |
| fi |
| ], [ |
| HAVE_TIMIDITY="no" |
| ]) |
| AC_SUBST(TIMIDITY_CFLAGS) |
| AC_SUBST(TIMIDITY_LIBS) |
| ]) |
| |
| dnl *** teletextdec *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true) |
| AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [ |
| AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2) |
| ]) |
| |
| dnl *** wildmidi *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true) |
| AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [ |
| AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi, |
| WildMidi_Init, , |
| wildmidi_lib.h, |
| WILDMIDI_LIBS="-lWildMidi") |
| AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library])) |
| |
| if test "x$HAVE_WILDMIDI" = "xyes"; then |
| WILDMIDI_CFLAGS= |
| WILDMIDI_LIBS=-lWildMidi |
| AC_MSG_NOTICE(compiling gstWildMidi) |
| else |
| WILDMIDI_CFLAGS= |
| WILDMIDI_LIBS= |
| AC_MSG_WARN(no WildMidi library found (libWildMidi)) |
| fi |
| AC_SUBST(WILDMIDI_CFLAGS) |
| AC_SUBST(WILDMIDI_LIBS) |
| ]) |
| |
| dnl *** SDL *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true) |
| AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [ |
| AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no) |
| ]) |
| |
| dnl **** Smooth Streaming **** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true) |
| AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [ |
| PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4, |
| [HAVE_LIBXML2="yes" |
| HAVE_SMOOTHSTREAMING="yes"], |
| [HAVE_LIBXML2="no" |
| HAVE_SMOOTHSTREAMING="no"]) |
| AC_SUBST(LIBXML2_CFLAGS) |
| AC_SUBST(LIBXML2_LIBS) |
| ]) |
| |
| dnl *** sndfile *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true) |
| AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [ |
| PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no") |
| AC_SUBST(SNDFILE_CFLAGS) |
| AC_SUBST(SNDFILE_LIBS) |
| ]) |
| |
| dnl *** soundtouch *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true) |
| AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [ |
| dnl We only need -lBPM on soundtouch < 1.4 |
| dnl We check for libSoundTouch since Debian used it before upstream |
| dnl added a pkgconfig file. |
| HAVE_SOUNDTOUCH_1_4=yes |
| PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch, |
| [HAVE_SOUNDTOUCH=yes], |
| [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4, |
| [HAVE_SOUNDTOUCH=yes], |
| [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0, |
| [HAVE_SOUNDTOUCH=yes |
| HAVE_SOUNDTOUCH_1_4=no |
| SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], |
| [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4, |
| [HAVE_SOUNDTOUCH=yes], |
| [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch, |
| [HAVE_SOUNDTOUCH=yes |
| HAVE_SOUNDTOUCH_1_4=no |
| SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], |
| HAVE_SOUNDTOUCH=no)])])])]) |
| AC_SUBST(SOUNDTOUCH_CFLAGS) |
| AC_SUBST(SOUNDTOUCH_LIBS) |
| if test "x$HAVE_CXX" != "xyes"; then |
| USE_SOUNDTOUCH=false |
| AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found]) |
| fi |
| if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then |
| AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1], |
| [Defined if the available libSoundTouch is >= 1.4]) |
| fi |
| ]) |
| |
| dnl *** spc *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true) |
| AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [ |
| AC_CHECK_HEADER(openspc.h, [ |
| AC_CHECK_LIB(openspc, OSPC_Init, [ |
| SPC_LIBS="-lopenspc" |
| AC_SUBST(SPC_LIBS) |
| HAVE_SPC=yes |
| ], [ |
| HAVE_SPC=no |
| ]) |
| ], [ |
| HAVE_SPC=no |
| ]) |
| ]) |
| |
| dnl *** gme *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true) |
| AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [ |
| AC_CHECK_HEADER(gme/gme.h, [ |
| AC_CHECK_LIB(gme, gme_new_emu, [ |
| GME_LIBS="-lgme" |
| AC_SUBST(GME_LIBS) |
| HAVE_GME=yes |
| ], [ |
| HAVE_GME=no |
| ]) |
| ], [ |
| HAVE_GME=no |
| ]) |
| |
| if test "x$HAVE_GME" = "xyes"; then |
| AC_CHECK_LIB(gme, gme_enable_accuracy, [ |
| AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available]) |
| ]) |
| fi |
| ]) |
| |
| dnl *** XVID *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true) |
| AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [ |
| HAVE_XVID=no |
| AC_CHECK_HEADER(xvid.h, [ |
| OLD_LIBS="$LIBS" |
| LIBS="$PTHREAD_LIBS $LIBM" |
| AC_CHECK_LIB(xvidcore, xvid_encore, [ |
| AC_CHECK_LIB(xvidcore, xvid_decore, [ |
| AC_CHECK_LIB(xvidcore, xvid_global, [ |
| AC_MSG_CHECKING([for up-to-date XviD API version]) |
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[ |
| #if XVID_API_MAJOR(XVID_API) != 4 |
| #error "Incompatible XviD API version" |
| #endif |
| #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3 |
| #error "Incompatible XviD API version" |
| #endif |
| ]])],[ AC_MSG_RESULT(yes) |
| XVID_LIBS="-lxvidcore $LIBM" |
| AC_SUBST(XVID_LIBS) |
| HAVE_XVID=yes |
| ],[AC_MSG_RESULT(no) ]) |
| ], ) |
| ], ) |
| ], ) |
| LIBS="$OLD_LIBS" |
| ], ) |
| ]) |
| |
| dnl *** dvb *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true) |
| AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [ |
| AC_MSG_CHECKING([Checking for up to date dvb installation]) |
| AC_CHECK_HEADER(linux/dvb/version.h, [ |
| AC_MSG_CHECKING([for up-to-date dvb API]) |
| AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[ |
| #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4) |
| #error "Incompatible dvb API" |
| #endif |
| ]])], [ AC_MSG_RESULT(yes) |
| HAVE_DVB="yes" |
| ], [ AC_MSG_RESULT(no) |
| HAVE_DVB="no" |
| ]) |
| ], [HAVE_DVB="no"]) |
| ]) |
| |
| dnl *** wininet *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true) |
| AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [ |
| AC_MSG_CHECKING([Checking for windows internet support]) |
| AC_CHECK_HEADERS([windows.h wininet.h], |
| [HAVE_WININET="yes"], [HAVE_WININET="no"], |
| [AC_INCLUDES_DEFAULT |
| #include <windows.h>]) |
| ]) |
| |
| dnl *** acm *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true) |
| AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [ |
| AC_MSG_CHECKING([Checking for ACM support]) |
| AC_CHECK_HEADERS([windows.h msacm.h], |
| [HAVE_ACM="yes" |
| AC_SUBST(ACMENC_CFLAGS) |
| AC_SUBST(ACMMP3DEC_CFLAGS) |
| ], [HAVE_ACM="no"], |
| [AC_INCLUDES_DEFAULT |
| #include <windows.h>]) |
| ]) |
| |
| dnl *** vdpau *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true) |
| AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [ |
| VDPAU_CFLAGS= |
| VDPAU_LIBS=-lvdpau |
| HAVE_VDPAU=no |
| |
| PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"], |
| [ |
| if test "$HAVE_VDPAU" = "no"; then |
| saved_CPPFLAGS="$CPPFLAGS" |
| AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes]) |
| |
| if test -z "$HAVE_VDPAU_H"; then |
| dnl Didn't find VDPAU header straight away. |
| dnl Try /usr/include/nvidia. Need to clear caching vars first |
| AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia]) |
| unset ac_cv_header_vdpau_vdpau_h |
| unset ac_cv_header_vdpau_vdpau_x11_h |
| VDPAU_CFLAGS="-I/usr/include/nvidia" |
| VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau" |
| CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS" |
| AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes]) |
| fi |
| |
| AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes]) |
| |
| if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then |
| dnl Found the headers - look for the lib |
| AC_MSG_NOTICE([VDPAU headers found. Checking libraries]) |
| saved_LIBS="$LIBS" |
| LIBS="$VDPAU_LIBS $saved_LIBS" |
| AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"]) |
| LIBS="$saved_LIBS" |
| fi |
| fi |
| ]) |
| |
| if test "$HAVE_VDPAU" = "yes"; then |
| AC_MSG_NOTICE([Found up to date VDPAU installation]) |
| AC_SUBST(VDPAU_CFLAGS) |
| AC_SUBST(VDPAU_LIBS) |
| fi |
| ]) |
| |
| dnl *** sbc *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true) |
| AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [ |
| AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0]) |
| ]) |
| |
| dnl *** schroedinger *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true) |
| AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [ |
| AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10) |
| ]) |
| |
| dnl *** zbar *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true) |
| AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [ |
| AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9) |
| ]) |
| |
| dnl *** rtmp *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true) |
| AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [ |
| AG_GST_PKG_CHECK_MODULES(RTMP, librtmp) |
| ]) |
| |
| dnl *** spandsp *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true) |
| AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [ |
| PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [ |
| HAVE_SPANDSP="yes" ], [ |
| HAVE_SPANDSP="no" |
| ]) |
| ]) |
| AC_SUBST(SPANDSP_CFLAGS) |
| AC_SUBST(SPANDSP_LIBS) |
| |
| dnl *** sndio *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true) |
| AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [ |
| AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no") |
| if test "x$HAVE_SNDIO" = "xyes"; then |
| AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no") |
| if test "x$HAVE_SNDIO" = "xyes"; then |
| SNDIO_LIBS=-lsndio |
| AC_SUBST(SNDIO_LIBS) |
| fi |
| fi |
| ]) |
| |
| dnl *** hls-crypto *** |
| AC_ARG_WITH([hls-crypto], |
| AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [ |
| which cryptographic library version to compile against for hls (default: auto) |
| ]), [ |
| AS_CASE([$with_hls_crypto], |
| [nettle],[], |
| [libgcrypt],[], |
| [openssl],[], |
| [with_hls_crypto=auto] |
| ) |
| ] |
| ) |
| |
| dnl *** hls *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true) |
| AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [ |
| AS_CASE([$with_hls_crypto], |
| [nettle], [ |
| PKG_CHECK_MODULES(NETTLE, nettle, [ |
| AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available]) |
| HAVE_HLS="yes" |
| ],[AC_MSG_ERROR([Could not find nettle library])]) |
| ], |
| [libgcrypt], [ |
| AM_PATH_LIBGCRYPT([1.2.0], [ |
| AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available]) |
| HAVE_HLS="yes" |
| ],[AC_MSG_ERROR([Could not find libgcrypt library])]) |
| ], |
| [openssl], [ |
| PKG_CHECK_MODULES(OPENSSL, openssl, [ |
| AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available]) |
| HAVE_HLS="yes" |
| ],[AC_MSG_ERROR([Could not find openssl library])]) |
| ], |
| [ |
| dnl Try to find a valid crypto library |
| PKG_CHECK_MODULES(NETTLE, nettle, [ |
| AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available]) |
| HAVE_HLS="yes" |
| ],[ |
| AM_PATH_LIBGCRYPT([1.2.0], [ |
| AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available]) |
| HAVE_HLS="yes" |
| ],[ |
| PKG_CHECK_MODULES(OPENSSL, openssl, [ |
| AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available]) |
| HAVE_HLS="yes" |
| ],[ |
| HAVE_HLS="no" |
| ]) |
| ]) |
| ]) |
| ] |
| ) |
| ]) |
| |
| dnl *** x265 (H.265/HEVC encoder) *** |
| translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true) |
| AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [ |
| AG_GST_PKG_CHECK_MODULES(X265, x265) |
| ]) |
| |
| else |
| |
| dnl not building plugins with external dependencies, |
| dnl but we still need to set the conditionals |
| |
| AM_CONDITIONAL(USE_ASSRENDER, false) |
| AM_CONDITIONAL(USE_VOAMRWBENC, false) |
| AM_CONDITIONAL(USE_VOAACENC, false) |
| AM_CONDITIONAL(USE_APEXSINK, false) |
| AM_CONDITIONAL(USE_BS2B, false) |
| AM_CONDITIONAL(USE_BZ2, false) |
| AM_CONDITIONAL(USE_CHROMAPRINT, false) |
| AM_CONDITIONAL(USE_CURL, false) |
| AM_CONDITIONAL(USE_SSH2, false) |
| AM_CONDITIONAL(USE_DASH, false) |
| AM_CONDITIONAL(USE_DC1394, false) |
| AM_CONDITIONAL(USE_DECKLINK, false) |
| AM_CONDITIONAL(DECKLINK_OSX, false) |
| AM_CONDITIONAL(USE_DIRECTFB, false) |
| AM_CONDITIONAL(USE_WAYLAND, false) |
| AM_CONDITIONAL(USE_DAALA, false) |
| AM_CONDITIONAL(USE_DTS, false) |
| AM_CONDITIONAL(USE_EXIF, false) |
| AM_CONDITIONAL(USE_RESINDVD, false) |
| AM_CONDITIONAL(USE_FAAC, false) |
| AM_CONDITIONAL(USE_FAAD, false) |
| AM_CONDITIONAL(USE_FBDEV, false) |
| AM_CONDITIONAL(USE_FLITE, false) |
| AM_CONDITIONAL(USE_FLUIDSYNTH, false) |
| AM_CONDITIONAL(USE_GL, false) |
| AM_CONDITIONAL(USE_GSM, false) |
| AM_CONDITIONAL(USE_GTK3, false) |
| AM_CONDITIONAL(USE_GTK3_GL, false) |
| AM_CONDITIONAL(USE_HLS, false) |
| AM_CONDITIONAL(USE_KATE, false) |
| AM_CONDITIONAL(USE_TIGER, false) |
| AM_CONDITIONAL(USE_LADSPA, false) |
| AM_CONDITIONAL(USE_LV2, false) |
| AM_CONDITIONAL(USE_LIBDE265, false) |
| AM_CONDITIONAL(USE_LIBMMS, false) |
| AM_CONDITIONAL(USE_LINSYS, false) |
| AM_CONDITIONAL(USE_MODPLUG, false) |
| AM_CONDITIONAL(USE_MIMIC, false) |
| AM_CONDITIONAL(USE_MPEG2ENC, false) |
| AM_CONDITIONAL(USE_MPLEX, false) |
| AM_CONDITIONAL(USE_MUSEPACK, false) |
| AM_CONDITIONAL(USE_NAS, false) |
| AM_CONDITIONAL(USE_NEON, false) |
| AM_CONDITIONAL(USE_OFA, false) |
| AM_CONDITIONAL(USE_OPENAL, false) |
| AM_CONDITIONAL(USE_OPENCV, false) |
| AM_CONDITIONAL(USE_OPENEXR, false) |
| AM_CONDITIONAL(USE_OPENJPEG, false) |
| AM_CONDITIONAL(USE_OPENNI2, false) |
| AM_CONDITIONAL(USE_OPUS, false) |
| AM_CONDITIONAL(USE_PVR, false) |
| AM_CONDITIONAL(USE_QT, false) |
| AM_CONDITIONAL(USE_LIBVISUAL, false) |
| AM_CONDITIONAL(USE_TIMIDITY, false) |
| AM_CONDITIONAL(USE_WILDMIDI, false) |
| AM_CONDITIONAL(USE_SDL, false) |
| AM_CONDITIONAL(USE_SMOOTHSTREAMING, false) |
| AM_CONDITIONAL(USE_SNDFILE, false) |
| AM_CONDITIONAL(USE_SOUNDTOUCH, false) |
| AM_CONDITIONAL(USE_SPANDSP, false) |
| AM_CONDITIONAL(USE_SPC, false) |
| AM_CONDITIONAL(USE_SRTP, false) |
| AM_CONDITIONAL(USE_GME, false) |
| AM_CONDITIONAL(USE_XVID, false) |
| AM_CONDITIONAL(USE_DVB, false) |
| AM_CONDITIONAL(USE_WININET, false) |
| AM_CONDITIONAL(USE_ACM, false) |
| AM_CONDITIONAL(USE_VDPAU, false) |
| AM_CONDITIONAL(USE_SBC, false) |
| AM_CONDITIONAL(USE_SCHRO, false) |
| AM_CONDITIONAL(USE_ZBAR, false) |
| AM_CONDITIONAL(USE_RSVG, false) |
| AM_CONDITIONAL(USE_RTMP, false) |
| AM_CONDITIONAL(USE_TELETEXTDEC, false) |
| AM_CONDITIONAL(USE_SNDIO, false) |
| AM_CONDITIONAL(USE_UVCH264, false) |
| AM_CONDITIONAL(USE_WEBP, false) |
| AM_CONDITIONAL(USE_OPENH264, false) |
| AM_CONDITIONAL(USE_X265, false) |
| AM_CONDITIONAL(USE_DTLS, false) |
| |
| fi dnl of EXT plugins |
| |
| dnl *** finalize CFLAGS, LDFLAGS, LIBS |
| |
| dnl Overview: |
| dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ... |
| dnl GST_*: flags shared by built objects to link against GStreamer |
| dnl GST_ALL_LDFLAGS: linker flags shared by all |
| dnl GST_LIB_LDFLAGS: additional linker flags for all libaries |
| dnl GST_LT_LDFLAGS: library versioning of our libraries |
| dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins |
| |
| dnl GST_OPTION_CFLAGS |
| if test "x$USE_DEBUG" = xyes; then |
| PROFILE_CFLAGS="-g" |
| fi |
| AC_SUBST(PROFILE_CFLAGS) |
| |
| if test "x$PACKAGE_VERSION_NANO" = "x1"; then |
| dnl Define _only_ during CVS (not pre-releases or releases) |
| DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED" |
| else |
| DEPRECATED_CFLAGS="" |
| fi |
| AC_SUBST(DEPRECATED_CFLAGS) |
| |
| dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS 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)" |
| GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" |
| GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" |
| AC_SUBST(GST_OPTION_CFLAGS) |
| AC_SUBST(GST_OPTION_CXXFLAGS) |
| AC_SUBST(GST_OPTION_OBJCFLAGS) |
| |
| dnl FIXME: do we want to rename to GST_ALL_* ? |
| dnl prefer internal headers to already installed ones |
| dnl also add builddir include for enumtypes and marshal |
| dnl add GST_OPTION_CFLAGS, but overridable |
| GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API" |
| GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)" |
| GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)" |
| GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)" |
| AC_SUBST(GST_CFLAGS) |
| AC_SUBST(GST_CXXFLAGS) |
| AC_SUBST(GST_OBJCFLAGS) |
| AC_SUBST(GST_LIBS) |
| GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" |
| GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" |
| GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" |
| AC_SUBST(GST_PLUGINS_BAD_CFLAGS) |
| AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS) |
| AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS) |
| |
| 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 GST_LIB_LDFLAGS |
| dnl linker flags shared by all libraries |
| dnl LDFLAGS modifier defining exported symbols from built libraries |
| dnl (export _gst_foo but not __gst_foo) |
| GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*" |
| AC_SUBST(GST_LIB_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" |
| AC_SUBST(GST_PLUGIN_LDFLAGS) |
| |
| dnl *** output files *** |
| |
| $MKDIR_P tests/check/orc |
| |
| dnl po/Makefile.in |
| |
| AC_CONFIG_FILES( |
| Makefile |
| common/Makefile |
| common/m4/Makefile |
| gst-plugins-bad.spec |
| gst/Makefile |
| gst/accurip/Makefile |
| gst/adpcmdec/Makefile |
| gst/adpcmenc/Makefile |
| gst/aiff/Makefile |
| gst/videoframe_audiolevel/Makefile |
| gst/asfmux/Makefile |
| gst/audiofxbad/Makefile |
| gst/audiomixer/Makefile |
| gst/audiovisualizers/Makefile |
| gst/autoconvert/Makefile |
| gst/bayer/Makefile |
| gst/camerabin2/Makefile |
| gst/cdxaparse/Makefile |
| gst/coloreffects/Makefile |
| gst/dataurisrc/Makefile |
| gst/dccp/Makefile |
| gst/debugutils/Makefile |
| gst/dvbsuboverlay/Makefile |
| gst/dvdspu/Makefile |
| gst/faceoverlay/Makefile |
| gst/festival/Makefile |
| gst/fieldanalysis/Makefile |
| gst/freeverb/Makefile |
| gst/frei0r/Makefile |
| gst/gaudieffects/Makefile |
| gst/geometrictransform/Makefile |
| gst/gdp/Makefile |
| gst/hdvparse/Makefile |
| gst/id3tag/Makefile |
| gst/inter/Makefile |
| gst/interlace/Makefile |
| gst/ivfparse/Makefile |
| gst/ivtc/Makefile |
| gst/jp2kdecimator/Makefile |
| gst/jpegformat/Makefile |
| gst/librfb/Makefile |
| gst/midi/Makefile |
| gst/mpegdemux/Makefile |
| gst/mpegtsdemux/Makefile |
| gst/mpegtsmux/Makefile |
| gst/mpegtsmux/tsmux/Makefile |
| gst/mpegpsmux/Makefile |
| gst/mve/Makefile |
| gst/mxf/Makefile |
| gst/netsim/Makefile |
| gst/nuvdemux/Makefile |
| gst/onvif/Makefile |
| gst/patchdetect/Makefile |
| gst/pcapparse/Makefile |
| gst/pnm/Makefile |
| gst/rawparse/Makefile |
| gst/removesilence/Makefile |
| gst/sdi/Makefile |
| gst/sdp/Makefile |
| gst/segmentclip/Makefile |
| gst/siren/Makefile |
| gst/smooth/Makefile |
| gst/speed/Makefile |
| gst/subenc/Makefile |
| gst/stereo/Makefile |
| gst/tta/Makefile |
| gst/videofilters/Makefile |
| gst/videomeasure/Makefile |
| gst/videoparsers/Makefile |
| gst/videosignal/Makefile |
| gst/vmnc/Makefile |
| gst/y4m/Makefile |
| gst/yadif/Makefile |
| gst/compositor/Makefile |
| gst-libs/Makefile |
| gst-libs/gst/Makefile |
| gst-libs/gst/adaptivedemux/Makefile |
| gst-libs/gst/basecamerabinsrc/Makefile |
| gst-libs/gst/gl/Makefile |
| gst-libs/gst/gl/android/Makefile |
| gst-libs/gst/gl/cocoa/Makefile |
| gst-libs/gst/gl/dispmanx/Makefile |
| gst-libs/gst/gl/glprototypes/Makefile |
| gst-libs/gst/gl/eagl/Makefile |
| gst-libs/gst/gl/egl/Makefile |
| gst-libs/gst/gl/wayland/Makefile |
| gst-libs/gst/gl/win32/Makefile |
| gst-libs/gst/gl/x11/Makefile |
| gst-libs/gst/insertbin/Makefile |
| gst-libs/gst/interfaces/Makefile |
| gst-libs/gst/codecparsers/Makefile |
| gst-libs/gst/mpegts/Makefile |
| gst-libs/gst/uridownloader/Makefile |
| gst-libs/gst/wayland/Makefile |
| gst-libs/gst/base/Makefile |
| gst-libs/gst/player/Makefile |
| gst-libs/gst/video/Makefile |
| gst-libs/gst/audio/Makefile |
| sys/Makefile |
| sys/dshowdecwrapper/Makefile |
| sys/acmenc/Makefile |
| sys/acmmp3dec/Makefile |
| sys/androidmedia/Makefile |
| sys/applemedia/Makefile |
| sys/applemedia-nonpublic/Makefile |
| sys/avc/Makefile |
| sys/bluez/Makefile |
| sys/d3dvideosink/Makefile |
| sys/decklink/Makefile |
| sys/directsound/Makefile |
| sys/dshowsrcwrapper/Makefile |
| sys/dshowvideosink/Makefile |
| sys/dvb/Makefile |
| sys/fbdev/Makefile |
| sys/linsys/Makefile |
| sys/nvenc/Makefile |
| sys/opensles/Makefile |
| sys/shm/Makefile |
| sys/tinyalsa/Makefile |
| sys/uvch264/Makefile |
| sys/vcd/Makefile |
| sys/vdpau/Makefile |
| sys/pvr2d/Makefile |
| sys/wasapi/Makefile |
| sys/wininet/Makefile |
| sys/winks/Makefile |
| sys/winscreencap/Makefile |
| tests/Makefile |
| tests/check/Makefile |
| tests/files/Makefile |
| tests/examples/Makefile |
| tests/examples/avsamplesink/Makefile |
| tests/examples/camerabin2/Makefile |
| tests/examples/codecparsers/Makefile |
| tests/examples/directfb/Makefile |
| tests/examples/gl/Makefile |
| tests/examples/gl/cocoa/Makefile |
| tests/examples/gl/clutter/Makefile |
| tests/examples/gl/generic/Makefile |
| tests/examples/gl/generic/cube/Makefile |
| tests/examples/gl/generic/cubeyuv/Makefile |
| tests/examples/gl/generic/doublecube/Makefile |
| tests/examples/gl/generic/recordgraphic/Makefile |
| tests/examples/gl/gtk/Makefile |
| tests/examples/gl/gtk/gtkvideooverlay/Makefile |
| tests/examples/gl/gtk/3dvideo/Makefile |
| tests/examples/gl/gtk/filternovideooverlay/Makefile |
| tests/examples/gl/gtk/filtervideooverlay/Makefile |
| tests/examples/gl/gtk/fxtest/Makefile |
| tests/examples/gl/gtk/switchvideooverlay/Makefile |
| tests/examples/gl/qt/Makefile |
| tests/examples/gl/sdl/Makefile |
| tests/examples/gtk/Makefile |
| tests/examples/mpegts/Makefile |
| tests/examples/mxf/Makefile |
| tests/examples/opencv/Makefile |
| tests/examples/uvch264/Makefile |
| tests/examples/waylandsink/Makefile |
| tests/icles/Makefile |
| ext/voamrwbenc/Makefile |
| ext/voaacenc/Makefile |
| ext/assrender/Makefile |
| ext/apexsink/Makefile |
| ext/bs2b/Makefile |
| ext/bz2/Makefile |
| ext/chromaprint/Makefile |
| ext/curl/Makefile |
| ext/dash/Makefile |
| ext/dc1394/Makefile |
| ext/directfb/Makefile |
| ext/wayland/Makefile |
| ext/daala/Makefile |
| ext/dts/Makefile |
| ext/gl/Makefile |
| ext/gtk/Makefile |
| ext/faac/Makefile |
| ext/faad/Makefile |
| ext/flite/Makefile |
| ext/fluidsynth/Makefile |
| ext/gsm/Makefile |
| ext/hls/Makefile |
| ext/kate/Makefile |
| ext/ladspa/Makefile |
| ext/lv2/Makefile |
| ext/libde265/Makefile |
| ext/libmms/Makefile |
| ext/libvisual/Makefile |
| ext/Makefile |
| ext/modplug/Makefile |
| ext/mpeg2enc/Makefile |
| ext/mimic/Makefile |
| ext/mplex/Makefile |
| ext/musepack/Makefile |
| ext/nas/Makefile |
| ext/neon/Makefile |
| ext/ofa/Makefile |
| ext/openal/Makefile |
| ext/opencv/Makefile |
| ext/openexr/Makefile |
| ext/openh264/Makefile |
| ext/openjpeg/Makefile |
| ext/openni2/Makefile |
| ext/opus/Makefile |
| ext/qt/Makefile |
| ext/rsvg/Makefile |
| ext/resindvd/Makefile |
| ext/rtmp/Makefile |
| ext/sbc/Makefile |
| ext/schroedinger/Makefile |
| ext/sdl/Makefile |
| ext/smoothstreaming/Makefile |
| ext/sndfile/Makefile |
| ext/soundtouch/Makefile |
| ext/spandsp/Makefile |
| ext/sndio/Makefile |
| ext/srtp/Makefile |
| ext/teletextdec/Makefile |
| ext/gme/Makefile |
| ext/spc/Makefile |
| ext/timidity/Makefile |
| ext/vulkan/Makefile |
| ext/vulkan/xcb/Makefile |
| ext/webp/Makefile |
| ext/x265/Makefile |
| ext/xvid/Makefile |
| ext/zbar/Makefile |
| ext/dtls/Makefile |
| po/Makefile.in |
| docs/Makefile |
| docs/plugins/Makefile |
| docs/libs/Makefile |
| docs/version.entities |
| pkgconfig/Makefile |
| pkgconfig/gstreamer-plugins-bad.pc |
| pkgconfig/gstreamer-plugins-bad-uninstalled.pc |
| pkgconfig/gstreamer-codecparsers.pc |
| pkgconfig/gstreamer-codecparsers-uninstalled.pc |
| pkgconfig/gstreamer-insertbin.pc |
| pkgconfig/gstreamer-insertbin-uninstalled.pc |
| pkgconfig/gstreamer-gl.pc |
| pkgconfig/gstreamer-gl-uninstalled.pc |
| pkgconfig/gstreamer-mpegts.pc |
| pkgconfig/gstreamer-mpegts-uninstalled.pc |
| pkgconfig/gstreamer-player.pc |
| pkgconfig/gstreamer-player-uninstalled.pc |
| pkgconfig/gstreamer-wayland.pc |
| pkgconfig/gstreamer-wayland-uninstalled.pc |
| pkgconfig/gstreamer-bad-base.pc |
| pkgconfig/gstreamer-bad-base-uninstalled.pc |
| pkgconfig/gstreamer-bad-video.pc |
| pkgconfig/gstreamer-bad-video-uninstalled.pc |
| pkgconfig/gstreamer-bad-audio.pc |
| pkgconfig/gstreamer-bad-audio-uninstalled.pc |
| tools/Makefile |
| m4/Makefile |
| ) |
| |
| 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"/' \ |
| -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_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/.* 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\"/" \ |
| -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \ |
| -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \ |
| -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \ |
| -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \ |
| config.h.in >win32/common/config.h-new |
| |
| AC_OUTPUT |
| |
| AG_GST_OUTPUT_PLUGINS |
| ORC_OUTPUT |
| |