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.4.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(timecode)
528 AG_GST_CHECK_PLUGIN(tta)
529 AG_GST_CHECK_PLUGIN(videofilters)
530 AG_GST_CHECK_PLUGIN(videomeasure)
531 AG_GST_CHECK_PLUGIN(videoparsers)
532 AG_GST_CHECK_PLUGIN(videosignal)
533 AG_GST_CHECK_PLUGIN(vmnc)
534 AG_GST_CHECK_PLUGIN(y4m)
535 AG_GST_CHECK_PLUGIN(yadif)
537 dnl *** plug-ins to exclude ***
539 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
540 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
541 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
543 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
545 LIBS="$LIBS -framework VideoToolbox"
546 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
547 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
553 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
554 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
555 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
558 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
559 if test "x$HAVE_IOS" = "xyes"; then
560 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
563 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
564 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
565 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
568 dnl disable gst plugins we might not be able to build on this
569 dnl platform: (ugly but minimally invasive)
570 dnl FIXME: maybe move to sys, or make work with winsock2
571 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
572 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
574 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
575 WINSOCK2_LIBS="-lws2_32"
576 AC_SUBST(WINSOCK2_LIBS)
579 if test "x$HAVE_PTHREAD_H" = "xyes"; then
580 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
583 AG_GST_DISABLE_PLUGIN(dccp)
587 AC_ARG_ENABLE([opengl],
588 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
589 [case "${enableval}" in
592 auto) NEED_GL=auto ;;
593 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
594 esac],[NEED_GL=auto])
596 AC_ARG_WITH([opengl-module-name],
597 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
598 if test x$with_opengl_module_name != x; then
599 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
602 AC_ARG_ENABLE([gles2],
603 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
604 [case "${enableval}" in
605 yes) NEED_GLES2=yes ;;
607 auto) NEED_GLES2=auto ;;
608 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
609 esac],[NEED_GLES2=auto])
611 AC_ARG_WITH([gles2-module-name],
612 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
613 if test x$with_gles2_module_name != x; then
614 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
618 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
619 [case "${enableval}" in
622 auto) NEED_EGL=auto ;;
623 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
624 esac],[NEED_EGL=auto])
626 AC_ARG_WITH([egl-module-name],
627 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
628 if test x$with_egl_module_name != x; then
629 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
633 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
634 [case "${enableval}" in
637 auto) NEED_WGL=auto ;;
638 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
639 esac],[NEED_WGL=auto])
642 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
643 [case "${enableval}" in
646 auto) NEED_GLX=auto ;;
647 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
648 esac],[NEED_GLX=auto])
650 AC_ARG_ENABLE([cocoa],
651 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
652 [case "${enableval}" in
653 yes) NEED_COCOA=yes ;;
655 auto) NEED_COCOA=auto ;;
656 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
657 esac],[NEED_COCOA=auto])
660 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
661 [case "${enableval}" in
664 auto) NEED_X11=auto ;;
665 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
666 esac],[NEED_X11=auto])
668 AC_ARG_ENABLE([wayland],
669 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
670 [case "${enableval}" in
671 yes) NEED_WAYLAND_EGL=yes ;;
672 no) NEED_WAYLAND_EGL=no ;;
673 auto) NEED_WAYLAND_EGL=auto ;;
674 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
675 esac],[NEED_WAYLAND_EGL=auto])
677 AC_ARG_ENABLE([dispmanx],
678 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
679 [case "${enableval}" in
680 yes) NEED_DISPMANX=yes ;;
681 no) NEED_DISPMANX=no ;;
682 auto) NEED_DISPMANX=auto ;;
683 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
684 esac],[NEED_DISPMANX=auto])
686 AG_GST_PKG_CHECK_MODULES(X, x11)
687 save_CPPFLAGS="$CPPFLAGS"
700 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
701 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
702 if test "x$HAVE_WGLEXT" = "xyes"; then
708 if test "x$NEED_GL" != "xno"; then
709 AG_GST_PKG_CHECK_MODULES(GL, gl)
710 if test "x$HAVE_GL" != "xyes"; then
711 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
714 if test "x$NEED_GLES2" != "xno"; then
715 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
716 if test "x$HAVE_GLES2" != "xyes"; then
717 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
719 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
721 if test "x$NEED_EGL" != "xno"; then
722 AG_GST_PKG_CHECK_MODULES(EGL, egl)
723 if test "x$HAVE_EGL" != "xyes"; then
724 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
731 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
732 AC_CHECK_HEADER([EGL/fbdev_window.h],
735 AC_CHECK_LIB([Mali], [mali_image_create],
738 AC_CHECK_LIB([GLESv2], [glEnable],
740 AC_CHECK_HEADER([GLES2/gl2.h],
742 AC_CHECK_LIB([EGL], [eglGetProcAddress],
744 AC_CHECK_HEADER([EGL/egl.h],
748 EGL_LIBS="-lMali -lUMP"
750 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
758 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
759 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
760 LIBS="$LIBS -lvcos -lvchiq_arm"
761 AC_CHECK_LIB([bcm_host], [bcm_host_init],
763 LIBS="$LIBS -lbcm_host"
764 AC_CHECK_HEADER(bcm_host.h,
766 LIBS="$LIBS -lGLESv2"
767 AC_CHECK_LIB([EGL], [eglGetProcAddress],
770 AC_CHECK_HEADER([EGL/egl.h],
772 AC_CHECK_LIB([GLESv2], [glEnable],
774 AC_CHECK_HEADER([GLES2/gl2.h],
779 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
781 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
792 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)
794 # OS X and iOS always have GL available
797 if test "x$HAVE_IOS" = "xyes"; then
807 CPPFLAGS="$save_CPPFLAGS"
821 dnl Check for what the user asked for and what we could find
822 if test "x$HAVE_EGL" = "xno"; then
823 if test "x$NEED_EGL" = "xyes"; then
824 AC_MSG_ERROR([Could not find the required EGL libraries])
828 if test "x$HAVE_GL" = "xno"; then
829 if test "x$NEED_GL" = "xyes"; then
830 AC_MSG_ERROR([Could not find the required OpenGL libraries])
834 if test "x$HAVE_GLES2" = "xno"; then
835 if test "x$NEED_GLES2" = "xyes"; then
836 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
840 dnl X, GLX and OpenGL
841 if test "x$HAVE_X" = "xno"; then
842 if test "x$NEED_GLX" = "xyes"; then
843 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
845 if test "x$NEED_X11" = "xyes"; then
846 AC_MSG_ERROR([Could not find X11 development libraries])
849 if test "x$NEED_GL" != "xno"; then
850 if test "x$HAVE_GL" = "xno"; then
851 if test "x$NEED_GLX" = "xyes"; then
852 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
856 if test "x$NEED_GLX" != "xno"; then
863 dnl check for DMABUF support
864 HAVE_DRM_FOURCC_HEADER=no
865 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
866 HAVE_DRM_FOURCC_HEADER=yes, )
868 HAVE_GST_ALLOCATORS=no
869 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
870 HAVE_GST_ALLOCATORS=yes, )
873 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
874 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
875 "x$HAVE_EGL" = "xyes"; then
879 dnl check if we can include both GL and GLES2 at the same time
880 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
882 if test "x$HAVE_GLES3_H" == "xyes"; then
887 # pragma GCC diagnostic push
888 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
890 #ifndef GL_GLEXT_PROTOTYPES
891 #define GL_GLEXT_PROTOTYPES 1
894 # include <OpenGLES/ES2/gl.h>
895 # include <OpenGLES/ES2/glext.h>
898 # include <GLES3/gl3.h>
899 # include <GLES3/gl3ext.h>
901 # include <GLES2/gl2.h>
902 # include <GLES2/gl2ext.h>
906 # include <OpenGL/OpenGL.h>
907 # include <OpenGL/gl.h>
908 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
909 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
910 # include <OpenGL/gl3.h>
914 # if __WIN32__ || _WIN32
915 # include <GL/glext.h>
918 int main (int argc, char **argv) { return 0; }
920 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
921 save_CFLAGS="$CFLAGS"
922 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
923 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
924 #if !defined(GL_FALSE)
925 #error Failed to include GL headers
927 ]])],[ AC_MSG_RESULT(yes)
929 if test "x$NEED_GLES2" = "xyes"; then
930 if test "x$NEED_GL" = "xyes"; then
931 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
933 AC_MSG_WARN([Disabling Desktop GL support])
937 AC_MSG_WARN([Disabling GL|ES 2.0 support])
942 CFLAGS="$save_CFLAGS"
945 #dnl Check for OpenGL
949 if test "x$NEED_WGL" = "xyes"; then
950 AC_MSG_ERROR([WGL is not available on Android])
952 if test "x$NEED_GLX" = "xyes"; then
953 AC_MSG_ERROR([GLX is not available on Android])
955 if test "x$NEED_GL" = "xyes"; then
956 AC_MSG_ERROR([GL is not available on Android])
958 if test "x$NEED_X11" = "xyes"; then
959 AC_MSG_ERROR([X11 is not available on Android])
961 if test "x$NEED_COCOA" = "xyes"; then
962 AC_MSG_ERROR([Cocoa is not available on Android])
966 if test "x$HAVE_GLES2" = "xyes"; then
967 if test "x$NEED_GLES2" != "xno"; then
968 GL_LIBS="$GL_LIBS -lGLESv2"
974 if test "x$HAVE_EGL" = "xyes"; then
975 if test "x$NEED_EGL" != "xno"; then
976 GL_LIBS="$GL_LIBS -lEGL"
981 if test "x$USE_EGL" != "xyes"; then
982 AC_MSG_ERROR([Need EGL on Android])
985 if test "x$USE_GLES2" != "xyes"; then
986 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
989 HAVE_WINDOW_ANDROID=yes
991 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
992 if test "x$NEED_WGL" = "xyes"; then
993 AC_MSG_ERROR([WGL is not available on unix])
996 if test "x$HAVE_X" = "xno"; then
997 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
998 AC_MSG_WARN([X or Wayland is required for OpenGL support])
1002 dnl check Desktop OpenGL
1003 if test "x$HAVE_GL" = "xyes"; then
1004 if test "x$NEED_GL" != "xno"; then
1005 GL_LIBS="$GL_LIBS -lGL"
1010 if test "x$HAVE_GLES2" = "xyes"; then
1011 if test "x$NEED_GLES2" != "xno"; then
1012 GL_LIBS="$GL_LIBS -lGLESv2"
1017 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1018 if test "x$NEED_X11" != "xno"; then
1019 GL_LIBS="$GL_LIBS $X_LIBS"
1020 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1025 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1026 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1027 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1029 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1030 HAVE_WINDOW_WAYLAND=yes
1031 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1032 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1037 if test "x$HAVE_EGL_RPI" = "xyes"; then
1038 if test "x$NEED_DISPMANX" != "xno"; then
1039 HAVE_WINDOW_DISPMANX=yes
1045 if test "x$HAVE_EGL" = "xno"; then
1046 if test "x$HAVE_GL" = "xno"; then
1047 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1050 if test "x$NEED_EGL" != "xno"; then
1051 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1052 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1053 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1060 if test "x$HAVE_IOS" = "xyes"; then
1061 if test "x$NEED_WGL" = "xyes"; then
1062 AC_MSG_ERROR([WGL is not available on iOS])
1064 if test "x$NEED_GLX" = "xyes"; then
1065 AC_MSG_ERROR([GLX is not available on iOS])
1067 if test "x$NEED_GL" = "xyes"; then
1068 AC_MSG_ERROR([GL is not available on iOS])
1070 if test "x$NEED_X11" = "xyes"; then
1071 AC_MSG_ERROR([X11 is not available on iOS])
1073 if test "x$NEED_COCOA" = "xyes"; then
1074 AC_MSG_ERROR([Cocoa is not available on iOS])
1076 if test "x$NEED_EGL" = "xyes"; then
1077 AC_MSG_ERROR([EGL is not available on iOS])
1080 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1081 GL_CFLAGS="$GL_CFLAGS"
1084 HAVE_WINDOW_EAGL=yes
1086 ac_cv_type_GLsizeiptr=yes
1087 ac_cv_type_GLintptr=yes
1088 ac_cv_type_GLchar=yes
1090 dnl Only osx supports cocoa.
1091 if test "x$NEED_WGL" = "xyes"; then
1092 AC_MSG_ERROR([WGL is not available on Mac OS X])
1095 if test "x$NEED_COCOA" != "xno"; then
1096 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1097 GL_CFLAGS="$GL_CFLAGS"
1099 HAVE_WINDOW_COCOA=yes
1103 if test "x$USE_GLX" = "xyes"; then
1104 if test "x$HAVE_X" = "xyes"; then
1105 if test "x$NEED_X11" != "xno"; then
1106 GL_LIBS="$GL_LIBS $X_LIBS"
1107 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1112 if test "x$HAVE_GL" = "xyes"; then
1113 if test "x$NEED_GL" != "xno"; then
1114 GL_LIBS="$GL_LIBS -lGL"
1120 if test "x$HAVE_EGL" = "xyes"; then
1121 if test "x$NEED_EGL" != "xno"; then
1122 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1123 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1124 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1131 if test "x$HAVE_GLES2" = "xyes"; then
1132 if test "x$NEED_GLES2" != "xno"; then
1133 GL_LIBS="$GL_LIBS -lGLESv2"
1140 if test "x$NEED_GLX" = "xyes"; then
1141 AC_MSG_ERROR([GLX is not available on Windows])
1143 if test "x$NEED_GLES2" = "xyes"; then
1144 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1147 if test "x$HAVE_GL" = "xyes"; then
1148 if test "x$NEED_GL" != "xno"; then
1149 if test "x$HAVE_WGL" = "xyes"; then
1150 if test "$NEED_WGL" != "xno"; then
1151 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1152 HAVE_WINDOW_WIN32=yes
1161 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1172 GST_GL_HAVE_OPENGL=0
1176 if test "x$USE_OPENGL" = "xyes"; then
1177 GL_APIS="gl $GL_APIS"
1178 GST_GL_HAVE_OPENGL=1
1180 if test "x$USE_GLES2" = "xyes"; then
1181 GL_APIS="gles2 $GL_APIS"
1183 if test "x$HAVE_GLES3_H" = "xyes"; then
1188 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1189 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1190 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1191 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1196 GST_GL_HAVE_WINDOW_X11=0
1197 GST_GL_HAVE_WINDOW_COCOA=0
1198 GST_GL_HAVE_WINDOW_WIN32=0
1199 GST_GL_HAVE_WINDOW_WAYLAND=0
1200 GST_GL_HAVE_WINDOW_ANDROID=0
1201 GST_GL_HAVE_WINDOW_DISPMANX=0
1202 GST_GL_HAVE_WINDOW_EAGL=0
1204 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1205 GL_WINDOWS="x11 $GL_WINDOWS"
1206 GST_GL_HAVE_WINDOW_X11=1
1208 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1209 GL_WINDOWS="cocoa $GL_WINDOWS"
1210 GST_GL_HAVE_WINDOW_COCOA=1
1212 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1213 GL_WINDOWS="win32 $GL_WINDOWS"
1214 GST_GL_HAVE_WINDOW_WIN32=1
1216 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1217 GL_WINDOWS="wayland $GL_WINDOWS"
1218 GST_GL_HAVE_WINDOW_WAYLAND=1
1220 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1221 GL_WINDOWS="android $GL_WINDOWS"
1222 GST_GL_HAVE_WINDOW_ANDROID=1
1224 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1225 GL_WINDOWS="dispmanx $GL_WINDOWS"
1226 GST_GL_HAVE_WINDOW_DISPMANX=1
1228 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1229 GL_WINDOWS="eagl $GL_WINDOWS"
1230 GST_GL_HAVE_WINDOW_EAGL=1
1233 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1234 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1235 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1236 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1237 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1238 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1239 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1240 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1245 GST_GL_HAVE_PLATFORM_EGL=0
1246 GST_GL_HAVE_PLATFORM_GLX=0
1247 GST_GL_HAVE_PLATFORM_WGL=0
1248 GST_GL_HAVE_PLATFORM_CGL=0
1249 GST_GL_HAVE_PLATFORM_EAGL=0
1251 if test "x$USE_EGL" = "xyes"; then
1252 GL_PLATFORMS="egl $GL_PLATFORMS"
1253 GST_GL_HAVE_PLATFORM_EGL=1
1255 if test "x$USE_GLX" = "xyes"; then
1256 GL_PLATFORMS="glx $GL_PLATFORMS"
1257 GST_GL_HAVE_PLATFORM_GLX=1
1259 if test "x$USE_WGL" = "xyes"; then
1260 GL_PLATFORMS="wgl $GL_PLATFORMS"
1261 GST_GL_HAVE_PLATFORM_WGL=1
1263 if test "x$USE_COCOA" = "xyes"; then
1264 GL_PLATFORMS="cgl $GL_PLATFORMS"
1265 GST_GL_HAVE_PLATFORM_CGL=1
1267 if test "x$USE_EAGL" = "xyes"; then
1268 GL_PLATFORMS="eagl $GL_PLATFORMS"
1269 GST_GL_HAVE_PLATFORM_EAGL=1
1272 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1273 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1274 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1275 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1276 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1277 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1280 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1281 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1284 dnl Check for no platforms/window systems
1285 if test "x$GL_APIS" = "x"; then
1286 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1288 if test "x$GL_PLATFORMS" = "x"; then
1289 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1291 if test "x$GL_WINDOWS" = "x"; then
1292 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1295 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1310 HAVE_WINDOW_WIN32=no
1311 HAVE_WINDOW_DISPMANX=no
1312 HAVE_WINDOW_WAYLAND=no
1313 HAVE_WINDOW_ANDROID=no
1314 HAVE_WINDOW_COCOA=no
1320 AC_SUBST(GL_OBJCFLAGS)
1321 AC_SUBST(USE_OPENGL)
1324 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1325 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1326 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1327 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1328 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1329 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1330 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1332 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1333 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1334 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1335 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1336 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1337 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1338 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1339 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1340 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1342 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1344 dnl Check for some types that are not always present
1346 if test "x$USE_GLES2" = "xyes"; then
1347 GL_INCLUDES="$GL_INCLUDES
1348 #ifndef GL_GLEXT_PROTOTYPES
1349 #define GL_GLEXT_PROTOTYPES 1
1352 # include <OpenGLES/ES2/gl.h>
1353 # include <OpenGLES/ES2/glext.h>
1355 # if $GST_GL_HAVE_GLES3
1356 # include <GLES3/gl3.h>
1357 # include <GLES3/gl3ext.h>
1359 # include <GLES2/gl2.h>
1360 # include <GLES2/gl2ext.h>
1366 if test "x$USE_OPENGL" = "xyes"; then
1367 GL_INCLUDES="$GL_INCLUDES
1369 # include <OpenGL/OpenGL.h>
1370 # include <OpenGL/gl.h>
1373 # if __WIN32__ || _WIN32
1374 # include <GL/glext.h>
1380 GST_GL_HAVE_GLEGLIMAGEOES=0
1381 GST_GL_HAVE_GLCHAR=0
1382 GST_GL_HAVE_GLSIZEIPTR=0
1383 GST_GL_HAVE_GLINTPTR=0
1384 GST_GL_HAVE_GLSYNC=0
1385 GST_GL_HAVE_GLUINT64=0
1386 GST_GL_HAVE_GLINT64=0
1387 GST_GL_HAVE_EGLATTRIB=0
1390 CFLAGS="$GL_CFLAGS $CFLAGS"
1392 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1393 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1394 GST_GL_HAVE_GLEGLIMAGEOES=1
1397 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1398 if test "x$ac_cv_type_GLchar" = "xyes"; then
1399 GST_GL_HAVE_GLCHAR=1
1402 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1403 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1404 GST_GL_HAVE_GLSIZEIPTR=1
1407 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1408 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1409 GST_GL_HAVE_GLINTPTR=1
1412 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1413 if test "x$ac_cv_type_GLsync" = "xyes"; then
1414 GST_GL_HAVE_GLSYNC=1
1417 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1418 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1419 GST_GL_HAVE_GLUINT64=1
1422 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1423 if test "x$ac_cv_type_GLint64" = "xyes"; then
1424 GST_GL_HAVE_GLINT64=1
1427 if test "x$USE_EGL" = "xyes"; then
1428 EGL_INCLUDES="$GL_INCLUDES
1429 #include <EGL/egl.h>
1430 #include <EGL/eglext.h>
1432 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1433 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1434 GST_GL_HAVE_EGLATTRIB=1
1440 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1441 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1442 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1443 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1444 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1445 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1446 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1447 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1448 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1451 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1452 outfile=gstglconfig.h-tmp
1453 cat > $outfile <<\_______EOF
1456 * This is a generated file. Please modify `configure.ac'
1459 #ifndef __GST_GL_CONFIG_H__
1460 #define __GST_GL_CONFIG_H__
1462 #include <gst/gst.h>
1468 cat >>$outfile <<_______EOF
1472 cat >>$outfile <<_______EOF
1476 #endif /* __GST_GL_CONFIG_H__ */
1480 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1481 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1484 mv $outfile gst-libs/gst/gl/gstglconfig.h
1487 gl_config_defines='$GL_CONFIG_DEFINES'
1490 dnl libpng is optional
1491 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1492 if test "x$HAVE_PNG" = "xyes"; then
1493 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1496 AC_SUBST(LIBPNG_LIBS)
1497 AC_SUBST(LIBPNG_CFLAGS)
1498 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1500 dnl libjpeg is optional
1501 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1503 if test x$with_jpeg_mmx != x; then
1504 LIBS="$LIBS -L$with_jpeg_mmx"
1506 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1507 JPEG_LIBS="$LIBS -ljpeg-mmx"
1509 if test x$HAVE_JPEG != xyes; then
1511 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1514 if test x$HAVE_JPEG = xyes; then
1515 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1517 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1522 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1525 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1526 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1528 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1529 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1530 VULKAN_CONFIG_DEFINES="
1531 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1532 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1534 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1535 outfile=vkconfig.h-tmp
1536 cat > $outfile <<\_______EOF
1539 * This is a generated file. Please modify `configure.ac'
1542 #ifndef __GST_VULKAN_CONFIG_H__
1543 #define __GST_VULKAN_CONFIG_H__
1545 #include <gst/gst.h>
1551 cat >>$outfile <<_______EOF
1552 $vulkan_config_defines
1555 cat >>$outfile <<_______EOF
1559 #endif /* __GST_VULKAN_CONFIG_H__ */
1563 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1564 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1567 mv $outfile ext/vulkan/vkconfig.h
1570 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1573 dnl *** sys plug-ins ***
1576 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1577 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1578 HAVE_DIRECTSOUND="no"
1579 save_CFLAGS="$CFLAGS"
1580 save_LDFLAGS="$LDFLAGS"
1582 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1583 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1584 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1585 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1586 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1587 #include <windows.h>
1590 #include <mmsystem.h>
1592 DXGetErrorString9 (0);
1593 DirectSoundCreate(NULL, NULL, NULL);
1595 [HAVE_DIRECTSOUND="yes"],
1596 [HAVE_DIRECTSOUND="no"])
1597 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1599 LDFLAGS=$save_LDFLAGS
1602 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1603 dnl this is much more than we want
1604 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1605 AC_SUBST(DIRECTX_CFLAGS)
1606 AC_SUBST(DIRECTX_LDFLAGS)
1607 AC_SUBST(DIRECTSOUND_LIBS)
1609 AC_SUBST(HAVE_DIRECTSOUND)
1613 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1614 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1616 save_CFLAGS="$CFLAGS"
1617 save_LDFLAGS="$LDFLAGS"
1619 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1620 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1621 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1622 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1623 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1624 #include <windows.h>
1626 #include <mmsystem.h>
1627 #include <mmdeviceapi.h>
1633 hr = CoInitialize(NULL);
1635 printf("CoInitialize failed: hr = 0x%08x", hr);
1640 // result = do_everything(argc, argv);
1646 [HAVE_WASAPI="yes"],
1648 AC_MSG_RESULT($HAVE_WASAPI)
1650 LDFLAGS=$save_LDFLAGS
1653 if test "x$HAVE_WASAPI" = "xyes"; then
1654 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1655 AC_SUBST(WASAPI_LIBS)
1657 AC_SUBST(HAVE_WASAPI)
1661 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1662 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1664 save_CFLAGS="$CFLAGS"
1665 save_LDFLAGS="$LDFLAGS"
1667 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1668 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1669 LIBS="$LIBS -ld3d9 -lgdi32"
1670 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1671 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1672 #include <windows.h>
1675 Direct3DCreate9(D3D_SDK_VERSION);
1677 [HAVE_DIRECT3D="yes"],
1678 [HAVE_DIRECT3D="no"])
1679 AC_MSG_RESULT($HAVE_DIRECT3D)
1681 LDFLAGS=$save_LDFLAGS
1684 if test "x$HAVE_DIRECT3D" = "xyes"; then
1685 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1686 AC_SUBST(DIRECT3D_LIBS)
1688 AC_SUBST(HAVE_DIRECT3D)
1692 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1693 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1694 HAVE_WINSCREENCAP="no"
1695 save_CFLAGS="$CFLAGS"
1696 save_LDFLAGS="$LDFLAGS"
1698 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1699 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1700 LIBS="$LIBS -ld3d9 -lgdi32"
1701 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1702 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1703 #include <windows.h>
1706 Direct3DCreate9(D3D_SDK_VERSION);
1708 [HAVE_WINSCREENCAP="yes"],
1709 [HAVE_WINSCREENCAP="no"])
1710 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1712 LDFLAGS=$save_LDFLAGS
1715 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1716 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1717 AC_SUBST(WINSCREENCAP_LIBS)
1719 AC_SUBST(HAVE_WINSCREENCAP)
1723 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1724 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1726 save_CFLAGS="$CFLAGS"
1727 save_LDFLAGS="$LDFLAGS"
1729 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1730 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1731 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1732 AC_MSG_CHECKING(for Winks LDFLAGS)
1733 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1734 #include <windows.h>
1739 IGraphBuilder *pGraph = NULL;
1740 HRESULT hr = CoInitialize(NULL);
1741 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1742 &IID_IGraphBuilder, (void **)&pGraph);
1749 AC_MSG_RESULT($HAVE_WINKS)
1751 LDFLAGS=$save_LDFLAGS
1754 if test "x$HAVE_WINKS" = "xyes"; then
1755 dnl this is much more than we want
1756 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1757 AC_SUBST(DIRECTX_CFLAGS)
1758 AC_SUBST(DIRECTX_LDFLAGS)
1759 AC_SUBST(WINKS_LIBS)
1761 AC_SUBST(HAVE_WINKS)
1764 dnl *** Android Media ***
1765 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1766 HAVE_ANDROID_MEDIA="no"
1767 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1770 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1773 HAVE_ANDROID_MEDIA="no"
1778 dnl *** AppleMedia (OS X and iOS) ***
1779 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1780 HAVE_APPLE_MEDIA="no"
1781 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1782 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1783 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1784 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1785 if test "x$HAVE_IOS" = "xno"; then
1786 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1790 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1795 HAVE_APPLE_MEDIA="no"
1800 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1801 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1802 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1803 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1804 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1806 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1815 dnl *** OS/X AVCVideoServices ***
1816 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1818 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1820 save_CPPFLAGS="$CPPFLAGS"
1821 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1823 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1824 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1826 CPPFLAGS=$save_CPPFLAGS
1829 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1838 dnl check for shm_open (for shm plugin)
1839 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1840 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1841 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1843 *-darwin* | *-macos10*)
1844 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1851 AC_CHECK_LIB([rt], [shm_open],
1852 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1853 #include <sys/socket.h>
1856 AC_SUBST(SHM_LIBS, "-lrt")
1864 dnl check for Video CD
1865 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1866 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1867 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1870 dnl check for OpenSL ES
1871 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1872 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1873 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1876 dnl *** UVC H264 ***
1877 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1878 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1879 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1880 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1881 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1884 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1885 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1886 HAVE_LIBUSB="yes" ],
1888 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1889 test "x$HAVE_GUDEV" = "xyes" && \
1890 test "x$HAVE_LIBUSB" = "xyes"; then
1896 AC_SUBST(LIBUDEV_CFLAGS)
1897 AC_SUBST(LIBUDEV_LIBS)
1898 AC_SUBST(LIBUSB_CFLAGS)
1899 AC_SUBST(LIBUSB_LIBS)
1902 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1903 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1904 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1905 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1906 AC_ARG_WITH([cuda-prefix],
1907 AS_HELP_STRING([--with-cuda-prefix],
1908 [Use the provided prefix for detecting the cuda installation]),
1909 [AS_IF([test "x$with_cuda_prefix" != "x"],
1910 [CUDA_PREFIX="$with_cuda_prefix"])],
1914 if test "x$CUDA_PREFIX" != "x"; then
1915 dnl only override if not already set
1916 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1917 dnl this is an educated guess, user can always override these
1918 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1919 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1922 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1923 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1924 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1925 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1930 save_CPPFLAGS="$CPPFLAGS"
1931 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1932 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1933 AC_MSG_WARN([Could not find cuda.h]))
1934 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1935 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1936 CPPFLAGS=$save_CPPFLAGS
1938 dnl libcuda and libcudart libraries
1940 LIBS="$CUDA_LIBS $save_LIBS"
1941 HAVE_CUDART_LIB="no"
1942 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1943 AC_MSG_WARN([Could not find cudart library])])
1945 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1946 AC_MSG_WARN([Could not find cuda library])])
1949 dnl nvEncodeAPI.h header
1950 HAVE_NVENCODEAPI_H=no
1951 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1952 save_CPPFLAGS="$CPPFLAGS"
1953 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1954 AC_CHECK_HEADER([nvEncodeAPI.h], [
1955 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1956 #if NVENCAPI_MAJOR_VERSION < 5
1957 #error "Need nvEncodeAPI.h >= 5.0"
1960 HAVE_NVENCODEAPI_H=yes
1962 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1965 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1966 AC_SUBST(NVENCODE_CFLAGS)
1967 CPPFLAGS="$save_CPPFLAGS"
1969 dnl libnvnidia-encode library
1970 HAVE_NVENCODE_LIB=no
1971 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1973 LIBS="$NVENCODE_LIBS $saved_LIBS"
1974 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1975 AC_MSG_WARN([Could not find library nvidia-encode]))
1976 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1977 AC_SUBST(NVENCODE_LIBS)
1981 if test "x$HAVE_CUDA_H" = "xyes" \
1982 -a "x$HAVE_CUDART_H" = "xyes" \
1983 -a "x$HAVE_CUDA_LIB" = "xyes" \
1984 -a "x$HAVE_CUDART_LIB" = "xyes" \
1985 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1986 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1988 if test x"$USE_OPENGL" = x"yes"; then
1989 dnl cuda-gl interop header
1990 save_CPPFLAGS="$CPPFLAGS"
1991 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1992 AC_CHECK_HEADER([cuda_gl_interop.h], [
1993 USE_NVENC_GST_GL="yes"
1994 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1996 CPPFLAGS="$save_CPPFLAGS"
2002 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2004 dnl check for tinyalsa
2005 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2006 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2007 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2010 dnl *** ext plug-ins ***
2011 dnl keep this list sorted alphabetically !
2013 if test "x$BUILD_EXTERNAL" = "xyes"; then
2015 dnl *** assrender ***
2016 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2017 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2018 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2019 HAVE_ASSRENDER="yes" ], [
2023 AC_SUBST(ASSRENDER_CFLAGS)
2024 AC_SUBST(ASSRENDER_LIBS)
2026 dnl *** vo-amrwbenc ***
2027 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2028 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2029 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2032 dnl *** vo-aacenc ***
2033 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2034 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2035 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2038 dnl *** apexsink ***
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2040 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2041 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2045 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2046 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2047 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2049 AC_SUBST(APEXSINK_CFLAGS)
2050 AC_SUBST(APEXSINK_LIBS)
2057 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2058 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2059 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2062 AC_SUBST(BS2B_CFLAGS)
2067 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2068 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2071 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2072 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2073 AC_MSG_RESULT($HAVE_BZ2)
2075 if test "x$HAVE_BZ2" = "xyes"; then
2083 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2084 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2085 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2088 # AC_SUBST(CAIRO_CFLAGS)
2089 # AC_SUBST(CAIRO_LIBS)
2092 dnl *** chromaprint ***
2093 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2094 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2095 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2096 HAVE_CHROMAPRINT="no"
2098 AC_SUBST(CHROMAPRINT_CFLAGS)
2099 AC_SUBST(CHROMAPRINT_LIBS)
2103 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2104 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2105 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2107 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2108 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2110 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2111 [[#ifdef HAVE_SYS_TYPES_H
2112 # include <sys/types.h>
2114 #ifdef HAVE_NETINET_IN_H
2115 # include <netinet/in.h>
2118 AC_MSG_CHECKING([for socket support needed by curlsink])
2119 AC_MSG_RESULT($HAVE_CURL)
2123 AC_SUBST(CURL_CFLAGS)
2125 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2127 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2131 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2132 AC_SUBST(SSH2_CFLAGS)
2134 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2137 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2138 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2139 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2140 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2142 AC_SUBST(LIBXML2_CFLAGS)
2143 AC_SUBST(LIBXML2_LIBS)
2147 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2148 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2149 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2150 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2159 AC_SUBST(LIBDC1394_CFLAGS)
2160 AC_SUBST(LIBDC1394_LIBS)
2163 dnl *** decklink ***
2164 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2165 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2172 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2173 AC_CHECK_LIB(dl, dlopen,
2177 DECKLINK_LIBS="-lpthread -ldl"
2182 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2183 AC_CHECK_LIB(dl, dlopen,
2187 DECKLINK_LIBS="-lpthread -ldl"
2188 HAVE_DECKLINK_OSX=yes
2197 AC_SUBST(DECKLINK_CXXFLAGS)
2198 AC_SUBST(DECKLINK_LIBS)
2200 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2202 dnl **** DirectFB ****
2203 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2204 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2205 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2210 dnl **** Wayland ****
2211 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2212 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2213 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2214 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2215 if test "x$wayland_scanner" != "x"; then
2218 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2227 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2228 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2229 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2230 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2232 AC_SUBST(WEBP_CFLAGS)
2237 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2238 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2239 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2240 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2245 AC_SUBST(DAALA_CFLAGS)
2246 AC_SUBST(DAALA_LIBS)
2251 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2252 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2254 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2255 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2256 if test $HAVE_DTS = "no"; then
2257 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2258 [ DTS_LIBS="-ldts_pic $LIBM"
2259 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2265 dnl *** resindvd ***
2266 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2267 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2268 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2273 dnl **** Free AAC Encoder (FAAC) ****
2274 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2275 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2276 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2277 FAAC_LIBS="-lfaac $LIBM")
2281 dnl **** Free AAC Decoder (FAAD2) ****
2282 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2283 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2284 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2285 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2286 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2288 #elif !defined(LATM)
2289 #error Not faad2 >= 2.7
2295 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2305 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2306 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2307 if test "x$HAVE_FBDEV" != "xyes"; then
2308 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2313 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2314 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2315 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", [
2321 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2322 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2323 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2324 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2326 AC_SUBST(FLITE_CFLAGS)
2327 AC_SUBST(FLITE_LIBS)
2331 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2332 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2333 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2334 if test $HAVE_GSM != "yes"; then
2335 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2336 if test $HAVE_GSM = "yes"; then
2337 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2343 dnl *** fluidSynth ***
2344 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2345 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2346 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2347 HAVE_FLUIDSYNTH="no"
2352 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2353 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2354 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2357 AC_SUBST(KATE_CFLAGS)
2359 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2362 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2368 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2369 AC_SUBST(TIGER_CFLAGS)
2370 AC_SUBST(TIGER_LIBS)
2371 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2374 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2375 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2376 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2377 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2378 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2382 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2383 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2384 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2386 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2387 if test $HAVE_LRDF = "yes"; then
2388 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2391 AC_SUBST(LRDF_CFLAGS)
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2396 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2397 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2399 HAVE_LILV_0_22="yes"
2400 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2402 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2404 AC_SUBST(LILV_CFLAGS)
2408 dnl *** libde265 ***
2409 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2410 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2411 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2412 AC_SUBST(LIBDE265_CFLAGS)
2413 AC_SUBST(LIBDE265_LIBS)
2417 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2418 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2419 dnl check with pkg-config first
2420 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2424 AC_SUBST(LIBMMS_LIBS)
2428 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2429 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2430 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2431 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2434 AC_SUBST(SRTP_CFLAGS)
2438 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2439 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2440 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2442 AC_SUBST(DTLS_CFLAGS)
2450 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2451 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2463 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2464 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2465 if test "x$HAVE_CXX" != "xyes"; then
2466 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2469 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2471 AC_SUBST(MODPLUG_CFLAGS)
2472 AC_SUBST(MODPLUG_LIBS)
2476 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2477 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2479 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2480 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2481 AC_SUBST(MIMIC_CFLAGS)
2482 AC_SUBST(MIMIC_LIBS)
2485 dnl *** mjpegtools version info ***
2486 dnl some may prefer older version (given quirks above)
2487 dnl hm, no version info seems available within mjpegtools headers
2488 dnl and API really moves along
2490 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2491 mjpegtools_api=10601
2493 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2494 mjpegtools_api=10800
2496 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2497 mjpegtools_api=20000
2499 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2500 dnl logging API changed in release candidates
2501 OLD_CFLAGS="$CFLAGS"
2503 CFLAGS="$MJPEG_CFLAGS"
2504 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2505 AC_CHECK_FUNC(mjpeg_loglev_t, [
2506 mjpegtools_api=10903
2508 mjpegtools_api=10900
2510 CFLAGS="$OLD_CFLAGS"
2518 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2519 [mjpegtools API evolution])
2521 dnl *** mpeg2enc ***
2522 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2523 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2525 dnl we require a c++ compiler for this one
2526 if [ test x$HAVE_CXX = xyes ]; then
2527 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2528 dnl since many distros include mjpegtools specifically without mplex
2529 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2530 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2531 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2533 dnl switch over to c++ to test things
2535 OLD_CPPFLAGS="$CPPFLAGS"
2537 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2538 CPPFLAGS="$CPPFLAGS_GOOD -I."
2540 mpeg2enc_headers_ok=no
2541 AC_CHECK_HEADER([mpeg2encoder.hh], [
2542 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2544 LIBS="$LIBS $MPEG2ENC_LIBS"
2545 AC_MSG_CHECKING([for valid mpeg2enc objects])
2546 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2547 #include <mpeg2encoder.hh>
2548 #include <mpeg2encoptions.hh>
2554 MPEG2EncOptions *options = new MPEG2EncOptions ();
2555 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2560 dnl so far so good, let's check more things:
2561 dnl mjpegtools-1.8.0 does not install the required
2562 dnl mpeg2syntaxcodes.h header by default, and a new release
2563 dnl is not in sight, so check for this oversight in case
2564 dnl distros or folks have fixed this themselves
2565 if test "$mjpegtools_api" -ge "10800"; then
2566 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2567 mpeg2enc_headers_ok=yes
2569 mpeg2enc_headers_ok=no
2572 mpeg2enc_headers_ok=yes
2574 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2577 CPPFLAGS="$CPPFLAGS_GOOD"
2578 AC_SUBST(MPEG2ENC_CFLAGS)
2579 AC_SUBST(MPEG2ENC_LIBS)
2586 CPPFLAGS="$OLD_CPPFLAGS"
2595 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2596 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2598 dnl we require a c++ compiler for this one
2599 if [ test x$HAVE_CXX = xyes ]; then
2600 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2601 dnl since many distros include mjpegtools specifically without mplex
2602 dnl and mpeg2enc, we check for mplex on its own, too.
2603 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2604 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2605 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2607 dnl switch over to c++ to test things
2609 OLD_CPPFLAGS="$CPPFLAGS"
2611 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2612 CPPFLAGS="$CPPFLAGS_GOOD -I."
2613 AC_CHECK_HEADER(interact.hpp, [
2614 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2616 LIBS="$LIBS $MPLEX_LIBS"
2617 OLD_LDFLAGS="$LDFLAGS"
2618 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2619 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2620 dnl don't want this here
2621 AC_MSG_CHECKING([for valid mplex objects])
2622 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2624 #include <interact.hpp>
2625 #include <outputstrm.hpp>
2626 #include <multiplexor.hpp>
2631 class TestOutputStream : public OutputStream {
2633 TestOutputStream () : OutputStream () { }
2634 void Write (uint8_t *a, unsigned int b) { }
2635 void NextSegment () { }
2636 uint64_t SegmentSize () { }
2640 MultiplexJob *job = new MultiplexJob ();
2641 vector<IBitStream *> inputs;
2642 job->SetupInputStreams (inputs);
2643 TestOutputStream *out = new TestOutputStream ();
2644 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2649 CPPFLAGS="$CPPFLAGS_GOOD"
2650 AC_SUBST(MPLEX_CFLAGS)
2651 AC_SUBST(MPLEX_LIBS)
2652 AC_SUBST(MPLEX_LDFLAGS)
2654 ],[AC_MSG_RESULT(no)],[])
2656 LDFLAGS="$OLD_LDFLAGS"
2658 CPPFLAGS="$OLD_CPPFLAGS"
2664 dnl *** musepack ***
2665 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2666 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2667 AC_CHECK_HEADER([mpc/mpcdec.h], [
2669 MUSEPACK_LIBS="-lmpcdec"
2670 AC_SUBST(MUSEPACK_LIBS)
2671 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2673 MUSEPACK_LIBS="-lmpcdec"
2674 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2675 AC_SUBST(MUSEPACK_LIBS)
2676 ], [HAVE_MUSEPACK="no"])])
2680 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2681 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2683 if test "x$HAVE_X" = "xyes"; then
2684 save_cppflags=$CFLAGS
2685 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2686 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2687 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2688 CPPFLAGS="$save_cppflags"
2690 AC_SUBST(NAS_CFLAGS)
2695 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2696 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2697 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2700 AC_SUBST(NEON_CFLAGS)
2705 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2706 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2707 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2710 AC_SUBST(OFA_CFLAGS)
2715 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2716 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2717 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2720 AC_SUBST(OPENAL_CFLAGS)
2721 AC_SUBST(OPENAL_LIBS)
2725 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2726 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2727 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2728 dnl and don't want the build to break when a new opencv version comes out.
2729 dnl Need to adjust this upwards once we know that our code compiles fine with
2730 dnl a new version and the no-backward-compatibility define. (There doesn't
2731 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2733 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2736 OLD_CPPFLAGS=$CPPFLAGS
2737 CPPFLAGS=$OPENCV_CFLAGS
2738 something_not_found=no
2739 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2740 opencv2/core/version.hpp \
2741 opencv2/highgui/highgui_c.h \
2742 opencv2/imgproc/imgproc.hpp \
2743 opencv2/imgproc/imgproc_c.h \
2744 opencv2/objdetect/objdetect.hpp \
2745 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2746 CPPFLAGS=$OLD_CPPFLAGS
2749 if test $something_not_found = "yes"; then
2750 AC_MSG_RESULT([not all opencv2 headers were found])
2758 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2759 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2760 AC_SUBST(OPENCV_PREFIX)
2761 AC_SUBST(OPENCV_CFLAGS)
2762 AC_SUBST(OPENCV_LIBS)
2763 dnl the OpenCV prefix is used at runtime for some object properties, and also
2764 dnl used here to detect which directory is the correct one. For the second
2765 dnl case, make sure the right sysroot is used, ensuring correct behavior
2766 dnl during cross compilation.
2767 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2768 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2770 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2775 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2776 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2777 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2780 dnl *** openh264 ***
2781 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2782 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2783 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2786 dnl *** OpenJPEG ***
2787 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2788 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2790 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2791 if test x"$HAVE_OPENJPEG" = x"yes"; then
2792 dnl minor API changes in v2.1
2793 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2794 if test x"$HAVE_OPENJPEG" = x"yes"; then
2795 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2800 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2801 HAVE_OPENJPEG="yes",
2802 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2804 if test x"$HAVE_OPENJPEG" = x"yes"; then
2805 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2808 AC_SUBST(OPENJPEG_CFLAGS)
2809 AC_SUBST(OPENJPEG_LIBS)
2813 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2814 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2815 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2816 AC_SUBST(OPENNI2_CFLAGS)
2817 AC_SUBST(OPENNI2_LIBS)
2821 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2822 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2823 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2824 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2829 AC_SUBST(OPUS_CFLAGS)
2834 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2835 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2836 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2837 AC_SUBST(PVR_CFLAGS)
2841 AC_ARG_WITH([pvr-external-headers],
2842 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2843 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2844 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2845 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2848 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2849 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2850 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2854 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2855 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2858 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2865 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2866 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2867 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2868 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2873 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2875 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2876 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2877 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2878 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2880 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2882 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2883 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2884 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2885 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2887 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2889 if test "x$GDK_WINDOWING" = "xyes"; then
2890 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2897 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2900 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2901 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2902 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2903 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2904 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2905 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2906 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2907 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2908 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2909 AC_MSG_WARN([One of the required qt build programs was not found])
2913 HAVE_QT_WINDOWING="no"
2914 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2915 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2916 AS_IF([test -f "$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2917 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2918 HAVE_QT_QPA_HEADER="yes"
2919 ], [AC_MSG_NOTICE([Cannot find QPA])])
2920 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2921 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2922 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2923 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2924 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2925 HAVE_QT_WINDOWING="yes"
2926 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2928 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
2929 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2930 AC_DEFINE([HAVE_QT_WAYLAND], [],
2931 [Define if Qt Wayland integration is installed])
2932 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2933 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2934 HAVE_QT_WINDOWING="yes"
2935 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2937 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2938 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2939 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2940 # c++ on android requires a standard library and there are multiple
2941 # choices. cerbero provides a pkg-config file the describes a choice
2942 # so try to use that. Outside cerbero one has to pass these flags
2943 # manually for the library one is using
2944 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2945 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2946 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2948 AC_MSG_NOTICE([Could not find Standard C++ library])])
2949 AC_DEFINE([HAVE_QT_EGLFS], [],
2950 [Define if Qt eglfs integration is installed])
2951 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2952 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2953 HAVE_QT_WINDOWING="yes"
2954 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2956 AC_DEFINE([HAVE_QT_EGLFS], [],
2957 [Define if Qt eglfs integration is installed])
2958 HAVE_QT_WINDOWING="yes"
2961 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2962 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2963 AC_DEFINE([HAVE_QT_MAC], [],
2964 [Define if Qt Mac integration is installed])
2965 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2966 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2967 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2968 HAVE_QT_WINDOWING="yes"
2969 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2971 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2972 if test "x$HAVE_IOS" = "xyes"; then
2973 # iOS doesn't have its own extras package so if we have the core
2974 # modules we are good to go
2975 AC_DEFINE([HAVE_QT_IOS], [],
2976 [Define if Qt iOS integration is installed])
2977 HAVE_QT_WINDOWING="yes"
2980 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2981 AC_MSG_WARN([Could not find any Qt Windowing integration])
2984 AC_SUBST([QT_CFLAGS])
2993 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2994 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2996 AC_CHECK_HEADER(vulkan/vulkan.h, [
2997 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2998 VULKAN_LIBS="-lvulkan"
2999 AC_SUBST(VULKAN_LIBS)
3000 dnl TODO check platform support (x11, win32, wayland, android, etc)
3001 if test "x$HAVE_XCB" = "xyes"; then
3008 dnl *** libvisual ***
3009 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
3010 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
3011 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
3012 if test x$HAVE_LIBVISUAL = xyes; then
3013 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
3015 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
3016 if test x$LIBVIS_PLUGINSDIR != x; then
3017 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
3018 "$LIBVIS_PLUGINSDIR",
3019 [directory in which the detected libvisual's plugins are located])
3023 dnl *** timidity ***
3024 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
3025 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
3026 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
3027 HAVE_TIMIDITY="yes",
3028 AC_MSG_CHECKING([for timidity.cfg])
3030 if test -r /etc/timidity.cfg; then
3031 timidity_cfg=/etc/timidity.cfg
3032 elif test -r /etc/timidity/timidity.cfg; then
3033 timidity_cfg=/etc/timidity/timidity.cfg
3034 elif test -r /usr/share/timidity/timidity.cfg; then
3035 timidity_cfg=/usr/share/timidity/timidity.cfg
3036 elif test -r /usr/local/share/timidity/timidity.cfg; then
3037 timidity_cfg=/usr/local/share/timidity/timidity.cfg
3039 if test "x$timidity_cfg" != "x"; then
3040 AC_MSG_RESULT($timidity_cfg)
3041 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
3043 AC_MSG_RESULT([not found])
3048 AC_SUBST(TIMIDITY_CFLAGS)
3049 AC_SUBST(TIMIDITY_LIBS)
3052 dnl *** teletextdec ***
3053 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3054 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3055 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3058 dnl *** wildmidi ***
3059 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3060 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3061 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3064 WILDMIDI_LIBS="-lWildMidi")
3065 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3067 if test "x$HAVE_WILDMIDI" = "xyes"; then
3069 WILDMIDI_LIBS=-lWildMidi
3070 AC_MSG_NOTICE(compiling gstWildMidi)
3074 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3076 AC_SUBST(WILDMIDI_CFLAGS)
3077 AC_SUBST(WILDMIDI_LIBS)
3081 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3082 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3083 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3086 dnl **** Smooth Streaming ****
3087 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3088 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3089 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3091 HAVE_SMOOTHSTREAMING="yes"],
3093 HAVE_SMOOTHSTREAMING="no"])
3094 AC_SUBST(LIBXML2_CFLAGS)
3095 AC_SUBST(LIBXML2_LIBS)
3099 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3100 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3101 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3102 AC_SUBST(SNDFILE_CFLAGS)
3103 AC_SUBST(SNDFILE_LIBS)
3106 dnl *** soundtouch ***
3107 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3108 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3109 dnl We only need -lBPM on soundtouch < 1.4
3110 dnl We check for libSoundTouch since Debian used it before upstream
3111 dnl added a pkgconfig file.
3112 HAVE_SOUNDTOUCH_1_4=yes
3113 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3114 [HAVE_SOUNDTOUCH=yes],
3115 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3116 [HAVE_SOUNDTOUCH=yes],
3117 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3118 [HAVE_SOUNDTOUCH=yes
3119 HAVE_SOUNDTOUCH_1_4=no
3120 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3121 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3122 [HAVE_SOUNDTOUCH=yes],
3123 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3124 [HAVE_SOUNDTOUCH=yes
3125 HAVE_SOUNDTOUCH_1_4=no
3126 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3127 HAVE_SOUNDTOUCH=no)])])])])
3128 AC_SUBST(SOUNDTOUCH_CFLAGS)
3129 AC_SUBST(SOUNDTOUCH_LIBS)
3130 if test "x$HAVE_CXX" != "xyes"; then
3131 USE_SOUNDTOUCH=false
3132 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3134 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3135 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3136 [Defined if the available libSoundTouch is >= 1.4])
3141 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3142 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3143 AC_CHECK_HEADER(openspc.h, [
3144 AC_CHECK_LIB(openspc, OSPC_Init, [
3145 SPC_LIBS="-lopenspc"
3157 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3158 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3159 AC_CHECK_HEADER(gme/gme.h, [
3160 AC_CHECK_LIB(gme, gme_new_emu, [
3171 if test "x$HAVE_GME" = "xyes"; then
3172 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3173 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3179 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3180 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3182 AC_CHECK_HEADER(xvid.h, [
3184 LIBS="$PTHREAD_LIBS $LIBM"
3185 AC_CHECK_LIB(xvidcore, xvid_encore, [
3186 AC_CHECK_LIB(xvidcore, xvid_decore, [
3187 AC_CHECK_LIB(xvidcore, xvid_global, [
3188 AC_MSG_CHECKING([for up-to-date XviD API version])
3189 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3190 #if XVID_API_MAJOR(XVID_API) != 4
3191 #error "Incompatible XviD API version"
3193 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3194 #error "Incompatible XviD API version"
3196 ]])],[ AC_MSG_RESULT(yes)
3197 XVID_LIBS="-lxvidcore $LIBM"
3200 ],[AC_MSG_RESULT(no) ])
3209 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3210 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3211 AC_MSG_CHECKING([Checking for up to date dvb installation])
3212 AC_CHECK_HEADER(linux/dvb/version.h, [
3213 AC_MSG_CHECKING([for up-to-date dvb API])
3214 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3215 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3216 #error "Incompatible dvb API"
3218 ]])], [ AC_MSG_RESULT(yes)
3220 ], [ AC_MSG_RESULT(no)
3227 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3228 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3229 AC_MSG_CHECKING([Checking for windows internet support])
3230 AC_CHECK_HEADERS([windows.h wininet.h],
3231 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3232 [AC_INCLUDES_DEFAULT
3233 #include <windows.h>])
3237 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3238 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3239 AC_MSG_CHECKING([Checking for ACM support])
3240 AC_CHECK_HEADERS([windows.h msacm.h],
3242 AC_SUBST(ACMENC_CFLAGS)
3243 AC_SUBST(ACMMP3DEC_CFLAGS)
3245 [AC_INCLUDES_DEFAULT
3246 #include <windows.h>])
3250 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3251 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3256 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3258 if test "$HAVE_VDPAU" = "no"; then
3259 saved_CPPFLAGS="$CPPFLAGS"
3260 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3262 if test -z "$HAVE_VDPAU_H"; then
3263 dnl Didn't find VDPAU header straight away.
3264 dnl Try /usr/include/nvidia. Need to clear caching vars first
3265 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3266 unset ac_cv_header_vdpau_vdpau_h
3267 unset ac_cv_header_vdpau_vdpau_x11_h
3268 VDPAU_CFLAGS="-I/usr/include/nvidia"
3269 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3270 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3271 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3274 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3276 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3277 dnl Found the headers - look for the lib
3278 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3280 LIBS="$VDPAU_LIBS $saved_LIBS"
3281 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3287 if test "$HAVE_VDPAU" = "yes"; then
3288 AC_MSG_NOTICE([Found up to date VDPAU installation])
3289 AC_SUBST(VDPAU_CFLAGS)
3290 AC_SUBST(VDPAU_LIBS)
3295 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3296 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3297 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3300 dnl *** schroedinger ***
3301 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3302 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3303 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3307 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3308 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3309 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3313 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3314 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3315 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3319 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3320 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3321 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3322 HAVE_SPANDSP="yes" ], [
3326 AC_SUBST(SPANDSP_CFLAGS)
3327 AC_SUBST(SPANDSP_LIBS)
3330 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3331 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3332 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3333 if test "x$HAVE_SNDIO" = "xyes"; then
3334 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3335 if test "x$HAVE_SNDIO" = "xyes"; then
3337 AC_SUBST(SNDIO_LIBS)
3342 dnl *** hls-crypto ***
3343 AC_ARG_WITH([hls-crypto],
3344 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3345 which cryptographic library version to compile against for hls (default: auto)
3347 AS_CASE([$with_hls_crypto],
3351 [with_hls_crypto=auto]
3357 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3358 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3359 AS_CASE([$with_hls_crypto],
3361 PKG_CHECK_MODULES(NETTLE, nettle, [
3362 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3364 ],[AC_MSG_ERROR([Could not find nettle library])])
3367 AM_PATH_LIBGCRYPT([1.2.0], [
3368 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3370 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3373 PKG_CHECK_MODULES(OPENSSL, openssl, [
3374 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3376 ],[AC_MSG_ERROR([Could not find openssl library])])
3379 dnl Try to find a valid crypto library
3380 PKG_CHECK_MODULES(NETTLE, nettle, [
3381 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3384 AM_PATH_LIBGCRYPT([1.2.0], [
3385 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3388 PKG_CHECK_MODULES(OPENSSL, openssl, [
3389 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3400 dnl *** x265 (H.265/HEVC encoder) ***
3401 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3402 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3403 AG_GST_PKG_CHECK_MODULES(X265, x265)
3406 dnl *** WebRTC Audio Processing ***
3407 dnl Note: We test for a specific version as there is no API stability
3408 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3409 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3411 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3413 # On Android, C++ headers comes with the STL implementation
3414 AS_CASE(["${host}"],
3417 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3418 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3419 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3421 AC_SUBST([WEBRTCDSP_CFLAGS])
3422 AC_SUBST([WEBRTCDSP_LIBS])
3425 old_CPPFLAGS=$CPPFLAGS
3426 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3427 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3428 CPPFLAGS=$old_CPPFLAGS
3434 dnl not building plugins with external dependencies,
3435 dnl but we still need to set the conditionals
3437 AM_CONDITIONAL(USE_ASSRENDER, false)
3438 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3439 AM_CONDITIONAL(USE_VOAACENC, false)
3440 AM_CONDITIONAL(USE_APEXSINK, false)
3441 AM_CONDITIONAL(USE_BS2B, false)
3442 AM_CONDITIONAL(USE_BZ2, false)
3443 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3444 AM_CONDITIONAL(USE_CURL, false)
3445 AM_CONDITIONAL(USE_SSH2, false)
3446 AM_CONDITIONAL(USE_DASH, false)
3447 AM_CONDITIONAL(USE_DC1394, false)
3448 AM_CONDITIONAL(USE_DECKLINK, false)
3449 AM_CONDITIONAL(DECKLINK_OSX, false)
3450 AM_CONDITIONAL(USE_DIRECTFB, false)
3451 AM_CONDITIONAL(USE_WAYLAND, false)
3452 AM_CONDITIONAL(USE_DAALA, false)
3453 AM_CONDITIONAL(USE_DTS, false)
3454 AM_CONDITIONAL(USE_EXIF, false)
3455 AM_CONDITIONAL(USE_RESINDVD, false)
3456 AM_CONDITIONAL(USE_FAAC, false)
3457 AM_CONDITIONAL(USE_FAAD, false)
3458 AM_CONDITIONAL(USE_FBDEV, false)
3459 AM_CONDITIONAL(USE_FDK_AAC, false)
3460 AM_CONDITIONAL(USE_FLITE, false)
3461 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3462 AM_CONDITIONAL(USE_GL, false)
3463 AM_CONDITIONAL(USE_GSM, false)
3464 AM_CONDITIONAL(USE_GTK3, false)
3465 AM_CONDITIONAL(USE_GTK3_GL, false)
3466 AM_CONDITIONAL(USE_HLS, false)
3467 AM_CONDITIONAL(USE_KATE, false)
3468 AM_CONDITIONAL(USE_KMS, false)
3469 AM_CONDITIONAL(USE_TIGER, false)
3470 AM_CONDITIONAL(USE_LADSPA, false)
3471 AM_CONDITIONAL(USE_LV2, false)
3472 AM_CONDITIONAL(USE_LIBDE265, false)
3473 AM_CONDITIONAL(USE_LIBMMS, false)
3474 AM_CONDITIONAL(USE_LINSYS, false)
3475 AM_CONDITIONAL(USE_MODPLUG, false)
3476 AM_CONDITIONAL(USE_MIMIC, false)
3477 AM_CONDITIONAL(USE_MPEG2ENC, false)
3478 AM_CONDITIONAL(USE_MPLEX, false)
3479 AM_CONDITIONAL(USE_MUSEPACK, false)
3480 AM_CONDITIONAL(USE_NAS, false)
3481 AM_CONDITIONAL(USE_NEON, false)
3482 AM_CONDITIONAL(USE_OFA, false)
3483 AM_CONDITIONAL(USE_OPENAL, false)
3484 AM_CONDITIONAL(USE_OPENCV, false)
3485 AM_CONDITIONAL(USE_OPENEXR, false)
3486 AM_CONDITIONAL(USE_OPENJPEG, false)
3487 AM_CONDITIONAL(USE_OPENNI2, false)
3488 AM_CONDITIONAL(USE_OPUS, false)
3489 AM_CONDITIONAL(USE_PVR, false)
3490 AM_CONDITIONAL(USE_QT, false)
3491 AM_CONDITIONAL(USE_LIBVISUAL, false)
3492 AM_CONDITIONAL(USE_TIMIDITY, false)
3493 AM_CONDITIONAL(USE_WILDMIDI, false)
3494 AM_CONDITIONAL(USE_SDL, false)
3495 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3496 AM_CONDITIONAL(USE_SNDFILE, false)
3497 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3498 AM_CONDITIONAL(USE_SPANDSP, false)
3499 AM_CONDITIONAL(USE_SPC, false)
3500 AM_CONDITIONAL(USE_SRTP, false)
3501 AM_CONDITIONAL(USE_GME, false)
3502 AM_CONDITIONAL(USE_XVID, false)
3503 AM_CONDITIONAL(USE_DVB, false)
3504 AM_CONDITIONAL(USE_WININET, false)
3505 AM_CONDITIONAL(USE_ACM, false)
3506 AM_CONDITIONAL(USE_VDPAU, false)
3507 AM_CONDITIONAL(USE_SBC, false)
3508 AM_CONDITIONAL(USE_SCHRO, false)
3509 AM_CONDITIONAL(USE_ZBAR, false)
3510 AM_CONDITIONAL(USE_RSVG, false)
3511 AM_CONDITIONAL(USE_RTMP, false)
3512 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3513 AM_CONDITIONAL(USE_SNDIO, false)
3514 AM_CONDITIONAL(USE_UVCH264, false)
3515 AM_CONDITIONAL(USE_WEBP, false)
3516 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3517 AM_CONDITIONAL(USE_OPENH264, false)
3518 AM_CONDITIONAL(USE_X265, false)
3519 AM_CONDITIONAL(USE_DTLS, false)
3521 fi dnl of EXT plugins
3523 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3526 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3527 dnl GST_*: flags shared by built objects to link against GStreamer
3528 dnl GST_ALL_LDFLAGS: linker flags shared by all
3529 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3530 dnl GST_LT_LDFLAGS: library versioning of our libraries
3531 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3533 dnl GST_OPTION_CFLAGS
3534 if test "x$USE_DEBUG" = xyes; then
3537 AC_SUBST(PROFILE_CFLAGS)
3539 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3540 dnl Define _only_ during CVS (not pre-releases or releases)
3541 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3543 DEPRECATED_CFLAGS=""
3545 AC_SUBST(DEPRECATED_CFLAGS)
3547 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3548 dnl at make time with e.g. make ERROR_CFLAGS=""
3549 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3550 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3551 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3552 AC_SUBST(GST_OPTION_CFLAGS)
3553 AC_SUBST(GST_OPTION_CXXFLAGS)
3554 AC_SUBST(GST_OPTION_OBJCFLAGS)
3556 dnl FIXME: do we want to rename to GST_ALL_* ?
3557 dnl prefer internal headers to already installed ones
3558 dnl also add builddir include for enumtypes and marshal
3559 dnl add GST_OPTION_CFLAGS, but overridable
3560 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3561 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3562 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3563 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3564 AC_SUBST(GST_CFLAGS)
3565 AC_SUBST(GST_CXXFLAGS)
3566 AC_SUBST(GST_OBJCFLAGS)
3568 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3569 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3570 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3571 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3572 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3573 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3575 dnl LDFLAGS really should only contain flags, not libs - they get added before
3576 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3577 GST_ALL_LDFLAGS="-no-undefined"
3578 if test "x${enable_Bsymbolic}" = "xyes"; then
3579 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3581 AC_SUBST(GST_ALL_LDFLAGS)
3584 dnl linker flags shared by all libraries
3585 dnl LDFLAGS modifier defining exported symbols from built libraries
3586 dnl (export _gst_foo but not __gst_foo)
3587 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3588 AC_SUBST(GST_LIB_LDFLAGS)
3590 dnl this really should only contain flags, not libs - they get added before
3591 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3592 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3593 AC_SUBST(GST_PLUGIN_LDFLAGS)
3595 dnl *** output files ***
3597 $MKDIR_P tests/check/orc
3605 gst-plugins-bad.spec
3607 gst/accurip/Makefile
3608 gst/adpcmdec/Makefile
3609 gst/adpcmenc/Makefile
3611 gst/videoframe_audiolevel/Makefile
3613 gst/audiofxbad/Makefile
3614 gst/audiomixer/Makefile
3615 gst/audiovisualizers/Makefile
3616 gst/autoconvert/Makefile
3618 gst/camerabin2/Makefile
3619 gst/cdxaparse/Makefile
3620 gst/coloreffects/Makefile
3621 gst/dataurisrc/Makefile
3623 gst/debugutils/Makefile
3624 gst/dvbsuboverlay/Makefile
3626 gst/faceoverlay/Makefile
3627 gst/festival/Makefile
3628 gst/fieldanalysis/Makefile
3629 gst/freeverb/Makefile
3631 gst/gaudieffects/Makefile
3632 gst/geometrictransform/Makefile
3634 gst/hdvparse/Makefile
3637 gst/interlace/Makefile
3638 gst/ivfparse/Makefile
3640 gst/jp2kdecimator/Makefile
3641 gst/jpegformat/Makefile
3644 gst/mpegdemux/Makefile
3645 gst/mpegtsdemux/Makefile
3646 gst/mpegtsmux/Makefile
3647 gst/mpegtsmux/tsmux/Makefile
3648 gst/mpegpsmux/Makefile
3652 gst/nuvdemux/Makefile
3654 gst/patchdetect/Makefile
3655 gst/pcapparse/Makefile
3657 gst/rawparse/Makefile
3658 gst/removesilence/Makefile
3661 gst/segmentclip/Makefile
3668 gst/timecode/Makefile
3669 gst/videofilters/Makefile
3670 gst/videomeasure/Makefile
3671 gst/videoparsers/Makefile
3672 gst/videosignal/Makefile
3676 gst/compositor/Makefile
3678 gst-libs/gst/Makefile
3679 gst-libs/gst/adaptivedemux/Makefile
3680 gst-libs/gst/basecamerabinsrc/Makefile
3681 gst-libs/gst/gl/Makefile
3682 gst-libs/gst/gl/android/Makefile
3683 gst-libs/gst/gl/cocoa/Makefile
3684 gst-libs/gst/gl/dispmanx/Makefile
3685 gst-libs/gst/gl/glprototypes/Makefile
3686 gst-libs/gst/gl/eagl/Makefile
3687 gst-libs/gst/gl/egl/Makefile
3688 gst-libs/gst/gl/wayland/Makefile
3689 gst-libs/gst/gl/win32/Makefile
3690 gst-libs/gst/gl/x11/Makefile
3691 gst-libs/gst/insertbin/Makefile
3692 gst-libs/gst/interfaces/Makefile
3693 gst-libs/gst/codecparsers/Makefile
3694 gst-libs/gst/mpegts/Makefile
3695 gst-libs/gst/uridownloader/Makefile
3696 gst-libs/gst/wayland/Makefile
3697 gst-libs/gst/base/Makefile
3698 gst-libs/gst/player/Makefile
3699 gst-libs/gst/video/Makefile
3700 gst-libs/gst/audio/Makefile
3702 sys/dshowdecwrapper/Makefile
3704 sys/acmmp3dec/Makefile
3705 sys/androidmedia/Makefile
3706 sys/applemedia/Makefile
3709 sys/d3dvideosink/Makefile
3710 sys/decklink/Makefile
3711 sys/directsound/Makefile
3712 sys/dshowsrcwrapper/Makefile
3713 sys/dshowvideosink/Makefile
3719 sys/opensles/Makefile
3721 sys/tinyalsa/Makefile
3722 sys/uvch264/Makefile
3727 sys/wininet/Makefile
3729 sys/winscreencap/Makefile
3731 tests/check/Makefile
3732 tests/files/Makefile
3733 tests/examples/Makefile
3734 tests/examples/avsamplesink/Makefile
3735 tests/examples/camerabin2/Makefile
3736 tests/examples/codecparsers/Makefile
3737 tests/examples/directfb/Makefile
3738 tests/examples/gl/Makefile
3739 tests/examples/gl/cocoa/Makefile
3740 tests/examples/gl/clutter/Makefile
3741 tests/examples/gl/generic/Makefile
3742 tests/examples/gl/generic/cube/Makefile
3743 tests/examples/gl/generic/cubeyuv/Makefile
3744 tests/examples/gl/generic/doublecube/Makefile
3745 tests/examples/gl/generic/recordgraphic/Makefile
3746 tests/examples/gl/gtk/Makefile
3747 tests/examples/gl/gtk/3dvideo/Makefile
3748 tests/examples/gl/gtk/filternovideooverlay/Makefile
3749 tests/examples/gl/gtk/filtervideooverlay/Makefile
3750 tests/examples/gl/gtk/fxtest/Makefile
3751 tests/examples/gl/gtk/switchvideooverlay/Makefile
3752 tests/examples/gl/qt/Makefile
3753 tests/examples/gl/sdl/Makefile
3754 tests/examples/gtk/Makefile
3755 tests/examples/mpegts/Makefile
3756 tests/examples/mxf/Makefile
3757 tests/examples/opencv/Makefile
3758 tests/examples/uvch264/Makefile
3759 tests/examples/waylandsink/Makefile
3760 tests/icles/Makefile
3761 ext/voamrwbenc/Makefile
3762 ext/voaacenc/Makefile
3763 ext/assrender/Makefile
3764 ext/apexsink/Makefile
3767 ext/chromaprint/Makefile
3771 ext/directfb/Makefile
3772 ext/wayland/Makefile
3781 ext/fluidsynth/Makefile
3787 ext/libde265/Makefile
3789 ext/libvisual/Makefile
3791 ext/modplug/Makefile
3792 ext/mpeg2enc/Makefile
3795 ext/musepack/Makefile
3801 ext/openexr/Makefile
3802 ext/openh264/Makefile
3803 ext/openjpeg/Makefile
3804 ext/openni2/Makefile
3808 ext/resindvd/Makefile
3811 ext/schroedinger/Makefile
3813 ext/smoothstreaming/Makefile
3814 ext/sndfile/Makefile
3815 ext/soundtouch/Makefile
3816 ext/spandsp/Makefile
3819 ext/teletextdec/Makefile
3822 ext/timidity/Makefile
3824 ext/vulkan/xcb/Makefile
3825 ext/vulkan/wayland/Makefile
3831 ext/webrtcdsp/Makefile
3834 docs/plugins/Makefile
3836 docs/version.entities
3838 pkgconfig/gstreamer-plugins-bad.pc
3839 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3840 pkgconfig/gstreamer-codecparsers.pc
3841 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3842 pkgconfig/gstreamer-insertbin.pc
3843 pkgconfig/gstreamer-insertbin-uninstalled.pc
3844 pkgconfig/gstreamer-gl.pc
3845 pkgconfig/gstreamer-gl-uninstalled.pc
3846 pkgconfig/gstreamer-mpegts.pc
3847 pkgconfig/gstreamer-mpegts-uninstalled.pc
3848 pkgconfig/gstreamer-player.pc
3849 pkgconfig/gstreamer-player-uninstalled.pc
3850 pkgconfig/gstreamer-wayland.pc
3851 pkgconfig/gstreamer-wayland-uninstalled.pc
3852 pkgconfig/gstreamer-bad-base.pc
3853 pkgconfig/gstreamer-bad-base-uninstalled.pc
3854 pkgconfig/gstreamer-bad-video.pc
3855 pkgconfig/gstreamer-bad-video-uninstalled.pc
3856 pkgconfig/gstreamer-bad-audio.pc
3857 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3862 dnl Create the config.h file for Visual Studio builds
3863 dnl Beware of spaces and /'s in some of the shell variable contents.
3865 -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"/' \
3866 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3867 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3868 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3869 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3870 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3871 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3872 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3873 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3874 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3875 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3876 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3877 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3878 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3879 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3880 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3881 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3882 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3883 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3884 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3885 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3886 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3887 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3888 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3889 -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/' \
3890 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3891 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3892 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3893 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3894 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3895 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3896 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3897 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3898 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3899 config.h.in >win32/common/config.h-new
3903 AG_GST_OUTPUT_PLUGINS