3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.9.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 901, 0, 901)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 if test "x$HAVE_PTHREAD_H" != "xyes"; then
168 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
171 dnl *** checks for types/defines ***
173 dnl Check for FIONREAD ioctl declaration
177 dnl *** checks for structures ***
179 dnl *** checks for compiler characteristics ***
181 dnl *** checks for library functions ***
182 AC_CHECK_FUNCS([gmtime_r])
184 dnl *** checks for headers ***
185 AC_CHECK_HEADERS([sys/utsname.h])
187 dnl *** checks for dependency libraries ***
189 dnl *** checks for socket and nsl libraries ***
190 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
191 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
195 AG_GST_GLIB_CHECK([$GLIB_REQ])
197 dnl checks for gstreamer
198 dnl uninstalled is selected preferentially -- see pkg-config(1)
199 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
202 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
203 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
204 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
206 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
208 dnl check for uninstalled plugin directories for unit tests
209 AG_GST_CHECK_UNINSTALLED_SETUP([
210 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
211 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
212 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
215 dnl Check for documentation xrefs
216 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
217 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
218 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
219 AC_SUBST(GLIB_PREFIX)
221 AC_SUBST(GSTPB_PREFIX)
223 dnl GTK is optional and used in examples
227 if test "x$BUILD_EXAMPLES" = "xyes"; then
228 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
230 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
232 2.0) GTK_REQ=$GTK2_REQ ;;
233 3.0) GTK_REQ=$GTK3_REQ ;;
234 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
238 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
239 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
243 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
245 dnl Check for -Bsymbolic-functions linker flag used to avoid
246 dnl intra-library PLT jumps, if available.
247 AC_ARG_ENABLE(Bsymbolic,
248 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
249 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
250 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
251 LDFLAGS=-Wl,-Bsymbolic-functions
253 AC_TRY_LINK([], [return 0],
255 enable_Bsymbolic=yes,
258 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
260 dnl *** set variables based on configure arguments ***
262 dnl GTK is optional and used in examples
264 if test "x$BUILD_EXAMPLES" = "xyes"; then
265 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
266 if test "x$HAVE_GTK3" = "xyes"; then
268 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
269 AC_SUBST(GTK_VERSION)
270 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
271 AC_SUBST(GTK_BASE_DIR)
275 AC_SUBST(GTK3_CFLAGS)
277 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
279 dnl clutter is optional and used in examples
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
285 AC_SUBST(CLUTTER_LIBS)
286 AC_SUBST(CLUTTER_CFLAGS)
287 AC_SUBST(HAVE_CLUTTER)
289 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
290 AC_SUBST(CLUTTER_GLX_LIBS)
291 AC_SUBST(CLUTTER_GLX_CFLAGS)
292 AC_SUBST(HAVE_CLUTTER_GLX)
294 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
295 AC_SUBST(CLUTTER_X11_LIBS)
296 AC_SUBST(CLUTTER_X11_CFLAGS)
297 AC_SUBST(HAVE_CLUTTER_X11)
299 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
300 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
301 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
303 dnl used in the gl/clutteractor example
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
306 AC_SUBST(XCOMPOSITE_CFLAGS)
307 AC_SUBST(XCOMPOSITE_LIBS)
309 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
311 dnl graphene-1.0 is optional and used in gltransformation
313 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
314 if test "x$HAVE_GRAPHENE" = "xyes"; then
315 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
317 AC_SUBST(HAVE_GRAPHENE)
318 AC_SUBST(GRAPHENE_LIBS)
319 AC_SUBST(GRAPHENE_CFLAGS)
320 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
323 dnl sdl is optional and used in examples
325 if test "x$BUILD_EXAMPLES" = "xyes"; then
326 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
329 AC_SUBST(SDL_CLUTTER)
331 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
334 dnl Needed for GtkBuilder to autoconnect signals
335 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
337 dnl Needed by plugins that use g_module_*() API
338 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
340 dnl x11 is optional for librfb
342 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
346 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
347 if test "x$HAVE_X11" = "xyes"; then
348 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
351 dnl exif (used on jifmux tests) ****
352 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
354 AC_SUBST(EXIF_CFLAGS)
355 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
360 dnl set license and copyright notice
362 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
363 AC_SUBST(GST_LICENSE)
365 dnl define LIBDIR so we can inform people where we live
366 AS_AC_EXPAND(LIBDIR, $libdir)
367 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
369 dnl set location of plugin directory
372 dnl set release date/time
373 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
374 ["${srcdir}/gst-plugins-bad.doap"],
375 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
377 dnl build static plugins or not
378 AC_MSG_CHECKING([whether to build static plugins or not])
382 [--enable-static-plugins],
383 [build static plugins @<:@default=no@:>@]),
385 [$enableval], [no], [], [yes], [],
386 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
387 [enable_static_plugins=no])
388 AC_MSG_RESULT([$enable_static_plugins])
389 if test "x$enable_static_plugins" = xyes; then
390 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
391 [Define if static plugins should be built])
392 GST_PLUGIN_LIBTOOLFLAGS=""
394 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
396 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
397 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
399 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
400 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
401 if test x$enable_static = xyes -a x$enable_shared = xno; then
402 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
405 AC_ARG_WITH([player-tests],
406 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
407 if test x$with_player_tests = xyes; then
408 AC_PATH_PROG([WGET], [wget], no)
409 if test x$WGET = xno; then
410 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
414 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
416 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
417 dnl make sure it doesn't complain about unused variables if debugging is disabled
419 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
421 dnl define an ERROR_CFLAGS Makefile variable
422 dnl -Waggregate-return - libexif returns aggregates
423 dnl -Wundef - Windows headers check _MSC_VER unconditionally
424 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
425 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
426 -Wwrite-strings -Wformat-security -Wold-style-definition
427 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
428 -Wnested-externs $NO_WARNINGS])
430 dnl define an ERROR_CXXFLAGS Makefile variable
431 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
432 -Wmissing-declarations -Wredundant-decls
433 -Wwrite-strings -Wformat-nonliteral -Wformat-security
434 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
436 dnl define an ERROR_OBJCFLAGS Makefile variable
437 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
438 -Wmissing-declarations -Wredundant-decls
439 -Wwrite-strings -Wformat-nonliteral -Wformat-security
440 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
442 dnl define correct level for debugging messages
443 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
446 AG_GST_DEFAULT_ELEMENTS
448 dnl *** plug-ins to include ***
449 dnl Non ported plugins (non-dependant, then dependant)
450 dnl Make sure you have a space before and after all plugins
451 GST_PLUGINS_NONPORTED=" cdxaparse \
462 xvid sndio libvisual"
464 AC_SUBST(GST_PLUGINS_NONPORTED)
466 dnl these are all the gst plug-ins, compilable without additional libs
467 AG_GST_CHECK_PLUGIN(accurip)
468 AG_GST_CHECK_PLUGIN(adpcmdec)
469 AG_GST_CHECK_PLUGIN(adpcmenc)
470 AG_GST_CHECK_PLUGIN(aiff)
471 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
472 AG_GST_CHECK_PLUGIN(asfmux)
473 AG_GST_CHECK_PLUGIN(audiofxbad)
474 AG_GST_CHECK_PLUGIN(audiomixer)
475 AG_GST_CHECK_PLUGIN(compositor)
476 AG_GST_CHECK_PLUGIN(audiovisualizers)
477 AG_GST_CHECK_PLUGIN(autoconvert)
478 AG_GST_CHECK_PLUGIN(bayer)
479 AG_GST_CHECK_PLUGIN(camerabin2)
480 AG_GST_CHECK_PLUGIN(cdxaparse)
481 AG_GST_CHECK_PLUGIN(coloreffects)
482 AG_GST_CHECK_PLUGIN(dataurisrc)
483 AG_GST_CHECK_PLUGIN(dccp)
484 AG_GST_CHECK_PLUGIN(debugutils)
485 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
486 AG_GST_CHECK_PLUGIN(dvdspu)
487 AG_GST_CHECK_PLUGIN(faceoverlay)
488 AG_GST_CHECK_PLUGIN(festival)
489 AG_GST_CHECK_PLUGIN(fieldanalysis)
490 AG_GST_CHECK_PLUGIN(freeverb)
491 AG_GST_CHECK_PLUGIN(frei0r)
492 AG_GST_CHECK_PLUGIN(gaudieffects)
493 AG_GST_CHECK_PLUGIN(geometrictransform)
494 AG_GST_CHECK_PLUGIN(gdp)
495 AG_GST_CHECK_PLUGIN(hdvparse)
496 AG_GST_CHECK_PLUGIN(id3tag)
497 AG_GST_CHECK_PLUGIN(inter)
498 AG_GST_CHECK_PLUGIN(interlace)
499 AG_GST_CHECK_PLUGIN(ivfparse)
500 AG_GST_CHECK_PLUGIN(ivtc)
501 AG_GST_CHECK_PLUGIN(jp2kdecimator)
502 AG_GST_CHECK_PLUGIN(jpegformat)
503 AG_GST_CHECK_PLUGIN(librfb)
504 AG_GST_CHECK_PLUGIN(midi)
505 AG_GST_CHECK_PLUGIN(mpegdemux)
506 AG_GST_CHECK_PLUGIN(mpegtsdemux)
507 AG_GST_CHECK_PLUGIN(mpegtsmux)
508 AG_GST_CHECK_PLUGIN(mpegpsmux)
509 AG_GST_CHECK_PLUGIN(mve)
510 AG_GST_CHECK_PLUGIN(mxf)
511 AG_GST_CHECK_PLUGIN(netsim)
512 AG_GST_CHECK_PLUGIN(nuvdemux)
513 AG_GST_CHECK_PLUGIN(onvif)
514 AG_GST_CHECK_PLUGIN(patchdetect)
515 AG_GST_CHECK_PLUGIN(pcapparse)
516 AG_GST_CHECK_PLUGIN(pnm)
517 AG_GST_CHECK_PLUGIN(rawparse)
518 AG_GST_CHECK_PLUGIN(removesilence)
519 AG_GST_CHECK_PLUGIN(sdi)
520 AG_GST_CHECK_PLUGIN(sdp)
521 AG_GST_CHECK_PLUGIN(segmentclip)
522 AG_GST_CHECK_PLUGIN(siren)
523 AG_GST_CHECK_PLUGIN(smooth)
524 AG_GST_CHECK_PLUGIN(speed)
525 AG_GST_CHECK_PLUGIN(subenc)
526 AG_GST_CHECK_PLUGIN(stereo)
527 AG_GST_CHECK_PLUGIN(tta)
528 AG_GST_CHECK_PLUGIN(videofilters)
529 AG_GST_CHECK_PLUGIN(videomeasure)
530 AG_GST_CHECK_PLUGIN(videoparsers)
531 AG_GST_CHECK_PLUGIN(videosignal)
532 AG_GST_CHECK_PLUGIN(vmnc)
533 AG_GST_CHECK_PLUGIN(y4m)
534 AG_GST_CHECK_PLUGIN(yadif)
536 dnl *** plug-ins to exclude ***
538 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
539 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
540 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
542 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
544 LIBS="$LIBS -framework VideoToolbox"
545 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
546 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
552 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
553 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
554 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
557 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
558 if test "x$HAVE_IOS" = "xyes"; then
559 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
562 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
563 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
564 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
567 dnl disable gst plugins we might not be able to build on this
568 dnl platform: (ugly but minimally invasive)
569 dnl FIXME: maybe move to sys, or make work with winsock2
570 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
571 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
573 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
574 WINSOCK2_LIBS="-lws2_32"
575 AC_SUBST(WINSOCK2_LIBS)
578 if test "x$HAVE_PTHREAD_H" = "xyes"; then
579 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
582 AG_GST_DISABLE_PLUGIN(dccp)
586 AC_ARG_ENABLE([opengl],
587 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
588 [case "${enableval}" in
591 auto) NEED_GL=auto ;;
592 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
593 esac],[NEED_GL=auto])
595 AC_ARG_WITH([opengl-module-name],
596 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
597 if test x$with_opengl_module_name != x; then
598 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
601 AC_ARG_ENABLE([gles2],
602 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
603 [case "${enableval}" in
604 yes) NEED_GLES2=yes ;;
606 auto) NEED_GLES2=auto ;;
607 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
608 esac],[NEED_GLES2=auto])
610 AC_ARG_WITH([gles2-module-name],
611 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
612 if test x$with_gles2_module_name != x; then
613 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
617 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
618 [case "${enableval}" in
621 auto) NEED_EGL=auto ;;
622 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
623 esac],[NEED_EGL=auto])
625 AC_ARG_WITH([egl-module-name],
626 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
627 if test x$with_egl_module_name != x; then
628 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
632 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
633 [case "${enableval}" in
636 auto) NEED_WGL=auto ;;
637 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
638 esac],[NEED_WGL=auto])
641 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
642 [case "${enableval}" in
645 auto) NEED_GLX=auto ;;
646 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
647 esac],[NEED_GLX=auto])
649 AC_ARG_ENABLE([cocoa],
650 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
651 [case "${enableval}" in
652 yes) NEED_COCOA=yes ;;
654 auto) NEED_COCOA=auto ;;
655 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
656 esac],[NEED_COCOA=auto])
659 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
660 [case "${enableval}" in
663 auto) NEED_X11=auto ;;
664 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
665 esac],[NEED_X11=auto])
667 AC_ARG_ENABLE([wayland],
668 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
669 [case "${enableval}" in
670 yes) NEED_WAYLAND_EGL=yes ;;
671 no) NEED_WAYLAND_EGL=no ;;
672 auto) NEED_WAYLAND_EGL=auto ;;
673 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
674 esac],[NEED_WAYLAND_EGL=auto])
676 AC_ARG_ENABLE([dispmanx],
677 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
678 [case "${enableval}" in
679 yes) NEED_DISPMANX=yes ;;
680 no) NEED_DISPMANX=no ;;
681 auto) NEED_DISPMANX=auto ;;
682 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
683 esac],[NEED_DISPMANX=auto])
685 AG_GST_PKG_CHECK_MODULES(X, x11)
686 save_CPPFLAGS="$CPPFLAGS"
699 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
700 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
701 if test "x$HAVE_WGLEXT" = "xyes"; then
707 if test "x$NEED_GL" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(GL, gl)
709 if test "x$HAVE_GL" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
713 if test "x$NEED_GLES2" != "xno"; then
714 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
715 if test "x$HAVE_GLES2" != "xyes"; then
716 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
718 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
720 if test "x$NEED_EGL" != "xno"; then
721 AG_GST_PKG_CHECK_MODULES(EGL, egl)
722 if test "x$HAVE_EGL" != "xyes"; then
723 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
730 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
731 AC_CHECK_HEADER([EGL/fbdev_window.h],
734 AC_CHECK_LIB([Mali], [mali_image_create],
737 AC_CHECK_LIB([GLESv2], [glEnable],
739 AC_CHECK_HEADER([GLES2/gl2.h],
741 AC_CHECK_LIB([EGL], [eglGetProcAddress],
743 AC_CHECK_HEADER([EGL/egl.h],
747 EGL_LIBS="-lMali -lUMP"
749 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
757 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
758 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
759 LIBS="$LIBS -lvcos -lvchiq_arm"
760 AC_CHECK_LIB([bcm_host], [bcm_host_init],
762 LIBS="$LIBS -lbcm_host"
763 AC_CHECK_HEADER(bcm_host.h,
765 LIBS="$LIBS -lGLESv2"
766 AC_CHECK_LIB([EGL], [eglGetProcAddress],
769 AC_CHECK_HEADER([EGL/egl.h],
771 AC_CHECK_LIB([GLESv2], [glEnable],
773 AC_CHECK_HEADER([GLES2/gl2.h],
778 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
780 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
791 PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
793 # OS X and iOS always have GL available
796 if test "x$HAVE_IOS" = "xyes"; then
806 CPPFLAGS="$save_CPPFLAGS"
820 dnl Check for what the user asked for and what we could find
821 if test "x$HAVE_EGL" = "xno"; then
822 if test "x$NEED_EGL" = "xyes"; then
823 AC_MSG_ERROR([Could not find the required EGL libraries])
827 if test "x$HAVE_GL" = "xno"; then
828 if test "x$NEED_GL" = "xyes"; then
829 AC_MSG_ERROR([Could not find the required OpenGL libraries])
833 if test "x$HAVE_GLES2" = "xno"; then
834 if test "x$NEED_GLES2" = "xyes"; then
835 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
839 dnl X, GLX and OpenGL
840 if test "x$HAVE_X" = "xno"; then
841 if test "x$NEED_GLX" = "xyes"; then
842 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
844 if test "x$NEED_X11" = "xyes"; then
845 AC_MSG_ERROR([Could not find X11 development libraries])
848 if test "x$NEED_GL" != "xno"; then
849 if test "x$HAVE_GL" = "xno"; then
850 if test "x$NEED_GLX" = "xyes"; then
851 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
855 if test "x$NEED_GLX" != "xno"; then
862 dnl check for DMABUF support
863 HAVE_DRM_FOURCC_HEADER=no
864 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
865 HAVE_DRM_FOURCC_HEADER=yes, )
867 HAVE_GST_ALLOCATORS=no
868 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
869 HAVE_GST_ALLOCATORS=yes, )
872 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
873 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
874 "x$HAVE_EGL" = "xyes"; then
878 dnl check if we can include both GL and GLES2 at the same time
879 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
881 if test "x$HAVE_GLES3_H" == "xyes"; then
886 # pragma GCC diagnostic push
887 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
889 #ifndef GL_GLEXT_PROTOTYPES
890 #define GL_GLEXT_PROTOTYPES 1
893 # include <OpenGLES/ES2/gl.h>
894 # include <OpenGLES/ES2/glext.h>
897 # include <GLES3/gl3.h>
898 # include <GLES3/gl3ext.h>
900 # include <GLES2/gl2.h>
901 # include <GLES2/gl2ext.h>
905 # include <OpenGL/OpenGL.h>
906 # include <OpenGL/gl.h>
907 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
908 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
909 # include <OpenGL/gl3.h>
913 # if __WIN32__ || _WIN32
914 # include <GL/glext.h>
917 int main (int argc, char **argv) { return 0; }
919 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
920 save_CFLAGS="$CFLAGS"
921 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
922 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
923 #if !defined(GL_FALSE)
924 #error Failed to include GL headers
926 ]])],[ AC_MSG_RESULT(yes)
928 if test "x$NEED_GLES2" = "xyes"; then
929 if test "x$NEED_GL" = "xyes"; then
930 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
932 AC_MSG_WARN([Disabling Desktop GL support])
936 AC_MSG_WARN([Disabling GL|ES 2.0 support])
941 CFLAGS="$save_CFLAGS"
944 #dnl Check for OpenGL
948 if test "x$NEED_WGL" = "xyes"; then
949 AC_MSG_ERROR([WGL is not available on Android])
951 if test "x$NEED_GLX" = "xyes"; then
952 AC_MSG_ERROR([GLX is not available on Android])
954 if test "x$NEED_GL" = "xyes"; then
955 AC_MSG_ERROR([GL is not available on Android])
957 if test "x$NEED_X11" = "xyes"; then
958 AC_MSG_ERROR([X11 is not available on Android])
960 if test "x$NEED_COCOA" = "xyes"; then
961 AC_MSG_ERROR([Cocoa is not available on Android])
965 if test "x$HAVE_GLES2" = "xyes"; then
966 if test "x$NEED_GLES2" != "xno"; then
967 GL_LIBS="$GL_LIBS -lGLESv2"
973 if test "x$HAVE_EGL" = "xyes"; then
974 if test "x$NEED_EGL" != "xno"; then
975 GL_LIBS="$GL_LIBS -lEGL"
980 if test "x$USE_EGL" != "xyes"; then
981 AC_MSG_ERROR([Need EGL on Android])
984 if test "x$USE_GLES2" != "xyes"; then
985 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
988 HAVE_WINDOW_ANDROID=yes
990 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
991 if test "x$NEED_WGL" = "xyes"; then
992 AC_MSG_ERROR([WGL is not available on unix])
995 if test "x$HAVE_X" = "xno"; then
996 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
997 AC_MSG_WARN([X or Wayland is required for OpenGL support])
1001 dnl check Desktop OpenGL
1002 if test "x$HAVE_GL" = "xyes"; then
1003 if test "x$NEED_GL" != "xno"; then
1004 GL_LIBS="$GL_LIBS -lGL"
1009 if test "x$HAVE_GLES2" = "xyes"; then
1010 if test "x$NEED_GLES2" != "xno"; then
1011 GL_LIBS="$GL_LIBS -lGLESv2"
1016 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1017 if test "x$NEED_X11" != "xno"; then
1018 GL_LIBS="$GL_LIBS $X_LIBS"
1019 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1024 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1025 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1026 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1028 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1029 HAVE_WINDOW_WAYLAND=yes
1030 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1031 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1036 if test "x$HAVE_EGL_RPI" = "xyes"; then
1037 if test "x$NEED_DISPMANX" != "xno"; then
1038 HAVE_WINDOW_DISPMANX=yes
1044 if test "x$HAVE_EGL" = "xno"; then
1045 if test "x$HAVE_GL" = "xno"; then
1046 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1049 if test "x$NEED_EGL" != "xno"; then
1050 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1051 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1052 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1059 if test "x$HAVE_IOS" = "xyes"; then
1060 if test "x$NEED_WGL" = "xyes"; then
1061 AC_MSG_ERROR([WGL is not available on iOS])
1063 if test "x$NEED_GLX" = "xyes"; then
1064 AC_MSG_ERROR([GLX is not available on iOS])
1066 if test "x$NEED_GL" = "xyes"; then
1067 AC_MSG_ERROR([GL is not available on iOS])
1069 if test "x$NEED_X11" = "xyes"; then
1070 AC_MSG_ERROR([X11 is not available on iOS])
1072 if test "x$NEED_COCOA" = "xyes"; then
1073 AC_MSG_ERROR([Cocoa is not available on iOS])
1075 if test "x$NEED_EGL" = "xyes"; then
1076 AC_MSG_ERROR([EGL is not available on iOS])
1079 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1080 GL_CFLAGS="$GL_CFLAGS"
1083 HAVE_WINDOW_EAGL=yes
1085 ac_cv_type_GLsizeiptr=yes
1086 ac_cv_type_GLintptr=yes
1087 ac_cv_type_GLchar=yes
1089 dnl Only osx supports cocoa.
1090 if test "x$NEED_WGL" = "xyes"; then
1091 AC_MSG_ERROR([WGL is not available on Mac OS X])
1094 if test "x$NEED_COCOA" != "xno"; then
1095 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1096 GL_CFLAGS="$GL_CFLAGS"
1098 HAVE_WINDOW_COCOA=yes
1102 if test "x$USE_GLX" = "xyes"; then
1103 if test "x$HAVE_X" = "xyes"; then
1104 if test "x$NEED_X11" != "xno"; then
1105 GL_LIBS="$GL_LIBS $X_LIBS"
1106 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1111 if test "x$HAVE_GL" = "xyes"; then
1112 if test "x$NEED_GL" != "xno"; then
1113 GL_LIBS="$GL_LIBS -lGL"
1119 if test "x$HAVE_EGL" = "xyes"; then
1120 if test "x$NEED_EGL" != "xno"; then
1121 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1122 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1123 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1130 if test "x$HAVE_GLES2" = "xyes"; then
1131 if test "x$NEED_GLES2" != "xno"; then
1132 GL_LIBS="$GL_LIBS -lGLESv2"
1139 if test "x$NEED_GLX" = "xyes"; then
1140 AC_MSG_ERROR([GLX is not available on Windows])
1142 if test "x$NEED_GLES2" = "xyes"; then
1143 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1146 if test "x$HAVE_GL" = "xyes"; then
1147 if test "x$NEED_GL" != "xno"; then
1148 if test "x$HAVE_WGL" = "xyes"; then
1149 if test "$NEED_WGL" != "xno"; then
1150 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1151 HAVE_WINDOW_WIN32=yes
1160 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1171 GST_GL_HAVE_OPENGL=0
1175 if test "x$USE_OPENGL" = "xyes"; then
1176 GL_APIS="gl $GL_APIS"
1177 GST_GL_HAVE_OPENGL=1
1179 if test "x$USE_GLES2" = "xyes"; then
1180 GL_APIS="gles2 $GL_APIS"
1182 if test "x$HAVE_GLES3_H" = "xyes"; then
1187 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1188 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1189 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1190 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1195 GST_GL_HAVE_WINDOW_X11=0
1196 GST_GL_HAVE_WINDOW_COCOA=0
1197 GST_GL_HAVE_WINDOW_WIN32=0
1198 GST_GL_HAVE_WINDOW_WAYLAND=0
1199 GST_GL_HAVE_WINDOW_ANDROID=0
1200 GST_GL_HAVE_WINDOW_DISPMANX=0
1201 GST_GL_HAVE_WINDOW_EAGL=0
1203 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1204 GL_WINDOWS="x11 $GL_WINDOWS"
1205 GST_GL_HAVE_WINDOW_X11=1
1207 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1208 GL_WINDOWS="cocoa $GL_WINDOWS"
1209 GST_GL_HAVE_WINDOW_COCOA=1
1211 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1212 GL_WINDOWS="win32 $GL_WINDOWS"
1213 GST_GL_HAVE_WINDOW_WIN32=1
1215 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1216 GL_WINDOWS="wayland $GL_WINDOWS"
1217 GST_GL_HAVE_WINDOW_WAYLAND=1
1219 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1220 GL_WINDOWS="android $GL_WINDOWS"
1221 GST_GL_HAVE_WINDOW_ANDROID=1
1223 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1224 GL_WINDOWS="dispmanx $GL_WINDOWS"
1225 GST_GL_HAVE_WINDOW_DISPMANX=1
1227 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1228 GL_WINDOWS="eagl $GL_WINDOWS"
1229 GST_GL_HAVE_WINDOW_EAGL=1
1232 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1233 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1234 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1235 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1236 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1237 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1238 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1239 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1244 GST_GL_HAVE_PLATFORM_EGL=0
1245 GST_GL_HAVE_PLATFORM_GLX=0
1246 GST_GL_HAVE_PLATFORM_WGL=0
1247 GST_GL_HAVE_PLATFORM_CGL=0
1248 GST_GL_HAVE_PLATFORM_EAGL=0
1250 if test "x$USE_EGL" = "xyes"; then
1251 GL_PLATFORMS="egl $GL_PLATFORMS"
1252 GST_GL_HAVE_PLATFORM_EGL=1
1254 if test "x$USE_GLX" = "xyes"; then
1255 GL_PLATFORMS="glx $GL_PLATFORMS"
1256 GST_GL_HAVE_PLATFORM_GLX=1
1258 if test "x$USE_WGL" = "xyes"; then
1259 GL_PLATFORMS="wgl $GL_PLATFORMS"
1260 GST_GL_HAVE_PLATFORM_WGL=1
1262 if test "x$USE_COCOA" = "xyes"; then
1263 GL_PLATFORMS="cgl $GL_PLATFORMS"
1264 GST_GL_HAVE_PLATFORM_CGL=1
1266 if test "x$USE_EAGL" = "xyes"; then
1267 GL_PLATFORMS="eagl $GL_PLATFORMS"
1268 GST_GL_HAVE_PLATFORM_EAGL=1
1271 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1272 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1273 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1274 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1275 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1276 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1279 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1280 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1283 dnl Check for no platforms/window systems
1284 if test "x$GL_APIS" = "x"; then
1285 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1287 if test "x$GL_PLATFORMS" = "x"; then
1288 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1290 if test "x$GL_WINDOWS" = "x"; then
1291 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1294 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1309 HAVE_WINDOW_WIN32=no
1310 HAVE_WINDOW_DISPMANX=no
1311 HAVE_WINDOW_WAYLAND=no
1312 HAVE_WINDOW_ANDROID=no
1313 HAVE_WINDOW_COCOA=no
1319 AC_SUBST(GL_OBJCFLAGS)
1320 AC_SUBST(USE_OPENGL)
1323 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1324 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1325 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1326 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1327 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1328 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1329 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1331 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1332 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1333 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1334 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1335 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1336 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1337 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1338 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1339 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1341 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1343 dnl Check for some types that are not always present
1345 if test "x$USE_GLES2" = "xyes"; then
1346 GL_INCLUDES="$GL_INCLUDES
1347 #ifndef GL_GLEXT_PROTOTYPES
1348 #define GL_GLEXT_PROTOTYPES 1
1351 # include <OpenGLES/ES2/gl.h>
1352 # include <OpenGLES/ES2/glext.h>
1354 # if $GST_GL_HAVE_GLES3
1355 # include <GLES3/gl3.h>
1356 # include <GLES3/gl3ext.h>
1358 # include <GLES2/gl2.h>
1359 # include <GLES2/gl2ext.h>
1365 if test "x$USE_OPENGL" = "xyes"; then
1366 GL_INCLUDES="$GL_INCLUDES
1368 # include <OpenGL/OpenGL.h>
1369 # include <OpenGL/gl.h>
1372 # if __WIN32__ || _WIN32
1373 # include <GL/glext.h>
1379 GST_GL_HAVE_GLEGLIMAGEOES=0
1380 GST_GL_HAVE_GLCHAR=0
1381 GST_GL_HAVE_GLSIZEIPTR=0
1382 GST_GL_HAVE_GLINTPTR=0
1383 GST_GL_HAVE_GLSYNC=0
1384 GST_GL_HAVE_GLUINT64=0
1385 GST_GL_HAVE_GLINT64=0
1388 CFLAGS="$GL_CFLAGS $CFLAGS"
1390 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1391 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1392 GST_GL_HAVE_GLEGLIMAGEOES=1
1395 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1396 if test "x$ac_cv_type_GLchar" = "xyes"; then
1397 GST_GL_HAVE_GLCHAR=1
1400 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1401 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1402 GST_GL_HAVE_GLSIZEIPTR=1
1405 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1406 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1407 GST_GL_HAVE_GLINTPTR=1
1410 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1411 if test "x$ac_cv_type_GLsync" = "xyes"; then
1412 GST_GL_HAVE_GLSYNC=1
1415 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1416 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1417 GST_GL_HAVE_GLUINT64=1
1420 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1421 if test "x$ac_cv_type_GLint64" = "xyes"; then
1422 GST_GL_HAVE_GLINT64=1
1427 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1428 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1429 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1430 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1431 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1432 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1433 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1434 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1437 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1438 outfile=gstglconfig.h-tmp
1439 cat > $outfile <<\_______EOF
1442 * This is a generated file. Please modify `configure.ac'
1445 #ifndef __GST_GL_CONFIG_H__
1446 #define __GST_GL_CONFIG_H__
1448 #include <gst/gst.h>
1454 cat >>$outfile <<_______EOF
1458 cat >>$outfile <<_______EOF
1462 #endif /* __GST_GL_CONFIG_H__ */
1466 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1467 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1470 mv $outfile gst-libs/gst/gl/gstglconfig.h
1473 gl_config_defines='$GL_CONFIG_DEFINES'
1476 dnl libpng is optional
1477 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1478 if test "x$HAVE_PNG" = "xyes"; then
1479 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1482 AC_SUBST(LIBPNG_LIBS)
1483 AC_SUBST(LIBPNG_CFLAGS)
1484 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1486 dnl libjpeg is optional
1487 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1489 if test x$with_jpeg_mmx != x; then
1490 LIBS="$LIBS -L$with_jpeg_mmx"
1492 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1493 JPEG_LIBS="$LIBS -ljpeg-mmx"
1495 if test x$HAVE_JPEG != xyes; then
1497 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1500 if test x$HAVE_JPEG = xyes; then
1501 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1503 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1508 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1511 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1512 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1514 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1515 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1516 VULKAN_CONFIG_DEFINES="
1517 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1518 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1520 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1521 outfile=vkconfig.h-tmp
1522 cat > $outfile <<\_______EOF
1525 * This is a generated file. Please modify `configure.ac'
1528 #ifndef __GST_VULKAN_CONFIG_H__
1529 #define __GST_VULKAN_CONFIG_H__
1531 #include <gst/gst.h>
1537 cat >>$outfile <<_______EOF
1538 $vulkan_config_defines
1541 cat >>$outfile <<_______EOF
1545 #endif /* __GST_VULKAN_CONFIG_H__ */
1549 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1550 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1553 mv $outfile ext/vulkan/vkconfig.h
1556 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1559 dnl *** sys plug-ins ***
1562 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1563 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1564 HAVE_DIRECTSOUND="no"
1565 save_CFLAGS="$CFLAGS"
1566 save_LDFLAGS="$LDFLAGS"
1568 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1569 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1570 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1571 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1572 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1573 #include <windows.h>
1576 #include <mmsystem.h>
1578 DXGetErrorString9 (0);
1579 DirectSoundCreate(NULL, NULL, NULL);
1581 [HAVE_DIRECTSOUND="yes"],
1582 [HAVE_DIRECTSOUND="no"])
1583 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1585 LDFLAGS=$save_LDFLAGS
1588 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1589 dnl this is much more than we want
1590 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1591 AC_SUBST(DIRECTX_CFLAGS)
1592 AC_SUBST(DIRECTX_LDFLAGS)
1593 AC_SUBST(DIRECTSOUND_LIBS)
1595 AC_SUBST(HAVE_DIRECTSOUND)
1599 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1600 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1602 save_CFLAGS="$CFLAGS"
1603 save_LDFLAGS="$LDFLAGS"
1605 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1606 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1607 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1608 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1609 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1610 #include <windows.h>
1612 #include <mmsystem.h>
1613 #include <mmdeviceapi.h>
1619 hr = CoInitialize(NULL);
1621 printf("CoInitialize failed: hr = 0x%08x", hr);
1626 // result = do_everything(argc, argv);
1632 [HAVE_WASAPI="yes"],
1634 AC_MSG_RESULT($HAVE_WASAPI)
1636 LDFLAGS=$save_LDFLAGS
1639 if test "x$HAVE_WASAPI" = "xyes"; then
1640 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1641 AC_SUBST(WASAPI_LIBS)
1643 AC_SUBST(HAVE_WASAPI)
1647 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1648 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1650 save_CFLAGS="$CFLAGS"
1651 save_LDFLAGS="$LDFLAGS"
1653 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1654 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1655 LIBS="$LIBS -ld3d9 -lgdi32"
1656 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1657 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1658 #include <windows.h>
1661 Direct3DCreate9(D3D_SDK_VERSION);
1663 [HAVE_DIRECT3D="yes"],
1664 [HAVE_DIRECT3D="no"])
1665 AC_MSG_RESULT($HAVE_DIRECT3D)
1667 LDFLAGS=$save_LDFLAGS
1670 if test "x$HAVE_DIRECT3D" = "xyes"; then
1671 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1672 AC_SUBST(DIRECT3D_LIBS)
1674 AC_SUBST(HAVE_DIRECT3D)
1678 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1679 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1680 HAVE_WINSCREENCAP="no"
1681 save_CFLAGS="$CFLAGS"
1682 save_LDFLAGS="$LDFLAGS"
1684 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1685 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1686 LIBS="$LIBS -ld3d9 -lgdi32"
1687 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1688 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1689 #include <windows.h>
1692 Direct3DCreate9(D3D_SDK_VERSION);
1694 [HAVE_WINSCREENCAP="yes"],
1695 [HAVE_WINSCREENCAP="no"])
1696 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1698 LDFLAGS=$save_LDFLAGS
1701 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1702 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1703 AC_SUBST(WINSCREENCAP_LIBS)
1705 AC_SUBST(HAVE_WINSCREENCAP)
1709 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1710 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1712 save_CFLAGS="$CFLAGS"
1713 save_LDFLAGS="$LDFLAGS"
1715 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1716 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1717 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1718 AC_MSG_CHECKING(for Winks LDFLAGS)
1719 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1720 #include <windows.h>
1725 IGraphBuilder *pGraph = NULL;
1726 HRESULT hr = CoInitialize(NULL);
1727 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1728 &IID_IGraphBuilder, (void **)&pGraph);
1735 AC_MSG_RESULT($HAVE_WINKS)
1737 LDFLAGS=$save_LDFLAGS
1740 if test "x$HAVE_WINKS" = "xyes"; then
1741 dnl this is much more than we want
1742 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1743 AC_SUBST(DIRECTX_CFLAGS)
1744 AC_SUBST(DIRECTX_LDFLAGS)
1745 AC_SUBST(WINKS_LIBS)
1747 AC_SUBST(HAVE_WINKS)
1750 dnl *** Android Media ***
1751 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1752 HAVE_ANDROID_MEDIA="no"
1753 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1756 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1759 HAVE_ANDROID_MEDIA="no"
1764 dnl *** AppleMedia (OS X and iOS) ***
1765 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1766 HAVE_APPLE_MEDIA="no"
1767 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1768 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1769 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1770 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1771 if test "x$HAVE_IOS" = "xno"; then
1772 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1776 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1781 HAVE_APPLE_MEDIA="no"
1786 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1787 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1788 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1789 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1790 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1792 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1801 dnl *** OS/X AVCVideoServices ***
1802 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1804 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1806 save_CPPFLAGS="$CPPFLAGS"
1807 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1809 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1810 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1812 CPPFLAGS=$save_CPPFLAGS
1815 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1824 dnl check for shm_open (for shm plugin)
1825 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1826 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1827 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1829 *-darwin* | *-macos10*)
1830 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1837 AC_CHECK_LIB([rt], [shm_open],
1838 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1839 #include <sys/socket.h>
1842 AC_SUBST(SHM_LIBS, "-lrt")
1850 dnl check for Video CD
1851 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1852 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1853 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1856 dnl check for OpenSL ES
1857 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1858 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1859 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1862 dnl *** UVC H264 ***
1863 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1864 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1865 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1866 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1867 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1870 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1871 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1872 HAVE_LIBUSB="yes" ],
1874 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1875 test "x$HAVE_GUDEV" = "xyes" && \
1876 test "x$HAVE_LIBUSB" = "xyes"; then
1882 AC_SUBST(LIBUDEV_CFLAGS)
1883 AC_SUBST(LIBUDEV_LIBS)
1884 AC_SUBST(LIBUSB_CFLAGS)
1885 AC_SUBST(LIBUSB_LIBS)
1888 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1889 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1890 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1891 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1892 AC_ARG_WITH([cuda-prefix],
1893 AS_HELP_STRING([--with-cuda-prefix],
1894 [Use the provided prefix for detecting the cuda installation]),
1895 [AS_IF([test "x$with_cuda_prefix" != "x"],
1896 [CUDA_PREFIX="$with_cuda_prefix"])],
1900 if test "x$CUDA_PREFIX" != "x"; then
1901 dnl only override if not already set
1902 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1903 dnl this is an educated guess, user can always override these
1904 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1905 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1908 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1909 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1910 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1911 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1916 save_CPPFLAGS="$CPPFLAGS"
1917 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1918 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1919 AC_MSG_WARN([Could not find cuda.h]))
1920 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1921 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1922 CPPFLAGS=$save_CPPFLAGS
1924 dnl libcuda and libcudart libraries
1926 LIBS="$CUDA_LIBS $save_LIBS"
1927 HAVE_CUDART_LIB="no"
1928 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1929 AC_MSG_WARN([Could not find cudart library])])
1931 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1932 AC_MSG_WARN([Could not find cuda library])])
1935 dnl nvEncodeAPI.h header
1936 HAVE_NVENCODEAPI_H=no
1937 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1938 save_CPPFLAGS="$CPPFLAGS"
1939 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1940 AC_CHECK_HEADER([nvEncodeAPI.h], [
1941 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1942 #if NVENCAPI_MAJOR_VERSION < 5
1943 #error "Need nvEncodeAPI.h >= 5.0"
1946 HAVE_NVENCODEAPI_H=yes
1948 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1951 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1952 AC_SUBST(NVENCODE_CFLAGS)
1953 CPPFLAGS="$save_CPPFLAGS"
1955 dnl libnvnidia-encode library
1956 HAVE_NVENCODE_LIB=no
1957 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1959 LIBS="$NVENCODE_LIBS $saved_LIBS"
1960 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1961 AC_MSG_WARN([Could not find library nvidia-encode]))
1962 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1963 AC_SUBST(NVENCODE_LIBS)
1967 if test "x$HAVE_CUDA_H" = "xyes" \
1968 -a "x$HAVE_CUDART_H" = "xyes" \
1969 -a "x$HAVE_CUDA_LIB" = "xyes" \
1970 -a "x$HAVE_CUDART_LIB" = "xyes" \
1971 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1972 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1974 if test x"$USE_OPENGL" = x"yes"; then
1975 dnl cuda-gl interop header
1976 save_CPPFLAGS="$CPPFLAGS"
1977 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1978 AC_CHECK_HEADER([cuda_gl_interop.h], [
1979 USE_NVENC_GST_GL="yes"
1980 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1982 CPPFLAGS="$save_CPPFLAGS"
1988 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1990 dnl check for tinyalsa
1991 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1992 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1993 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1996 dnl *** ext plug-ins ***
1997 dnl keep this list sorted alphabetically !
1999 if test "x$BUILD_EXTERNAL" = "xyes"; then
2001 dnl *** assrender ***
2002 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2003 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2004 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2005 HAVE_ASSRENDER="yes" ], [
2009 AC_SUBST(ASSRENDER_CFLAGS)
2010 AC_SUBST(ASSRENDER_LIBS)
2012 dnl *** vo-amrwbenc ***
2013 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2014 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2015 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2018 dnl *** vo-aacenc ***
2019 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2020 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2021 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2024 dnl *** apexsink ***
2025 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2026 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2027 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2031 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2032 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2033 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2035 AC_SUBST(APEXSINK_CFLAGS)
2036 AC_SUBST(APEXSINK_LIBS)
2043 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2044 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2045 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2048 AC_SUBST(BS2B_CFLAGS)
2053 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2054 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2057 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2058 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2059 AC_MSG_RESULT($HAVE_BZ2)
2061 if test "x$HAVE_BZ2" = "xyes"; then
2069 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2070 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2071 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2074 # AC_SUBST(CAIRO_CFLAGS)
2075 # AC_SUBST(CAIRO_LIBS)
2078 dnl *** chromaprint ***
2079 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2080 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2081 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2082 HAVE_CHROMAPRINT="no"
2084 AC_SUBST(CHROMAPRINT_CFLAGS)
2085 AC_SUBST(CHROMAPRINT_LIBS)
2089 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2090 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2091 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2093 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2094 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2096 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2097 [[#ifdef HAVE_SYS_TYPES_H
2098 # include <sys/types.h>
2100 #ifdef HAVE_NETINET_IN_H
2101 # include <netinet/in.h>
2104 AC_MSG_CHECKING([for socket support needed by curlsink])
2105 AC_MSG_RESULT($HAVE_CURL)
2109 AC_SUBST(CURL_CFLAGS)
2111 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2113 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2117 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2118 AC_SUBST(SSH2_CFLAGS)
2120 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2123 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2124 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2125 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2126 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2128 AC_SUBST(LIBXML2_CFLAGS)
2129 AC_SUBST(LIBXML2_LIBS)
2133 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2134 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2135 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2136 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2145 AC_SUBST(LIBDC1394_CFLAGS)
2146 AC_SUBST(LIBDC1394_LIBS)
2149 dnl *** decklink ***
2150 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2151 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2158 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2159 AC_CHECK_LIB(dl, dlopen,
2163 DECKLINK_LIBS="-lpthread -ldl"
2168 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2169 AC_CHECK_LIB(dl, dlopen,
2173 DECKLINK_LIBS="-lpthread -ldl"
2174 HAVE_DECKLINK_OSX=yes
2183 AC_SUBST(DECKLINK_CXXFLAGS)
2184 AC_SUBST(DECKLINK_LIBS)
2186 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2188 dnl **** DirectFB ****
2189 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2190 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2191 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2196 dnl **** Wayland ****
2197 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2198 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2199 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2200 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2201 if test "x$wayland_scanner" != "x"; then
2204 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2213 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2214 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2215 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2216 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2218 AC_SUBST(WEBP_CFLAGS)
2223 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2224 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2225 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2226 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2231 AC_SUBST(DAALA_CFLAGS)
2232 AC_SUBST(DAALA_LIBS)
2237 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2238 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2240 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2241 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2242 if test $HAVE_DTS = "no"; then
2243 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2244 [ DTS_LIBS="-ldts_pic $LIBM"
2245 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2251 dnl *** resindvd ***
2252 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2253 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2254 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2259 dnl **** Free AAC Encoder (FAAC) ****
2260 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2261 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2262 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2263 FAAC_LIBS="-lfaac $LIBM")
2267 dnl **** Free AAC Decoder (FAAD2) ****
2268 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2269 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2270 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2271 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2272 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2274 #elif !defined(LATM)
2275 #error Not faad2 >= 2.7
2281 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2291 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2292 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2293 if test "x$HAVE_FBDEV" != "xyes"; then
2294 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2299 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2300 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2301 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2302 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2304 AC_SUBST(FLITE_CFLAGS)
2305 AC_SUBST(FLITE_LIBS)
2309 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2310 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2311 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2312 if test $HAVE_GSM != "yes"; then
2313 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2314 if test $HAVE_GSM = "yes"; then
2315 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2321 dnl *** fluidSynth ***
2322 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2323 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2324 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2325 HAVE_FLUIDSYNTH="no"
2330 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2331 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2332 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2335 AC_SUBST(KATE_CFLAGS)
2337 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2340 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2346 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2347 AC_SUBST(TIGER_CFLAGS)
2348 AC_SUBST(TIGER_LIBS)
2349 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2352 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2353 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2354 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2355 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2356 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2360 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2361 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2362 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2364 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2365 if test $HAVE_LRDF = "yes"; then
2366 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2369 AC_SUBST(LRDF_CFLAGS)
2373 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2374 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2375 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2377 HAVE_LILV_0_22="yes"
2378 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2380 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2382 AC_SUBST(LILV_CFLAGS)
2386 dnl *** libde265 ***
2387 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2388 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2389 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2390 AC_SUBST(LIBDE265_CFLAGS)
2391 AC_SUBST(LIBDE265_LIBS)
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2396 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2397 dnl check with pkg-config first
2398 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2402 AC_SUBST(LIBMMS_LIBS)
2406 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2407 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2408 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2409 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2412 AC_SUBST(SRTP_CFLAGS)
2416 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2417 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2418 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2420 AC_SUBST(DTLS_CFLAGS)
2428 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2429 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2441 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2442 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2443 if test "x$HAVE_CXX" != "xyes"; then
2444 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2447 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2449 AC_SUBST(MODPLUG_CFLAGS)
2450 AC_SUBST(MODPLUG_LIBS)
2454 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2455 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2457 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2458 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2459 AC_SUBST(MIMIC_CFLAGS)
2460 AC_SUBST(MIMIC_LIBS)
2463 dnl *** mjpegtools version info ***
2464 dnl some may prefer older version (given quirks above)
2465 dnl hm, no version info seems available within mjpegtools headers
2466 dnl and API really moves along
2468 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2469 mjpegtools_api=10601
2471 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2472 mjpegtools_api=10800
2474 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2475 mjpegtools_api=20000
2477 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2478 dnl logging API changed in release candidates
2479 OLD_CFLAGS="$CFLAGS"
2481 CFLAGS="$MJPEG_CFLAGS"
2482 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2483 AC_CHECK_FUNC(mjpeg_loglev_t, [
2484 mjpegtools_api=10903
2486 mjpegtools_api=10900
2488 CFLAGS="$OLD_CFLAGS"
2496 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2497 [mjpegtools API evolution])
2499 dnl *** mpeg2enc ***
2500 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2501 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2503 dnl we require a c++ compiler for this one
2504 if [ test x$HAVE_CXX = xyes ]; then
2505 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2506 dnl since many distros include mjpegtools specifically without mplex
2507 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2508 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2509 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2511 dnl switch over to c++ to test things
2513 OLD_CPPFLAGS="$CPPFLAGS"
2515 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2516 CPPFLAGS="$CPPFLAGS_GOOD -I."
2518 mpeg2enc_headers_ok=no
2519 AC_CHECK_HEADER([mpeg2encoder.hh], [
2520 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2522 LIBS="$LIBS $MPEG2ENC_LIBS"
2523 AC_MSG_CHECKING([for valid mpeg2enc objects])
2524 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2525 #include <mpeg2encoder.hh>
2526 #include <mpeg2encoptions.hh>
2532 MPEG2EncOptions *options = new MPEG2EncOptions ();
2533 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2538 dnl so far so good, let's check more things:
2539 dnl mjpegtools-1.8.0 does not install the required
2540 dnl mpeg2syntaxcodes.h header by default, and a new release
2541 dnl is not in sight, so check for this oversight in case
2542 dnl distros or folks have fixed this themselves
2543 if test "$mjpegtools_api" -ge "10800"; then
2544 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2545 mpeg2enc_headers_ok=yes
2547 mpeg2enc_headers_ok=no
2550 mpeg2enc_headers_ok=yes
2552 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2555 CPPFLAGS="$CPPFLAGS_GOOD"
2556 AC_SUBST(MPEG2ENC_CFLAGS)
2557 AC_SUBST(MPEG2ENC_LIBS)
2564 CPPFLAGS="$OLD_CPPFLAGS"
2573 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2574 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2576 dnl we require a c++ compiler for this one
2577 if [ test x$HAVE_CXX = xyes ]; then
2578 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2579 dnl since many distros include mjpegtools specifically without mplex
2580 dnl and mpeg2enc, we check for mplex on its own, too.
2581 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2582 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2583 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2585 dnl switch over to c++ to test things
2587 OLD_CPPFLAGS="$CPPFLAGS"
2589 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2590 CPPFLAGS="$CPPFLAGS_GOOD -I."
2591 AC_CHECK_HEADER(interact.hpp, [
2592 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2594 LIBS="$LIBS $MPLEX_LIBS"
2595 OLD_LDFLAGS="$LDFLAGS"
2596 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2597 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2598 dnl don't want this here
2599 AC_MSG_CHECKING([for valid mplex objects])
2600 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2602 #include <interact.hpp>
2603 #include <outputstrm.hpp>
2604 #include <multiplexor.hpp>
2609 class TestOutputStream : public OutputStream {
2611 TestOutputStream () : OutputStream () { }
2612 void Write (uint8_t *a, unsigned int b) { }
2613 void NextSegment () { }
2614 uint64_t SegmentSize () { }
2618 MultiplexJob *job = new MultiplexJob ();
2619 vector<IBitStream *> inputs;
2620 job->SetupInputStreams (inputs);
2621 TestOutputStream *out = new TestOutputStream ();
2622 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2627 CPPFLAGS="$CPPFLAGS_GOOD"
2628 AC_SUBST(MPLEX_CFLAGS)
2629 AC_SUBST(MPLEX_LIBS)
2630 AC_SUBST(MPLEX_LDFLAGS)
2632 ],[AC_MSG_RESULT(no)],[])
2634 LDFLAGS="$OLD_LDFLAGS"
2636 CPPFLAGS="$OLD_CPPFLAGS"
2642 dnl *** musepack ***
2643 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2644 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2645 AC_CHECK_HEADER([mpc/mpcdec.h], [
2647 MUSEPACK_LIBS="-lmpcdec"
2648 AC_SUBST(MUSEPACK_LIBS)
2649 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2651 MUSEPACK_LIBS="-lmpcdec"
2652 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2653 AC_SUBST(MUSEPACK_LIBS)
2654 ], [HAVE_MUSEPACK="no"])])
2658 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2659 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2661 if test "x$HAVE_X" = "xyes"; then
2662 save_cppflags=$CFLAGS
2663 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2664 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2665 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2666 CPPFLAGS="$save_cppflags"
2668 AC_SUBST(NAS_CFLAGS)
2673 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2674 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2675 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2678 AC_SUBST(NEON_CFLAGS)
2683 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2684 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2685 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2688 AC_SUBST(OFA_CFLAGS)
2693 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2694 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2695 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2698 AC_SUBST(OPENAL_CFLAGS)
2699 AC_SUBST(OPENAL_LIBS)
2703 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2704 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2705 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2706 dnl and don't want the build to break when a new opencv version comes out.
2707 dnl Need to adjust this upwards once we know that our code compiles fine with
2708 dnl a new version and the no-backward-compatibility define. (There doesn't
2709 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2711 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2714 OLD_CPPFLAGS=$CPPFLAGS
2715 CPPFLAGS=$OPENCV_CFLAGS
2716 something_not_found=no
2717 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2718 opencv2/core/version.hpp \
2719 opencv2/highgui/highgui_c.h \
2720 opencv2/imgproc/imgproc.hpp \
2721 opencv2/imgproc/imgproc_c.h \
2722 opencv2/objdetect/objdetect.hpp \
2723 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2724 CPPFLAGS=$OLD_CPPFLAGS
2727 if test $something_not_found = "yes"; then
2728 AC_MSG_RESULT([not all opencv2 headers were found])
2736 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2737 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2738 AC_SUBST(OPENCV_PREFIX)
2739 AC_SUBST(OPENCV_CFLAGS)
2740 AC_SUBST(OPENCV_LIBS)
2741 dnl the OpenCV prefix is used at runtime for some object properties, and also
2742 dnl used here to detect which directory is the correct one. For the second
2743 dnl case, make sure the right sysroot is used, ensuring correct behavior
2744 dnl during cross compilation.
2745 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2746 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2748 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2753 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2754 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2755 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2758 dnl *** openh264 ***
2759 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2760 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2761 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2764 dnl *** OpenJPEG ***
2765 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2766 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2768 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2769 if test x"$HAVE_OPENJPEG" = x"yes"; then
2770 dnl minor API changes in v2.1
2771 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2772 if test x"$HAVE_OPENJPEG" = x"yes"; then
2773 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2778 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2779 HAVE_OPENJPEG="yes",
2780 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2782 if test x"$HAVE_OPENJPEG" = x"yes"; then
2783 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2786 AC_SUBST(OPENJPEG_CFLAGS)
2787 AC_SUBST(OPENJPEG_LIBS)
2791 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2792 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2793 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2794 AC_SUBST(OPENNI2_CFLAGS)
2795 AC_SUBST(OPENNI2_LIBS)
2799 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2800 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2801 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2802 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2807 AC_SUBST(OPUS_CFLAGS)
2812 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2813 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2814 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2815 AC_SUBST(PVR_CFLAGS)
2819 AC_ARG_WITH([pvr-external-headers],
2820 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2821 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2822 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2823 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2826 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2827 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2828 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2832 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2833 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2836 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2843 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2844 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2845 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2846 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2851 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2853 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2854 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2855 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2856 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2858 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2860 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2861 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2862 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2863 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2865 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2867 if test "x$GDK_WINDOWING" = "xyes"; then
2868 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2875 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2878 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2879 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2880 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2881 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2882 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2883 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2884 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2885 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2886 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2887 AC_MSG_WARN([One of the required qt build programs was not found])
2891 HAVE_QT_WINDOWING="no"
2892 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2893 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2894 AS_IF([test -f "$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2895 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2896 HAVE_QT_QPA_HEADER="yes"
2897 ], [AC_MSG_NOTICE([Cannot find QPA])])
2898 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2899 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2900 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2901 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2902 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2903 HAVE_QT_WINDOWING="yes"
2904 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2906 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
2907 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2908 AC_DEFINE([HAVE_QT_WAYLAND], [],
2909 [Define if Qt Wayland integration is installed])
2910 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2911 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2912 HAVE_QT_WINDOWING="yes"
2913 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2915 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2916 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2917 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2918 # c++ on android requires a standard library and there are multiple
2919 # choices. cerbero provides a pkg-config file the describes a choice
2920 # so try to use that. Outside cerbero one has to pass these flags
2921 # manually for the library one is using
2922 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2923 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2924 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2926 AC_MSG_NOTICE([Could not find Standard C++ library])])
2927 AC_DEFINE([HAVE_QT_EGLFS], [],
2928 [Define if Qt eglfs integration is installed])
2929 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2930 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2931 HAVE_QT_WINDOWING="yes"
2932 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2934 AC_DEFINE([HAVE_QT_EGLFS], [],
2935 [Define if Qt eglfs integration is installed])
2936 HAVE_QT_WINDOWING="yes"
2939 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2940 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2941 AC_DEFINE([HAVE_QT_MAC], [],
2942 [Define if Qt Mac integration is installed])
2943 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2944 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2945 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2946 HAVE_QT_WINDOWING="yes"
2947 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2949 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2950 if test "x$HAVE_IOS" = "xyes"; then
2951 # iOS doesn't have its own extras package so if we have the core
2952 # modules we are good to go
2953 AC_DEFINE([HAVE_QT_IOS], [],
2954 [Define if Qt iOS integration is installed])
2955 HAVE_QT_WINDOWING="yes"
2958 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2959 AC_MSG_WARN([Could not find any Qt Windowing integration])
2962 AC_SUBST([QT_CFLAGS])
2971 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2972 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2974 AC_CHECK_HEADER(vulkan/vulkan.h, [
2975 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2976 VULKAN_LIBS="-lvulkan"
2977 AC_SUBST(VULKAN_LIBS)
2978 dnl TODO check platform support (x11, win32, wayland, android, etc)
2979 if test "x$HAVE_XCB" = "xyes"; then
2986 dnl *** libvisual ***
2987 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2988 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2989 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2990 if test x$HAVE_LIBVISUAL = xyes; then
2991 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2993 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2994 if test x$LIBVIS_PLUGINSDIR != x; then
2995 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2996 "$LIBVIS_PLUGINSDIR",
2997 [directory in which the detected libvisual's plugins are located])
3001 dnl *** timidity ***
3002 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
3003 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
3004 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
3005 HAVE_TIMIDITY="yes",
3006 AC_MSG_CHECKING([for timidity.cfg])
3008 if test -r /etc/timidity.cfg; then
3009 timidity_cfg=/etc/timidity.cfg
3010 elif test -r /etc/timidity/timidity.cfg; then
3011 timidity_cfg=/etc/timidity/timidity.cfg
3012 elif test -r /usr/share/timidity/timidity.cfg; then
3013 timidity_cfg=/usr/share/timidity/timidity.cfg
3014 elif test -r /usr/local/share/timidity/timidity.cfg; then
3015 timidity_cfg=/usr/local/share/timidity/timidity.cfg
3017 if test "x$timidity_cfg" != "x"; then
3018 AC_MSG_RESULT($timidity_cfg)
3019 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
3021 AC_MSG_RESULT([not found])
3026 AC_SUBST(TIMIDITY_CFLAGS)
3027 AC_SUBST(TIMIDITY_LIBS)
3030 dnl *** teletextdec ***
3031 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3032 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3033 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3036 dnl *** wildmidi ***
3037 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3038 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3039 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3042 WILDMIDI_LIBS="-lWildMidi")
3043 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3045 if test "x$HAVE_WILDMIDI" = "xyes"; then
3047 WILDMIDI_LIBS=-lWildMidi
3048 AC_MSG_NOTICE(compiling gstWildMidi)
3052 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3054 AC_SUBST(WILDMIDI_CFLAGS)
3055 AC_SUBST(WILDMIDI_LIBS)
3059 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3060 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3061 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3064 dnl **** Smooth Streaming ****
3065 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3066 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3067 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3069 HAVE_SMOOTHSTREAMING="yes"],
3071 HAVE_SMOOTHSTREAMING="no"])
3072 AC_SUBST(LIBXML2_CFLAGS)
3073 AC_SUBST(LIBXML2_LIBS)
3077 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3078 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3079 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3080 AC_SUBST(SNDFILE_CFLAGS)
3081 AC_SUBST(SNDFILE_LIBS)
3084 dnl *** soundtouch ***
3085 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3086 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3087 dnl We only need -lBPM on soundtouch < 1.4
3088 dnl We check for libSoundTouch since Debian used it before upstream
3089 dnl added a pkgconfig file.
3090 HAVE_SOUNDTOUCH_1_4=yes
3091 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3092 [HAVE_SOUNDTOUCH=yes],
3093 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3094 [HAVE_SOUNDTOUCH=yes],
3095 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3096 [HAVE_SOUNDTOUCH=yes
3097 HAVE_SOUNDTOUCH_1_4=no
3098 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3099 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3100 [HAVE_SOUNDTOUCH=yes],
3101 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3102 [HAVE_SOUNDTOUCH=yes
3103 HAVE_SOUNDTOUCH_1_4=no
3104 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3105 HAVE_SOUNDTOUCH=no)])])])])
3106 AC_SUBST(SOUNDTOUCH_CFLAGS)
3107 AC_SUBST(SOUNDTOUCH_LIBS)
3108 if test "x$HAVE_CXX" != "xyes"; then
3109 USE_SOUNDTOUCH=false
3110 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3112 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3113 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3114 [Defined if the available libSoundTouch is >= 1.4])
3119 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3120 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3121 AC_CHECK_HEADER(openspc.h, [
3122 AC_CHECK_LIB(openspc, OSPC_Init, [
3123 SPC_LIBS="-lopenspc"
3135 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3136 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3137 AC_CHECK_HEADER(gme/gme.h, [
3138 AC_CHECK_LIB(gme, gme_new_emu, [
3149 if test "x$HAVE_GME" = "xyes"; then
3150 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3151 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3157 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3158 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3160 AC_CHECK_HEADER(xvid.h, [
3162 LIBS="$PTHREAD_LIBS $LIBM"
3163 AC_CHECK_LIB(xvidcore, xvid_encore, [
3164 AC_CHECK_LIB(xvidcore, xvid_decore, [
3165 AC_CHECK_LIB(xvidcore, xvid_global, [
3166 AC_MSG_CHECKING([for up-to-date XviD API version])
3167 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3168 #if XVID_API_MAJOR(XVID_API) != 4
3169 #error "Incompatible XviD API version"
3171 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3172 #error "Incompatible XviD API version"
3174 ]])],[ AC_MSG_RESULT(yes)
3175 XVID_LIBS="-lxvidcore $LIBM"
3178 ],[AC_MSG_RESULT(no) ])
3187 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3188 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3189 AC_MSG_CHECKING([Checking for up to date dvb installation])
3190 AC_CHECK_HEADER(linux/dvb/version.h, [
3191 AC_MSG_CHECKING([for up-to-date dvb API])
3192 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3193 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3194 #error "Incompatible dvb API"
3196 ]])], [ AC_MSG_RESULT(yes)
3198 ], [ AC_MSG_RESULT(no)
3205 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3206 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3207 AC_MSG_CHECKING([Checking for windows internet support])
3208 AC_CHECK_HEADERS([windows.h wininet.h],
3209 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3210 [AC_INCLUDES_DEFAULT
3211 #include <windows.h>])
3215 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3216 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3217 AC_MSG_CHECKING([Checking for ACM support])
3218 AC_CHECK_HEADERS([windows.h msacm.h],
3220 AC_SUBST(ACMENC_CFLAGS)
3221 AC_SUBST(ACMMP3DEC_CFLAGS)
3223 [AC_INCLUDES_DEFAULT
3224 #include <windows.h>])
3228 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3229 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3234 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3236 if test "$HAVE_VDPAU" = "no"; then
3237 saved_CPPFLAGS="$CPPFLAGS"
3238 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3240 if test -z "$HAVE_VDPAU_H"; then
3241 dnl Didn't find VDPAU header straight away.
3242 dnl Try /usr/include/nvidia. Need to clear caching vars first
3243 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3244 unset ac_cv_header_vdpau_vdpau_h
3245 unset ac_cv_header_vdpau_vdpau_x11_h
3246 VDPAU_CFLAGS="-I/usr/include/nvidia"
3247 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3248 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3249 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3252 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3254 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3255 dnl Found the headers - look for the lib
3256 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3258 LIBS="$VDPAU_LIBS $saved_LIBS"
3259 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3265 if test "$HAVE_VDPAU" = "yes"; then
3266 AC_MSG_NOTICE([Found up to date VDPAU installation])
3267 AC_SUBST(VDPAU_CFLAGS)
3268 AC_SUBST(VDPAU_LIBS)
3273 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3274 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3275 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3278 dnl *** schroedinger ***
3279 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3280 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3281 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3285 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3286 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3287 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3291 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3292 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3293 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3297 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3298 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3299 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3300 HAVE_SPANDSP="yes" ], [
3304 AC_SUBST(SPANDSP_CFLAGS)
3305 AC_SUBST(SPANDSP_LIBS)
3308 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3309 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3310 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3311 if test "x$HAVE_SNDIO" = "xyes"; then
3312 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3313 if test "x$HAVE_SNDIO" = "xyes"; then
3315 AC_SUBST(SNDIO_LIBS)
3320 dnl *** hls-crypto ***
3321 AC_ARG_WITH([hls-crypto],
3322 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3323 which cryptographic library version to compile against for hls (default: auto)
3325 AS_CASE([$with_hls_crypto],
3329 [with_hls_crypto=auto]
3335 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3336 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3337 AS_CASE([$with_hls_crypto],
3339 PKG_CHECK_MODULES(NETTLE, nettle, [
3340 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3342 ],[AC_MSG_ERROR([Could not find nettle library])])
3345 AM_PATH_LIBGCRYPT([1.2.0], [
3346 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3348 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3351 PKG_CHECK_MODULES(OPENSSL, openssl, [
3352 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3354 ],[AC_MSG_ERROR([Could not find openssl library])])
3357 dnl Try to find a valid crypto library
3358 PKG_CHECK_MODULES(NETTLE, nettle, [
3359 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3362 AM_PATH_LIBGCRYPT([1.2.0], [
3363 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3366 PKG_CHECK_MODULES(OPENSSL, openssl, [
3367 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3378 dnl *** x265 (H.265/HEVC encoder) ***
3379 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3380 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3381 AG_GST_PKG_CHECK_MODULES(X265, x265)
3384 dnl *** WebRTC Audio Processing ***
3385 dnl Note: We test for a specific version as there is no API stability
3386 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3387 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3389 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3391 # On Android, C++ headers comes with the STL implementation
3392 AS_CASE(["${host}"],
3395 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3396 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3397 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3399 AC_SUBST([WEBRTCDSP_CFLAGS])
3400 AC_SUBST([WEBRTCDSP_LIBS])
3403 old_CPPFLAGS=$CPPFLAGS
3404 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3405 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3406 CPPFLAGS=$old_CPPFLAGS
3412 dnl not building plugins with external dependencies,
3413 dnl but we still need to set the conditionals
3415 AM_CONDITIONAL(USE_ASSRENDER, false)
3416 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3417 AM_CONDITIONAL(USE_VOAACENC, false)
3418 AM_CONDITIONAL(USE_APEXSINK, false)
3419 AM_CONDITIONAL(USE_BS2B, false)
3420 AM_CONDITIONAL(USE_BZ2, false)
3421 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3422 AM_CONDITIONAL(USE_CURL, false)
3423 AM_CONDITIONAL(USE_SSH2, false)
3424 AM_CONDITIONAL(USE_DASH, false)
3425 AM_CONDITIONAL(USE_DC1394, false)
3426 AM_CONDITIONAL(USE_DECKLINK, false)
3427 AM_CONDITIONAL(DECKLINK_OSX, false)
3428 AM_CONDITIONAL(USE_DIRECTFB, false)
3429 AM_CONDITIONAL(USE_WAYLAND, false)
3430 AM_CONDITIONAL(USE_DAALA, false)
3431 AM_CONDITIONAL(USE_DTS, false)
3432 AM_CONDITIONAL(USE_EXIF, false)
3433 AM_CONDITIONAL(USE_RESINDVD, false)
3434 AM_CONDITIONAL(USE_FAAC, false)
3435 AM_CONDITIONAL(USE_FAAD, false)
3436 AM_CONDITIONAL(USE_FBDEV, false)
3437 AM_CONDITIONAL(USE_FLITE, false)
3438 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3439 AM_CONDITIONAL(USE_GL, false)
3440 AM_CONDITIONAL(USE_GSM, false)
3441 AM_CONDITIONAL(USE_GTK3, false)
3442 AM_CONDITIONAL(USE_GTK3_GL, false)
3443 AM_CONDITIONAL(USE_HLS, false)
3444 AM_CONDITIONAL(USE_KATE, false)
3445 AM_CONDITIONAL(USE_KMS, false)
3446 AM_CONDITIONAL(USE_TIGER, false)
3447 AM_CONDITIONAL(USE_LADSPA, false)
3448 AM_CONDITIONAL(USE_LV2, false)
3449 AM_CONDITIONAL(USE_LIBDE265, false)
3450 AM_CONDITIONAL(USE_LIBMMS, false)
3451 AM_CONDITIONAL(USE_LINSYS, false)
3452 AM_CONDITIONAL(USE_MODPLUG, false)
3453 AM_CONDITIONAL(USE_MIMIC, false)
3454 AM_CONDITIONAL(USE_MPEG2ENC, false)
3455 AM_CONDITIONAL(USE_MPLEX, false)
3456 AM_CONDITIONAL(USE_MUSEPACK, false)
3457 AM_CONDITIONAL(USE_NAS, false)
3458 AM_CONDITIONAL(USE_NEON, false)
3459 AM_CONDITIONAL(USE_OFA, false)
3460 AM_CONDITIONAL(USE_OPENAL, false)
3461 AM_CONDITIONAL(USE_OPENCV, false)
3462 AM_CONDITIONAL(USE_OPENEXR, false)
3463 AM_CONDITIONAL(USE_OPENJPEG, false)
3464 AM_CONDITIONAL(USE_OPENNI2, false)
3465 AM_CONDITIONAL(USE_OPUS, false)
3466 AM_CONDITIONAL(USE_PVR, false)
3467 AM_CONDITIONAL(USE_QT, false)
3468 AM_CONDITIONAL(USE_LIBVISUAL, false)
3469 AM_CONDITIONAL(USE_TIMIDITY, false)
3470 AM_CONDITIONAL(USE_WILDMIDI, false)
3471 AM_CONDITIONAL(USE_SDL, false)
3472 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3473 AM_CONDITIONAL(USE_SNDFILE, false)
3474 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3475 AM_CONDITIONAL(USE_SPANDSP, false)
3476 AM_CONDITIONAL(USE_SPC, false)
3477 AM_CONDITIONAL(USE_SRTP, false)
3478 AM_CONDITIONAL(USE_GME, false)
3479 AM_CONDITIONAL(USE_XVID, false)
3480 AM_CONDITIONAL(USE_DVB, false)
3481 AM_CONDITIONAL(USE_WININET, false)
3482 AM_CONDITIONAL(USE_ACM, false)
3483 AM_CONDITIONAL(USE_VDPAU, false)
3484 AM_CONDITIONAL(USE_SBC, false)
3485 AM_CONDITIONAL(USE_SCHRO, false)
3486 AM_CONDITIONAL(USE_ZBAR, false)
3487 AM_CONDITIONAL(USE_RSVG, false)
3488 AM_CONDITIONAL(USE_RTMP, false)
3489 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3490 AM_CONDITIONAL(USE_SNDIO, false)
3491 AM_CONDITIONAL(USE_UVCH264, false)
3492 AM_CONDITIONAL(USE_WEBP, false)
3493 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3494 AM_CONDITIONAL(USE_OPENH264, false)
3495 AM_CONDITIONAL(USE_X265, false)
3496 AM_CONDITIONAL(USE_DTLS, false)
3498 fi dnl of EXT plugins
3500 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3503 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3504 dnl GST_*: flags shared by built objects to link against GStreamer
3505 dnl GST_ALL_LDFLAGS: linker flags shared by all
3506 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3507 dnl GST_LT_LDFLAGS: library versioning of our libraries
3508 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3510 dnl GST_OPTION_CFLAGS
3511 if test "x$USE_DEBUG" = xyes; then
3514 AC_SUBST(PROFILE_CFLAGS)
3516 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3517 dnl Define _only_ during CVS (not pre-releases or releases)
3518 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3520 DEPRECATED_CFLAGS=""
3522 AC_SUBST(DEPRECATED_CFLAGS)
3524 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3525 dnl at make time with e.g. make ERROR_CFLAGS=""
3526 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3527 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3528 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3529 AC_SUBST(GST_OPTION_CFLAGS)
3530 AC_SUBST(GST_OPTION_CXXFLAGS)
3531 AC_SUBST(GST_OPTION_OBJCFLAGS)
3533 dnl FIXME: do we want to rename to GST_ALL_* ?
3534 dnl prefer internal headers to already installed ones
3535 dnl also add builddir include for enumtypes and marshal
3536 dnl add GST_OPTION_CFLAGS, but overridable
3537 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3538 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3539 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3540 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3541 AC_SUBST(GST_CFLAGS)
3542 AC_SUBST(GST_CXXFLAGS)
3543 AC_SUBST(GST_OBJCFLAGS)
3545 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3546 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3547 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3548 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3549 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3550 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3552 dnl LDFLAGS really should only contain flags, not libs - they get added before
3553 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3554 GST_ALL_LDFLAGS="-no-undefined"
3555 if test "x${enable_Bsymbolic}" = "xyes"; then
3556 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3558 AC_SUBST(GST_ALL_LDFLAGS)
3561 dnl linker flags shared by all libraries
3562 dnl LDFLAGS modifier defining exported symbols from built libraries
3563 dnl (export _gst_foo but not __gst_foo)
3564 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3565 AC_SUBST(GST_LIB_LDFLAGS)
3567 dnl this really should only contain flags, not libs - they get added before
3568 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3569 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3570 AC_SUBST(GST_PLUGIN_LDFLAGS)
3572 dnl *** output files ***
3574 $MKDIR_P tests/check/orc
3582 gst-plugins-bad.spec
3584 gst/accurip/Makefile
3585 gst/adpcmdec/Makefile
3586 gst/adpcmenc/Makefile
3588 gst/videoframe_audiolevel/Makefile
3590 gst/audiofxbad/Makefile
3591 gst/audiomixer/Makefile
3592 gst/audiovisualizers/Makefile
3593 gst/autoconvert/Makefile
3595 gst/camerabin2/Makefile
3596 gst/cdxaparse/Makefile
3597 gst/coloreffects/Makefile
3598 gst/dataurisrc/Makefile
3600 gst/debugutils/Makefile
3601 gst/dvbsuboverlay/Makefile
3603 gst/faceoverlay/Makefile
3604 gst/festival/Makefile
3605 gst/fieldanalysis/Makefile
3606 gst/freeverb/Makefile
3608 gst/gaudieffects/Makefile
3609 gst/geometrictransform/Makefile
3611 gst/hdvparse/Makefile
3614 gst/interlace/Makefile
3615 gst/ivfparse/Makefile
3617 gst/jp2kdecimator/Makefile
3618 gst/jpegformat/Makefile
3621 gst/mpegdemux/Makefile
3622 gst/mpegtsdemux/Makefile
3623 gst/mpegtsmux/Makefile
3624 gst/mpegtsmux/tsmux/Makefile
3625 gst/mpegpsmux/Makefile
3629 gst/nuvdemux/Makefile
3631 gst/patchdetect/Makefile
3632 gst/pcapparse/Makefile
3634 gst/rawparse/Makefile
3635 gst/removesilence/Makefile
3638 gst/segmentclip/Makefile
3645 gst/videofilters/Makefile
3646 gst/videomeasure/Makefile
3647 gst/videoparsers/Makefile
3648 gst/videosignal/Makefile
3652 gst/compositor/Makefile
3654 gst-libs/gst/Makefile
3655 gst-libs/gst/adaptivedemux/Makefile
3656 gst-libs/gst/basecamerabinsrc/Makefile
3657 gst-libs/gst/gl/Makefile
3658 gst-libs/gst/gl/android/Makefile
3659 gst-libs/gst/gl/cocoa/Makefile
3660 gst-libs/gst/gl/dispmanx/Makefile
3661 gst-libs/gst/gl/glprototypes/Makefile
3662 gst-libs/gst/gl/eagl/Makefile
3663 gst-libs/gst/gl/egl/Makefile
3664 gst-libs/gst/gl/wayland/Makefile
3665 gst-libs/gst/gl/win32/Makefile
3666 gst-libs/gst/gl/x11/Makefile
3667 gst-libs/gst/insertbin/Makefile
3668 gst-libs/gst/interfaces/Makefile
3669 gst-libs/gst/codecparsers/Makefile
3670 gst-libs/gst/mpegts/Makefile
3671 gst-libs/gst/uridownloader/Makefile
3672 gst-libs/gst/wayland/Makefile
3673 gst-libs/gst/base/Makefile
3674 gst-libs/gst/player/Makefile
3675 gst-libs/gst/video/Makefile
3676 gst-libs/gst/audio/Makefile
3678 sys/dshowdecwrapper/Makefile
3680 sys/acmmp3dec/Makefile
3681 sys/androidmedia/Makefile
3682 sys/applemedia/Makefile
3683 sys/applemedia-nonpublic/Makefile
3686 sys/d3dvideosink/Makefile
3687 sys/decklink/Makefile
3688 sys/directsound/Makefile
3689 sys/dshowsrcwrapper/Makefile
3690 sys/dshowvideosink/Makefile
3696 sys/opensles/Makefile
3698 sys/tinyalsa/Makefile
3699 sys/uvch264/Makefile
3704 sys/wininet/Makefile
3706 sys/winscreencap/Makefile
3708 tests/check/Makefile
3709 tests/files/Makefile
3710 tests/examples/Makefile
3711 tests/examples/avsamplesink/Makefile
3712 tests/examples/camerabin2/Makefile
3713 tests/examples/codecparsers/Makefile
3714 tests/examples/directfb/Makefile
3715 tests/examples/gl/Makefile
3716 tests/examples/gl/cocoa/Makefile
3717 tests/examples/gl/clutter/Makefile
3718 tests/examples/gl/generic/Makefile
3719 tests/examples/gl/generic/cube/Makefile
3720 tests/examples/gl/generic/cubeyuv/Makefile
3721 tests/examples/gl/generic/doublecube/Makefile
3722 tests/examples/gl/generic/recordgraphic/Makefile
3723 tests/examples/gl/gtk/Makefile
3724 tests/examples/gl/gtk/3dvideo/Makefile
3725 tests/examples/gl/gtk/filternovideooverlay/Makefile
3726 tests/examples/gl/gtk/filtervideooverlay/Makefile
3727 tests/examples/gl/gtk/fxtest/Makefile
3728 tests/examples/gl/gtk/switchvideooverlay/Makefile
3729 tests/examples/gl/qt/Makefile
3730 tests/examples/gl/sdl/Makefile
3731 tests/examples/gtk/Makefile
3732 tests/examples/mpegts/Makefile
3733 tests/examples/mxf/Makefile
3734 tests/examples/opencv/Makefile
3735 tests/examples/uvch264/Makefile
3736 tests/examples/waylandsink/Makefile
3737 tests/icles/Makefile
3738 ext/voamrwbenc/Makefile
3739 ext/voaacenc/Makefile
3740 ext/assrender/Makefile
3741 ext/apexsink/Makefile
3744 ext/chromaprint/Makefile
3748 ext/directfb/Makefile
3749 ext/wayland/Makefile
3757 ext/fluidsynth/Makefile
3763 ext/libde265/Makefile
3765 ext/libvisual/Makefile
3767 ext/modplug/Makefile
3768 ext/mpeg2enc/Makefile
3771 ext/musepack/Makefile
3777 ext/openexr/Makefile
3778 ext/openh264/Makefile
3779 ext/openjpeg/Makefile
3780 ext/openni2/Makefile
3784 ext/resindvd/Makefile
3787 ext/schroedinger/Makefile
3789 ext/smoothstreaming/Makefile
3790 ext/sndfile/Makefile
3791 ext/soundtouch/Makefile
3792 ext/spandsp/Makefile
3795 ext/teletextdec/Makefile
3798 ext/timidity/Makefile
3800 ext/vulkan/xcb/Makefile
3801 ext/vulkan/wayland/Makefile
3807 ext/webrtcdsp/Makefile
3810 docs/plugins/Makefile
3812 docs/version.entities
3814 pkgconfig/gstreamer-plugins-bad.pc
3815 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3816 pkgconfig/gstreamer-codecparsers.pc
3817 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3818 pkgconfig/gstreamer-insertbin.pc
3819 pkgconfig/gstreamer-insertbin-uninstalled.pc
3820 pkgconfig/gstreamer-gl.pc
3821 pkgconfig/gstreamer-gl-uninstalled.pc
3822 pkgconfig/gstreamer-mpegts.pc
3823 pkgconfig/gstreamer-mpegts-uninstalled.pc
3824 pkgconfig/gstreamer-player.pc
3825 pkgconfig/gstreamer-player-uninstalled.pc
3826 pkgconfig/gstreamer-wayland.pc
3827 pkgconfig/gstreamer-wayland-uninstalled.pc
3828 pkgconfig/gstreamer-bad-base.pc
3829 pkgconfig/gstreamer-bad-base-uninstalled.pc
3830 pkgconfig/gstreamer-bad-video.pc
3831 pkgconfig/gstreamer-bad-video-uninstalled.pc
3832 pkgconfig/gstreamer-bad-audio.pc
3833 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3838 dnl Create the config.h file for Visual Studio builds
3839 dnl Beware of spaces and /'s in some of the shell variable contents.
3841 -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"/' \
3842 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3843 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3844 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3845 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3846 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3847 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3848 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3849 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3850 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3851 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3852 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3853 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3854 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3855 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3856 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3857 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3858 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3859 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3860 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3861 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3862 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3863 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3864 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3865 -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/' \
3866 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3867 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3868 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3869 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3870 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3871 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3872 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3873 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3874 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3875 config.h.in >win32/common/config.h-new
3879 AG_GST_OUTPUT_PLUGINS