3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.9.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 901, 0, 901)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 if test "x$HAVE_PTHREAD_H" != "xyes"; then
168 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
171 dnl *** checks for types/defines ***
173 dnl Check for FIONREAD ioctl declaration
177 dnl *** checks for structures ***
179 dnl *** checks for compiler characteristics ***
181 dnl *** checks for library functions ***
182 AC_CHECK_FUNCS([gmtime_r])
184 dnl *** checks for headers ***
185 AC_CHECK_HEADERS([sys/utsname.h])
187 dnl *** checks for dependency libraries ***
189 dnl *** checks for socket and nsl libraries ***
190 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
191 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
195 AG_GST_GLIB_CHECK([$GLIB_REQ])
197 dnl checks for gstreamer
198 dnl uninstalled is selected preferentially -- see pkg-config(1)
199 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
202 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
203 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
204 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
206 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
208 dnl check for uninstalled plugin directories for unit tests
209 AG_GST_CHECK_UNINSTALLED_SETUP([
210 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
211 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
212 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
215 dnl Check for documentation xrefs
216 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
217 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
218 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
219 AC_SUBST(GLIB_PREFIX)
221 AC_SUBST(GSTPB_PREFIX)
223 dnl GTK is optional and used in examples
227 if test "x$BUILD_EXAMPLES" = "xyes"; then
228 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
230 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
232 2.0) GTK_REQ=$GTK2_REQ ;;
233 3.0) GTK_REQ=$GTK3_REQ ;;
234 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
238 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
239 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
243 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
245 dnl Check for -Bsymbolic-functions linker flag used to avoid
246 dnl intra-library PLT jumps, if available.
247 AC_ARG_ENABLE(Bsymbolic,
248 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
249 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
250 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
251 LDFLAGS=-Wl,-Bsymbolic-functions
253 AC_TRY_LINK([], [return 0],
255 enable_Bsymbolic=yes,
258 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
260 dnl *** set variables based on configure arguments ***
262 dnl GTK is optional and used in examples
264 if test "x$BUILD_EXAMPLES" = "xyes"; then
265 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
266 if test "x$HAVE_GTK3" = "xyes"; then
268 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
269 AC_SUBST(GTK_VERSION)
270 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
271 AC_SUBST(GTK_BASE_DIR)
275 AC_SUBST(GTK3_CFLAGS)
277 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
279 dnl clutter is optional and used in examples
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
285 AC_SUBST(CLUTTER_LIBS)
286 AC_SUBST(CLUTTER_CFLAGS)
287 AC_SUBST(HAVE_CLUTTER)
289 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
290 AC_SUBST(CLUTTER_GLX_LIBS)
291 AC_SUBST(CLUTTER_GLX_CFLAGS)
292 AC_SUBST(HAVE_CLUTTER_GLX)
294 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
295 AC_SUBST(CLUTTER_X11_LIBS)
296 AC_SUBST(CLUTTER_X11_CFLAGS)
297 AC_SUBST(HAVE_CLUTTER_X11)
299 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
300 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
301 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
303 dnl used in the gl/clutteractor example
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
306 AC_SUBST(XCOMPOSITE_CFLAGS)
307 AC_SUBST(XCOMPOSITE_LIBS)
309 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
311 dnl graphene-1.0 is optional and used in gltransformation
313 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
314 if test "x$HAVE_GRAPHENE" = "xyes"; then
315 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
317 AC_SUBST(HAVE_GRAPHENE)
318 AC_SUBST(GRAPHENE_LIBS)
319 AC_SUBST(GRAPHENE_CFLAGS)
320 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
323 dnl sdl is optional and used in examples
325 if test "x$BUILD_EXAMPLES" = "xyes"; then
326 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
329 AC_SUBST(SDL_CLUTTER)
331 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
334 dnl Needed for GtkBuilder to autoconnect signals
335 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
337 dnl Needed by plugins that use g_module_*() API
338 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
340 dnl x11 is optional for librfb
342 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
346 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
347 if test "x$HAVE_X11" = "xyes"; then
348 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
351 dnl exif (used on jifmux tests) ****
352 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
354 AC_SUBST(EXIF_CFLAGS)
355 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
360 dnl set license and copyright notice
362 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
363 AC_SUBST(GST_LICENSE)
365 dnl define LIBDIR so we can inform people where we live
366 AS_AC_EXPAND(LIBDIR, $libdir)
367 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
369 dnl set location of plugin directory
372 dnl set release date/time
373 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
374 ["${srcdir}/gst-plugins-bad.doap"],
375 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
377 dnl build static plugins or not
378 AC_MSG_CHECKING([whether to build static plugins or not])
382 [--enable-static-plugins],
383 [build static plugins @<:@default=no@:>@]),
385 [$enableval], [no], [], [yes], [],
386 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
387 [enable_static_plugins=no])
388 AC_MSG_RESULT([$enable_static_plugins])
389 if test "x$enable_static_plugins" = xyes; then
390 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
391 [Define if static plugins should be built])
392 GST_PLUGIN_LIBTOOLFLAGS=""
394 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
396 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
397 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
399 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
400 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
401 if test x$enable_static = xyes -a x$enable_shared = xno; then
402 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
405 AC_ARG_WITH([player-tests],
406 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
407 if test x$with_player_tests = xyes; then
408 AC_PATH_PROG([WGET], [wget], no)
409 if test x$WGET = xno; then
410 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
414 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
416 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
417 dnl make sure it doesn't complain about unused variables if debugging is disabled
419 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
421 dnl define an ERROR_CFLAGS Makefile variable
422 dnl -Waggregate-return - libexif returns aggregates
423 dnl -Wundef - Windows headers check _MSC_VER unconditionally
424 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
425 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
426 -Wwrite-strings -Wformat-security -Wold-style-definition
427 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
428 -Wnested-externs $NO_WARNINGS])
430 dnl define an ERROR_CXXFLAGS Makefile variable
431 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
432 -Wmissing-declarations -Wredundant-decls
433 -Wwrite-strings -Wformat-nonliteral -Wformat-security
434 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
436 dnl define an ERROR_OBJCFLAGS Makefile variable
437 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
438 -Wmissing-declarations -Wredundant-decls
439 -Wwrite-strings -Wformat-nonliteral -Wformat-security
440 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
442 dnl define correct level for debugging messages
443 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
446 AG_GST_DEFAULT_ELEMENTS
448 dnl *** plug-ins to include ***
449 dnl Non ported plugins (non-dependant, then dependant)
450 dnl Make sure you have a space before and after all plugins
451 GST_PLUGINS_NONPORTED=" cdxaparse \
462 xvid sndio libvisual"
464 AC_SUBST(GST_PLUGINS_NONPORTED)
466 dnl these are all the gst plug-ins, compilable without additional libs
467 AG_GST_CHECK_PLUGIN(accurip)
468 AG_GST_CHECK_PLUGIN(adpcmdec)
469 AG_GST_CHECK_PLUGIN(adpcmenc)
470 AG_GST_CHECK_PLUGIN(aiff)
471 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
472 AG_GST_CHECK_PLUGIN(asfmux)
473 AG_GST_CHECK_PLUGIN(audiofxbad)
474 AG_GST_CHECK_PLUGIN(audiomixer)
475 AG_GST_CHECK_PLUGIN(compositor)
476 AG_GST_CHECK_PLUGIN(audiovisualizers)
477 AG_GST_CHECK_PLUGIN(autoconvert)
478 AG_GST_CHECK_PLUGIN(bayer)
479 AG_GST_CHECK_PLUGIN(camerabin2)
480 AG_GST_CHECK_PLUGIN(cdxaparse)
481 AG_GST_CHECK_PLUGIN(coloreffects)
482 AG_GST_CHECK_PLUGIN(dataurisrc)
483 AG_GST_CHECK_PLUGIN(dccp)
484 AG_GST_CHECK_PLUGIN(debugutils)
485 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
486 AG_GST_CHECK_PLUGIN(dvdspu)
487 AG_GST_CHECK_PLUGIN(faceoverlay)
488 AG_GST_CHECK_PLUGIN(festival)
489 AG_GST_CHECK_PLUGIN(fieldanalysis)
490 AG_GST_CHECK_PLUGIN(freeverb)
491 AG_GST_CHECK_PLUGIN(frei0r)
492 AG_GST_CHECK_PLUGIN(gaudieffects)
493 AG_GST_CHECK_PLUGIN(geometrictransform)
494 AG_GST_CHECK_PLUGIN(gdp)
495 AG_GST_CHECK_PLUGIN(hdvparse)
496 AG_GST_CHECK_PLUGIN(id3tag)
497 AG_GST_CHECK_PLUGIN(inter)
498 AG_GST_CHECK_PLUGIN(interlace)
499 AG_GST_CHECK_PLUGIN(ivfparse)
500 AG_GST_CHECK_PLUGIN(ivtc)
501 AG_GST_CHECK_PLUGIN(jp2kdecimator)
502 AG_GST_CHECK_PLUGIN(jpegformat)
503 AG_GST_CHECK_PLUGIN(librfb)
504 AG_GST_CHECK_PLUGIN(midi)
505 AG_GST_CHECK_PLUGIN(mpegdemux)
506 AG_GST_CHECK_PLUGIN(mpegtsdemux)
507 AG_GST_CHECK_PLUGIN(mpegtsmux)
508 AG_GST_CHECK_PLUGIN(mpegpsmux)
509 AG_GST_CHECK_PLUGIN(mve)
510 AG_GST_CHECK_PLUGIN(mxf)
511 AG_GST_CHECK_PLUGIN(netsim)
512 AG_GST_CHECK_PLUGIN(nuvdemux)
513 AG_GST_CHECK_PLUGIN(onvif)
514 AG_GST_CHECK_PLUGIN(patchdetect)
515 AG_GST_CHECK_PLUGIN(pcapparse)
516 AG_GST_CHECK_PLUGIN(pnm)
517 AG_GST_CHECK_PLUGIN(rawparse)
518 AG_GST_CHECK_PLUGIN(removesilence)
519 AG_GST_CHECK_PLUGIN(sdi)
520 AG_GST_CHECK_PLUGIN(sdp)
521 AG_GST_CHECK_PLUGIN(segmentclip)
522 AG_GST_CHECK_PLUGIN(siren)
523 AG_GST_CHECK_PLUGIN(smooth)
524 AG_GST_CHECK_PLUGIN(speed)
525 AG_GST_CHECK_PLUGIN(subenc)
526 AG_GST_CHECK_PLUGIN(stereo)
527 AG_GST_CHECK_PLUGIN(tta)
528 AG_GST_CHECK_PLUGIN(videofilters)
529 AG_GST_CHECK_PLUGIN(videomeasure)
530 AG_GST_CHECK_PLUGIN(videoparsers)
531 AG_GST_CHECK_PLUGIN(videosignal)
532 AG_GST_CHECK_PLUGIN(vmnc)
533 AG_GST_CHECK_PLUGIN(y4m)
534 AG_GST_CHECK_PLUGIN(yadif)
536 dnl *** plug-ins to exclude ***
538 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
539 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
540 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
542 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
544 LIBS="$LIBS -framework VideoToolbox"
545 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
546 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
552 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
553 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
554 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
557 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
558 if test "x$HAVE_IOS" = "xyes"; then
559 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
562 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
563 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
564 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
567 dnl disable gst plugins we might not be able to build on this
568 dnl platform: (ugly but minimally invasive)
569 dnl FIXME: maybe move to sys, or make work with winsock2
570 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
571 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
573 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
574 WINSOCK2_LIBS="-lws2_32"
575 AC_SUBST(WINSOCK2_LIBS)
578 if test "x$HAVE_PTHREAD_H" = "xyes"; then
579 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
582 AG_GST_DISABLE_PLUGIN(dccp)
586 AC_ARG_ENABLE([opengl],
587 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
588 [case "${enableval}" in
591 auto) NEED_GL=auto ;;
592 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
593 esac],[NEED_GL=auto])
595 AC_ARG_WITH([opengl-module-name],
596 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
597 if test x$with_opengl_module_name != x; then
598 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
601 AC_ARG_ENABLE([gles2],
602 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
603 [case "${enableval}" in
604 yes) NEED_GLES2=yes ;;
606 auto) NEED_GLES2=auto ;;
607 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
608 esac],[NEED_GLES2=auto])
610 AC_ARG_WITH([gles2-module-name],
611 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
612 if test x$with_gles2_module_name != x; then
613 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
617 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
618 [case "${enableval}" in
621 auto) NEED_EGL=auto ;;
622 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
623 esac],[NEED_EGL=auto])
625 AC_ARG_WITH([egl-module-name],
626 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
627 if test x$with_egl_module_name != x; then
628 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
632 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
633 [case "${enableval}" in
636 auto) NEED_WGL=auto ;;
637 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
638 esac],[NEED_WGL=auto])
641 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
642 [case "${enableval}" in
645 auto) NEED_GLX=auto ;;
646 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
647 esac],[NEED_GLX=auto])
649 AC_ARG_ENABLE([cocoa],
650 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
651 [case "${enableval}" in
652 yes) NEED_COCOA=yes ;;
654 auto) NEED_COCOA=auto ;;
655 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
656 esac],[NEED_COCOA=auto])
659 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
660 [case "${enableval}" in
663 auto) NEED_X11=auto ;;
664 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
665 esac],[NEED_X11=auto])
667 AC_ARG_ENABLE([wayland],
668 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
669 [case "${enableval}" in
670 yes) NEED_WAYLAND_EGL=yes ;;
671 no) NEED_WAYLAND_EGL=no ;;
672 auto) NEED_WAYLAND_EGL=auto ;;
673 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
674 esac],[NEED_WAYLAND_EGL=auto])
676 AC_ARG_ENABLE([dispmanx],
677 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
678 [case "${enableval}" in
679 yes) NEED_DISPMANX=yes ;;
680 no) NEED_DISPMANX=no ;;
681 auto) NEED_DISPMANX=auto ;;
682 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
683 esac],[NEED_DISPMANX=auto])
685 AG_GST_PKG_CHECK_MODULES(X, x11)
686 save_CPPFLAGS="$CPPFLAGS"
699 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
700 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
701 if test "x$HAVE_WGLEXT" = "xyes"; then
707 if test "x$NEED_GL" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(GL, gl)
709 if test "x$HAVE_GL" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
713 if test "x$NEED_GLES2" != "xno"; then
714 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
715 if test "x$HAVE_GLES2" != "xyes"; then
716 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
718 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
720 if test "x$NEED_EGL" != "xno"; then
721 AG_GST_PKG_CHECK_MODULES(EGL, egl)
722 if test "x$HAVE_EGL" != "xyes"; then
723 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
730 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
731 AC_CHECK_HEADER([EGL/fbdev_window.h],
734 AC_CHECK_LIB([Mali], [mali_image_create],
737 AC_CHECK_LIB([GLESv2], [glEnable],
739 AC_CHECK_HEADER([GLES2/gl2.h],
741 AC_CHECK_LIB([EGL], [eglGetProcAddress],
743 AC_CHECK_HEADER([EGL/egl.h],
747 EGL_LIBS="-lMali -lUMP"
749 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
757 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
758 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
759 LIBS="$LIBS -lvcos -lvchiq_arm"
760 AC_CHECK_LIB([bcm_host], [bcm_host_init],
762 LIBS="$LIBS -lbcm_host"
763 AC_CHECK_HEADER(bcm_host.h,
765 LIBS="$LIBS -lGLESv2"
766 AC_CHECK_LIB([EGL], [eglGetProcAddress],
769 AC_CHECK_HEADER([EGL/egl.h],
771 AC_CHECK_LIB([GLESv2], [glEnable],
773 AC_CHECK_HEADER([GLES2/gl2.h],
778 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
780 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
791 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)
795 CPPFLAGS="$save_CPPFLAGS"
809 dnl Check for what the user asked for and what we could find
810 if test "x$HAVE_EGL" = "xno"; then
811 if test "x$NEED_EGL" = "xyes"; then
812 AC_MSG_ERROR([Could not find the required EGL libraries])
816 if test "x$HAVE_GL" = "xno"; then
817 if test "x$NEED_GL" = "xyes"; then
818 AC_MSG_ERROR([Could not find the required OpenGL libraries])
822 if test "x$HAVE_GLES2" = "xno"; then
823 if test "x$NEED_GLES2" = "xyes"; then
824 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
828 dnl X, GLX and OpenGL
829 if test "x$HAVE_X" = "xno"; then
830 if test "x$NEED_GLX" = "xyes"; then
831 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
833 if test "x$NEED_X11" = "xyes"; then
834 AC_MSG_ERROR([Could not find X11 development libraries])
837 if test "x$NEED_GL" != "xno"; then
838 if test "x$HAVE_GL" = "xno"; then
839 if test "x$NEED_GLX" = "xyes"; then
840 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
844 if test "x$NEED_GLX" != "xno"; then
851 dnl check for DMABUF support
852 HAVE_DRM_FOURCC_HEADER=no
853 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
854 HAVE_DRM_FOURCC_HEADER=yes, )
856 HAVE_GST_ALLOCATORS=no
857 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
858 HAVE_GST_ALLOCATORS=yes, )
861 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
862 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
863 "x$HAVE_EGL" = "xyes"; then
867 dnl check if we can include both GL and GLES2 at the same time
868 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
870 if test "x$HAVE_GLES3_H" == "xyes"; then
875 # pragma GCC diagnostic push
876 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
878 #ifndef GL_GLEXT_PROTOTYPES
879 #define GL_GLEXT_PROTOTYPES 1
882 # include <OpenGLES/ES2/gl.h>
883 # include <OpenGLES/ES2/glext.h>
886 # include <GLES3/gl3.h>
887 # include <GLES3/gl3ext.h>
889 # include <GLES2/gl2.h>
890 # include <GLES2/gl2ext.h>
894 # include <OpenGL/OpenGL.h>
895 # include <OpenGL/gl.h>
896 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
897 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
898 # include <OpenGL/gl3.h>
902 # if __WIN32__ || _WIN32
903 # include <GL/glext.h>
906 int main (int argc, char **argv) { return 0; }
908 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
909 save_CFLAGS="$CFLAGS"
910 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
911 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
912 #if !defined(GL_FALSE)
913 #error Failed to include GL headers
915 ]])],[ AC_MSG_RESULT(yes)
917 if test "x$NEED_GLES2" = "xyes"; then
918 if test "x$NEED_GL" = "xyes"; then
919 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
921 AC_MSG_WARN([Disabling Desktop GL support])
925 AC_MSG_WARN([Disabling GL|ES 2.0 support])
930 CFLAGS="$save_CFLAGS"
933 #dnl Check for OpenGL
937 if test "x$NEED_WGL" = "xyes"; then
938 AC_MSG_ERROR([WGL is not available on Android])
940 if test "x$NEED_GLX" = "xyes"; then
941 AC_MSG_ERROR([GLX is not available on Android])
943 if test "x$NEED_GL" = "xyes"; then
944 AC_MSG_ERROR([GL is not available on Android])
946 if test "x$NEED_X11" = "xyes"; then
947 AC_MSG_ERROR([X11 is not available on Android])
949 if test "x$NEED_COCOA" = "xyes"; then
950 AC_MSG_ERROR([Cocoa is not available on Android])
954 if test "x$HAVE_GLES2" = "xyes"; then
955 if test "x$NEED_GLES2" != "xno"; then
956 GL_LIBS="$GL_LIBS -lGLESv2"
962 if test "x$HAVE_EGL" = "xyes"; then
963 if test "x$NEED_EGL" != "xno"; then
964 GL_LIBS="$GL_LIBS -lEGL"
969 if test "x$USE_EGL" != "xyes"; then
970 AC_MSG_ERROR([Need EGL on Android])
973 if test "x$USE_GLES2" != "xyes"; then
974 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
977 HAVE_WINDOW_ANDROID=yes
979 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
980 if test "x$NEED_WGL" = "xyes"; then
981 AC_MSG_ERROR([WGL is not available on unix])
984 if test "x$HAVE_X" = "xno"; then
985 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
986 AC_MSG_WARN([X or Wayland is required for OpenGL support])
990 dnl check Desktop OpenGL
991 if test "x$HAVE_GL" = "xyes"; then
992 if test "x$NEED_GL" != "xno"; then
993 GL_LIBS="$GL_LIBS -lGL"
998 if test "x$HAVE_GLES2" = "xyes"; then
999 if test "x$NEED_GLES2" != "xno"; then
1000 GL_LIBS="$GL_LIBS -lGLESv2"
1005 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1006 if test "x$NEED_X11" != "xno"; then
1007 GL_LIBS="$GL_LIBS $X_LIBS"
1008 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1013 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1014 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1015 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1017 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1018 HAVE_WINDOW_WAYLAND=yes
1019 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1020 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1025 if test "x$HAVE_EGL_RPI" = "xyes"; then
1026 if test "x$NEED_DISPMANX" != "xno"; then
1027 HAVE_WINDOW_DISPMANX=yes
1033 if test "x$HAVE_EGL" = "xno"; then
1034 if test "x$HAVE_GL" = "xno"; then
1035 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1038 if test "x$NEED_EGL" != "xno"; then
1039 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1040 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1041 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1048 if test "x$HAVE_IOS" = "xyes"; then
1049 if test "x$NEED_WGL" = "xyes"; then
1050 AC_MSG_ERROR([WGL is not available on iOS])
1052 if test "x$NEED_GLX" = "xyes"; then
1053 AC_MSG_ERROR([GLX is not available on iOS])
1055 if test "x$NEED_GL" = "xyes"; then
1056 AC_MSG_ERROR([GL is not available on iOS])
1058 if test "x$NEED_X11" = "xyes"; then
1059 AC_MSG_ERROR([X11 is not available on iOS])
1061 if test "x$NEED_COCOA" = "xyes"; then
1062 AC_MSG_ERROR([Cocoa is not available on iOS])
1064 if test "x$NEED_EGL" = "xyes"; then
1065 AC_MSG_ERROR([EGL is not available on iOS])
1068 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1069 GL_CFLAGS="$GL_CFLAGS"
1072 HAVE_WINDOW_EAGL=yes
1074 ac_cv_type_GLsizeiptr=yes
1075 ac_cv_type_GLintptr=yes
1076 ac_cv_type_GLchar=yes
1078 dnl Only osx supports cocoa.
1079 if test "x$NEED_WGL" = "xyes"; then
1080 AC_MSG_ERROR([WGL is not available on Mac OS X])
1083 if test "x$NEED_COCOA" != "xno"; then
1084 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1085 GL_CFLAGS="$GL_CFLAGS"
1087 HAVE_WINDOW_COCOA=yes
1091 if test "x$USE_GLX" = "xyes"; then
1092 if test "x$HAVE_X" = "xyes"; then
1093 if test "x$NEED_X11" != "xno"; then
1094 GL_LIBS="$GL_LIBS $X_LIBS"
1095 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1100 if test "x$HAVE_GL" = "xyes"; then
1101 if test "x$NEED_GL" != "xno"; then
1102 GL_LIBS="$GL_LIBS -lGL"
1108 if test "x$HAVE_EGL" = "xyes"; then
1109 if test "x$NEED_EGL" != "xno"; then
1110 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1111 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1112 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1119 if test "x$HAVE_GLES2" = "xyes"; then
1120 if test "x$NEED_GLES2" != "xno"; then
1121 GL_LIBS="$GL_LIBS -lGLESv2"
1128 if test "x$NEED_GLX" = "xyes"; then
1129 AC_MSG_ERROR([GLX is not available on Windows])
1131 if test "x$NEED_GLES2" = "xyes"; then
1132 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1135 if test "x$HAVE_GL" = "xyes"; then
1136 if test "x$NEED_GL" != "xno"; then
1137 if test "x$HAVE_WGL" = "xyes"; then
1138 if test "$NEED_WGL" != "xno"; then
1139 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1140 HAVE_WINDOW_WIN32=yes
1149 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1160 GST_GL_HAVE_OPENGL=0
1164 if test "x$USE_OPENGL" = "xyes"; then
1165 GL_APIS="gl $GL_APIS"
1166 GST_GL_HAVE_OPENGL=1
1168 if test "x$USE_GLES2" = "xyes"; then
1169 GL_APIS="gles2 $GL_APIS"
1171 if test "x$HAVE_GLES3_H" = "xyes"; then
1176 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1177 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1178 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1179 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1184 GST_GL_HAVE_WINDOW_X11=0
1185 GST_GL_HAVE_WINDOW_COCOA=0
1186 GST_GL_HAVE_WINDOW_WIN32=0
1187 GST_GL_HAVE_WINDOW_WAYLAND=0
1188 GST_GL_HAVE_WINDOW_ANDROID=0
1189 GST_GL_HAVE_WINDOW_DISPMANX=0
1190 GST_GL_HAVE_WINDOW_EAGL=0
1192 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1193 GL_WINDOWS="x11 $GL_WINDOWS"
1194 GST_GL_HAVE_WINDOW_X11=1
1196 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1197 GL_WINDOWS="cocoa $GL_WINDOWS"
1198 GST_GL_HAVE_WINDOW_COCOA=1
1200 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1201 GL_WINDOWS="win32 $GL_WINDOWS"
1202 GST_GL_HAVE_WINDOW_WIN32=1
1204 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1205 GL_WINDOWS="wayland $GL_WINDOWS"
1206 GST_GL_HAVE_WINDOW_WAYLAND=1
1208 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1209 GL_WINDOWS="android $GL_WINDOWS"
1210 GST_GL_HAVE_WINDOW_ANDROID=1
1212 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1213 GL_WINDOWS="dispmanx $GL_WINDOWS"
1214 GST_GL_HAVE_WINDOW_DISPMANX=1
1216 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1217 GL_WINDOWS="eagl $GL_WINDOWS"
1218 GST_GL_HAVE_WINDOW_EAGL=1
1221 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1222 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1223 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1224 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1225 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1226 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1227 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1228 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1233 GST_GL_HAVE_PLATFORM_EGL=0
1234 GST_GL_HAVE_PLATFORM_GLX=0
1235 GST_GL_HAVE_PLATFORM_WGL=0
1236 GST_GL_HAVE_PLATFORM_CGL=0
1237 GST_GL_HAVE_PLATFORM_EAGL=0
1239 if test "x$USE_EGL" = "xyes"; then
1240 GL_PLATFORMS="egl $GL_PLATFORMS"
1241 GST_GL_HAVE_PLATFORM_EGL=1
1243 if test "x$USE_GLX" = "xyes"; then
1244 GL_PLATFORMS="glx $GL_PLATFORMS"
1245 GST_GL_HAVE_PLATFORM_GLX=1
1247 if test "x$USE_WGL" = "xyes"; then
1248 GL_PLATFORMS="wgl $GL_PLATFORMS"
1249 GST_GL_HAVE_PLATFORM_WGL=1
1251 if test "x$USE_COCOA" = "xyes"; then
1252 GL_PLATFORMS="cgl $GL_PLATFORMS"
1253 GST_GL_HAVE_PLATFORM_CGL=1
1255 if test "x$USE_EAGL" = "xyes"; then
1256 GL_PLATFORMS="eagl $GL_PLATFORMS"
1257 GST_GL_HAVE_PLATFORM_EAGL=1
1260 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1261 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1262 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1263 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1264 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1265 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1268 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1269 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1272 dnl Check for no platforms/window systems
1273 if test "x$GL_APIS" = "x"; then
1274 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1276 if test "x$GL_PLATFORMS" = "x"; then
1277 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1279 if test "x$GL_WINDOWS" = "x"; then
1280 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1283 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1298 HAVE_WINDOW_WIN32=no
1299 HAVE_WINDOW_DISPMANX=no
1300 HAVE_WINDOW_WAYLAND=no
1301 HAVE_WINDOW_ANDROID=no
1302 HAVE_WINDOW_COCOA=no
1308 AC_SUBST(GL_OBJCFLAGS)
1309 AC_SUBST(USE_OPENGL)
1312 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1313 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1314 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1315 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1316 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1317 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1318 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1320 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1321 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1322 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1323 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1324 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1325 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1326 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1327 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1328 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1330 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1332 dnl Check for some types that are not always present
1334 if test "x$USE_GLES2" = "xyes"; then
1335 GL_INCLUDES="$GL_INCLUDES
1336 #ifndef GL_GLEXT_PROTOTYPES
1337 #define GL_GLEXT_PROTOTYPES 1
1340 # include <OpenGLES/ES2/gl.h>
1341 # include <OpenGLES/ES2/glext.h>
1343 # if $GST_GL_HAVE_GLES3
1344 # include <GLES3/gl3.h>
1345 # include <GLES3/gl3ext.h>
1347 # include <GLES2/gl2.h>
1348 # include <GLES2/gl2ext.h>
1354 if test "x$USE_OPENGL" = "xyes"; then
1355 GL_INCLUDES="$GL_INCLUDES
1357 # include <OpenGL/OpenGL.h>
1358 # include <OpenGL/gl.h>
1361 # if __WIN32__ || _WIN32
1362 # include <GL/glext.h>
1368 GST_GL_HAVE_GLEGLIMAGEOES=0
1369 GST_GL_HAVE_GLCHAR=0
1370 GST_GL_HAVE_GLSIZEIPTR=0
1371 GST_GL_HAVE_GLINTPTR=0
1372 GST_GL_HAVE_GLSYNC=0
1373 GST_GL_HAVE_GLUINT64=0
1374 GST_GL_HAVE_GLINT64=0
1377 CFLAGS="$GL_CFLAGS $CFLAGS"
1379 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1380 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1381 GST_GL_HAVE_GLEGLIMAGEOES=1
1384 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1385 if test "x$ac_cv_type_GLchar" = "xyes"; then
1386 GST_GL_HAVE_GLCHAR=1
1389 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1390 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1391 GST_GL_HAVE_GLSIZEIPTR=1
1394 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1395 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1396 GST_GL_HAVE_GLINTPTR=1
1399 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1400 if test "x$ac_cv_type_GLsync" = "xyes"; then
1401 GST_GL_HAVE_GLSYNC=1
1404 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1405 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1406 GST_GL_HAVE_GLUINT64=1
1409 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1410 if test "x$ac_cv_type_GLint64" = "xyes"; then
1411 GST_GL_HAVE_GLINT64=1
1416 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1417 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1418 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1419 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1420 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1421 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1422 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1423 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1426 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1427 outfile=gstglconfig.h-tmp
1428 cat > $outfile <<\_______EOF
1431 * This is a generated file. Please modify `configure.ac'
1434 #ifndef __GST_GL_CONFIG_H__
1435 #define __GST_GL_CONFIG_H__
1437 #include <gst/gst.h>
1443 cat >>$outfile <<_______EOF
1447 cat >>$outfile <<_______EOF
1451 #endif /* __GST_GL_CONFIG_H__ */
1455 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1456 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1459 mv $outfile gst-libs/gst/gl/gstglconfig.h
1462 gl_config_defines='$GL_CONFIG_DEFINES'
1465 dnl libpng is optional
1466 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1467 if test "x$HAVE_PNG" = "xyes"; then
1468 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1471 AC_SUBST(LIBPNG_LIBS)
1472 AC_SUBST(LIBPNG_CFLAGS)
1473 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1475 dnl libjpeg is optional
1476 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1478 if test x$with_jpeg_mmx != x; then
1479 LIBS="$LIBS -L$with_jpeg_mmx"
1481 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1482 JPEG_LIBS="$LIBS -ljpeg-mmx"
1484 if test x$HAVE_JPEG != xyes; then
1486 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1489 if test x$HAVE_JPEG = xyes; then
1490 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1492 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1497 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1500 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1501 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1503 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1504 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1505 VULKAN_CONFIG_DEFINES="
1506 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1507 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1509 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1510 outfile=vkconfig.h-tmp
1511 cat > $outfile <<\_______EOF
1514 * This is a generated file. Please modify `configure.ac'
1517 #ifndef __GST_VULKAN_CONFIG_H__
1518 #define __GST_VULKAN_CONFIG_H__
1520 #include <gst/gst.h>
1526 cat >>$outfile <<_______EOF
1527 $vulkan_config_defines
1530 cat >>$outfile <<_______EOF
1534 #endif /* __GST_VULKAN_CONFIG_H__ */
1538 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1539 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1542 mv $outfile ext/vulkan/vkconfig.h
1545 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1548 dnl *** sys plug-ins ***
1551 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1552 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1553 HAVE_DIRECTSOUND="no"
1554 save_CFLAGS="$CFLAGS"
1555 save_LDFLAGS="$LDFLAGS"
1557 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1558 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1559 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1560 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1561 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1562 #include <windows.h>
1565 #include <mmsystem.h>
1567 DXGetErrorString9 (0);
1568 DirectSoundCreate(NULL, NULL, NULL);
1570 [HAVE_DIRECTSOUND="yes"],
1571 [HAVE_DIRECTSOUND="no"])
1572 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1574 LDFLAGS=$save_LDFLAGS
1577 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1578 dnl this is much more than we want
1579 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1580 AC_SUBST(DIRECTX_CFLAGS)
1581 AC_SUBST(DIRECTX_LDFLAGS)
1582 AC_SUBST(DIRECTSOUND_LIBS)
1584 AC_SUBST(HAVE_DIRECTSOUND)
1588 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1589 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1591 save_CFLAGS="$CFLAGS"
1592 save_LDFLAGS="$LDFLAGS"
1594 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1595 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1596 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1597 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1598 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1599 #include <windows.h>
1601 #include <mmsystem.h>
1602 #include <mmdeviceapi.h>
1608 hr = CoInitialize(NULL);
1610 printf("CoInitialize failed: hr = 0x%08x", hr);
1615 // result = do_everything(argc, argv);
1621 [HAVE_WASAPI="yes"],
1623 AC_MSG_RESULT($HAVE_WASAPI)
1625 LDFLAGS=$save_LDFLAGS
1628 if test "x$HAVE_WASAPI" = "xyes"; then
1629 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1630 AC_SUBST(WASAPI_LIBS)
1632 AC_SUBST(HAVE_WASAPI)
1636 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1637 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1639 save_CFLAGS="$CFLAGS"
1640 save_LDFLAGS="$LDFLAGS"
1642 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1643 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1644 LIBS="$LIBS -ld3d9 -lgdi32"
1645 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1646 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1647 #include <windows.h>
1650 Direct3DCreate9(D3D_SDK_VERSION);
1652 [HAVE_DIRECT3D="yes"],
1653 [HAVE_DIRECT3D="no"])
1654 AC_MSG_RESULT($HAVE_DIRECT3D)
1656 LDFLAGS=$save_LDFLAGS
1659 if test "x$HAVE_DIRECT3D" = "xyes"; then
1660 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1661 AC_SUBST(DIRECT3D_LIBS)
1663 AC_SUBST(HAVE_DIRECT3D)
1667 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1668 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1669 HAVE_WINSCREENCAP="no"
1670 save_CFLAGS="$CFLAGS"
1671 save_LDFLAGS="$LDFLAGS"
1673 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1674 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1675 LIBS="$LIBS -ld3d9 -lgdi32"
1676 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1677 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1678 #include <windows.h>
1681 Direct3DCreate9(D3D_SDK_VERSION);
1683 [HAVE_WINSCREENCAP="yes"],
1684 [HAVE_WINSCREENCAP="no"])
1685 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1687 LDFLAGS=$save_LDFLAGS
1690 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1691 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1692 AC_SUBST(WINSCREENCAP_LIBS)
1694 AC_SUBST(HAVE_WINSCREENCAP)
1698 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1699 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1701 save_CFLAGS="$CFLAGS"
1702 save_LDFLAGS="$LDFLAGS"
1704 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1705 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1706 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1707 AC_MSG_CHECKING(for Winks LDFLAGS)
1708 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1709 #include <windows.h>
1714 IGraphBuilder *pGraph = NULL;
1715 HRESULT hr = CoInitialize(NULL);
1716 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1717 &IID_IGraphBuilder, (void **)&pGraph);
1724 AC_MSG_RESULT($HAVE_WINKS)
1726 LDFLAGS=$save_LDFLAGS
1729 if test "x$HAVE_WINKS" = "xyes"; then
1730 dnl this is much more than we want
1731 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1732 AC_SUBST(DIRECTX_CFLAGS)
1733 AC_SUBST(DIRECTX_LDFLAGS)
1734 AC_SUBST(WINKS_LIBS)
1736 AC_SUBST(HAVE_WINKS)
1739 dnl *** Android Media ***
1740 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1741 HAVE_ANDROID_MEDIA="no"
1742 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1745 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1748 HAVE_ANDROID_MEDIA="no"
1753 dnl *** AppleMedia (OS X and iOS) ***
1754 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1755 HAVE_APPLE_MEDIA="no"
1756 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1757 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1758 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1759 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1760 if test "x$HAVE_IOS" = "xno"; then
1761 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1765 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1770 HAVE_APPLE_MEDIA="no"
1775 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1776 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1777 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1778 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1779 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1781 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1790 dnl *** OS/X AVCVideoServices ***
1791 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1793 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1795 save_CPPFLAGS="$CPPFLAGS"
1796 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1798 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1799 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1801 CPPFLAGS=$save_CPPFLAGS
1804 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1813 dnl check for shm_open (for shm plugin)
1814 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1815 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1816 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1818 *-darwin* | *-macos10*)
1819 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1826 AC_CHECK_LIB([rt], [shm_open],
1827 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1828 #include <sys/socket.h>
1831 AC_SUBST(SHM_LIBS, "-lrt")
1839 dnl check for Video CD
1840 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1841 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1842 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1845 dnl check for OpenSL ES
1846 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1847 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1848 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1851 dnl *** UVC H264 ***
1852 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1853 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1854 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1855 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1856 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1859 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1860 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1861 HAVE_LIBUSB="yes" ],
1863 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1864 test "x$HAVE_GUDEV" = "xyes" && \
1865 test "x$HAVE_LIBUSB" = "xyes"; then
1871 AC_SUBST(LIBUDEV_CFLAGS)
1872 AC_SUBST(LIBUDEV_LIBS)
1873 AC_SUBST(LIBUSB_CFLAGS)
1874 AC_SUBST(LIBUSB_LIBS)
1877 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1878 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1879 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1880 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1881 AC_ARG_WITH([cuda-prefix],
1882 AS_HELP_STRING([--with-cuda-prefix],
1883 [Use the provided prefix for detecting the cuda installation]),
1884 [AS_IF([test "x$with_cuda_prefix" != "x"],
1885 [CUDA_PREFIX="$with_cuda_prefix"])],
1889 if test "x$CUDA_PREFIX" != "x"; then
1890 dnl only override if not already set
1891 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1892 dnl this is an educated guess, user can always override these
1893 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1894 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1897 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1898 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1899 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1900 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1905 save_CPPFLAGS="$CPPFLAGS"
1906 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1907 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1908 AC_MSG_WARN([Could not find cuda.h]))
1909 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1910 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1911 CPPFLAGS=$save_CPPFLAGS
1913 dnl libcuda and libcudart libraries
1915 LIBS="$CUDA_LIBS $save_LIBS"
1916 HAVE_CUDART_LIB="no"
1917 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1918 AC_MSG_WARN([Could not find cudart library])])
1920 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1921 AC_MSG_WARN([Could not find cuda library])])
1924 dnl nvEncodeAPI.h header
1925 HAVE_NVENCODEAPI_H=no
1926 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1927 save_CPPFLAGS="$CPPFLAGS"
1928 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1929 AC_CHECK_HEADER([nvEncodeAPI.h], [
1930 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1931 #if NVENCAPI_MAJOR_VERSION < 5
1932 #error "Need nvEncodeAPI.h >= 5.0"
1935 HAVE_NVENCODEAPI_H=yes
1937 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1940 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1941 AC_SUBST(NVENCODE_CFLAGS)
1942 CPPFLAGS="$save_CPPFLAGS"
1944 dnl libnvnidia-encode library
1945 HAVE_NVENCODE_LIB=no
1946 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1948 LIBS="$NVENCODE_LIBS $saved_LIBS"
1949 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1950 AC_MSG_WARN([Could not find library nvidia-encode]))
1951 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1952 AC_SUBST(NVENCODE_LIBS)
1956 if test "x$HAVE_CUDA_H" = "xyes" \
1957 -a "x$HAVE_CUDART_H" = "xyes" \
1958 -a "x$HAVE_CUDA_LIB" = "xyes" \
1959 -a "x$HAVE_CUDART_LIB" = "xyes" \
1960 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1961 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1963 if test x"$USE_OPENGL" = x"yes"; then
1964 dnl cuda-gl interop header
1965 save_CPPFLAGS="$CPPFLAGS"
1966 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1967 AC_CHECK_HEADER([cuda_gl_interop.h], [
1968 USE_NVENC_GST_GL="yes"
1969 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1971 CPPFLAGS="$save_CPPFLAGS"
1977 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1979 dnl check for tinyalsa
1980 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1981 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1982 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1985 dnl *** ext plug-ins ***
1986 dnl keep this list sorted alphabetically !
1988 if test "x$BUILD_EXTERNAL" = "xyes"; then
1990 dnl *** assrender ***
1991 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1992 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1993 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1994 HAVE_ASSRENDER="yes" ], [
1998 AC_SUBST(ASSRENDER_CFLAGS)
1999 AC_SUBST(ASSRENDER_LIBS)
2001 dnl *** vo-amrwbenc ***
2002 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2003 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2004 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2007 dnl *** vo-aacenc ***
2008 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2009 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2010 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2013 dnl *** apexsink ***
2014 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2015 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2016 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2020 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2021 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2022 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2024 AC_SUBST(APEXSINK_CFLAGS)
2025 AC_SUBST(APEXSINK_LIBS)
2032 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2033 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2034 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2037 AC_SUBST(BS2B_CFLAGS)
2042 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2043 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2046 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2047 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2048 AC_MSG_RESULT($HAVE_BZ2)
2050 if test "x$HAVE_BZ2" = "xyes"; then
2058 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2059 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2060 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2063 # AC_SUBST(CAIRO_CFLAGS)
2064 # AC_SUBST(CAIRO_LIBS)
2067 dnl *** chromaprint ***
2068 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2069 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2070 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2071 HAVE_CHROMAPRINT="no"
2073 AC_SUBST(CHROMAPRINT_CFLAGS)
2074 AC_SUBST(CHROMAPRINT_LIBS)
2078 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2079 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2080 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2082 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2083 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2085 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2086 [[#ifdef HAVE_SYS_TYPES_H
2087 # include <sys/types.h>
2089 #ifdef HAVE_NETINET_IN_H
2090 # include <netinet/in.h>
2093 AC_MSG_CHECKING([for socket support needed by curlsink])
2094 AC_MSG_RESULT($HAVE_CURL)
2098 AC_SUBST(CURL_CFLAGS)
2100 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2102 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2106 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2107 AC_SUBST(SSH2_CFLAGS)
2109 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2112 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2113 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2114 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2115 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2117 AC_SUBST(LIBXML2_CFLAGS)
2118 AC_SUBST(LIBXML2_LIBS)
2122 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2123 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2124 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2125 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2134 AC_SUBST(LIBDC1394_CFLAGS)
2135 AC_SUBST(LIBDC1394_LIBS)
2138 dnl *** decklink ***
2139 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2140 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2147 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2148 AC_CHECK_LIB(dl, dlopen,
2152 DECKLINK_LIBS="-lpthread -ldl"
2157 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2158 AC_CHECK_LIB(dl, dlopen,
2162 DECKLINK_LIBS="-lpthread -ldl"
2163 HAVE_DECKLINK_OSX=yes
2172 AC_SUBST(DECKLINK_CXXFLAGS)
2173 AC_SUBST(DECKLINK_LIBS)
2175 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2177 dnl **** DirectFB ****
2178 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2179 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2180 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2185 dnl **** Wayland ****
2186 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2187 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2188 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2189 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2190 if test "x$wayland_scanner" != "x"; then
2193 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2202 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2203 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2204 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2205 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2207 AC_SUBST(WEBP_CFLAGS)
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2213 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2214 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2215 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2220 AC_SUBST(DAALA_CFLAGS)
2221 AC_SUBST(DAALA_LIBS)
2226 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2227 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2229 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2230 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2231 if test $HAVE_DTS = "no"; then
2232 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2233 [ DTS_LIBS="-ldts_pic $LIBM"
2234 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2240 dnl *** resindvd ***
2241 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2242 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2243 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2248 dnl **** Free AAC Encoder (FAAC) ****
2249 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2250 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2251 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2252 FAAC_LIBS="-lfaac $LIBM")
2256 dnl **** Free AAC Decoder (FAAD2) ****
2257 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2258 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2259 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2260 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2261 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2263 #elif !defined(LATM)
2264 #error Not faad2 >= 2.7
2270 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2280 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2281 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2282 if test "x$HAVE_FBDEV" != "xyes"; then
2283 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2288 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2289 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2290 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2291 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2293 AC_SUBST(FLITE_CFLAGS)
2294 AC_SUBST(FLITE_LIBS)
2298 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2299 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2300 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2301 if test $HAVE_GSM != "yes"; then
2302 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2303 if test $HAVE_GSM = "yes"; then
2304 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2310 dnl *** fluidSynth ***
2311 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2312 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2313 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2314 HAVE_FLUIDSYNTH="no"
2319 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2320 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2321 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2324 AC_SUBST(KATE_CFLAGS)
2326 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2329 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2335 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2336 AC_SUBST(TIGER_CFLAGS)
2337 AC_SUBST(TIGER_LIBS)
2338 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2341 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2342 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2343 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2344 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2345 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2349 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2350 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2351 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2353 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2354 if test $HAVE_LRDF = "yes"; then
2355 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2358 AC_SUBST(LRDF_CFLAGS)
2362 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2363 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2364 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2365 AC_SUBST(LILV_CFLAGS)
2369 dnl *** libde265 ***
2370 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2371 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2372 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2373 AC_SUBST(LIBDE265_CFLAGS)
2374 AC_SUBST(LIBDE265_LIBS)
2378 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2379 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2380 dnl check with pkg-config first
2381 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2385 AC_SUBST(LIBMMS_LIBS)
2389 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2390 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2391 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2392 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2395 AC_SUBST(SRTP_CFLAGS)
2399 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2400 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2401 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2403 AC_SUBST(DTLS_CFLAGS)
2411 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2412 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2424 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2425 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2426 if test "x$HAVE_CXX" != "xyes"; then
2427 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2430 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2432 AC_SUBST(MODPLUG_CFLAGS)
2433 AC_SUBST(MODPLUG_LIBS)
2437 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2438 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2440 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2441 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2442 AC_SUBST(MIMIC_CFLAGS)
2443 AC_SUBST(MIMIC_LIBS)
2446 dnl *** mjpegtools version info ***
2447 dnl some may prefer older version (given quirks above)
2448 dnl hm, no version info seems available within mjpegtools headers
2449 dnl and API really moves along
2451 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2452 mjpegtools_api=10601
2454 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2455 mjpegtools_api=10800
2457 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2458 mjpegtools_api=20000
2460 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2461 dnl logging API changed in release candidates
2462 OLD_CFLAGS="$CFLAGS"
2464 CFLAGS="$MJPEG_CFLAGS"
2465 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2466 AC_CHECK_FUNC(mjpeg_loglev_t, [
2467 mjpegtools_api=10903
2469 mjpegtools_api=10900
2471 CFLAGS="$OLD_CFLAGS"
2479 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2480 [mjpegtools API evolution])
2482 dnl *** mpeg2enc ***
2483 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2484 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2486 dnl we require a c++ compiler for this one
2487 if [ test x$HAVE_CXX = xyes ]; then
2488 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2489 dnl since many distros include mjpegtools specifically without mplex
2490 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2491 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2492 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2494 dnl switch over to c++ to test things
2496 OLD_CPPFLAGS="$CPPFLAGS"
2498 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2499 CPPFLAGS="$CPPFLAGS_GOOD -I."
2501 mpeg2enc_headers_ok=no
2502 AC_CHECK_HEADER([mpeg2encoder.hh], [
2503 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2505 LIBS="$LIBS $MPEG2ENC_LIBS"
2506 AC_MSG_CHECKING([for valid mpeg2enc objects])
2507 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2508 #include <mpeg2encoder.hh>
2509 #include <mpeg2encoptions.hh>
2515 MPEG2EncOptions *options = new MPEG2EncOptions ();
2516 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2521 dnl so far so good, let's check more things:
2522 dnl mjpegtools-1.8.0 does not install the required
2523 dnl mpeg2syntaxcodes.h header by default, and a new release
2524 dnl is not in sight, so check for this oversight in case
2525 dnl distros or folks have fixed this themselves
2526 if test "$mjpegtools_api" -ge "10800"; then
2527 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2528 mpeg2enc_headers_ok=yes
2530 mpeg2enc_headers_ok=no
2533 mpeg2enc_headers_ok=yes
2535 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2538 CPPFLAGS="$CPPFLAGS_GOOD"
2539 AC_SUBST(MPEG2ENC_CFLAGS)
2540 AC_SUBST(MPEG2ENC_LIBS)
2547 CPPFLAGS="$OLD_CPPFLAGS"
2556 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2557 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2559 dnl we require a c++ compiler for this one
2560 if [ test x$HAVE_CXX = xyes ]; then
2561 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2562 dnl since many distros include mjpegtools specifically without mplex
2563 dnl and mpeg2enc, we check for mplex on its own, too.
2564 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2565 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2566 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2568 dnl switch over to c++ to test things
2570 OLD_CPPFLAGS="$CPPFLAGS"
2572 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2573 CPPFLAGS="$CPPFLAGS_GOOD -I."
2574 AC_CHECK_HEADER(interact.hpp, [
2575 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2577 LIBS="$LIBS $MPLEX_LIBS"
2578 OLD_LDFLAGS="$LDFLAGS"
2579 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2580 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2581 dnl don't want this here
2582 AC_MSG_CHECKING([for valid mplex objects])
2583 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2585 #include <interact.hpp>
2586 #include <outputstrm.hpp>
2587 #include <multiplexor.hpp>
2592 class TestOutputStream : public OutputStream {
2594 TestOutputStream () : OutputStream () { }
2595 void Write (uint8_t *a, unsigned int b) { }
2596 void NextSegment () { }
2597 uint64_t SegmentSize () { }
2601 MultiplexJob *job = new MultiplexJob ();
2602 vector<IBitStream *> inputs;
2603 job->SetupInputStreams (inputs);
2604 TestOutputStream *out = new TestOutputStream ();
2605 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2610 CPPFLAGS="$CPPFLAGS_GOOD"
2611 AC_SUBST(MPLEX_CFLAGS)
2612 AC_SUBST(MPLEX_LIBS)
2613 AC_SUBST(MPLEX_LDFLAGS)
2615 ],[AC_MSG_RESULT(no)],[])
2617 LDFLAGS="$OLD_LDFLAGS"
2619 CPPFLAGS="$OLD_CPPFLAGS"
2625 dnl *** musepack ***
2626 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2627 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2628 AC_CHECK_HEADER([mpc/mpcdec.h], [
2630 MUSEPACK_LIBS="-lmpcdec"
2631 AC_SUBST(MUSEPACK_LIBS)
2632 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2634 MUSEPACK_LIBS="-lmpcdec"
2635 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2636 AC_SUBST(MUSEPACK_LIBS)
2637 ], [HAVE_MUSEPACK="no"])])
2641 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2642 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2644 if test "x$HAVE_X" = "xyes"; then
2645 save_cppflags=$CFLAGS
2646 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2647 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2648 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2649 CPPFLAGS="$save_cppflags"
2651 AC_SUBST(NAS_CFLAGS)
2656 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2657 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2658 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2661 AC_SUBST(NEON_CFLAGS)
2666 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2667 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2668 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2671 AC_SUBST(OFA_CFLAGS)
2676 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2677 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2678 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2681 AC_SUBST(OPENAL_CFLAGS)
2682 AC_SUBST(OPENAL_LIBS)
2686 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2687 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2688 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2689 dnl and don't want the build to break when a new opencv version comes out.
2690 dnl Need to adjust this upwards once we know that our code compiles fine with
2691 dnl a new version and the no-backward-compatibility define. (There doesn't
2692 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2694 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2697 OLD_CPPFLAGS=$CPPFLAGS
2698 CPPFLAGS=$OPENCV_CFLAGS
2699 something_not_found=no
2700 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2701 opencv2/core/version.hpp \
2702 opencv2/highgui/highgui_c.h \
2703 opencv2/imgproc/imgproc.hpp \
2704 opencv2/imgproc/imgproc_c.h \
2705 opencv2/objdetect/objdetect.hpp \
2706 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2707 CPPFLAGS=$OLD_CPPFLAGS
2710 if test $something_not_found = "yes"; then
2711 AC_MSG_RESULT([not all opencv2 headers were found])
2719 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2720 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2721 AC_SUBST(OPENCV_PREFIX)
2722 AC_SUBST(OPENCV_CFLAGS)
2723 AC_SUBST(OPENCV_LIBS)
2724 dnl the OpenCV prefix is used at runtime for some object properties, and also
2725 dnl used here to detect which directory is the correct one. For the second
2726 dnl case, make sure the right sysroot is used, ensuring correct behavior
2727 dnl during cross compilation.
2728 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2729 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2731 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2736 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2737 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2738 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2741 dnl *** openh264 ***
2742 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2743 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2744 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2747 dnl *** OpenJPEG ***
2748 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2749 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2751 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2752 if test x"$HAVE_OPENJPEG" = x"yes"; then
2753 dnl minor API changes in v2.1
2754 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2755 if test x"$HAVE_OPENJPEG" = x"yes"; then
2756 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2761 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2762 HAVE_OPENJPEG="yes",
2763 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2765 if test x"$HAVE_OPENJPEG" = x"yes"; then
2766 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2769 AC_SUBST(OPENJPEG_CFLAGS)
2770 AC_SUBST(OPENJPEG_LIBS)
2774 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2775 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2776 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2777 AC_SUBST(OPENNI2_CFLAGS)
2778 AC_SUBST(OPENNI2_LIBS)
2782 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2783 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2784 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2785 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2790 AC_SUBST(OPUS_CFLAGS)
2795 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2796 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2797 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2798 AC_SUBST(PVR_CFLAGS)
2802 AC_ARG_WITH([pvr-external-headers],
2803 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2804 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2805 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2806 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2809 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2810 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2811 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2816 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2819 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2826 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2827 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2828 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2829 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2834 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2836 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2837 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2838 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2839 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2841 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2843 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2844 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2845 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2846 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2848 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2850 if test "x$GDK_WINDOWING" = "xyes"; then
2851 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2858 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2861 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2862 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2863 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2864 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2865 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2866 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2867 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2868 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2869 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2870 AC_MSG_WARN([One of the required qt build programs was not found])
2874 HAVE_QT_WINDOWING="no"
2875 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2876 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2877 AS_IF([test -f "$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2878 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2879 HAVE_QT_QPA_HEADER="yes"
2880 ], [AC_MSG_NOTICE([Cannot find QPA])])
2881 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2882 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2883 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2884 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2885 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2886 HAVE_QT_WINDOWING="yes"
2887 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2889 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
2890 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2891 AC_DEFINE([HAVE_QT_WAYLAND], [],
2892 [Define if Qt Wayland integration is installed])
2893 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2894 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2895 HAVE_QT_WINDOWING="yes"
2896 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2898 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2899 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2900 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2901 # c++ on android requires a standard library and there are multiple
2902 # choices. cerbero provides a pkg-config file the describes a choice
2903 # so try to use that. Outside cerbero one has to pass these flags
2904 # manually for the library one is using
2905 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2906 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2907 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2909 AC_MSG_NOTICE([Could not find Standard C++ library])])
2910 AC_DEFINE([HAVE_QT_EGLFS], [],
2911 [Define if Qt eglfs integration is installed])
2912 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2913 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2914 HAVE_QT_WINDOWING="yes"
2915 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2917 AC_DEFINE([HAVE_QT_EGLFS], [],
2918 [Define if Qt eglfs integration is installed])
2919 HAVE_QT_WINDOWING="yes"
2922 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2923 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2924 AC_DEFINE([HAVE_QT_MAC], [],
2925 [Define if Qt Mac integration is installed])
2926 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2927 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2928 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2929 HAVE_QT_WINDOWING="yes"
2930 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2932 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2933 if test "x$HAVE_IOS" = "xyes"; then
2934 # iOS doesn't have its own extras package so if we have the core
2935 # modules we are good to go
2936 AC_DEFINE([HAVE_QT_IOS], [],
2937 [Define if Qt iOS integration is installed])
2938 HAVE_QT_WINDOWING="yes"
2941 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2942 AC_MSG_WARN([Could not find any Qt Windowing integration])
2945 AC_SUBST([QT_CFLAGS])
2954 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2955 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2957 AC_CHECK_HEADER(vulkan/vulkan.h, [
2958 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2959 VULKAN_LIBS="-lvulkan"
2960 AC_SUBST(VULKAN_LIBS)
2961 dnl TODO check platform support (x11, win32, wayland, android, etc)
2962 if test "x$HAVE_XCB" = "xyes"; then
2969 dnl *** libvisual ***
2970 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2971 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2972 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2973 if test x$HAVE_LIBVISUAL = xyes; then
2974 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2976 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2977 if test x$LIBVIS_PLUGINSDIR != x; then
2978 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2979 "$LIBVIS_PLUGINSDIR",
2980 [directory in which the detected libvisual's plugins are located])
2984 dnl *** timidity ***
2985 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2986 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2987 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2988 HAVE_TIMIDITY="yes",
2989 AC_MSG_CHECKING([for timidity.cfg])
2991 if test -r /etc/timidity.cfg; then
2992 timidity_cfg=/etc/timidity.cfg
2993 elif test -r /etc/timidity/timidity.cfg; then
2994 timidity_cfg=/etc/timidity/timidity.cfg
2995 elif test -r /usr/share/timidity/timidity.cfg; then
2996 timidity_cfg=/usr/share/timidity/timidity.cfg
2997 elif test -r /usr/local/share/timidity/timidity.cfg; then
2998 timidity_cfg=/usr/local/share/timidity/timidity.cfg
3000 if test "x$timidity_cfg" != "x"; then
3001 AC_MSG_RESULT($timidity_cfg)
3002 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
3004 AC_MSG_RESULT([not found])
3009 AC_SUBST(TIMIDITY_CFLAGS)
3010 AC_SUBST(TIMIDITY_LIBS)
3013 dnl *** teletextdec ***
3014 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3015 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3016 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3019 dnl *** wildmidi ***
3020 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3021 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3022 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3025 WILDMIDI_LIBS="-lWildMidi")
3026 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3028 if test "x$HAVE_WILDMIDI" = "xyes"; then
3030 WILDMIDI_LIBS=-lWildMidi
3031 AC_MSG_NOTICE(compiling gstWildMidi)
3035 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3037 AC_SUBST(WILDMIDI_CFLAGS)
3038 AC_SUBST(WILDMIDI_LIBS)
3042 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3043 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3044 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3047 dnl **** Smooth Streaming ****
3048 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3049 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3050 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3052 HAVE_SMOOTHSTREAMING="yes"],
3054 HAVE_SMOOTHSTREAMING="no"])
3055 AC_SUBST(LIBXML2_CFLAGS)
3056 AC_SUBST(LIBXML2_LIBS)
3060 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3061 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3062 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3063 AC_SUBST(SNDFILE_CFLAGS)
3064 AC_SUBST(SNDFILE_LIBS)
3067 dnl *** soundtouch ***
3068 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3069 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3070 dnl We only need -lBPM on soundtouch < 1.4
3071 dnl We check for libSoundTouch since Debian used it before upstream
3072 dnl added a pkgconfig file.
3073 HAVE_SOUNDTOUCH_1_4=yes
3074 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3075 [HAVE_SOUNDTOUCH=yes],
3076 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3077 [HAVE_SOUNDTOUCH=yes],
3078 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3079 [HAVE_SOUNDTOUCH=yes
3080 HAVE_SOUNDTOUCH_1_4=no
3081 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3082 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3083 [HAVE_SOUNDTOUCH=yes],
3084 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3085 [HAVE_SOUNDTOUCH=yes
3086 HAVE_SOUNDTOUCH_1_4=no
3087 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3088 HAVE_SOUNDTOUCH=no)])])])])
3089 AC_SUBST(SOUNDTOUCH_CFLAGS)
3090 AC_SUBST(SOUNDTOUCH_LIBS)
3091 if test "x$HAVE_CXX" != "xyes"; then
3092 USE_SOUNDTOUCH=false
3093 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3095 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3096 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3097 [Defined if the available libSoundTouch is >= 1.4])
3102 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3103 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3104 AC_CHECK_HEADER(openspc.h, [
3105 AC_CHECK_LIB(openspc, OSPC_Init, [
3106 SPC_LIBS="-lopenspc"
3118 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3119 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3120 AC_CHECK_HEADER(gme/gme.h, [
3121 AC_CHECK_LIB(gme, gme_new_emu, [
3132 if test "x$HAVE_GME" = "xyes"; then
3133 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3134 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3140 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3141 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3143 AC_CHECK_HEADER(xvid.h, [
3145 LIBS="$PTHREAD_LIBS $LIBM"
3146 AC_CHECK_LIB(xvidcore, xvid_encore, [
3147 AC_CHECK_LIB(xvidcore, xvid_decore, [
3148 AC_CHECK_LIB(xvidcore, xvid_global, [
3149 AC_MSG_CHECKING([for up-to-date XviD API version])
3150 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3151 #if XVID_API_MAJOR(XVID_API) != 4
3152 #error "Incompatible XviD API version"
3154 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3155 #error "Incompatible XviD API version"
3157 ]])],[ AC_MSG_RESULT(yes)
3158 XVID_LIBS="-lxvidcore $LIBM"
3161 ],[AC_MSG_RESULT(no) ])
3170 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3171 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3172 AC_MSG_CHECKING([Checking for up to date dvb installation])
3173 AC_CHECK_HEADER(linux/dvb/version.h, [
3174 AC_MSG_CHECKING([for up-to-date dvb API])
3175 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3176 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3177 #error "Incompatible dvb API"
3179 ]])], [ AC_MSG_RESULT(yes)
3181 ], [ AC_MSG_RESULT(no)
3188 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3189 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3190 AC_MSG_CHECKING([Checking for windows internet support])
3191 AC_CHECK_HEADERS([windows.h wininet.h],
3192 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3193 [AC_INCLUDES_DEFAULT
3194 #include <windows.h>])
3198 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3199 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3200 AC_MSG_CHECKING([Checking for ACM support])
3201 AC_CHECK_HEADERS([windows.h msacm.h],
3203 AC_SUBST(ACMENC_CFLAGS)
3204 AC_SUBST(ACMMP3DEC_CFLAGS)
3206 [AC_INCLUDES_DEFAULT
3207 #include <windows.h>])
3211 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3212 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3217 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3219 if test "$HAVE_VDPAU" = "no"; then
3220 saved_CPPFLAGS="$CPPFLAGS"
3221 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3223 if test -z "$HAVE_VDPAU_H"; then
3224 dnl Didn't find VDPAU header straight away.
3225 dnl Try /usr/include/nvidia. Need to clear caching vars first
3226 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3227 unset ac_cv_header_vdpau_vdpau_h
3228 unset ac_cv_header_vdpau_vdpau_x11_h
3229 VDPAU_CFLAGS="-I/usr/include/nvidia"
3230 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3231 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3232 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3235 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3237 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3238 dnl Found the headers - look for the lib
3239 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3241 LIBS="$VDPAU_LIBS $saved_LIBS"
3242 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3248 if test "$HAVE_VDPAU" = "yes"; then
3249 AC_MSG_NOTICE([Found up to date VDPAU installation])
3250 AC_SUBST(VDPAU_CFLAGS)
3251 AC_SUBST(VDPAU_LIBS)
3256 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3257 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3258 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3261 dnl *** schroedinger ***
3262 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3263 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3264 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3268 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3269 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3270 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3274 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3275 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3276 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3280 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3281 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3282 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3283 HAVE_SPANDSP="yes" ], [
3287 AC_SUBST(SPANDSP_CFLAGS)
3288 AC_SUBST(SPANDSP_LIBS)
3291 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3292 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3293 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3294 if test "x$HAVE_SNDIO" = "xyes"; then
3295 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3296 if test "x$HAVE_SNDIO" = "xyes"; then
3298 AC_SUBST(SNDIO_LIBS)
3303 dnl *** hls-crypto ***
3304 AC_ARG_WITH([hls-crypto],
3305 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3306 which cryptographic library version to compile against for hls (default: auto)
3308 AS_CASE([$with_hls_crypto],
3312 [with_hls_crypto=auto]
3318 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3319 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3320 AS_CASE([$with_hls_crypto],
3322 PKG_CHECK_MODULES(NETTLE, nettle, [
3323 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3325 ],[AC_MSG_ERROR([Could not find nettle library])])
3328 AM_PATH_LIBGCRYPT([1.2.0], [
3329 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3331 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3334 PKG_CHECK_MODULES(OPENSSL, openssl, [
3335 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3337 ],[AC_MSG_ERROR([Could not find openssl library])])
3340 dnl Try to find a valid crypto library
3341 PKG_CHECK_MODULES(NETTLE, nettle, [
3342 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3345 AM_PATH_LIBGCRYPT([1.2.0], [
3346 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3349 PKG_CHECK_MODULES(OPENSSL, openssl, [
3350 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3361 dnl *** x265 (H.265/HEVC encoder) ***
3362 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3363 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3364 AG_GST_PKG_CHECK_MODULES(X265, x265)
3367 dnl *** WebRTC Audio Processing ***
3368 dnl Note: We test for a specific version as there is no API stability
3369 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3370 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3372 old_CPPFLAGS=$CPPFLAGS
3373 CPPFLAGS="-std=c++11 $CPPFLAGS"
3374 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3375 AC_CHECK_HEADER([typeindex],[],[HAVE_WEBRTCDSP=no])
3376 CPPFLAGS=$old_CPPFLAGS
3382 dnl not building plugins with external dependencies,
3383 dnl but we still need to set the conditionals
3385 AM_CONDITIONAL(USE_ASSRENDER, false)
3386 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3387 AM_CONDITIONAL(USE_VOAACENC, false)
3388 AM_CONDITIONAL(USE_APEXSINK, false)
3389 AM_CONDITIONAL(USE_BS2B, false)
3390 AM_CONDITIONAL(USE_BZ2, false)
3391 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3392 AM_CONDITIONAL(USE_CURL, false)
3393 AM_CONDITIONAL(USE_SSH2, false)
3394 AM_CONDITIONAL(USE_DASH, false)
3395 AM_CONDITIONAL(USE_DC1394, false)
3396 AM_CONDITIONAL(USE_DECKLINK, false)
3397 AM_CONDITIONAL(DECKLINK_OSX, false)
3398 AM_CONDITIONAL(USE_DIRECTFB, false)
3399 AM_CONDITIONAL(USE_WAYLAND, false)
3400 AM_CONDITIONAL(USE_DAALA, false)
3401 AM_CONDITIONAL(USE_DTS, false)
3402 AM_CONDITIONAL(USE_EXIF, false)
3403 AM_CONDITIONAL(USE_RESINDVD, false)
3404 AM_CONDITIONAL(USE_FAAC, false)
3405 AM_CONDITIONAL(USE_FAAD, false)
3406 AM_CONDITIONAL(USE_FBDEV, false)
3407 AM_CONDITIONAL(USE_FLITE, false)
3408 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3409 AM_CONDITIONAL(USE_GL, false)
3410 AM_CONDITIONAL(USE_GSM, false)
3411 AM_CONDITIONAL(USE_GTK3, false)
3412 AM_CONDITIONAL(USE_GTK3_GL, false)
3413 AM_CONDITIONAL(USE_HLS, false)
3414 AM_CONDITIONAL(USE_KATE, false)
3415 AM_CONDITIONAL(USE_KMS, false)
3416 AM_CONDITIONAL(USE_TIGER, false)
3417 AM_CONDITIONAL(USE_LADSPA, false)
3418 AM_CONDITIONAL(USE_LV2, false)
3419 AM_CONDITIONAL(USE_LIBDE265, false)
3420 AM_CONDITIONAL(USE_LIBMMS, false)
3421 AM_CONDITIONAL(USE_LINSYS, false)
3422 AM_CONDITIONAL(USE_MODPLUG, false)
3423 AM_CONDITIONAL(USE_MIMIC, false)
3424 AM_CONDITIONAL(USE_MPEG2ENC, false)
3425 AM_CONDITIONAL(USE_MPLEX, false)
3426 AM_CONDITIONAL(USE_MUSEPACK, false)
3427 AM_CONDITIONAL(USE_NAS, false)
3428 AM_CONDITIONAL(USE_NEON, false)
3429 AM_CONDITIONAL(USE_OFA, false)
3430 AM_CONDITIONAL(USE_OPENAL, false)
3431 AM_CONDITIONAL(USE_OPENCV, false)
3432 AM_CONDITIONAL(USE_OPENEXR, false)
3433 AM_CONDITIONAL(USE_OPENJPEG, false)
3434 AM_CONDITIONAL(USE_OPENNI2, false)
3435 AM_CONDITIONAL(USE_OPUS, false)
3436 AM_CONDITIONAL(USE_PVR, false)
3437 AM_CONDITIONAL(USE_QT, false)
3438 AM_CONDITIONAL(USE_LIBVISUAL, false)
3439 AM_CONDITIONAL(USE_TIMIDITY, false)
3440 AM_CONDITIONAL(USE_WILDMIDI, false)
3441 AM_CONDITIONAL(USE_SDL, false)
3442 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3443 AM_CONDITIONAL(USE_SNDFILE, false)
3444 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3445 AM_CONDITIONAL(USE_SPANDSP, false)
3446 AM_CONDITIONAL(USE_SPC, false)
3447 AM_CONDITIONAL(USE_SRTP, false)
3448 AM_CONDITIONAL(USE_GME, false)
3449 AM_CONDITIONAL(USE_XVID, false)
3450 AM_CONDITIONAL(USE_DVB, false)
3451 AM_CONDITIONAL(USE_WININET, false)
3452 AM_CONDITIONAL(USE_ACM, false)
3453 AM_CONDITIONAL(USE_VDPAU, false)
3454 AM_CONDITIONAL(USE_SBC, false)
3455 AM_CONDITIONAL(USE_SCHRO, false)
3456 AM_CONDITIONAL(USE_ZBAR, false)
3457 AM_CONDITIONAL(USE_RSVG, false)
3458 AM_CONDITIONAL(USE_RTMP, false)
3459 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3460 AM_CONDITIONAL(USE_SNDIO, false)
3461 AM_CONDITIONAL(USE_UVCH264, false)
3462 AM_CONDITIONAL(USE_WEBP, false)
3463 AM_CONDITIONAL(USE_OPENH264, false)
3464 AM_CONDITIONAL(USE_X265, false)
3465 AM_CONDITIONAL(USE_DTLS, false)
3467 fi dnl of EXT plugins
3469 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3472 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3473 dnl GST_*: flags shared by built objects to link against GStreamer
3474 dnl GST_ALL_LDFLAGS: linker flags shared by all
3475 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3476 dnl GST_LT_LDFLAGS: library versioning of our libraries
3477 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3479 dnl GST_OPTION_CFLAGS
3480 if test "x$USE_DEBUG" = xyes; then
3483 AC_SUBST(PROFILE_CFLAGS)
3485 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3486 dnl Define _only_ during CVS (not pre-releases or releases)
3487 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3489 DEPRECATED_CFLAGS=""
3491 AC_SUBST(DEPRECATED_CFLAGS)
3493 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3494 dnl at make time with e.g. make ERROR_CFLAGS=""
3495 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3496 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3497 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3498 AC_SUBST(GST_OPTION_CFLAGS)
3499 AC_SUBST(GST_OPTION_CXXFLAGS)
3500 AC_SUBST(GST_OPTION_OBJCFLAGS)
3502 dnl FIXME: do we want to rename to GST_ALL_* ?
3503 dnl prefer internal headers to already installed ones
3504 dnl also add builddir include for enumtypes and marshal
3505 dnl add GST_OPTION_CFLAGS, but overridable
3506 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3507 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3508 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3509 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3510 AC_SUBST(GST_CFLAGS)
3511 AC_SUBST(GST_CXXFLAGS)
3512 AC_SUBST(GST_OBJCFLAGS)
3514 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3515 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3516 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3517 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3518 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3519 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3521 dnl LDFLAGS really should only contain flags, not libs - they get added before
3522 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3523 GST_ALL_LDFLAGS="-no-undefined"
3524 if test "x${enable_Bsymbolic}" = "xyes"; then
3525 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3527 AC_SUBST(GST_ALL_LDFLAGS)
3530 dnl linker flags shared by all libraries
3531 dnl LDFLAGS modifier defining exported symbols from built libraries
3532 dnl (export _gst_foo but not __gst_foo)
3533 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3534 AC_SUBST(GST_LIB_LDFLAGS)
3536 dnl this really should only contain flags, not libs - they get added before
3537 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3538 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3539 AC_SUBST(GST_PLUGIN_LDFLAGS)
3541 dnl *** output files ***
3543 $MKDIR_P tests/check/orc
3551 gst-plugins-bad.spec
3553 gst/accurip/Makefile
3554 gst/adpcmdec/Makefile
3555 gst/adpcmenc/Makefile
3557 gst/videoframe_audiolevel/Makefile
3559 gst/audiofxbad/Makefile
3560 gst/audiomixer/Makefile
3561 gst/audiovisualizers/Makefile
3562 gst/autoconvert/Makefile
3564 gst/camerabin2/Makefile
3565 gst/cdxaparse/Makefile
3566 gst/coloreffects/Makefile
3567 gst/dataurisrc/Makefile
3569 gst/debugutils/Makefile
3570 gst/dvbsuboverlay/Makefile
3572 gst/faceoverlay/Makefile
3573 gst/festival/Makefile
3574 gst/fieldanalysis/Makefile
3575 gst/freeverb/Makefile
3577 gst/gaudieffects/Makefile
3578 gst/geometrictransform/Makefile
3580 gst/hdvparse/Makefile
3583 gst/interlace/Makefile
3584 gst/ivfparse/Makefile
3586 gst/jp2kdecimator/Makefile
3587 gst/jpegformat/Makefile
3590 gst/mpegdemux/Makefile
3591 gst/mpegtsdemux/Makefile
3592 gst/mpegtsmux/Makefile
3593 gst/mpegtsmux/tsmux/Makefile
3594 gst/mpegpsmux/Makefile
3598 gst/nuvdemux/Makefile
3600 gst/patchdetect/Makefile
3601 gst/pcapparse/Makefile
3603 gst/rawparse/Makefile
3604 gst/removesilence/Makefile
3607 gst/segmentclip/Makefile
3614 gst/videofilters/Makefile
3615 gst/videomeasure/Makefile
3616 gst/videoparsers/Makefile
3617 gst/videosignal/Makefile
3621 gst/compositor/Makefile
3623 gst-libs/gst/Makefile
3624 gst-libs/gst/adaptivedemux/Makefile
3625 gst-libs/gst/basecamerabinsrc/Makefile
3626 gst-libs/gst/gl/Makefile
3627 gst-libs/gst/gl/android/Makefile
3628 gst-libs/gst/gl/cocoa/Makefile
3629 gst-libs/gst/gl/dispmanx/Makefile
3630 gst-libs/gst/gl/glprototypes/Makefile
3631 gst-libs/gst/gl/eagl/Makefile
3632 gst-libs/gst/gl/egl/Makefile
3633 gst-libs/gst/gl/wayland/Makefile
3634 gst-libs/gst/gl/win32/Makefile
3635 gst-libs/gst/gl/x11/Makefile
3636 gst-libs/gst/insertbin/Makefile
3637 gst-libs/gst/interfaces/Makefile
3638 gst-libs/gst/codecparsers/Makefile
3639 gst-libs/gst/mpegts/Makefile
3640 gst-libs/gst/uridownloader/Makefile
3641 gst-libs/gst/wayland/Makefile
3642 gst-libs/gst/base/Makefile
3643 gst-libs/gst/player/Makefile
3644 gst-libs/gst/video/Makefile
3645 gst-libs/gst/audio/Makefile
3647 sys/dshowdecwrapper/Makefile
3649 sys/acmmp3dec/Makefile
3650 sys/androidmedia/Makefile
3651 sys/applemedia/Makefile
3652 sys/applemedia-nonpublic/Makefile
3655 sys/d3dvideosink/Makefile
3656 sys/decklink/Makefile
3657 sys/directsound/Makefile
3658 sys/dshowsrcwrapper/Makefile
3659 sys/dshowvideosink/Makefile
3665 sys/opensles/Makefile
3667 sys/tinyalsa/Makefile
3668 sys/uvch264/Makefile
3673 sys/wininet/Makefile
3675 sys/winscreencap/Makefile
3677 tests/check/Makefile
3678 tests/files/Makefile
3679 tests/examples/Makefile
3680 tests/examples/avsamplesink/Makefile
3681 tests/examples/camerabin2/Makefile
3682 tests/examples/codecparsers/Makefile
3683 tests/examples/directfb/Makefile
3684 tests/examples/gl/Makefile
3685 tests/examples/gl/cocoa/Makefile
3686 tests/examples/gl/clutter/Makefile
3687 tests/examples/gl/generic/Makefile
3688 tests/examples/gl/generic/cube/Makefile
3689 tests/examples/gl/generic/cubeyuv/Makefile
3690 tests/examples/gl/generic/doublecube/Makefile
3691 tests/examples/gl/generic/recordgraphic/Makefile
3692 tests/examples/gl/gtk/Makefile
3693 tests/examples/gl/gtk/3dvideo/Makefile
3694 tests/examples/gl/gtk/filternovideooverlay/Makefile
3695 tests/examples/gl/gtk/filtervideooverlay/Makefile
3696 tests/examples/gl/gtk/fxtest/Makefile
3697 tests/examples/gl/gtk/switchvideooverlay/Makefile
3698 tests/examples/gl/qt/Makefile
3699 tests/examples/gl/sdl/Makefile
3700 tests/examples/gtk/Makefile
3701 tests/examples/mpegts/Makefile
3702 tests/examples/mxf/Makefile
3703 tests/examples/opencv/Makefile
3704 tests/examples/uvch264/Makefile
3705 tests/examples/waylandsink/Makefile
3706 tests/icles/Makefile
3707 ext/voamrwbenc/Makefile
3708 ext/voaacenc/Makefile
3709 ext/assrender/Makefile
3710 ext/apexsink/Makefile
3713 ext/chromaprint/Makefile
3717 ext/directfb/Makefile
3718 ext/wayland/Makefile
3726 ext/fluidsynth/Makefile
3732 ext/libde265/Makefile
3734 ext/libvisual/Makefile
3736 ext/modplug/Makefile
3737 ext/mpeg2enc/Makefile
3740 ext/musepack/Makefile
3746 ext/openexr/Makefile
3747 ext/openh264/Makefile
3748 ext/openjpeg/Makefile
3749 ext/openni2/Makefile
3753 ext/resindvd/Makefile
3756 ext/schroedinger/Makefile
3758 ext/smoothstreaming/Makefile
3759 ext/sndfile/Makefile
3760 ext/soundtouch/Makefile
3761 ext/spandsp/Makefile
3764 ext/teletextdec/Makefile
3767 ext/timidity/Makefile
3769 ext/vulkan/xcb/Makefile
3770 ext/vulkan/wayland/Makefile
3776 ext/webrtcdsp/Makefile
3779 docs/plugins/Makefile
3781 docs/version.entities
3783 pkgconfig/gstreamer-plugins-bad.pc
3784 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3785 pkgconfig/gstreamer-codecparsers.pc
3786 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3787 pkgconfig/gstreamer-insertbin.pc
3788 pkgconfig/gstreamer-insertbin-uninstalled.pc
3789 pkgconfig/gstreamer-gl.pc
3790 pkgconfig/gstreamer-gl-uninstalled.pc
3791 pkgconfig/gstreamer-mpegts.pc
3792 pkgconfig/gstreamer-mpegts-uninstalled.pc
3793 pkgconfig/gstreamer-player.pc
3794 pkgconfig/gstreamer-player-uninstalled.pc
3795 pkgconfig/gstreamer-wayland.pc
3796 pkgconfig/gstreamer-wayland-uninstalled.pc
3797 pkgconfig/gstreamer-bad-base.pc
3798 pkgconfig/gstreamer-bad-base-uninstalled.pc
3799 pkgconfig/gstreamer-bad-video.pc
3800 pkgconfig/gstreamer-bad-video-uninstalled.pc
3801 pkgconfig/gstreamer-bad-audio.pc
3802 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3807 dnl Create the config.h file for Visual Studio builds
3808 dnl Beware of spaces and /'s in some of the shell variable contents.
3810 -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"/' \
3811 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3812 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3813 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3814 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3815 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3816 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3817 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3818 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3819 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3820 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3821 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3822 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3823 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3824 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3825 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3826 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3827 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3828 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3829 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3830 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3831 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3832 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3833 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3834 -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/' \
3835 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3836 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3837 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3838 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3839 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3840 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3841 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3842 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3843 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3844 config.h.in >win32/common/config.h-new
3848 AG_GST_OUTPUT_PLUGINS