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.13.0.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, 1300, 0, 1300)
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 dnl *** checks for types/defines ***
169 dnl *** checks for structures ***
171 dnl *** checks for compiler characteristics ***
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r])
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
179 dnl *** checks for dependency libraries ***
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
200 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
202 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
204 dnl check for uninstalled plugin directories for unit tests
205 AG_GST_CHECK_UNINSTALLED_SETUP([
206 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
207 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
208 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
211 dnl Check for documentation xrefs
212 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
213 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
214 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
215 AC_SUBST(GLIB_PREFIX)
217 AC_SUBST(GSTPB_PREFIX)
219 dnl GTK is optional and used in examples
223 if test "x$BUILD_EXAMPLES" = "xyes"; then
224 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
226 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
228 2.0) GTK_REQ=$GTK2_REQ ;;
229 3.0) GTK_REQ=$GTK3_REQ ;;
230 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
234 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
235 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
239 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
241 dnl Check for -Bsymbolic-functions linker flag used to avoid
242 dnl intra-library PLT jumps, if available.
243 AC_ARG_ENABLE(Bsymbolic,
244 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
245 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
246 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
247 LDFLAGS=-Wl,-Bsymbolic-functions
249 AC_TRY_LINK([], [return 0],
251 enable_Bsymbolic=yes,
254 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
256 dnl *** set variables based on configure arguments ***
258 dnl GTK is optional and used in examples
260 if test "x$BUILD_EXAMPLES" = "xyes"; then
261 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
262 if test "x$HAVE_GTK3" = "xyes"; then
264 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
265 AC_SUBST(GTK_VERSION)
266 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
267 AC_SUBST(GTK_BASE_DIR)
271 AC_SUBST(GTK3_CFLAGS)
273 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
275 dnl clutter is optional and used in examples
279 if test "x$BUILD_EXAMPLES" = "xyes"; then
280 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
281 AC_SUBST(CLUTTER_LIBS)
282 AC_SUBST(CLUTTER_CFLAGS)
283 AC_SUBST(HAVE_CLUTTER)
285 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
286 AC_SUBST(CLUTTER_GLX_LIBS)
287 AC_SUBST(CLUTTER_GLX_CFLAGS)
288 AC_SUBST(HAVE_CLUTTER_GLX)
290 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
291 AC_SUBST(CLUTTER_X11_LIBS)
292 AC_SUBST(CLUTTER_X11_CFLAGS)
293 AC_SUBST(HAVE_CLUTTER_X11)
295 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
296 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
297 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
299 dnl used in the gl/clutteractor example
300 if test "x$BUILD_EXAMPLES" = "xyes"; then
301 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
302 AC_SUBST(XCOMPOSITE_CFLAGS)
303 AC_SUBST(XCOMPOSITE_LIBS)
305 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
307 dnl graphene-1.0 is optional and used in gltransformation
309 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
310 if test "x$HAVE_GRAPHENE" = "xyes"; then
311 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
313 AC_SUBST(HAVE_GRAPHENE)
314 AC_SUBST(GRAPHENE_LIBS)
315 AC_SUBST(GRAPHENE_CFLAGS)
316 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
319 dnl sdl is optional and used in examples
321 if test "x$BUILD_EXAMPLES" = "xyes"; then
322 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
325 AC_SUBST(SDL_CLUTTER)
327 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
330 dnl Needed for GtkBuilder to autoconnect signals
331 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
333 dnl Needed by plugins that use g_module_*() API
334 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
336 dnl x11 is optional for librfb
338 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
342 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
343 if test "x$HAVE_X11" = "xyes"; then
344 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
347 dnl exif (used on jifmux tests) ****
348 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
350 AC_SUBST(EXIF_CFLAGS)
351 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
353 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
354 PKG_CHECK_MODULES(DSSIM, dssim, [
362 if test "x$HAVE_DSSIM" = "xyes"; then
363 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
366 AC_SUBST(DSSIM_CFLAGS)
368 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
373 dnl set license and copyright notice
375 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
376 AC_SUBST(GST_LICENSE)
378 dnl define LIBDIR so we can inform people where we live
379 AS_AC_EXPAND(LIBDIR, $libdir)
380 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
382 dnl set location of plugin directory
385 dnl set release date/time
386 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
387 ["${srcdir}/gst-plugins-bad.doap"],
388 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
390 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
391 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
392 if test x$enable_static = xyes -a x$enable_shared = xno; then
393 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
396 AC_ARG_WITH([player-tests],
397 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
398 if test x$with_player_tests = xyes; then
399 AC_PATH_PROG([WGET], [wget], no)
400 if test x$WGET = xno; then
401 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
405 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
407 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
408 dnl make sure it doesn't complain about unused variables if debugging is disabled
410 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
412 dnl define an ERROR_CFLAGS Makefile variable
413 dnl -Waggregate-return - libexif returns aggregates
414 dnl -Wundef - Windows headers check _MSC_VER unconditionally
415 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
416 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
417 -Wwrite-strings -Wformat-security -Wold-style-definition
418 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
419 -Wnested-externs $NO_WARNINGS])
421 dnl define an ERROR_CXXFLAGS Makefile variable
422 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
423 -Wmissing-declarations -Wredundant-decls
424 -Wwrite-strings -Wformat-nonliteral -Wformat-security
425 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
427 dnl define an ERROR_OBJCFLAGS Makefile variable
428 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
429 -Wmissing-declarations -Wredundant-decls
430 -Wwrite-strings -Wformat-nonliteral -Wformat-security
431 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
433 dnl define correct level for debugging messages
434 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
437 AG_GST_DEFAULT_ELEMENTS
439 dnl *** plug-ins to include ***
441 dnl these are all the gst plug-ins, compilable without additional libs
442 AG_GST_CHECK_PLUGIN(accurip)
443 AG_GST_CHECK_PLUGIN(adpcmdec)
444 AG_GST_CHECK_PLUGIN(adpcmenc)
445 AG_GST_CHECK_PLUGIN(aiff)
446 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
447 AG_GST_CHECK_PLUGIN(asfmux)
448 AG_GST_CHECK_PLUGIN(audiobuffersplit)
449 AG_GST_CHECK_PLUGIN(audiofxbad)
450 AG_GST_CHECK_PLUGIN(audiomixer)
451 AG_GST_CHECK_PLUGIN(audiomixmatrix)
452 AG_GST_CHECK_PLUGIN(compositor)
453 AG_GST_CHECK_PLUGIN(audiovisualizers)
454 AG_GST_CHECK_PLUGIN(autoconvert)
455 AG_GST_CHECK_PLUGIN(bayer)
456 AG_GST_CHECK_PLUGIN(camerabin2)
457 AG_GST_CHECK_PLUGIN(coloreffects)
458 AG_GST_CHECK_PLUGIN(debugutils)
459 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
460 AG_GST_CHECK_PLUGIN(dvdspu)
461 AG_GST_CHECK_PLUGIN(faceoverlay)
462 AG_GST_CHECK_PLUGIN(festival)
463 AG_GST_CHECK_PLUGIN(fieldanalysis)
464 AG_GST_CHECK_PLUGIN(freeverb)
465 AG_GST_CHECK_PLUGIN(frei0r)
466 AG_GST_CHECK_PLUGIN(gaudieffects)
467 AG_GST_CHECK_PLUGIN(geometrictransform)
468 AG_GST_CHECK_PLUGIN(gdp)
469 AG_GST_CHECK_PLUGIN(id3tag)
470 AG_GST_CHECK_PLUGIN(inter)
471 AG_GST_CHECK_PLUGIN(interlace)
472 AG_GST_CHECK_PLUGIN(ivfparse)
473 AG_GST_CHECK_PLUGIN(ivtc)
474 AG_GST_CHECK_PLUGIN(jp2kdecimator)
475 AG_GST_CHECK_PLUGIN(jpegformat)
476 AG_GST_CHECK_PLUGIN(librfb)
477 AG_GST_CHECK_PLUGIN(midi)
478 AG_GST_CHECK_PLUGIN(mpegdemux)
479 AG_GST_CHECK_PLUGIN(mpegtsdemux)
480 AG_GST_CHECK_PLUGIN(mpegtsmux)
481 AG_GST_CHECK_PLUGIN(mpegpsmux)
482 AG_GST_CHECK_PLUGIN(mxf)
483 AG_GST_CHECK_PLUGIN(netsim)
484 AG_GST_CHECK_PLUGIN(onvif)
485 AG_GST_CHECK_PLUGIN(pcapparse)
486 AG_GST_CHECK_PLUGIN(pnm)
487 AG_GST_CHECK_PLUGIN(rawparse)
488 AG_GST_CHECK_PLUGIN(removesilence)
489 AG_GST_CHECK_PLUGIN(sdp)
490 AG_GST_CHECK_PLUGIN(segmentclip)
491 AG_GST_CHECK_PLUGIN(siren)
492 AG_GST_CHECK_PLUGIN(smooth)
493 AG_GST_CHECK_PLUGIN(speed)
494 AG_GST_CHECK_PLUGIN(subenc)
495 AG_GST_CHECK_PLUGIN(stereo)
496 AG_GST_CHECK_PLUGIN(timecode)
497 AG_GST_CHECK_PLUGIN(videofilters)
498 AG_GST_CHECK_PLUGIN(videoparsers)
499 AG_GST_CHECK_PLUGIN(videosignal)
500 AG_GST_CHECK_PLUGIN(vmnc)
501 AG_GST_CHECK_PLUGIN(y4m)
502 AG_GST_CHECK_PLUGIN(yadif)
504 dnl *** plug-ins to exclude ***
506 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
507 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
508 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
510 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
512 LIBS="$LIBS -framework VideoToolbox"
513 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
514 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
520 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
521 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
522 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
525 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
526 if test "x$HAVE_IOS" = "xyes"; then
527 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
530 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
531 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
532 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
535 dnl disable gst plugins we might not be able to build on this
536 dnl platform: (ugly but minimally invasive)
537 dnl FIXME: maybe move to sys, or make work with winsock2
538 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
539 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
541 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
542 WINSOCK2_LIBS="-lws2_32"
543 AC_SUBST(WINSOCK2_LIBS)
547 AC_ARG_ENABLE([opengl],
548 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
549 [case "${enableval}" in
552 auto) NEED_GL=auto ;;
553 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
554 esac],[NEED_GL=auto])
556 AC_ARG_WITH([opengl-module-name],
557 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
558 if test x$with_opengl_module_name != x; then
559 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
562 AC_ARG_ENABLE([gles2],
563 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
564 [case "${enableval}" in
565 yes) NEED_GLES2=yes ;;
567 auto) NEED_GLES2=auto ;;
568 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
569 esac],[NEED_GLES2=auto])
571 AC_ARG_WITH([gles2-module-name],
572 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
573 if test x$with_gles2_module_name != x; then
574 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
578 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
579 [case "${enableval}" in
582 auto) NEED_EGL=auto ;;
583 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
584 esac],[NEED_EGL=auto])
586 AC_ARG_WITH([egl-module-name],
587 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
588 if test x$with_egl_module_name != x; then
589 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
593 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
594 [case "${enableval}" in
597 auto) NEED_WGL=auto ;;
598 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
599 esac],[NEED_WGL=auto])
602 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
603 [case "${enableval}" in
606 auto) NEED_GLX=auto ;;
607 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
608 esac],[NEED_GLX=auto])
610 AC_ARG_ENABLE([cocoa],
611 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
612 [case "${enableval}" in
613 yes) NEED_COCOA=yes ;;
615 auto) NEED_COCOA=auto ;;
616 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
617 esac],[NEED_COCOA=auto])
620 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
621 [case "${enableval}" in
624 auto) NEED_X11=auto ;;
625 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
626 esac],[NEED_X11=auto])
628 AC_ARG_ENABLE([wayland],
629 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
630 [case "${enableval}" in
631 yes) NEED_WAYLAND_EGL=yes ;;
632 no) NEED_WAYLAND_EGL=no ;;
633 auto) NEED_WAYLAND_EGL=auto ;;
634 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
635 esac],[NEED_WAYLAND_EGL=auto])
637 AC_ARG_ENABLE([dispmanx],
638 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
639 [case "${enableval}" in
640 yes) NEED_DISPMANX=yes ;;
641 no) NEED_DISPMANX=no ;;
642 auto) NEED_DISPMANX=auto ;;
643 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
644 esac],[NEED_DISPMANX=auto])
646 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
647 save_CPPFLAGS="$CPPFLAGS"
660 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
661 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
662 if test "x$HAVE_WGLEXT" = "xyes"; then
668 if test "x$NEED_GL" != "xno"; then
669 AG_GST_PKG_CHECK_MODULES(GL, gl)
670 if test "x$HAVE_GL" != "xyes"; then
671 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
674 if test "x$NEED_GLES2" != "xno"; then
675 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
676 if test "x$HAVE_GLES2" != "xyes"; then
677 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
679 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
680 AS_IF([test "x$HAVE_GLES3_H" == "xyes"],
682 AC_CHECK_HEADER([GLES3/gl3ext.h], [HAVE_GLES3EXT3_H=yes], [HAVE_GLES3EXT3_H=no], [#include <GLES3/gl3.h>])
685 if test "x$NEED_EGL" != "xno"; then
686 AG_GST_PKG_CHECK_MODULES(EGL, egl)
687 if test "x$HAVE_EGL" != "xyes"; then
688 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
695 dnl imx6 / Vivante specifics
696 if test "x$HAVE_EGL" = "xyes"; then
697 AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes])
700 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
701 AC_CHECK_HEADER([EGL/fbdev_window.h],
704 AC_CHECK_LIB([Mali], [mali_image_create],
707 AC_CHECK_LIB([GLESv2], [glEnable],
709 AC_CHECK_HEADER([GLES2/gl2.h],
711 AC_CHECK_LIB([EGL], [eglGetProcAddress],
713 AC_CHECK_HEADER([EGL/egl.h],
717 EGL_LIBS="-lMali -lUMP"
719 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
727 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
728 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
729 LIBS="$LIBS -lvcos -lvchiq_arm"
730 AC_CHECK_LIB([bcm_host], [bcm_host_init],
732 LIBS="$LIBS -lbcm_host"
733 AC_CHECK_HEADER(bcm_host.h,
735 LIBS="$LIBS -lGLESv2"
736 AC_CHECK_LIB([EGL], [eglGetProcAddress],
739 AC_CHECK_HEADER([EGL/egl.h],
741 AC_CHECK_LIB([GLESv2], [glEnable],
743 AC_CHECK_HEADER([GLES2/gl2.h],
748 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
750 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
761 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)
763 # OS X and iOS always have GL available
766 if test "x$HAVE_IOS" = "xyes"; then
776 CPPFLAGS="$save_CPPFLAGS"
790 dnl Check for what the user asked for and what we could find
791 if test "x$HAVE_EGL" = "xno"; then
792 if test "x$NEED_EGL" = "xyes"; then
793 AC_MSG_ERROR([Could not find the required EGL libraries])
797 if test "x$HAVE_GL" = "xno"; then
798 if test "x$NEED_GL" = "xyes"; then
799 AC_MSG_ERROR([Could not find the required OpenGL libraries])
803 if test "x$HAVE_GLES2" = "xno"; then
804 if test "x$NEED_GLES2" = "xyes"; then
805 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
809 dnl X, GLX and OpenGL
810 if test "x$HAVE_X11_XCB" = "xno"; then
811 if test "x$NEED_GLX" = "xyes"; then
812 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
814 if test "x$NEED_X11" = "xyes"; then
815 AC_MSG_ERROR([Could not find X11 development libraries])
818 if test "x$NEED_GL" != "xno"; then
819 if test "x$HAVE_GL" = "xno"; then
820 if test "x$NEED_GLX" = "xyes"; then
821 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
825 if test "x$NEED_GLX" != "xno"; then
832 dnl check for DMABUF support
833 HAVE_DRM_FOURCC_HEADER=no
834 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
835 HAVE_DRM_FOURCC_HEADER=yes, )
837 HAVE_GST_ALLOCATORS=no
838 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
839 HAVE_GST_ALLOCATORS=yes, )
842 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
843 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
844 "x$HAVE_EGL" = "xyes"; then
848 dnl check for Vivante DirectVIV support
849 AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no])
851 GST_GL_HAVE_VIV_DIRECTVIV=0
852 if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then
853 GST_GL_HAVE_VIV_DIRECTVIV=1
856 dnl check if we can include both GL and GLES2 at the same time
857 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
860 if test "x$HAVE_GLES3_H" == "xyes"; then
863 if test "x$HAVE_GLES3EXT3_H" == "xyes"; then
868 # pragma GCC diagnostic push
869 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
871 #ifndef GL_GLEXT_PROTOTYPES
872 #define GL_GLEXT_PROTOTYPES 1
875 # include <OpenGLES/ES2/gl.h>
876 # include <OpenGLES/ES2/glext.h>
879 # include <GLES3/gl3.h>
880 # if $GLES3EXT3_H_DEFINE
881 # include <GLES3/gl3ext.h>
883 # include <GLES2/gl2ext.h>
885 # include <GLES2/gl2.h>
886 # include <GLES2/gl2ext.h>
890 # include <OpenGL/OpenGL.h>
891 # include <OpenGL/gl.h>
892 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
893 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
894 # include <OpenGL/gl3.h>
898 # if __WIN32__ || _WIN32
899 # include <GL/glext.h>
902 int main (int argc, char **argv) { return 0; }
904 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
905 save_CFLAGS="$CFLAGS"
906 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
907 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
908 #if !defined(GL_FALSE)
909 #error Failed to include GL headers
911 ]])],[ AC_MSG_RESULT(yes)
913 if test "x$NEED_GLES2" = "xyes"; then
914 if test "x$NEED_GL" = "xyes"; then
915 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
917 AC_MSG_WARN([Disabling Desktop GL support])
921 AC_MSG_WARN([Disabling GL|ES 2.0 support])
926 CFLAGS="$save_CFLAGS"
929 #dnl Check for OpenGL
933 if test "x$NEED_WGL" = "xyes"; then
934 AC_MSG_ERROR([WGL is not available on Android])
936 if test "x$NEED_GLX" = "xyes"; then
937 AC_MSG_ERROR([GLX is not available on Android])
939 if test "x$NEED_GL" = "xyes"; then
940 AC_MSG_ERROR([GL is not available on Android])
942 if test "x$NEED_X11" = "xyes"; then
943 AC_MSG_ERROR([X11 is not available on Android])
945 if test "x$NEED_COCOA" = "xyes"; then
946 AC_MSG_ERROR([Cocoa is not available on Android])
950 if test "x$HAVE_GLES2" = "xyes"; then
951 if test "x$NEED_GLES2" != "xno"; then
952 GL_LIBS="$GL_LIBS -lGLESv2"
958 if test "x$HAVE_EGL" = "xyes"; then
959 if test "x$NEED_EGL" != "xno"; then
960 GL_LIBS="$GL_LIBS -lEGL"
965 if test "x$USE_EGL" != "xyes"; then
966 AC_MSG_ERROR([Need EGL on Android])
969 if test "x$USE_GLES2" != "xyes"; then
970 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
973 HAVE_WINDOW_ANDROID=yes
975 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
976 if test "x$NEED_WGL" = "xyes"; then
977 AC_MSG_ERROR([WGL is not available on unix])
980 if test "x$HAVE_X11_XCB" = "xno"; then
981 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
982 AC_MSG_WARN([X or Wayland is required for OpenGL support])
986 dnl check Desktop OpenGL
987 if test "x$HAVE_GL" = "xyes"; then
988 if test "x$NEED_GL" != "xno"; then
989 GL_LIBS="$GL_LIBS -lGL"
994 if test "x$HAVE_GLES2" = "xyes"; then
995 if test "x$NEED_GLES2" != "xno"; then
996 GL_LIBS="$GL_LIBS -lGLESv2"
1001 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1002 if test "x$NEED_X11" != "xno"; then
1003 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1004 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1009 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1010 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1011 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1013 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1014 HAVE_WINDOW_WAYLAND=yes
1015 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1016 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1021 if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1022 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1023 AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1025 HAVE_WINDOW_VIV_FB=yes
1027 GL_CFLAGS="$GL_CFLAGS"
1031 if test "x$HAVE_EGL_RPI" = "xyes"; then
1032 if test "x$NEED_DISPMANX" != "xno"; then
1033 HAVE_WINDOW_DISPMANX=yes
1039 if test "x$HAVE_EGL" = "xno"; then
1040 if test "x$HAVE_GL" = "xno"; then
1041 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1044 if test "x$NEED_EGL" != "xno"; then
1045 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1046 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1047 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1054 if test "x$HAVE_IOS" = "xyes"; then
1055 if test "x$NEED_WGL" = "xyes"; then
1056 AC_MSG_ERROR([WGL is not available on iOS])
1058 if test "x$NEED_GLX" = "xyes"; then
1059 AC_MSG_ERROR([GLX is not available on iOS])
1061 if test "x$NEED_GL" = "xyes"; then
1062 AC_MSG_ERROR([GL is not available on iOS])
1064 if test "x$NEED_X11" = "xyes"; then
1065 AC_MSG_ERROR([X11 is not available on iOS])
1067 if test "x$NEED_COCOA" = "xyes"; then
1068 AC_MSG_ERROR([Cocoa is not available on iOS])
1070 if test "x$NEED_EGL" = "xyes"; then
1071 AC_MSG_ERROR([EGL is not available on iOS])
1074 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1075 GL_CFLAGS="$GL_CFLAGS"
1078 HAVE_WINDOW_EAGL=yes
1080 ac_cv_type_GLsizeiptr=yes
1081 ac_cv_type_GLintptr=yes
1082 ac_cv_type_GLchar=yes
1084 dnl Only osx supports cocoa.
1085 if test "x$NEED_WGL" = "xyes"; then
1086 AC_MSG_ERROR([WGL is not available on Mac OS X])
1089 if test "x$NEED_COCOA" != "xno"; then
1090 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1091 GL_CFLAGS="$GL_CFLAGS"
1093 HAVE_WINDOW_COCOA=yes
1097 if test "x$USE_GLX" = "xyes"; then
1098 if test "x$HAVE_X11_XCB" = "xyes"; then
1099 if test "x$NEED_X11" != "xno"; then
1100 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1101 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1106 if test "x$HAVE_GL" = "xyes"; then
1107 if test "x$NEED_GL" != "xno"; then
1108 GL_LIBS="$GL_LIBS -lGL"
1114 if test "x$HAVE_EGL" = "xyes"; then
1115 if test "x$NEED_EGL" != "xno"; then
1116 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1117 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1118 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1125 if test "x$HAVE_GLES2" = "xyes"; then
1126 if test "x$NEED_GLES2" != "xno"; then
1127 GL_LIBS="$GL_LIBS -lGLESv2"
1134 if test "x$NEED_GLX" = "xyes"; then
1135 AC_MSG_ERROR([GLX is not available on Windows])
1137 if test "x$NEED_GLES2" = "xyes"; then
1138 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1141 if test "x$HAVE_GL" = "xyes"; then
1142 if test "x$NEED_GL" != "xno"; then
1143 if test "x$HAVE_WGL" = "xyes"; then
1144 if test "$NEED_WGL" != "xno"; then
1145 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1146 HAVE_WINDOW_WIN32=yes
1155 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1166 GST_GL_HAVE_OPENGL=0
1169 GST_GL_HAVE_GLES3EXT3_H=0
1171 if test "x$USE_OPENGL" = "xyes"; then
1172 GL_APIS="gl $GL_APIS"
1173 GST_GL_HAVE_OPENGL=1
1175 if test "x$USE_GLES2" = "xyes"; then
1176 GL_APIS="gles2 $GL_APIS"
1178 if test "x$HAVE_GLES3_H" = "xyes"; then
1180 if test "x$HAVE_GLES3EXT3_H" = "xyes"; then
1181 GST_GL_HAVE_GLES3EXT3_H=1
1186 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1187 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1188 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1189 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1190 #define GST_GL_HAVE_GLES3EXT3_H $GST_GL_HAVE_GLES3EXT3_H
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
1202 GST_GL_HAVE_WINDOW_VIV_FB=0
1204 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1205 GL_WINDOWS="x11 $GL_WINDOWS"
1206 GST_GL_HAVE_WINDOW_X11=1
1208 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1209 GL_WINDOWS="cocoa $GL_WINDOWS"
1210 GST_GL_HAVE_WINDOW_COCOA=1
1212 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1213 GL_WINDOWS="win32 $GL_WINDOWS"
1214 GST_GL_HAVE_WINDOW_WIN32=1
1216 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1217 GL_WINDOWS="wayland $GL_WINDOWS"
1218 GST_GL_HAVE_WINDOW_WAYLAND=1
1220 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1221 GL_WINDOWS="android $GL_WINDOWS"
1222 GST_GL_HAVE_WINDOW_ANDROID=1
1224 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1225 GL_WINDOWS="dispmanx $GL_WINDOWS"
1226 GST_GL_HAVE_WINDOW_DISPMANX=1
1228 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1229 GL_WINDOWS="eagl $GL_WINDOWS"
1230 GST_GL_HAVE_WINDOW_EAGL=1
1232 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1233 GL_WINDOWS="viv-fb $GL_WINDOWS"
1234 GST_GL_HAVE_WINDOW_VIV_FB=1
1237 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1238 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1239 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1240 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1241 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1242 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1243 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1244 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1245 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1250 GST_GL_HAVE_PLATFORM_EGL=0
1251 GST_GL_HAVE_PLATFORM_GLX=0
1252 GST_GL_HAVE_PLATFORM_WGL=0
1253 GST_GL_HAVE_PLATFORM_CGL=0
1254 GST_GL_HAVE_PLATFORM_EAGL=0
1256 if test "x$USE_EGL" = "xyes"; then
1257 GL_PLATFORMS="egl $GL_PLATFORMS"
1258 GST_GL_HAVE_PLATFORM_EGL=1
1260 if test "x$USE_GLX" = "xyes"; then
1261 GL_PLATFORMS="glx $GL_PLATFORMS"
1262 GST_GL_HAVE_PLATFORM_GLX=1
1264 if test "x$USE_WGL" = "xyes"; then
1265 GL_PLATFORMS="wgl $GL_PLATFORMS"
1266 GST_GL_HAVE_PLATFORM_WGL=1
1268 if test "x$USE_COCOA" = "xyes"; then
1269 GL_PLATFORMS="cgl $GL_PLATFORMS"
1270 GST_GL_HAVE_PLATFORM_CGL=1
1272 if test "x$USE_EAGL" = "xyes"; then
1273 GL_PLATFORMS="eagl $GL_PLATFORMS"
1274 GST_GL_HAVE_PLATFORM_EAGL=1
1277 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1278 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1279 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1280 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1281 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1282 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1285 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1286 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1287 #define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV
1290 dnl Check for no platforms/window systems
1291 if test "x$GL_APIS" = "x"; then
1292 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1294 if test "x$GL_PLATFORMS" = "x"; then
1295 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1297 if test "x$GL_WINDOWS" = "x"; then
1298 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1301 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1316 HAVE_WINDOW_WIN32=no
1317 HAVE_WINDOW_DISPMANX=no
1318 HAVE_WINDOW_WAYLAND=no
1319 HAVE_WINDOW_ANDROID=no
1320 HAVE_WINDOW_COCOA=no
1322 HAVE_WINDOW_VIV_FB=no
1326 AC_SUBST(GL_PLATFORMS)
1327 AC_SUBST(GL_WINDOWS)
1330 AC_SUBST(GL_OBJCFLAGS)
1331 AC_SUBST(USE_OPENGL)
1334 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1335 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1336 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1337 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1338 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1339 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1340 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1341 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1343 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1344 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1345 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1346 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1347 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1348 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1349 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1350 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1351 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1353 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1355 dnl Check for some types that are not always present
1357 if test "x$USE_GLES2" = "xyes"; then
1358 GL_INCLUDES="$GL_INCLUDES
1359 #ifndef GL_GLEXT_PROTOTYPES
1360 #define GL_GLEXT_PROTOTYPES 1
1363 # include <OpenGLES/ES2/gl.h>
1364 # include <OpenGLES/ES2/glext.h>
1366 # if $GST_GL_HAVE_GLES3
1367 # include <GLES3/gl3.h>
1368 # if $GST_GL_HAVE_GLES3EXT3_H
1369 # include <GLES3/gl3ext.h>
1371 # include <GLES2/gl2ext.h>
1373 # include <GLES2/gl2.h>
1374 # include <GLES2/gl2ext.h>
1380 if test "x$USE_OPENGL" = "xyes"; then
1381 GL_INCLUDES="$GL_INCLUDES
1383 # include <OpenGL/OpenGL.h>
1384 # include <OpenGL/gl.h>
1387 # if __WIN32__ || _WIN32
1388 # include <GL/glext.h>
1394 GST_GL_HAVE_GLEGLIMAGEOES=0
1395 GST_GL_HAVE_GLCHAR=0
1396 GST_GL_HAVE_GLSIZEIPTR=0
1397 GST_GL_HAVE_GLINTPTR=0
1398 GST_GL_HAVE_GLSYNC=0
1399 GST_GL_HAVE_GLUINT64=0
1400 GST_GL_HAVE_GLINT64=0
1401 GST_GL_HAVE_EGLATTRIB=0
1404 CFLAGS="$GL_CFLAGS $CFLAGS"
1406 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1407 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1408 GST_GL_HAVE_GLEGLIMAGEOES=1
1411 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1412 if test "x$ac_cv_type_GLchar" = "xyes"; then
1413 GST_GL_HAVE_GLCHAR=1
1416 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1417 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1418 GST_GL_HAVE_GLSIZEIPTR=1
1421 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1422 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1423 GST_GL_HAVE_GLINTPTR=1
1426 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1427 if test "x$ac_cv_type_GLsync" = "xyes"; then
1428 GST_GL_HAVE_GLSYNC=1
1431 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1432 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1433 GST_GL_HAVE_GLUINT64=1
1436 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1437 if test "x$ac_cv_type_GLint64" = "xyes"; then
1438 GST_GL_HAVE_GLINT64=1
1441 if test "x$USE_EGL" = "xyes"; then
1442 EGL_INCLUDES="$GL_INCLUDES
1443 #include <EGL/egl.h>
1444 #include <EGL/eglext.h>
1446 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1447 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1448 GST_GL_HAVE_EGLATTRIB=1
1454 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1455 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1456 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1457 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1458 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1459 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1460 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1461 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1462 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1465 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1466 outfile=gstglconfig.h-tmp
1467 cat > $outfile <<\_______EOF
1470 * This is a generated file. Please modify `configure.ac'
1473 #ifndef __GST_GL_CONFIG_H__
1474 #define __GST_GL_CONFIG_H__
1476 #include <gst/gst.h>
1482 cat >>$outfile <<_______EOF
1486 cat >>$outfile <<_______EOF
1490 #endif /* __GST_GL_CONFIG_H__ */
1494 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1495 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1498 mv $outfile gst-libs/gst/gl/gstglconfig.h
1501 gl_config_defines='$GL_CONFIG_DEFINES'
1504 dnl libpng is optional
1505 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1506 if test "x$HAVE_PNG" = "xyes"; then
1507 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1510 AC_SUBST(LIBPNG_LIBS)
1511 AC_SUBST(LIBPNG_CFLAGS)
1512 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1514 dnl libjpeg is optional
1515 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1517 if test x$with_jpeg_mmx != x; then
1518 LIBS="$LIBS -L$with_jpeg_mmx"
1520 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1521 JPEG_LIBS="$LIBS -ljpeg-mmx"
1523 if test x$HAVE_JPEG != xyes; then
1525 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1528 if test x$HAVE_JPEG = xyes; then
1529 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1531 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1536 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1539 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1540 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1542 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1543 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1544 VULKAN_CONFIG_DEFINES="
1545 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1546 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1548 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1549 outfile=vkconfig.h-tmp
1550 cat > $outfile <<\_______EOF
1553 * This is a generated file. Please modify `configure.ac'
1556 #ifndef __GST_VULKAN_CONFIG_H__
1557 #define __GST_VULKAN_CONFIG_H__
1559 #include <gst/gst.h>
1565 cat >>$outfile <<_______EOF
1566 $vulkan_config_defines
1569 cat >>$outfile <<_______EOF
1573 #endif /* __GST_VULKAN_CONFIG_H__ */
1577 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1578 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1581 mv $outfile ext/vulkan/vkconfig.h
1584 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1587 dnl *** sys plug-ins ***
1590 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1591 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1592 HAVE_DIRECTSOUND="no"
1593 save_CFLAGS="$CFLAGS"
1594 save_LDFLAGS="$LDFLAGS"
1596 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1597 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1598 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1599 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1600 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1601 #include <windows.h>
1604 #include <mmsystem.h>
1606 DXGetErrorString9 (0);
1607 DirectSoundCreate(NULL, NULL, NULL);
1609 [HAVE_DIRECTSOUND="yes"],
1610 [HAVE_DIRECTSOUND="no"])
1611 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1613 LDFLAGS=$save_LDFLAGS
1616 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1617 dnl this is much more than we want
1618 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1619 AC_SUBST(DIRECTX_CFLAGS)
1620 AC_SUBST(DIRECTX_LDFLAGS)
1621 AC_SUBST(DIRECTSOUND_LIBS)
1623 AC_SUBST(HAVE_DIRECTSOUND)
1627 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1628 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1630 save_CFLAGS="$CFLAGS"
1631 save_LDFLAGS="$LDFLAGS"
1633 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1634 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1635 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1636 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1637 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1638 #include <windows.h>
1640 #include <mmsystem.h>
1641 #include <mmdeviceapi.h>
1647 hr = CoInitialize(NULL);
1649 printf("CoInitialize failed: hr = 0x%08x", hr);
1654 // result = do_everything(argc, argv);
1660 [HAVE_WASAPI="yes"],
1662 AC_MSG_RESULT($HAVE_WASAPI)
1664 LDFLAGS=$save_LDFLAGS
1667 if test "x$HAVE_WASAPI" = "xyes"; then
1668 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1669 AC_SUBST(WASAPI_LIBS)
1671 AC_SUBST(HAVE_WASAPI)
1675 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1676 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1678 save_CFLAGS="$CFLAGS"
1679 save_LDFLAGS="$LDFLAGS"
1681 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1682 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1683 LIBS="$LIBS -ld3d9 -lgdi32"
1684 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1685 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1686 #include <windows.h>
1689 Direct3DCreate9(D3D_SDK_VERSION);
1691 [HAVE_DIRECT3D="yes"],
1692 [HAVE_DIRECT3D="no"])
1693 AC_MSG_RESULT($HAVE_DIRECT3D)
1695 LDFLAGS=$save_LDFLAGS
1698 if test "x$HAVE_DIRECT3D" = "xyes"; then
1699 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1700 AC_SUBST(DIRECT3D_LIBS)
1702 AC_SUBST(HAVE_DIRECT3D)
1706 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1707 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1708 HAVE_WINSCREENCAP="no"
1709 save_CFLAGS="$CFLAGS"
1710 save_LDFLAGS="$LDFLAGS"
1712 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1713 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1714 LIBS="$LIBS -ld3d9 -lgdi32"
1715 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1716 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1717 #include <windows.h>
1720 Direct3DCreate9(D3D_SDK_VERSION);
1722 [HAVE_WINSCREENCAP="yes"],
1723 [HAVE_WINSCREENCAP="no"])
1724 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1726 LDFLAGS=$save_LDFLAGS
1729 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1730 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1731 AC_SUBST(WINSCREENCAP_LIBS)
1733 AC_SUBST(HAVE_WINSCREENCAP)
1737 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1738 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1740 save_CFLAGS="$CFLAGS"
1741 save_LDFLAGS="$LDFLAGS"
1743 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1744 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1745 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1746 AC_MSG_CHECKING(for Winks LDFLAGS)
1747 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1748 #include <windows.h>
1753 IGraphBuilder *pGraph = NULL;
1754 HRESULT hr = CoInitialize(NULL);
1755 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1756 &IID_IGraphBuilder, (void **)&pGraph);
1763 AC_MSG_RESULT($HAVE_WINKS)
1765 LDFLAGS=$save_LDFLAGS
1768 if test "x$HAVE_WINKS" = "xyes"; then
1769 dnl this is much more than we want
1770 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1771 AC_SUBST(DIRECTX_CFLAGS)
1772 AC_SUBST(DIRECTX_LDFLAGS)
1773 AC_SUBST(WINKS_LIBS)
1775 AC_SUBST(HAVE_WINKS)
1778 dnl *** Android Media ***
1779 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1780 HAVE_ANDROID_MEDIA="no"
1781 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1784 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1787 HAVE_ANDROID_MEDIA="no"
1792 dnl *** AppleMedia (OS X and iOS) ***
1793 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1794 HAVE_APPLE_MEDIA="no"
1795 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1796 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1797 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1798 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1799 if test "x$HAVE_IOS" = "xno"; then
1800 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1804 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1809 HAVE_APPLE_MEDIA="no"
1814 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1815 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1816 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1817 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1818 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1820 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1829 dnl *** OS/X AVCVideoServices ***
1830 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1832 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1834 save_CPPFLAGS="$CPPFLAGS"
1835 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1837 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1838 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1840 CPPFLAGS=$save_CPPFLAGS
1843 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1852 dnl check for shm_open (for shm plugin)
1853 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1854 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1855 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1857 *-darwin* | *-macos10*)
1858 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1865 AC_CHECK_LIB([rt], [shm_open],
1866 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1867 #include <sys/socket.h>
1870 AC_SUBST(SHM_LIBS, "-lrt")
1878 dnl check for unix sockets (ipcpipeline plugin)
1879 translit(dnm, m, l) AM_CONDITIONAL(USE_IPCPIPELINE, true)
1880 AG_GST_CHECK_FEATURE(IPCPIPELINE, [Unix sockets], ipcpipeline, [
1881 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1882 AC_CHECK_FUNC(pipe, [
1883 AC_CHECK_FUNC(socketpair, [HAVE_IPCPIPELINE=yes], [HAVE_IPCPIPELINE=no])
1892 dnl check for Video CD
1893 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1894 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1895 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1898 dnl check for OpenSL ES
1899 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1900 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1901 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1904 dnl *** UVC H264 ***
1905 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1906 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1907 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1908 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1909 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1912 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1913 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1914 HAVE_LIBUSB="yes" ],
1916 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1917 test "x$HAVE_GUDEV" = "xyes" && \
1918 test "x$HAVE_LIBUSB" = "xyes"; then
1924 AC_SUBST(LIBUDEV_CFLAGS)
1925 AC_SUBST(LIBUDEV_LIBS)
1926 AC_SUBST(LIBUSB_CFLAGS)
1927 AC_SUBST(LIBUSB_LIBS)
1930 translit(dnm, m, l) AM_CONDITIONAL(USE_CUDA, true)
1931 AG_GST_CHECK_FEATURE(CUDA, [NVIDIA CUDA API],, [
1932 AC_ARG_WITH([cuda-prefix],
1933 AS_HELP_STRING([--with-cuda-prefix],
1934 [Use the provided prefix for detecting the cuda installation]),
1935 [AS_IF([test "x$with_cuda_prefix" != "x"],
1936 [CUDA_PREFIX="$with_cuda_prefix"])],
1940 if test "x$CUDA_PREFIX" != "x"; then
1941 dnl only override if not already set
1942 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1943 dnl this is an educated guess, user can always override these
1944 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1945 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1948 PKG_CHECK_MODULES([CUDA], [cuda-8.0 cudart-8.0],, [
1949 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1950 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1951 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1952 AC_MSG_WARN([Could not find cuda headers/libraries])])])])])
1957 save_CPPFLAGS="$CPPFLAGS"
1958 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1959 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1960 AC_MSG_WARN([Could not find cuda.h]))
1961 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1962 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1963 CPPFLAGS=$save_CPPFLAGS
1965 dnl libcuda and libcudart libraries
1967 LIBS="$CUDA_LIBS $save_LIBS"
1968 HAVE_CUDART_LIB="no"
1969 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1970 AC_MSG_WARN([Could not find cudart library])])
1972 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1973 AC_MSG_WARN([Could not find cuda library])])
1978 translit(dnm, m, l) AM_CONDITIONAL(USE_NVDEC, true)
1979 AG_GST_CHECK_FEATURE(NVDEC, [nvdec], nvdec, [
1981 save_CPPFLAGS="$CPPFLAGS"
1982 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS"
1983 AC_CHECK_HEADER([nvcuvid.h], [HAVE_NVCUVID_H=yes],
1984 AC_MSG_WARN([Could not find nvcuvid.h]))
1985 CPPFLAGS=$save_CPPFLAGS
1989 LIBS="$CUDA_LIBS $save_LIBS"
1990 AC_CHECK_LIB(nvcuvid, cuvidCtxLock, [HAVE_NVCUVID=yes],
1991 AC_MSG_WARN([Could not find library nvcuvid]))
1994 if test "x$HAVE_NVCUVID_H" = "xyes" -a "x$HAVE_NVCUVID" = "xyes"; then
2002 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
2003 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
2004 dnl nvEncodeAPI.h header
2005 HAVE_NVENCODEAPI_H=no
2006 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
2007 save_CPPFLAGS="$CPPFLAGS"
2008 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
2009 AC_CHECK_HEADER([nvEncodeAPI.h], [
2010 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
2011 #if NVENCAPI_MAJOR_VERSION < 5
2012 #error "Need nvEncodeAPI.h >= 5.0"
2015 HAVE_NVENCODEAPI_H=yes
2017 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
2020 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
2021 AC_SUBST(NVENCODE_CFLAGS)
2022 CPPFLAGS="$save_CPPFLAGS"
2024 dnl libnvnidia-encode library
2025 HAVE_NVENCODE_LIB=no
2026 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
2028 LIBS="$NVENCODE_LIBS $saved_LIBS"
2029 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
2030 AC_MSG_WARN([Could not find library nvidia-encode]))
2031 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
2032 AC_SUBST(NVENCODE_LIBS)
2036 if test "x$HAVE_CUDA_H" = "xyes" \
2037 -a "x$HAVE_CUDART_H" = "xyes" \
2038 -a "x$HAVE_CUDA_LIB" = "xyes" \
2039 -a "x$HAVE_CUDART_LIB" = "xyes" \
2040 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
2041 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
2043 if test x"$USE_OPENGL" = x"yes"; then
2044 dnl cuda-gl interop header
2045 save_CPPFLAGS="$CPPFLAGS"
2046 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2047 AC_CHECK_HEADER([cuda_gl_interop.h], [
2048 USE_NVENC_GST_GL="yes"
2049 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2051 CPPFLAGS="$save_CPPFLAGS"
2057 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2059 dnl check for tinyalsa
2060 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2061 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2062 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2065 dnl check for intel mediasdk
2066 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2067 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2068 AC_ARG_WITH([msdk-prefix],
2069 AS_HELP_STRING([--with-msdk-prefix],
2070 [Use the provided prefix for detecting the Intel MediaSDK]),
2071 [AS_IF([test "x$with_msdk_prefix" != "x"],
2072 [MSDK_PREFIX="$with_msdk_prefix"])],
2073 [AS_IF([test "x$MFX_HOME" != "x"],
2074 [MSDK_PREFIX="$MFX_HOME"],
2075 [MSDK_PREFIX="/opt/intel/media"])])
2076 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2077 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2078 AC_SUBST(MSDK_CFLAGS)
2081 save_CPPFLAGS="$CPPFLAGS"
2082 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2083 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2084 CPPFLAGS="$save_CPPFLAGS"
2087 LIBS="$MSDK_LIBS $LIBS"
2089 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2093 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2095 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2096 -a "x$HAVE_MFX_LIB" = "xyes" \
2097 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2103 AM_CONDITIONAL(USE_MSDK_LIBVA,
2104 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2106 dnl *** ext plug-ins ***
2107 dnl keep this list sorted alphabetically !
2109 if test "x$BUILD_EXTERNAL" = "xyes"; then
2111 dnl *** assrender ***
2112 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2113 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2114 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2115 HAVE_ASSRENDER="yes" ], [
2119 AC_SUBST(ASSRENDER_CFLAGS)
2120 AC_SUBST(ASSRENDER_LIBS)
2122 dnl *** vo-amrwbenc ***
2123 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2124 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2125 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2128 dnl *** vo-aacenc ***
2129 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2130 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2131 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2135 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2136 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2137 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2140 AC_SUBST(BS2B_CFLAGS)
2145 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2146 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2149 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2150 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2151 AC_MSG_RESULT($HAVE_BZ2)
2153 if test "x$HAVE_BZ2" = "xyes"; then
2161 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2162 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2163 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2166 # AC_SUBST(CAIRO_CFLAGS)
2167 # AC_SUBST(CAIRO_LIBS)
2170 dnl *** chromaprint ***
2171 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2172 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2173 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2174 HAVE_CHROMAPRINT="no"
2176 AC_SUBST(CHROMAPRINT_CFLAGS)
2177 AC_SUBST(CHROMAPRINT_LIBS)
2181 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2182 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2183 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2185 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2186 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2188 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2189 [[#ifdef HAVE_SYS_TYPES_H
2190 # include <sys/types.h>
2192 #ifdef HAVE_NETINET_IN_H
2193 # include <netinet/in.h>
2196 AC_MSG_CHECKING([for socket support needed by curlsink])
2197 AC_MSG_RESULT($HAVE_CURL)
2201 AC_SUBST(CURL_CFLAGS)
2203 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2205 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2209 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2210 AC_SUBST(SSH2_CFLAGS)
2212 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2215 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2216 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2217 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2218 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2220 AC_SUBST(LIBXML2_CFLAGS)
2221 AC_SUBST(LIBXML2_LIBS)
2225 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2226 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2227 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2228 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2237 AC_SUBST(LIBDC1394_CFLAGS)
2238 AC_SUBST(LIBDC1394_LIBS)
2241 dnl *** decklink ***
2242 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2243 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2250 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2251 AC_CHECK_LIB(dl, dlopen,
2255 DECKLINK_LIBS="-lpthread -ldl"
2260 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2261 AC_CHECK_LIB(dl, dlopen,
2265 DECKLINK_LIBS="-lpthread -ldl"
2266 HAVE_DECKLINK_OSX=yes
2273 DECKLINK_LIBS="-lole32 -loleaut32"
2274 HAVE_DECKLINK_WIN=yes
2281 AC_SUBST(DECKLINK_CXXFLAGS)
2282 AC_SUBST(DECKLINK_LIBS)
2284 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2285 AM_CONDITIONAL(DECKLINK_WIN, test "x$HAVE_DECKLINK_WIN" = xyes)
2287 dnl **** DirectFB ****
2288 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2289 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2290 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2295 dnl **** Wayland ****
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2297 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2298 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2299 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2300 if test "x$wayland_scanner" != "x"; then
2302 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2304 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2313 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2314 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2315 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2316 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2318 AC_SUBST(WEBP_CFLAGS)
2323 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2324 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2325 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2326 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2331 AC_SUBST(DAALA_CFLAGS)
2332 AC_SUBST(DAALA_LIBS)
2337 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2338 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2340 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2341 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2342 if test $HAVE_DTS = "no"; then
2343 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2344 [ DTS_LIBS="-ldts_pic $LIBM"
2345 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2351 dnl *** resindvd ***
2352 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2353 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2354 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2359 dnl **** Free AAC Encoder (FAAC) ****
2360 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2361 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2362 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2363 FAAC_LIBS="-lfaac $LIBM")
2367 dnl **** Free AAC Decoder (FAAD2) ****
2368 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2369 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2370 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2371 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2372 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2374 #elif !defined(LATM)
2375 #error Not faad2 >= 2.7
2381 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2391 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2392 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2393 if test "x$HAVE_FBDEV" != "xyes"; then
2394 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2399 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2400 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2401 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2403 HAVE_FDK_AAC_0_1_4="yes"
2404 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2406 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2411 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2412 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2413 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2414 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2416 AC_SUBST(FLITE_CFLAGS)
2417 AC_SUBST(FLITE_LIBS)
2421 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2422 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2423 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2424 if test $HAVE_GSM != "yes"; then
2425 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2426 if test $HAVE_GSM = "yes"; then
2427 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2433 dnl *** fluidSynth ***
2434 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2435 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2436 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2437 HAVE_FLUIDSYNTH="no"
2442 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2443 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2444 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2447 AC_SUBST(KATE_CFLAGS)
2449 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2452 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2458 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2459 AC_SUBST(TIGER_CFLAGS)
2460 AC_SUBST(TIGER_LIBS)
2461 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2464 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2465 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2466 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2467 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2471 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2472 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2473 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2475 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2476 if test $HAVE_LRDF = "yes"; then
2477 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2480 AC_SUBST(LRDF_CFLAGS)
2484 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2485 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2486 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2488 HAVE_LILV_0_22="yes"
2489 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2491 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2493 AC_SUBST(LILV_CFLAGS)
2497 dnl *** libde265 ***
2498 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2499 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2500 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2501 AC_SUBST(LIBDE265_CFLAGS)
2502 AC_SUBST(LIBDE265_LIBS)
2506 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2507 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2508 dnl check with pkg-config first
2509 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2513 AC_SUBST(LIBMMS_LIBS)
2517 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2518 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2519 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2520 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2523 AC_SUBST(SRTP_CFLAGS)
2527 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2528 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2529 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2531 AC_SUBST(DTLS_CFLAGS)
2539 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2540 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2541 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2549 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2550 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2551 if test "x$HAVE_CXX" != "xyes"; then
2552 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2555 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2557 AC_SUBST(MODPLUG_CFLAGS)
2558 AC_SUBST(MODPLUG_LIBS)
2561 dnl *** mjpegtools version info ***
2562 dnl some may prefer older version (given quirks above)
2563 dnl hm, no version info seems available within mjpegtools headers
2564 dnl and API really moves along
2566 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2567 mjpegtools_api=10601
2569 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2570 mjpegtools_api=10800
2572 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2573 mjpegtools_api=20000
2575 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2576 dnl logging API changed in release candidates
2577 OLD_CFLAGS="$CFLAGS"
2579 CFLAGS="$MJPEG_CFLAGS"
2580 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2581 AC_CHECK_FUNC(mjpeg_loglev_t, [
2582 mjpegtools_api=10903
2584 mjpegtools_api=10900
2586 CFLAGS="$OLD_CFLAGS"
2594 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2595 [mjpegtools API evolution])
2597 dnl *** mpeg2enc ***
2598 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2599 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2601 dnl we require a c++ compiler for this one
2602 if [ test x$HAVE_CXX = xyes ]; then
2603 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2604 dnl since many distros include mjpegtools specifically without mplex
2605 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2606 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2607 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2609 dnl switch over to c++ to test things
2611 OLD_CPPFLAGS="$CPPFLAGS"
2613 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2614 CPPFLAGS="$CPPFLAGS_GOOD -I."
2616 mpeg2enc_headers_ok=no
2617 AC_CHECK_HEADER([mpeg2encoder.hh], [
2618 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2620 LIBS="$LIBS $MPEG2ENC_LIBS"
2621 AC_MSG_CHECKING([for valid mpeg2enc objects])
2622 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2623 #include <mpeg2encoder.hh>
2624 #include <mpeg2encoptions.hh>
2630 MPEG2EncOptions *options = new MPEG2EncOptions ();
2631 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2636 dnl so far so good, let's check more things:
2637 dnl mjpegtools-1.8.0 does not install the required
2638 dnl mpeg2syntaxcodes.h header by default, and a new release
2639 dnl is not in sight, so check for this oversight in case
2640 dnl distros or folks have fixed this themselves
2641 if test "$mjpegtools_api" -ge "10800"; then
2642 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2643 mpeg2enc_headers_ok=yes
2645 mpeg2enc_headers_ok=no
2648 mpeg2enc_headers_ok=yes
2650 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2653 CPPFLAGS="$CPPFLAGS_GOOD"
2654 AC_SUBST(MPEG2ENC_CFLAGS)
2655 AC_SUBST(MPEG2ENC_LIBS)
2662 CPPFLAGS="$OLD_CPPFLAGS"
2671 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2672 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2674 dnl we require a c++ compiler for this one
2675 if [ test x$HAVE_CXX = xyes ]; then
2676 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2677 dnl since many distros include mjpegtools specifically without mplex
2678 dnl and mpeg2enc, we check for mplex on its own, too.
2679 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2680 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2681 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2683 dnl switch over to c++ to test things
2685 OLD_CPPFLAGS="$CPPFLAGS"
2687 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2688 CPPFLAGS="$CPPFLAGS_GOOD -I."
2689 AC_CHECK_HEADER(interact.hpp, [
2690 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2692 LIBS="$LIBS $MPLEX_LIBS"
2693 OLD_LDFLAGS="$LDFLAGS"
2694 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2695 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2696 dnl don't want this here
2697 AC_MSG_CHECKING([for valid mplex objects])
2698 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2700 #include <interact.hpp>
2701 #include <outputstrm.hpp>
2702 #include <multiplexor.hpp>
2707 class TestOutputStream : public OutputStream {
2709 TestOutputStream () : OutputStream () { }
2710 void Write (uint8_t *a, unsigned int b) { }
2711 void NextSegment () { }
2712 uint64_t SegmentSize () { }
2716 MultiplexJob *job = new MultiplexJob ();
2717 vector<IBitStream *> inputs;
2718 job->SetupInputStreams (inputs);
2719 TestOutputStream *out = new TestOutputStream ();
2720 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2725 CPPFLAGS="$CPPFLAGS_GOOD"
2726 AC_SUBST(MPLEX_CFLAGS)
2727 AC_SUBST(MPLEX_LIBS)
2728 AC_SUBST(MPLEX_LDFLAGS)
2730 ],[AC_MSG_RESULT(no)],[])
2732 LDFLAGS="$OLD_LDFLAGS"
2734 CPPFLAGS="$OLD_CPPFLAGS"
2740 dnl *** musepack ***
2741 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2742 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2743 AC_CHECK_HEADER([mpc/mpcdec.h], [
2745 MUSEPACK_LIBS="-lmpcdec"
2746 AC_SUBST(MUSEPACK_LIBS)
2747 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2749 MUSEPACK_LIBS="-lmpcdec"
2750 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2751 AC_SUBST(MUSEPACK_LIBS)
2752 ], [HAVE_MUSEPACK="no"])])
2756 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2757 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2758 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2761 AC_SUBST(NEON_CFLAGS)
2766 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2767 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2768 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2771 AC_SUBST(OFA_CFLAGS)
2776 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2777 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2778 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2781 AC_SUBST(OPENAL_CFLAGS)
2782 AC_SUBST(OPENAL_LIBS)
2786 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2787 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2788 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2789 dnl and don't want the build to break when a new opencv version comes out.
2790 dnl Need to adjust this upwards once we know that our code compiles fine with
2791 dnl a new version and the no-backward-compatibility define. (There doesn't
2792 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2794 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2797 OLD_CPPFLAGS=$CPPFLAGS
2798 CPPFLAGS=$OPENCV_CFLAGS
2799 something_not_found=no
2800 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2801 opencv2/core/version.hpp \
2802 opencv2/highgui/highgui_c.h \
2803 opencv2/imgproc/imgproc.hpp \
2804 opencv2/imgproc/imgproc_c.h \
2805 opencv2/objdetect/objdetect.hpp \
2806 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2808 dnl Only required for OpenCV >= 3, we have compat code for older versions
2809 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2810 dnl check opencv_contrib headers (not always present in opencv distributions)
2811 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2812 [NOT_A_PROBLEM=yes])
2814 CPPFLAGS=$OLD_CPPFLAGS
2817 if test $something_not_found = "yes"; then
2818 AC_MSG_RESULT([not all opencv2 headers were found])
2826 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2827 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2828 AC_SUBST(OPENCV_PREFIX)
2829 AC_SUBST(OPENCV_CFLAGS)
2830 AC_SUBST(OPENCV_LIBS)
2831 dnl the OpenCV prefix is used at runtime for some object properties, and also
2832 dnl used here to detect which directory is the correct one. For the second
2833 dnl case, make sure the right sysroot is used, ensuring correct behavior
2834 dnl during cross compilation.
2835 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2836 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2838 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2843 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2844 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2845 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2848 dnl *** openh264 ***
2849 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2850 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2851 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2854 dnl *** OpenJPEG ***
2855 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2856 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2858 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2859 if test x"$HAVE_OPENJPEG" = x"yes"; then
2860 dnl minor API changes in v2.1
2861 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2862 if test x"$HAVE_OPENJPEG_2_1" = x"yes"; then
2863 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2864 dnl include paths changed for v2.2
2865 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_2, libopenjp2 >= 2.2)
2866 if test x"$HAVE_OPENJPEG_2_2" = x"yes"; then
2867 AC_DEFINE([HAVE_OPENJPEG_2_2], 1, [Define if OpenJPEG 2.2 is used])
2873 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2874 HAVE_OPENJPEG="yes",
2875 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2877 if test x"$HAVE_OPENJPEG" = x"yes"; then
2878 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2881 AC_SUBST(OPENJPEG_CFLAGS)
2882 AC_SUBST(OPENJPEG_LIBS)
2886 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENMPT, true)
2887 AG_GST_CHECK_FEATURE(OPENMPT, openmpt, openmpt, [
2888 PKG_CHECK_MODULES(OPENMPT, libopenmpt, HAVE_OPENMPT="yes", HAVE_OPENMPT="no")
2889 AC_SUBST(OPENMPT_CFLAGS)
2890 AC_SUBST(OPENMPT_LIBS)
2894 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2895 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2896 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2897 AC_SUBST(OPENNI2_CFLAGS)
2898 AC_SUBST(OPENNI2_LIBS)
2902 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2903 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2904 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2905 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2910 AC_SUBST(OPUS_CFLAGS)
2915 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2916 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2917 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2921 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2922 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2925 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2932 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2933 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2934 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2935 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2940 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2942 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2943 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2944 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2945 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2947 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2949 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2950 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2951 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2952 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2954 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2956 if test "x$GDK_WINDOWING" = "xyes"; then
2957 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2964 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2967 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2968 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2969 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2970 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2971 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2973 AS_HELP_STRING([--with-moc], [Set location of qt moc tool]),
2975 AC_PATH_PROGS(MOC, [moc-qt5 moc], [moc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2977 AS_HELP_STRING([--with-rcc], [Set location of qt rcc tool]),
2979 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], [rcc], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2981 AS_HELP_STRING([--with-uic], [Set location of qt uic tool]),
2983 AC_PATH_PROGS(UIC, [uic-qt5 uic], [uic], ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2984 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2985 AC_MSG_WARN([One of the required qt build programs was not found])
2989 HAVE_QT_WINDOWING="no"
2990 QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2991 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2992 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2993 QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2994 HAVE_QT_QPA_HEADER="yes"
2995 ], [AC_MSG_NOTICE([Cannot find QPA])])
2996 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1" || test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2997 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2998 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2999 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
3000 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
3001 HAVE_QT_WINDOWING="yes"
3002 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
3004 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
3005 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
3006 AC_DEFINE([HAVE_QT_WAYLAND], [],
3007 [Define if Qt Wayland integration is installed])
3008 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
3009 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
3010 HAVE_QT_WINDOWING="yes"
3011 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
3013 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
3014 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
3015 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
3016 # c++ on android requires a standard library and there are multiple
3017 # choices. cerbero provides a pkg-config file the describes a choice
3018 # so try to use that. Outside cerbero one has to pass these flags
3019 # manually for the library one is using
3020 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3021 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
3022 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
3024 AC_MSG_NOTICE([Could not find Standard C++ library])])
3025 AC_DEFINE([HAVE_QT_EGLFS], [],
3026 [Define if Qt eglfs integration is installed])
3027 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
3028 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
3029 HAVE_QT_WINDOWING="yes"
3030 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
3032 AC_DEFINE([HAVE_QT_EGLFS], [],
3033 [Define if Qt eglfs integration is installed])
3034 HAVE_QT_WINDOWING="yes"
3037 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
3038 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
3039 AC_DEFINE([HAVE_QT_MAC], [],
3040 [Define if Qt Mac integration is installed])
3041 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
3042 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
3043 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
3044 HAVE_QT_WINDOWING="yes"
3045 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
3047 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
3048 if test "x$HAVE_IOS" = "xyes"; then
3049 # iOS doesn't have its own extras package so if we have the core
3050 # modules we are good to go
3051 AC_DEFINE([HAVE_QT_IOS], [],
3052 [Define if Qt iOS integration is installed])
3053 HAVE_QT_WINDOWING="yes"
3056 if test "x$HAVE_QT_WINDOWING" = "xno"; then
3057 AC_MSG_WARN([Could not find any Qt Windowing integration])
3060 AC_SUBST([QT_CFLAGS])
3069 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
3070 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
3071 AC_CHECK_HEADER(vulkan/vulkan.h, [
3072 AC_CHECK_LIB(vulkan, vkCreateDevice, [
3073 VULKAN_LIBS="-lvulkan"
3074 AC_SUBST(VULKAN_LIBS)
3075 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3078 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3085 dnl *** teletextdec ***
3086 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3087 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3088 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3091 dnl *** wildmidi ***
3092 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3093 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3094 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3097 WILDMIDI_LIBS="-lWildMidi")
3100 if test "x$HAVE_WILDMIDI" = "xyes"; then
3101 AC_MSG_CHECKING([for wildmidi >= 4.0])
3102 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <wildmidi_lib.h>]], [[
3103 #if LIBWILDMIDI_VER_MAJOR == 0 && LIBWILDMIDI_VER_MINOR < 4
3104 #error "wildmidi too old"
3106 ]])], [ AC_MSG_RESULT(yes)
3109 WILDMIDI_LIBS=-lWildMidi
3110 ], [ AC_MSG_RESULT(no)
3114 AC_MSG_WARN([WildMidi library or development headers not found])
3116 AC_SUBST(WILDMIDI_CFLAGS)
3117 AC_SUBST(WILDMIDI_LIBS)
3120 dnl **** Smooth Streaming ****
3121 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3122 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3123 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3125 HAVE_SMOOTHSTREAMING="yes"],
3127 HAVE_SMOOTHSTREAMING="no"])
3128 AC_SUBST(LIBXML2_CFLAGS)
3129 AC_SUBST(LIBXML2_LIBS)
3133 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3134 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3135 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3136 AC_SUBST(SNDFILE_CFLAGS)
3137 AC_SUBST(SNDFILE_LIBS)
3140 dnl *** soundtouch ***
3141 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3142 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3143 dnl We only need -lBPM on soundtouch < 1.4
3144 dnl We check for libSoundTouch since Debian used it before upstream
3145 dnl added a pkgconfig file.
3146 HAVE_SOUNDTOUCH_1_4=yes
3147 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3148 [HAVE_SOUNDTOUCH=yes],
3149 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3150 [HAVE_SOUNDTOUCH=yes],
3151 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3152 [HAVE_SOUNDTOUCH=yes
3153 HAVE_SOUNDTOUCH_1_4=no
3154 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3155 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3156 [HAVE_SOUNDTOUCH=yes],
3157 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3158 [HAVE_SOUNDTOUCH=yes
3159 HAVE_SOUNDTOUCH_1_4=no
3160 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3161 HAVE_SOUNDTOUCH=no)])])])])
3162 AC_SUBST(SOUNDTOUCH_CFLAGS)
3163 AC_SUBST(SOUNDTOUCH_LIBS)
3164 if test "x$HAVE_CXX" != "xyes"; then
3165 USE_SOUNDTOUCH=false
3166 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3168 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3169 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3170 [Defined if the available libSoundTouch is >= 1.4])
3175 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3176 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3177 AC_CHECK_HEADER(openspc.h, [
3178 AC_CHECK_LIB(openspc, OSPC_Init, [
3179 SPC_LIBS="-lopenspc"
3191 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3192 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3193 AC_CHECK_HEADER(gme/gme.h, [
3194 AC_CHECK_LIB(gme, gme_new_emu, [
3205 if test "x$HAVE_GME" = "xyes"; then
3206 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3207 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3213 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3214 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3215 AC_MSG_CHECKING([Checking for up to date dvb installation])
3216 AC_CHECK_HEADER(linux/dvb/version.h, [
3217 AC_MSG_CHECKING([for up-to-date dvb API])
3218 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3219 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3220 #error "Incompatible dvb API"
3222 ]])], [ AC_MSG_RESULT(yes)
3224 ], [ AC_MSG_RESULT(no)
3231 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3232 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3233 AC_MSG_CHECKING([Checking for ACM support])
3234 AC_CHECK_HEADERS([windows.h msacm.h],
3236 AC_SUBST(ACMENC_CFLAGS)
3237 AC_SUBST(ACMMP3DEC_CFLAGS)
3239 [AC_INCLUDES_DEFAULT
3240 #include <windows.h>])
3244 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3245 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3250 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3252 if test "$HAVE_VDPAU" = "no"; then
3253 saved_CPPFLAGS="$CPPFLAGS"
3254 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3256 if test -z "$HAVE_VDPAU_H"; then
3257 dnl Didn't find VDPAU header straight away.
3258 dnl Try /usr/include/nvidia. Need to clear caching vars first
3259 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3260 unset ac_cv_header_vdpau_vdpau_h
3261 unset ac_cv_header_vdpau_vdpau_x11_h
3262 VDPAU_CFLAGS="-I/usr/include/nvidia"
3263 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3264 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3265 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3268 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3270 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3271 dnl Found the headers - look for the lib
3272 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3274 LIBS="$VDPAU_LIBS $saved_LIBS"
3275 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3281 if test "$HAVE_VDPAU" = "yes"; then
3282 AC_MSG_NOTICE([Found up to date VDPAU installation])
3283 AC_SUBST(VDPAU_CFLAGS)
3284 AC_SUBST(VDPAU_LIBS)
3289 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3290 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3291 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3294 dnl *** schroedinger ***
3295 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3296 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3297 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3301 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3302 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3303 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3307 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3308 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3309 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3313 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3314 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3315 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3316 HAVE_SPANDSP="yes" ], [
3320 AC_SUBST(SPANDSP_CFLAGS)
3321 AC_SUBST(SPANDSP_LIBS)
3323 dnl *** hls-crypto ***
3324 AC_ARG_WITH([hls-crypto],
3325 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3326 which cryptographic library version to compile against for hls (default: auto)
3328 AS_CASE([$with_hls_crypto],
3332 [with_hls_crypto=auto]
3338 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3339 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3340 AS_CASE([$with_hls_crypto],
3342 PKG_CHECK_MODULES(NETTLE, nettle, [
3343 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3345 ],[AC_MSG_ERROR([Could not find nettle library])])
3348 AM_PATH_LIBGCRYPT([1.2.0], [
3349 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3351 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3354 PKG_CHECK_MODULES(OPENSSL, openssl, [
3355 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3357 ],[AC_MSG_ERROR([Could not find openssl library])])
3360 dnl Try to find a valid crypto library
3361 PKG_CHECK_MODULES(NETTLE, nettle, [
3362 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3365 AM_PATH_LIBGCRYPT([1.2.0], [
3366 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3369 PKG_CHECK_MODULES(OPENSSL, openssl, [
3370 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3381 dnl *** x265 (H.265/HEVC encoder) ***
3382 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3383 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3384 AG_GST_PKG_CHECK_MODULES(X265, x265)
3387 dnl *** WebRTC Audio Processing ***
3388 dnl Note: We test for a specific version as there is no API stability
3389 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3390 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3392 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3394 # On Android, C++ headers comes with the STL implementation
3395 AS_CASE(["${host}"],
3398 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3399 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3400 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3402 AC_SUBST([WEBRTCDSP_CFLAGS])
3403 AC_SUBST([WEBRTCDSP_LIBS])
3406 old_CPPFLAGS=$CPPFLAGS
3407 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3408 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3409 CPPFLAGS=$old_CPPFLAGS
3415 dnl not building plugins with external dependencies,
3416 dnl but we still need to set the conditionals
3418 AM_CONDITIONAL(USE_ASSRENDER, false)
3419 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3420 AM_CONDITIONAL(USE_VOAACENC, false)
3421 AM_CONDITIONAL(USE_BS2B, false)
3422 AM_CONDITIONAL(USE_BZ2, false)
3423 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3424 AM_CONDITIONAL(USE_CURL, false)
3425 AM_CONDITIONAL(USE_SSH2, false)
3426 AM_CONDITIONAL(USE_DASH, false)
3427 AM_CONDITIONAL(USE_DC1394, false)
3428 AM_CONDITIONAL(USE_DECKLINK, false)
3429 AM_CONDITIONAL(DECKLINK_OSX, false)
3430 AM_CONDITIONAL(USE_DIRECTFB, false)
3431 AM_CONDITIONAL(USE_WAYLAND, false)
3432 AM_CONDITIONAL(USE_DAALA, false)
3433 AM_CONDITIONAL(USE_DTS, false)
3434 AM_CONDITIONAL(USE_EXIF, false)
3435 AM_CONDITIONAL(USE_RESINDVD, false)
3436 AM_CONDITIONAL(USE_FAAC, false)
3437 AM_CONDITIONAL(USE_FAAD, false)
3438 AM_CONDITIONAL(USE_FBDEV, false)
3439 AM_CONDITIONAL(USE_FDK_AAC, false)
3440 AM_CONDITIONAL(USE_FLITE, false)
3441 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3442 AM_CONDITIONAL(USE_GL, false)
3443 AM_CONDITIONAL(USE_GSM, false)
3444 AM_CONDITIONAL(USE_GTK3, false)
3445 AM_CONDITIONAL(USE_GTK3_GL, false)
3446 AM_CONDITIONAL(USE_HLS, false)
3447 AM_CONDITIONAL(USE_IQA, false)
3448 AM_CONDITIONAL(USE_KATE, false)
3449 AM_CONDITIONAL(USE_KMS, false)
3450 AM_CONDITIONAL(USE_TIGER, false)
3451 AM_CONDITIONAL(USE_LADSPA, false)
3452 AM_CONDITIONAL(USE_LV2, false)
3453 AM_CONDITIONAL(USE_LIBDE265, false)
3454 AM_CONDITIONAL(USE_LIBMMS, false)
3455 AM_CONDITIONAL(USE_MODPLUG, false)
3456 AM_CONDITIONAL(USE_MPEG2ENC, false)
3457 AM_CONDITIONAL(USE_MPLEX, false)
3458 AM_CONDITIONAL(USE_MUSEPACK, false)
3459 AM_CONDITIONAL(USE_NEON, false)
3460 AM_CONDITIONAL(USE_OFA, false)
3461 AM_CONDITIONAL(USE_OPENAL, false)
3462 AM_CONDITIONAL(USE_OPENCV, false)
3463 AM_CONDITIONAL(USE_OPENEXR, false)
3464 AM_CONDITIONAL(USE_OPENJPEG, false)
3465 AM_CONDITIONAL(USE_OPENMPT, false)
3466 AM_CONDITIONAL(USE_OPENNI2, false)
3467 AM_CONDITIONAL(USE_OPUS, false)
3468 AM_CONDITIONAL(USE_QT, false)
3469 AM_CONDITIONAL(USE_WILDMIDI, false)
3470 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3471 AM_CONDITIONAL(USE_SNDFILE, false)
3472 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3473 AM_CONDITIONAL(USE_SPANDSP, false)
3474 AM_CONDITIONAL(USE_SPC, false)
3475 AM_CONDITIONAL(USE_SRTP, false)
3476 AM_CONDITIONAL(USE_GME, false)
3477 AM_CONDITIONAL(USE_DVB, false)
3478 AM_CONDITIONAL(USE_ACM, false)
3479 AM_CONDITIONAL(USE_VDPAU, false)
3480 AM_CONDITIONAL(USE_SBC, false)
3481 AM_CONDITIONAL(USE_SCHRO, false)
3482 AM_CONDITIONAL(USE_ZBAR, false)
3483 AM_CONDITIONAL(USE_RSVG, false)
3484 AM_CONDITIONAL(USE_RTMP, false)
3485 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3486 AM_CONDITIONAL(USE_UVCH264, false)
3487 AM_CONDITIONAL(USE_WEBP, false)
3488 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3489 AM_CONDITIONAL(USE_OPENH264, false)
3490 AM_CONDITIONAL(USE_X265, false)
3491 AM_CONDITIONAL(USE_DTLS, false)
3492 AM_CONDITIONAL(USE_VULKAN, false)
3493 AM_CONDITIONAL(USE_TTML, false)
3495 fi dnl of EXT plugins
3497 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3500 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3501 dnl GST_*: flags shared by built objects to link against GStreamer
3502 dnl GST_ALL_LDFLAGS: linker flags shared by all
3503 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3504 dnl GST_LT_LDFLAGS: library versioning of our libraries
3505 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3507 dnl GST_OPTION_CFLAGS
3508 if test "x$USE_DEBUG" = xyes; then
3511 AC_SUBST(PROFILE_CFLAGS)
3513 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3514 dnl Define _only_ during CVS (not pre-releases or releases)
3515 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3517 DEPRECATED_CFLAGS=""
3519 AC_SUBST(DEPRECATED_CFLAGS)
3521 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3522 dnl at make time with e.g. make ERROR_CFLAGS=""
3523 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3524 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3525 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3526 AC_SUBST(GST_OPTION_CFLAGS)
3527 AC_SUBST(GST_OPTION_CXXFLAGS)
3528 AC_SUBST(GST_OPTION_OBJCFLAGS)
3530 dnl FIXME: do we want to rename to GST_ALL_* ?
3531 dnl prefer internal headers to already installed ones
3532 dnl also add builddir include for enumtypes and marshal
3533 dnl add GST_OPTION_CFLAGS, but overridable
3534 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3535 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3536 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3537 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3538 AC_SUBST(GST_CFLAGS)
3539 AC_SUBST(GST_CXXFLAGS)
3540 AC_SUBST(GST_OBJCFLAGS)
3542 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3543 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3544 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3545 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3546 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3547 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3549 dnl LDFLAGS really should only contain flags, not libs - they get added before
3550 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3551 GST_ALL_LDFLAGS="-no-undefined"
3552 if test "x${enable_Bsymbolic}" = "xyes"; then
3553 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3555 AC_SUBST(GST_ALL_LDFLAGS)
3558 dnl linker flags shared by all libraries
3559 dnl LDFLAGS modifier defining exported symbols from built libraries
3560 dnl (export _gst_foo but not __gst_foo)
3561 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3562 AC_SUBST(GST_LIB_LDFLAGS)
3564 dnl this really should only contain flags, not libs - they get added before
3565 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3566 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3567 AC_SUBST(GST_PLUGIN_LDFLAGS)
3569 dnl *** output files ***
3571 $MKDIR_P tests/check/orc
3580 gst/accurip/Makefile
3581 gst/adpcmdec/Makefile
3582 gst/adpcmenc/Makefile
3584 gst/videoframe_audiolevel/Makefile
3586 gst/audiobuffersplit/Makefile
3587 gst/audiofxbad/Makefile
3588 gst/audiomixer/Makefile
3589 gst/audiomixmatrix/Makefile
3590 gst/audiovisualizers/Makefile
3591 gst/autoconvert/Makefile
3593 gst/camerabin2/Makefile
3594 gst/coloreffects/Makefile
3595 gst/debugutils/Makefile
3596 gst/dvbsuboverlay/Makefile
3598 gst/faceoverlay/Makefile
3599 gst/festival/Makefile
3600 gst/fieldanalysis/Makefile
3601 gst/freeverb/Makefile
3603 gst/gaudieffects/Makefile
3604 gst/geometrictransform/Makefile
3608 gst/interlace/Makefile
3609 gst/ivfparse/Makefile
3611 gst/jp2kdecimator/Makefile
3612 gst/jpegformat/Makefile
3615 gst/mpegdemux/Makefile
3616 gst/mpegtsdemux/Makefile
3617 gst/mpegtsmux/Makefile
3618 gst/mpegtsmux/tsmux/Makefile
3619 gst/mpegpsmux/Makefile
3623 gst/pcapparse/Makefile
3625 gst/rawparse/Makefile
3626 gst/removesilence/Makefile
3628 gst/segmentclip/Makefile
3634 gst/timecode/Makefile
3635 gst/videofilters/Makefile
3636 gst/videoparsers/Makefile
3637 gst/videosignal/Makefile
3641 gst/compositor/Makefile
3643 gst-libs/gst/Makefile
3644 gst-libs/gst/adaptivedemux/Makefile
3645 gst-libs/gst/basecamerabinsrc/Makefile
3646 gst-libs/gst/gl/Makefile
3647 gst-libs/gst/gl/android/Makefile
3648 gst-libs/gst/gl/cocoa/Makefile
3649 gst-libs/gst/gl/dispmanx/Makefile
3650 gst-libs/gst/gl/glprototypes/Makefile
3651 gst-libs/gst/gl/eagl/Makefile
3652 gst-libs/gst/gl/egl/Makefile
3653 gst-libs/gst/gl/wayland/Makefile
3654 gst-libs/gst/gl/win32/Makefile
3655 gst-libs/gst/gl/x11/Makefile
3656 gst-libs/gst/gl/viv-fb/Makefile
3657 gst-libs/gst/insertbin/Makefile
3658 gst-libs/gst/interfaces/Makefile
3659 gst-libs/gst/codecparsers/Makefile
3660 gst-libs/gst/mpegts/Makefile
3661 gst-libs/gst/uridownloader/Makefile
3662 gst-libs/gst/wayland/Makefile
3663 gst-libs/gst/base/Makefile
3664 gst-libs/gst/player/Makefile
3665 gst-libs/gst/video/Makefile
3666 gst-libs/gst/audio/Makefile
3667 gst-libs/gst/opencv/Makefile
3668 gst-libs/gst/allocators/Makefile
3670 sys/dshowdecwrapper/Makefile
3672 sys/acmmp3dec/Makefile
3673 sys/androidmedia/Makefile
3674 sys/applemedia/Makefile
3676 sys/d3dvideosink/Makefile
3677 sys/decklink/Makefile
3678 sys/directsound/Makefile
3679 sys/dshowsrcwrapper/Makefile
3680 sys/dshowvideosink/Makefile
3683 sys/ipcpipeline/Makefile
3688 sys/opensles/Makefile
3690 sys/tinyalsa/Makefile
3691 sys/uvch264/Makefile
3696 sys/winscreencap/Makefile
3698 tests/check/Makefile
3699 tests/files/Makefile
3700 tests/examples/Makefile
3701 tests/examples/avsamplesink/Makefile
3702 tests/examples/camerabin2/Makefile
3703 tests/examples/codecparsers/Makefile
3704 tests/examples/directfb/Makefile
3705 tests/examples/audiomixmatrix/Makefile
3706 tests/examples/gl/Makefile
3707 tests/examples/gl/cocoa/Makefile
3708 tests/examples/gl/clutter/Makefile
3709 tests/examples/gl/generic/Makefile
3710 tests/examples/gl/generic/cube/Makefile
3711 tests/examples/gl/generic/cubeyuv/Makefile
3712 tests/examples/gl/generic/doublecube/Makefile
3713 tests/examples/gl/generic/recordgraphic/Makefile
3714 tests/examples/gl/gtk/Makefile
3715 tests/examples/gl/gtk/3dvideo/Makefile
3716 tests/examples/gl/gtk/filternovideooverlay/Makefile
3717 tests/examples/gl/gtk/filtervideooverlay/Makefile
3718 tests/examples/gl/gtk/fxtest/Makefile
3719 tests/examples/gl/gtk/switchvideooverlay/Makefile
3720 tests/examples/gl/qt/Makefile
3721 tests/examples/gl/sdl/Makefile
3722 tests/examples/gtk/Makefile
3723 tests/examples/ipcpipeline/Makefile
3724 tests/examples/mpegts/Makefile
3725 tests/examples/mxf/Makefile
3726 tests/examples/opencv/Makefile
3727 tests/examples/uvch264/Makefile
3728 tests/examples/waylandsink/Makefile
3729 tests/icles/Makefile
3730 ext/voamrwbenc/Makefile
3731 ext/voaacenc/Makefile
3732 ext/assrender/Makefile
3735 ext/chromaprint/Makefile
3739 ext/directfb/Makefile
3740 ext/wayland/Makefile
3749 ext/fluidsynth/Makefile
3756 ext/libde265/Makefile
3759 ext/modplug/Makefile
3760 ext/mpeg2enc/Makefile
3762 ext/musepack/Makefile
3767 ext/openexr/Makefile
3768 ext/openh264/Makefile
3769 ext/openjpeg/Makefile
3770 ext/openmpt/Makefile
3771 ext/openni2/Makefile
3775 ext/resindvd/Makefile
3778 ext/schroedinger/Makefile
3779 ext/smoothstreaming/Makefile
3780 ext/sndfile/Makefile
3781 ext/soundtouch/Makefile
3782 ext/spandsp/Makefile
3784 ext/teletextdec/Makefile
3787 ext/wildmidi/Makefile
3789 ext/vulkan/xcb/Makefile
3790 ext/vulkan/wayland/Makefile
3795 ext/webrtcdsp/Makefile
3799 docs/plugins/Makefile
3801 docs/version.entities
3803 pkgconfig/gstreamer-plugins-bad.pc
3804 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3805 pkgconfig/gstreamer-codecparsers.pc
3806 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3807 pkgconfig/gstreamer-insertbin.pc
3808 pkgconfig/gstreamer-insertbin-uninstalled.pc
3809 pkgconfig/gstreamer-gl.pc
3810 pkgconfig/gstreamer-gl-uninstalled.pc
3811 pkgconfig/gstreamer-mpegts.pc
3812 pkgconfig/gstreamer-mpegts-uninstalled.pc
3813 pkgconfig/gstreamer-player.pc
3814 pkgconfig/gstreamer-player-uninstalled.pc
3815 pkgconfig/gstreamer-wayland.pc
3816 pkgconfig/gstreamer-wayland-uninstalled.pc
3817 pkgconfig/gstreamer-bad-base.pc
3818 pkgconfig/gstreamer-bad-base-uninstalled.pc
3819 pkgconfig/gstreamer-bad-video.pc
3820 pkgconfig/gstreamer-bad-video-uninstalled.pc
3821 pkgconfig/gstreamer-bad-audio.pc
3822 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3823 pkgconfig/gstreamer-bad-allocators.pc
3824 pkgconfig/gstreamer-bad-allocators-uninstalled.pc
3831 AG_GST_OUTPUT_PLUGINS