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.11.2.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, 1102, 0, 1102)
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 build static plugins or not
391 AC_MSG_CHECKING([whether to build static plugins or not])
395 [--enable-static-plugins],
396 [build static plugins @<:@default=no@:>@]),
398 [$enableval], [no], [], [yes], [],
399 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
400 [enable_static_plugins=no])
401 AC_MSG_RESULT([$enable_static_plugins])
402 if test "x$enable_static_plugins" = xyes; then
403 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
404 [Define if static plugins should be built])
405 GST_PLUGIN_LIBTOOLFLAGS=""
407 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
409 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
410 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
412 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
413 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
414 if test x$enable_static = xyes -a x$enable_shared = xno; then
415 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
418 AC_ARG_WITH([player-tests],
419 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
420 if test x$with_player_tests = xyes; then
421 AC_PATH_PROG([WGET], [wget], no)
422 if test x$WGET = xno; then
423 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
427 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
429 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
430 dnl make sure it doesn't complain about unused variables if debugging is disabled
432 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
434 dnl define an ERROR_CFLAGS Makefile variable
435 dnl -Waggregate-return - libexif returns aggregates
436 dnl -Wundef - Windows headers check _MSC_VER unconditionally
437 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
438 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
439 -Wwrite-strings -Wformat-security -Wold-style-definition
440 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
441 -Wnested-externs $NO_WARNINGS])
443 dnl define an ERROR_CXXFLAGS Makefile variable
444 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
445 -Wmissing-declarations -Wredundant-decls
446 -Wwrite-strings -Wformat-nonliteral -Wformat-security
447 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
449 dnl define an ERROR_OBJCFLAGS Makefile variable
450 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
451 -Wmissing-declarations -Wredundant-decls
452 -Wwrite-strings -Wformat-nonliteral -Wformat-security
453 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
455 dnl define correct level for debugging messages
456 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
459 AG_GST_DEFAULT_ELEMENTS
461 dnl *** plug-ins to include ***
463 dnl these are all the gst plug-ins, compilable without additional libs
464 AG_GST_CHECK_PLUGIN(accurip)
465 AG_GST_CHECK_PLUGIN(adpcmdec)
466 AG_GST_CHECK_PLUGIN(adpcmenc)
467 AG_GST_CHECK_PLUGIN(aiff)
468 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
469 AG_GST_CHECK_PLUGIN(asfmux)
470 AG_GST_CHECK_PLUGIN(audiobuffersplit)
471 AG_GST_CHECK_PLUGIN(audiofxbad)
472 AG_GST_CHECK_PLUGIN(audiomixer)
473 AG_GST_CHECK_PLUGIN(audiomixmatrix)
474 AG_GST_CHECK_PLUGIN(compositor)
475 AG_GST_CHECK_PLUGIN(audiovisualizers)
476 AG_GST_CHECK_PLUGIN(autoconvert)
477 AG_GST_CHECK_PLUGIN(bayer)
478 AG_GST_CHECK_PLUGIN(camerabin2)
479 AG_GST_CHECK_PLUGIN(coloreffects)
480 AG_GST_CHECK_PLUGIN(debugutils)
481 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
482 AG_GST_CHECK_PLUGIN(dvdspu)
483 AG_GST_CHECK_PLUGIN(festival)
484 AG_GST_CHECK_PLUGIN(fieldanalysis)
485 AG_GST_CHECK_PLUGIN(freeverb)
486 AG_GST_CHECK_PLUGIN(frei0r)
487 AG_GST_CHECK_PLUGIN(gaudieffects)
488 AG_GST_CHECK_PLUGIN(geometrictransform)
489 AG_GST_CHECK_PLUGIN(gdp)
490 AG_GST_CHECK_PLUGIN(id3tag)
491 AG_GST_CHECK_PLUGIN(inter)
492 AG_GST_CHECK_PLUGIN(interlace)
493 AG_GST_CHECK_PLUGIN(ivfparse)
494 AG_GST_CHECK_PLUGIN(ivtc)
495 AG_GST_CHECK_PLUGIN(jp2kdecimator)
496 AG_GST_CHECK_PLUGIN(jpegformat)
497 AG_GST_CHECK_PLUGIN(librfb)
498 AG_GST_CHECK_PLUGIN(midi)
499 AG_GST_CHECK_PLUGIN(mpegdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsmux)
502 AG_GST_CHECK_PLUGIN(mpegpsmux)
503 AG_GST_CHECK_PLUGIN(mxf)
504 AG_GST_CHECK_PLUGIN(netsim)
505 AG_GST_CHECK_PLUGIN(onvif)
506 AG_GST_CHECK_PLUGIN(pcapparse)
507 AG_GST_CHECK_PLUGIN(pnm)
508 AG_GST_CHECK_PLUGIN(rawparse)
509 AG_GST_CHECK_PLUGIN(removesilence)
510 AG_GST_CHECK_PLUGIN(sdp)
511 AG_GST_CHECK_PLUGIN(segmentclip)
512 AG_GST_CHECK_PLUGIN(siren)
513 AG_GST_CHECK_PLUGIN(smooth)
514 AG_GST_CHECK_PLUGIN(speed)
515 AG_GST_CHECK_PLUGIN(subenc)
516 AG_GST_CHECK_PLUGIN(stereo)
517 AG_GST_CHECK_PLUGIN(timecode)
518 AG_GST_CHECK_PLUGIN(videofilters)
519 AG_GST_CHECK_PLUGIN(videoparsers)
520 AG_GST_CHECK_PLUGIN(videosignal)
521 AG_GST_CHECK_PLUGIN(vmnc)
522 AG_GST_CHECK_PLUGIN(y4m)
523 AG_GST_CHECK_PLUGIN(yadif)
525 dnl *** plug-ins to exclude ***
527 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
528 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
529 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
530 AC_CHECK_HEADER(QTKit/QTKit.h, HAVE_QTKIT="yes", HAVE_QTKIT="no", [-])
532 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
534 LIBS="$LIBS -framework VideoToolbox"
535 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
536 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
542 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
543 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
544 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
547 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
548 if test "x$HAVE_IOS" = "xyes"; then
549 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
552 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
553 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
554 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
557 AM_CONDITIONAL(HAVE_QTKIT, test "x$HAVE_QTKIT" = "xyes")
558 if test "x$HAVE_QTKIT" = "xyes"; then
559 AC_DEFINE(HAVE_QTKIT, 1, [Define if building with QTKit])
561 dnl disable gst plugins we might not be able to build on this
562 dnl platform: (ugly but minimally invasive)
563 dnl FIXME: maybe move to sys, or make work with winsock2
564 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
565 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
567 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
568 WINSOCK2_LIBS="-lws2_32"
569 AC_SUBST(WINSOCK2_LIBS)
573 AC_ARG_ENABLE([opengl],
574 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
575 [case "${enableval}" in
578 auto) NEED_GL=auto ;;
579 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
580 esac],[NEED_GL=auto])
582 AC_ARG_WITH([opengl-module-name],
583 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
584 if test x$with_opengl_module_name != x; then
585 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
588 AC_ARG_ENABLE([gles2],
589 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
590 [case "${enableval}" in
591 yes) NEED_GLES2=yes ;;
593 auto) NEED_GLES2=auto ;;
594 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
595 esac],[NEED_GLES2=auto])
597 AC_ARG_WITH([gles2-module-name],
598 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
599 if test x$with_gles2_module_name != x; then
600 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
604 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
605 [case "${enableval}" in
608 auto) NEED_EGL=auto ;;
609 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
610 esac],[NEED_EGL=auto])
612 AC_ARG_WITH([egl-module-name],
613 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
614 if test x$with_egl_module_name != x; then
615 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
619 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
620 [case "${enableval}" in
623 auto) NEED_WGL=auto ;;
624 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
625 esac],[NEED_WGL=auto])
628 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
629 [case "${enableval}" in
632 auto) NEED_GLX=auto ;;
633 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
634 esac],[NEED_GLX=auto])
636 AC_ARG_ENABLE([cocoa],
637 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
638 [case "${enableval}" in
639 yes) NEED_COCOA=yes ;;
641 auto) NEED_COCOA=auto ;;
642 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
643 esac],[NEED_COCOA=auto])
646 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
647 [case "${enableval}" in
650 auto) NEED_X11=auto ;;
651 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
652 esac],[NEED_X11=auto])
654 AC_ARG_ENABLE([wayland],
655 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
656 [case "${enableval}" in
657 yes) NEED_WAYLAND_EGL=yes ;;
658 no) NEED_WAYLAND_EGL=no ;;
659 auto) NEED_WAYLAND_EGL=auto ;;
660 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
661 esac],[NEED_WAYLAND_EGL=auto])
663 AC_ARG_ENABLE([dispmanx],
664 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
665 [case "${enableval}" in
666 yes) NEED_DISPMANX=yes ;;
667 no) NEED_DISPMANX=no ;;
668 auto) NEED_DISPMANX=auto ;;
669 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
670 esac],[NEED_DISPMANX=auto])
672 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
673 save_CPPFLAGS="$CPPFLAGS"
687 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
688 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
689 if test "x$HAVE_WGLEXT" = "xyes"; then
695 if test "x$NEED_GL" != "xno"; then
696 AG_GST_PKG_CHECK_MODULES(GL, gl)
697 if test "x$HAVE_GL" != "xyes"; then
698 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
701 if test "x$NEED_GLES2" != "xno"; then
702 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
703 if test "x$HAVE_GLES2" != "xyes"; then
704 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
706 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
708 if test "x$NEED_EGL" != "xno"; then
709 AG_GST_PKG_CHECK_MODULES(EGL, egl)
710 if test "x$HAVE_EGL" != "xyes"; then
711 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
718 if test "x$HAVE_EGL" = "xyes"; then
719 AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes])
722 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
723 AC_CHECK_HEADER([EGL/fbdev_window.h],
726 AC_CHECK_LIB([Mali], [mali_image_create],
729 AC_CHECK_LIB([GLESv2], [glEnable],
731 AC_CHECK_HEADER([GLES2/gl2.h],
733 AC_CHECK_LIB([EGL], [eglGetProcAddress],
735 AC_CHECK_HEADER([EGL/egl.h],
739 EGL_LIBS="-lMali -lUMP"
741 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
749 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
750 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
751 LIBS="$LIBS -lvcos -lvchiq_arm"
752 AC_CHECK_LIB([bcm_host], [bcm_host_init],
754 LIBS="$LIBS -lbcm_host"
755 AC_CHECK_HEADER(bcm_host.h,
757 LIBS="$LIBS -lGLESv2"
758 AC_CHECK_LIB([EGL], [eglGetProcAddress],
761 AC_CHECK_HEADER([EGL/egl.h],
763 AC_CHECK_LIB([GLESv2], [glEnable],
765 AC_CHECK_HEADER([GLES2/gl2.h],
770 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
772 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
783 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)
785 # OS X and iOS always have GL available
788 if test "x$HAVE_IOS" = "xyes"; then
798 CPPFLAGS="$save_CPPFLAGS"
812 dnl Check for what the user asked for and what we could find
813 if test "x$HAVE_EGL" = "xno"; then
814 if test "x$NEED_EGL" = "xyes"; then
815 AC_MSG_ERROR([Could not find the required EGL libraries])
819 if test "x$HAVE_GL" = "xno"; then
820 if test "x$NEED_GL" = "xyes"; then
821 AC_MSG_ERROR([Could not find the required OpenGL libraries])
825 if test "x$HAVE_GLES2" = "xno"; then
826 if test "x$NEED_GLES2" = "xyes"; then
827 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
831 dnl X, GLX and OpenGL
832 if test "x$HAVE_X11_XCB" = "xno"; then
833 if test "x$NEED_GLX" = "xyes"; then
834 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
836 if test "x$NEED_X11" = "xyes"; then
837 AC_MSG_ERROR([Could not find X11 development libraries])
840 if test "x$NEED_GL" != "xno"; then
841 if test "x$HAVE_GL" = "xno"; then
842 if test "x$NEED_GLX" = "xyes"; then
843 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
847 if test "x$NEED_GLX" != "xno"; then
854 dnl check for DMABUF support
855 HAVE_DRM_FOURCC_HEADER=no
856 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
857 HAVE_DRM_FOURCC_HEADER=yes, )
859 HAVE_GST_ALLOCATORS=no
860 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
861 HAVE_GST_ALLOCATORS=yes, )
864 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
865 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
866 "x$HAVE_EGL" = "xyes"; then
870 dnl check if we can include both GL and GLES2 at the same time
871 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
873 if test "x$HAVE_GLES3_H" == "xyes"; then
878 # pragma GCC diagnostic push
879 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
881 #ifndef GL_GLEXT_PROTOTYPES
882 #define GL_GLEXT_PROTOTYPES 1
885 # include <OpenGLES/ES2/gl.h>
886 # include <OpenGLES/ES2/glext.h>
889 # include <GLES3/gl3.h>
890 # include <GLES3/gl3ext.h>
892 # include <GLES2/gl2.h>
893 # include <GLES2/gl2ext.h>
897 # include <OpenGL/OpenGL.h>
898 # include <OpenGL/gl.h>
899 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
900 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
901 # include <OpenGL/gl3.h>
905 # if __WIN32__ || _WIN32
906 # include <GL/glext.h>
909 int main (int argc, char **argv) { return 0; }
911 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
912 save_CFLAGS="$CFLAGS"
913 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
914 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
915 #if !defined(GL_FALSE)
916 #error Failed to include GL headers
918 ]])],[ AC_MSG_RESULT(yes)
920 if test "x$NEED_GLES2" = "xyes"; then
921 if test "x$NEED_GL" = "xyes"; then
922 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
924 AC_MSG_WARN([Disabling Desktop GL support])
928 AC_MSG_WARN([Disabling GL|ES 2.0 support])
933 CFLAGS="$save_CFLAGS"
936 #dnl Check for OpenGL
940 if test "x$NEED_WGL" = "xyes"; then
941 AC_MSG_ERROR([WGL is not available on Android])
943 if test "x$NEED_GLX" = "xyes"; then
944 AC_MSG_ERROR([GLX is not available on Android])
946 if test "x$NEED_GL" = "xyes"; then
947 AC_MSG_ERROR([GL is not available on Android])
949 if test "x$NEED_X11" = "xyes"; then
950 AC_MSG_ERROR([X11 is not available on Android])
952 if test "x$NEED_COCOA" = "xyes"; then
953 AC_MSG_ERROR([Cocoa is not available on Android])
957 if test "x$HAVE_GLES2" = "xyes"; then
958 if test "x$NEED_GLES2" != "xno"; then
959 GL_LIBS="$GL_LIBS -lGLESv2"
965 if test "x$HAVE_EGL" = "xyes"; then
966 if test "x$NEED_EGL" != "xno"; then
967 GL_LIBS="$GL_LIBS -lEGL"
972 if test "x$USE_EGL" != "xyes"; then
973 AC_MSG_ERROR([Need EGL on Android])
976 if test "x$USE_GLES2" != "xyes"; then
977 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
980 HAVE_WINDOW_ANDROID=yes
982 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
983 if test "x$NEED_WGL" = "xyes"; then
984 AC_MSG_ERROR([WGL is not available on unix])
987 if test "x$HAVE_X11_XCB" = "xno"; then
988 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
989 AC_MSG_WARN([X or Wayland is required for OpenGL support])
993 dnl check Desktop OpenGL
994 if test "x$HAVE_GL" = "xyes"; then
995 if test "x$NEED_GL" != "xno"; then
996 GL_LIBS="$GL_LIBS -lGL"
1001 if test "x$HAVE_GLES2" = "xyes"; then
1002 if test "x$NEED_GLES2" != "xno"; then
1003 GL_LIBS="$GL_LIBS -lGLESv2"
1008 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1009 if test "x$NEED_X11" != "xno"; then
1010 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1011 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1016 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1017 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1018 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1020 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1021 HAVE_WINDOW_WAYLAND=yes
1022 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1023 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1028 if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1029 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1030 AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1032 HAVE_WINDOW_VIV_FB=yes
1034 GL_CFLAGS="$GL_CFLAGS"
1038 if test "x$HAVE_EGL_RPI" = "xyes"; then
1039 if test "x$NEED_DISPMANX" != "xno"; then
1040 HAVE_WINDOW_DISPMANX=yes
1046 if test "x$HAVE_EGL" = "xno"; then
1047 if test "x$HAVE_GL" = "xno"; then
1048 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1051 if test "x$NEED_EGL" != "xno"; then
1052 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
1053 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1054 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1061 if test "x$HAVE_IOS" = "xyes"; then
1062 if test "x$NEED_WGL" = "xyes"; then
1063 AC_MSG_ERROR([WGL is not available on iOS])
1065 if test "x$NEED_GLX" = "xyes"; then
1066 AC_MSG_ERROR([GLX is not available on iOS])
1068 if test "x$NEED_GL" = "xyes"; then
1069 AC_MSG_ERROR([GL is not available on iOS])
1071 if test "x$NEED_X11" = "xyes"; then
1072 AC_MSG_ERROR([X11 is not available on iOS])
1074 if test "x$NEED_COCOA" = "xyes"; then
1075 AC_MSG_ERROR([Cocoa is not available on iOS])
1077 if test "x$NEED_EGL" = "xyes"; then
1078 AC_MSG_ERROR([EGL is not available on iOS])
1081 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1082 GL_CFLAGS="$GL_CFLAGS"
1085 HAVE_WINDOW_EAGL=yes
1087 ac_cv_type_GLsizeiptr=yes
1088 ac_cv_type_GLintptr=yes
1089 ac_cv_type_GLchar=yes
1091 dnl Only osx supports cocoa.
1092 if test "x$NEED_WGL" = "xyes"; then
1093 AC_MSG_ERROR([WGL is not available on Mac OS X])
1096 if test "x$NEED_COCOA" != "xno"; then
1097 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1098 GL_CFLAGS="$GL_CFLAGS"
1100 HAVE_WINDOW_COCOA=yes
1104 if test "x$USE_GLX" = "xyes"; then
1105 if test "x$HAVE_X11_XCB" = "xyes"; then
1106 if test "x$NEED_X11" != "xno"; then
1107 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1108 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1113 if test "x$HAVE_GL" = "xyes"; then
1114 if test "x$NEED_GL" != "xno"; then
1115 GL_LIBS="$GL_LIBS -lGL"
1121 if test "x$HAVE_EGL" = "xyes"; then
1122 if test "x$NEED_EGL" != "xno"; then
1123 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1124 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1125 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1132 if test "x$HAVE_GLES2" = "xyes"; then
1133 if test "x$NEED_GLES2" != "xno"; then
1134 GL_LIBS="$GL_LIBS -lGLESv2"
1141 if test "x$NEED_GLX" = "xyes"; then
1142 AC_MSG_ERROR([GLX is not available on Windows])
1144 if test "x$NEED_GLES2" = "xyes"; then
1145 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1148 if test "x$HAVE_GL" = "xyes"; then
1149 if test "x$NEED_GL" != "xno"; then
1150 if test "x$HAVE_WGL" = "xyes"; then
1151 if test "$NEED_WGL" != "xno"; then
1152 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1153 HAVE_WINDOW_WIN32=yes
1162 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1173 GST_GL_HAVE_OPENGL=0
1177 if test "x$USE_OPENGL" = "xyes"; then
1178 GL_APIS="gl $GL_APIS"
1179 GST_GL_HAVE_OPENGL=1
1181 if test "x$USE_GLES2" = "xyes"; then
1182 GL_APIS="gles2 $GL_APIS"
1184 if test "x$HAVE_GLES3_H" = "xyes"; then
1189 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1190 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1191 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1192 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1197 GST_GL_HAVE_WINDOW_X11=0
1198 GST_GL_HAVE_WINDOW_COCOA=0
1199 GST_GL_HAVE_WINDOW_WIN32=0
1200 GST_GL_HAVE_WINDOW_WAYLAND=0
1201 GST_GL_HAVE_WINDOW_ANDROID=0
1202 GST_GL_HAVE_WINDOW_DISPMANX=0
1203 GST_GL_HAVE_WINDOW_EAGL=0
1204 GST_GL_HAVE_WINDOW_VIV_FB=0
1206 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1207 GL_WINDOWS="x11 $GL_WINDOWS"
1208 GST_GL_HAVE_WINDOW_X11=1
1210 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1211 GL_WINDOWS="cocoa $GL_WINDOWS"
1212 GST_GL_HAVE_WINDOW_COCOA=1
1214 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1215 GL_WINDOWS="win32 $GL_WINDOWS"
1216 GST_GL_HAVE_WINDOW_WIN32=1
1218 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1219 GL_WINDOWS="wayland $GL_WINDOWS"
1220 GST_GL_HAVE_WINDOW_WAYLAND=1
1222 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1223 GL_WINDOWS="android $GL_WINDOWS"
1224 GST_GL_HAVE_WINDOW_ANDROID=1
1226 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1227 GL_WINDOWS="dispmanx $GL_WINDOWS"
1228 GST_GL_HAVE_WINDOW_DISPMANX=1
1230 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1231 GL_WINDOWS="eagl $GL_WINDOWS"
1232 GST_GL_HAVE_WINDOW_EAGL=1
1234 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1235 GL_WINDOWS="viv-fb $GL_WINDOWS"
1236 GST_GL_HAVE_WINDOW_VIV_FB=1
1239 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1240 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1241 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1242 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1243 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1244 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1245 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1246 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1247 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1252 GST_GL_HAVE_PLATFORM_EGL=0
1253 GST_GL_HAVE_PLATFORM_GLX=0
1254 GST_GL_HAVE_PLATFORM_WGL=0
1255 GST_GL_HAVE_PLATFORM_CGL=0
1256 GST_GL_HAVE_PLATFORM_EAGL=0
1258 if test "x$USE_EGL" = "xyes"; then
1259 GL_PLATFORMS="egl $GL_PLATFORMS"
1260 GST_GL_HAVE_PLATFORM_EGL=1
1262 if test "x$USE_GLX" = "xyes"; then
1263 GL_PLATFORMS="glx $GL_PLATFORMS"
1264 GST_GL_HAVE_PLATFORM_GLX=1
1266 if test "x$USE_WGL" = "xyes"; then
1267 GL_PLATFORMS="wgl $GL_PLATFORMS"
1268 GST_GL_HAVE_PLATFORM_WGL=1
1270 if test "x$USE_COCOA" = "xyes"; then
1271 GL_PLATFORMS="cgl $GL_PLATFORMS"
1272 GST_GL_HAVE_PLATFORM_CGL=1
1274 if test "x$USE_EAGL" = "xyes"; then
1275 GL_PLATFORMS="eagl $GL_PLATFORMS"
1276 GST_GL_HAVE_PLATFORM_EAGL=1
1279 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1280 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1281 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1282 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1283 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1284 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1287 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1288 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1291 dnl Check for no platforms/window systems
1292 if test "x$GL_APIS" = "x"; then
1293 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1295 if test "x$GL_PLATFORMS" = "x"; then
1296 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1298 if test "x$GL_WINDOWS" = "x"; then
1299 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1302 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1317 HAVE_WINDOW_WIN32=no
1318 HAVE_WINDOW_DISPMANX=no
1319 HAVE_WINDOW_WAYLAND=no
1320 HAVE_WINDOW_ANDROID=no
1321 HAVE_WINDOW_COCOA=no
1323 HAVE_WINDOW_VIV_FB=no
1327 AC_SUBST(GL_PLATFORMS)
1328 AC_SUBST(GL_WINDOWS)
1331 AC_SUBST(GL_OBJCFLAGS)
1332 AC_SUBST(USE_OPENGL)
1335 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1336 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1337 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1338 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1339 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1340 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1341 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1342 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1344 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1345 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1346 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1347 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1348 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1349 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1350 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1351 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1352 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1354 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1356 dnl Check for some types that are not always present
1358 if test "x$USE_GLES2" = "xyes"; then
1359 GL_INCLUDES="$GL_INCLUDES
1360 #ifndef GL_GLEXT_PROTOTYPES
1361 #define GL_GLEXT_PROTOTYPES 1
1364 # include <OpenGLES/ES2/gl.h>
1365 # include <OpenGLES/ES2/glext.h>
1367 # if $GST_GL_HAVE_GLES3
1368 # include <GLES3/gl3.h>
1369 # include <GLES3/gl3ext.h>
1371 # include <GLES2/gl2.h>
1372 # include <GLES2/gl2ext.h>
1378 if test "x$USE_OPENGL" = "xyes"; then
1379 GL_INCLUDES="$GL_INCLUDES
1381 # include <OpenGL/OpenGL.h>
1382 # include <OpenGL/gl.h>
1385 # if __WIN32__ || _WIN32
1386 # include <GL/glext.h>
1392 GST_GL_HAVE_GLEGLIMAGEOES=0
1393 GST_GL_HAVE_GLCHAR=0
1394 GST_GL_HAVE_GLSIZEIPTR=0
1395 GST_GL_HAVE_GLINTPTR=0
1396 GST_GL_HAVE_GLSYNC=0
1397 GST_GL_HAVE_GLUINT64=0
1398 GST_GL_HAVE_GLINT64=0
1399 GST_GL_HAVE_EGLATTRIB=0
1402 CFLAGS="$GL_CFLAGS $CFLAGS"
1404 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1405 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1406 GST_GL_HAVE_GLEGLIMAGEOES=1
1409 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1410 if test "x$ac_cv_type_GLchar" = "xyes"; then
1411 GST_GL_HAVE_GLCHAR=1
1414 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1415 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1416 GST_GL_HAVE_GLSIZEIPTR=1
1419 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1420 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1421 GST_GL_HAVE_GLINTPTR=1
1424 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1425 if test "x$ac_cv_type_GLsync" = "xyes"; then
1426 GST_GL_HAVE_GLSYNC=1
1429 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1430 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1431 GST_GL_HAVE_GLUINT64=1
1434 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1435 if test "x$ac_cv_type_GLint64" = "xyes"; then
1436 GST_GL_HAVE_GLINT64=1
1439 if test "x$USE_EGL" = "xyes"; then
1440 EGL_INCLUDES="$GL_INCLUDES
1441 #include <EGL/egl.h>
1442 #include <EGL/eglext.h>
1444 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1445 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1446 GST_GL_HAVE_EGLATTRIB=1
1452 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1453 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1454 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1455 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1456 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1457 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1458 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1459 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1460 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1463 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1464 outfile=gstglconfig.h-tmp
1465 cat > $outfile <<\_______EOF
1468 * This is a generated file. Please modify `configure.ac'
1471 #ifndef __GST_GL_CONFIG_H__
1472 #define __GST_GL_CONFIG_H__
1474 #include <gst/gst.h>
1480 cat >>$outfile <<_______EOF
1484 cat >>$outfile <<_______EOF
1488 #endif /* __GST_GL_CONFIG_H__ */
1492 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1493 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1496 mv $outfile gst-libs/gst/gl/gstglconfig.h
1499 gl_config_defines='$GL_CONFIG_DEFINES'
1502 dnl libpng is optional
1503 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1504 if test "x$HAVE_PNG" = "xyes"; then
1505 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1508 AC_SUBST(LIBPNG_LIBS)
1509 AC_SUBST(LIBPNG_CFLAGS)
1510 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1512 dnl libjpeg is optional
1513 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1515 if test x$with_jpeg_mmx != x; then
1516 LIBS="$LIBS -L$with_jpeg_mmx"
1518 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1519 JPEG_LIBS="$LIBS -ljpeg-mmx"
1521 if test x$HAVE_JPEG != xyes; then
1523 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1526 if test x$HAVE_JPEG = xyes; then
1527 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1529 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1534 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1537 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1538 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1540 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1541 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1542 VULKAN_CONFIG_DEFINES="
1543 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1544 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1546 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1547 outfile=vkconfig.h-tmp
1548 cat > $outfile <<\_______EOF
1551 * This is a generated file. Please modify `configure.ac'
1554 #ifndef __GST_VULKAN_CONFIG_H__
1555 #define __GST_VULKAN_CONFIG_H__
1557 #include <gst/gst.h>
1563 cat >>$outfile <<_______EOF
1564 $vulkan_config_defines
1567 cat >>$outfile <<_______EOF
1571 #endif /* __GST_VULKAN_CONFIG_H__ */
1575 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1576 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1579 mv $outfile ext/vulkan/vkconfig.h
1582 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1585 dnl *** sys plug-ins ***
1588 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1589 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1590 HAVE_DIRECTSOUND="no"
1591 save_CFLAGS="$CFLAGS"
1592 save_LDFLAGS="$LDFLAGS"
1594 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1595 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1596 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1597 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1598 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1599 #include <windows.h>
1602 #include <mmsystem.h>
1604 DXGetErrorString9 (0);
1605 DirectSoundCreate(NULL, NULL, NULL);
1607 [HAVE_DIRECTSOUND="yes"],
1608 [HAVE_DIRECTSOUND="no"])
1609 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1611 LDFLAGS=$save_LDFLAGS
1614 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1615 dnl this is much more than we want
1616 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1617 AC_SUBST(DIRECTX_CFLAGS)
1618 AC_SUBST(DIRECTX_LDFLAGS)
1619 AC_SUBST(DIRECTSOUND_LIBS)
1621 AC_SUBST(HAVE_DIRECTSOUND)
1625 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1626 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1628 save_CFLAGS="$CFLAGS"
1629 save_LDFLAGS="$LDFLAGS"
1631 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1632 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1633 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1634 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1635 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1636 #include <windows.h>
1638 #include <mmsystem.h>
1639 #include <mmdeviceapi.h>
1645 hr = CoInitialize(NULL);
1647 printf("CoInitialize failed: hr = 0x%08x", hr);
1652 // result = do_everything(argc, argv);
1658 [HAVE_WASAPI="yes"],
1660 AC_MSG_RESULT($HAVE_WASAPI)
1662 LDFLAGS=$save_LDFLAGS
1665 if test "x$HAVE_WASAPI" = "xyes"; then
1666 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1667 AC_SUBST(WASAPI_LIBS)
1669 AC_SUBST(HAVE_WASAPI)
1673 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1674 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1676 save_CFLAGS="$CFLAGS"
1677 save_LDFLAGS="$LDFLAGS"
1679 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1680 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1681 LIBS="$LIBS -ld3d9 -lgdi32"
1682 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1683 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1684 #include <windows.h>
1687 Direct3DCreate9(D3D_SDK_VERSION);
1689 [HAVE_DIRECT3D="yes"],
1690 [HAVE_DIRECT3D="no"])
1691 AC_MSG_RESULT($HAVE_DIRECT3D)
1693 LDFLAGS=$save_LDFLAGS
1696 if test "x$HAVE_DIRECT3D" = "xyes"; then
1697 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1698 AC_SUBST(DIRECT3D_LIBS)
1700 AC_SUBST(HAVE_DIRECT3D)
1704 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1705 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1706 HAVE_WINSCREENCAP="no"
1707 save_CFLAGS="$CFLAGS"
1708 save_LDFLAGS="$LDFLAGS"
1710 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1711 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1712 LIBS="$LIBS -ld3d9 -lgdi32"
1713 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1714 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1715 #include <windows.h>
1718 Direct3DCreate9(D3D_SDK_VERSION);
1720 [HAVE_WINSCREENCAP="yes"],
1721 [HAVE_WINSCREENCAP="no"])
1722 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1724 LDFLAGS=$save_LDFLAGS
1727 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1728 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1729 AC_SUBST(WINSCREENCAP_LIBS)
1731 AC_SUBST(HAVE_WINSCREENCAP)
1735 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1736 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1738 save_CFLAGS="$CFLAGS"
1739 save_LDFLAGS="$LDFLAGS"
1741 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1742 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1743 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1744 AC_MSG_CHECKING(for Winks LDFLAGS)
1745 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1746 #include <windows.h>
1751 IGraphBuilder *pGraph = NULL;
1752 HRESULT hr = CoInitialize(NULL);
1753 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1754 &IID_IGraphBuilder, (void **)&pGraph);
1761 AC_MSG_RESULT($HAVE_WINKS)
1763 LDFLAGS=$save_LDFLAGS
1766 if test "x$HAVE_WINKS" = "xyes"; then
1767 dnl this is much more than we want
1768 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1769 AC_SUBST(DIRECTX_CFLAGS)
1770 AC_SUBST(DIRECTX_LDFLAGS)
1771 AC_SUBST(WINKS_LIBS)
1773 AC_SUBST(HAVE_WINKS)
1776 dnl *** Android Media ***
1777 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1778 HAVE_ANDROID_MEDIA="no"
1779 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1782 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1785 HAVE_ANDROID_MEDIA="no"
1790 dnl *** AppleMedia (OS X and iOS) ***
1791 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1792 HAVE_APPLE_MEDIA="no"
1793 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1794 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1795 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1796 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1797 if test "x$HAVE_IOS" = "xno"; then
1798 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1802 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1807 HAVE_APPLE_MEDIA="no"
1812 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1813 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1814 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1815 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1816 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1818 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1827 dnl *** OS/X AVCVideoServices ***
1828 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1830 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1832 save_CPPFLAGS="$CPPFLAGS"
1833 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1835 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1836 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1838 CPPFLAGS=$save_CPPFLAGS
1841 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1850 dnl check for shm_open (for shm plugin)
1851 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1852 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1853 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1855 *-darwin* | *-macos10*)
1856 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1863 AC_CHECK_LIB([rt], [shm_open],
1864 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1865 #include <sys/socket.h>
1868 AC_SUBST(SHM_LIBS, "-lrt")
1876 dnl check for Video CD
1877 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1878 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1879 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1882 dnl check for OpenSL ES
1883 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1884 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1885 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1888 dnl *** UVC H264 ***
1889 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1890 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1891 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1892 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1893 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1896 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1897 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1898 HAVE_LIBUSB="yes" ],
1900 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1901 test "x$HAVE_GUDEV" = "xyes" && \
1902 test "x$HAVE_LIBUSB" = "xyes"; then
1908 AC_SUBST(LIBUDEV_CFLAGS)
1909 AC_SUBST(LIBUDEV_LIBS)
1910 AC_SUBST(LIBUSB_CFLAGS)
1911 AC_SUBST(LIBUSB_LIBS)
1914 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1915 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1916 AC_ARG_WITH([cuda-prefix],
1917 AS_HELP_STRING([--with-cuda-prefix],
1918 [Use the provided prefix for detecting the cuda installation]),
1919 [AS_IF([test "x$with_cuda_prefix" != "x"],
1920 [CUDA_PREFIX="$with_cuda_prefix"])],
1924 if test "x$CUDA_PREFIX" != "x"; then
1925 dnl only override if not already set
1926 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1927 dnl this is an educated guess, user can always override these
1928 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1929 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1932 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1933 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1934 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1935 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1940 save_CPPFLAGS="$CPPFLAGS"
1941 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1942 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1943 AC_MSG_WARN([Could not find cuda.h]))
1944 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1945 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1946 CPPFLAGS=$save_CPPFLAGS
1948 dnl libcuda and libcudart libraries
1950 LIBS="$CUDA_LIBS $save_LIBS"
1951 HAVE_CUDART_LIB="no"
1952 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1953 AC_MSG_WARN([Could not find cudart library])])
1955 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1956 AC_MSG_WARN([Could not find cuda library])])
1959 dnl nvEncodeAPI.h header
1960 HAVE_NVENCODEAPI_H=no
1961 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1962 save_CPPFLAGS="$CPPFLAGS"
1963 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1964 AC_CHECK_HEADER([nvEncodeAPI.h], [
1965 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1966 #if NVENCAPI_MAJOR_VERSION < 5
1967 #error "Need nvEncodeAPI.h >= 5.0"
1970 HAVE_NVENCODEAPI_H=yes
1972 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1975 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1976 AC_SUBST(NVENCODE_CFLAGS)
1977 CPPFLAGS="$save_CPPFLAGS"
1979 dnl libnvnidia-encode library
1980 HAVE_NVENCODE_LIB=no
1981 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1983 LIBS="$NVENCODE_LIBS $saved_LIBS"
1984 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1985 AC_MSG_WARN([Could not find library nvidia-encode]))
1986 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1987 AC_SUBST(NVENCODE_LIBS)
1991 if test "x$HAVE_CUDA_H" = "xyes" \
1992 -a "x$HAVE_CUDART_H" = "xyes" \
1993 -a "x$HAVE_CUDA_LIB" = "xyes" \
1994 -a "x$HAVE_CUDART_LIB" = "xyes" \
1995 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1996 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1998 if test x"$USE_OPENGL" = x"yes"; then
1999 dnl cuda-gl interop header
2000 save_CPPFLAGS="$CPPFLAGS"
2001 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2002 AC_CHECK_HEADER([cuda_gl_interop.h], [
2003 USE_NVENC_GST_GL="yes"
2004 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2006 CPPFLAGS="$save_CPPFLAGS"
2012 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2014 dnl check for tinyalsa
2015 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2016 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2017 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2020 dnl check for intel mediasdk
2021 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2022 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2023 AC_ARG_WITH([msdk-prefix],
2024 AS_HELP_STRING([--with-msdk-prefix],
2025 [Use the provided prefix for detecting the Intel MediaSDK]),
2026 [AS_IF([test "x$with_msdk_prefix" != "x"],
2027 [MSDK_PREFIX="$with_msdk_prefix"])],
2028 [AS_IF([test "x$MFX_HOME" != "x"],
2029 [MSDK_PREFIX="$MFX_HOME"],
2030 [MSDK_PREFIX="/opt/intel/media"])])
2031 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2032 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2033 AC_SUBST(MSDK_CFLAGS)
2036 save_CPPFLAGS="$CPPFLAGS"
2037 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2038 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2039 CPPFLAGS="$save_CPPFLAGS"
2042 LIBS="$MSDK_LIBS $LIBS"
2044 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2048 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2050 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2051 -a "x$HAVE_MFX_LIB" = "xyes" \
2052 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2058 AM_CONDITIONAL(USE_MSDK_LIBVA,
2059 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2061 dnl *** ext plug-ins ***
2062 dnl keep this list sorted alphabetically !
2064 if test "x$BUILD_EXTERNAL" = "xyes"; then
2066 dnl *** assrender ***
2067 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2068 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2069 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2070 HAVE_ASSRENDER="yes" ], [
2074 AC_SUBST(ASSRENDER_CFLAGS)
2075 AC_SUBST(ASSRENDER_LIBS)
2077 dnl *** vo-amrwbenc ***
2078 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2079 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2080 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2083 dnl *** vo-aacenc ***
2084 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2085 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2086 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2090 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2091 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2092 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2095 AC_SUBST(BS2B_CFLAGS)
2100 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2101 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2104 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2105 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2106 AC_MSG_RESULT($HAVE_BZ2)
2108 if test "x$HAVE_BZ2" = "xyes"; then
2116 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2117 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2118 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2121 # AC_SUBST(CAIRO_CFLAGS)
2122 # AC_SUBST(CAIRO_LIBS)
2125 dnl *** chromaprint ***
2126 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2127 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2128 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2129 HAVE_CHROMAPRINT="no"
2131 AC_SUBST(CHROMAPRINT_CFLAGS)
2132 AC_SUBST(CHROMAPRINT_LIBS)
2136 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2137 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2138 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2140 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2141 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2143 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2144 [[#ifdef HAVE_SYS_TYPES_H
2145 # include <sys/types.h>
2147 #ifdef HAVE_NETINET_IN_H
2148 # include <netinet/in.h>
2151 AC_MSG_CHECKING([for socket support needed by curlsink])
2152 AC_MSG_RESULT($HAVE_CURL)
2156 AC_SUBST(CURL_CFLAGS)
2158 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2160 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2164 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2165 AC_SUBST(SSH2_CFLAGS)
2167 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2170 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2171 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2172 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2173 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2175 AC_SUBST(LIBXML2_CFLAGS)
2176 AC_SUBST(LIBXML2_LIBS)
2180 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2181 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2182 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2183 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2192 AC_SUBST(LIBDC1394_CFLAGS)
2193 AC_SUBST(LIBDC1394_LIBS)
2196 dnl *** decklink ***
2197 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2198 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2205 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2206 AC_CHECK_LIB(dl, dlopen,
2210 DECKLINK_LIBS="-lpthread -ldl"
2215 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2216 AC_CHECK_LIB(dl, dlopen,
2220 DECKLINK_LIBS="-lpthread -ldl"
2221 HAVE_DECKLINK_OSX=yes
2230 AC_SUBST(DECKLINK_CXXFLAGS)
2231 AC_SUBST(DECKLINK_LIBS)
2233 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2235 dnl **** DirectFB ****
2236 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2237 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2238 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2243 dnl **** Wayland ****
2244 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2245 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2246 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2247 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2248 if test "x$wayland_scanner" != "x"; then
2250 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2252 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2261 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2262 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2263 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2264 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2266 AC_SUBST(WEBP_CFLAGS)
2271 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2272 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2273 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2274 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2279 AC_SUBST(DAALA_CFLAGS)
2280 AC_SUBST(DAALA_LIBS)
2285 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2286 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2288 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2289 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2290 if test $HAVE_DTS = "no"; then
2291 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2292 [ DTS_LIBS="-ldts_pic $LIBM"
2293 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2299 dnl *** resindvd ***
2300 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2301 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2302 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2307 dnl **** Free AAC Encoder (FAAC) ****
2308 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2309 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2310 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2311 FAAC_LIBS="-lfaac $LIBM")
2315 dnl **** Free AAC Decoder (FAAD2) ****
2316 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2317 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2318 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2319 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2320 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2322 #elif !defined(LATM)
2323 #error Not faad2 >= 2.7
2329 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2339 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2340 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2341 if test "x$HAVE_FBDEV" != "xyes"; then
2342 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2347 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2348 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2349 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2351 HAVE_FDK_AAC_0_1_4="yes"
2352 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2354 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2359 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2360 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2361 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2362 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2364 AC_SUBST(FLITE_CFLAGS)
2365 AC_SUBST(FLITE_LIBS)
2369 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2370 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2371 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2372 if test $HAVE_GSM != "yes"; then
2373 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2374 if test $HAVE_GSM = "yes"; then
2375 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2381 dnl *** fluidSynth ***
2382 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2383 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2384 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2385 HAVE_FLUIDSYNTH="no"
2390 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2391 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2392 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2395 AC_SUBST(KATE_CFLAGS)
2397 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2400 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2406 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2407 AC_SUBST(TIGER_CFLAGS)
2408 AC_SUBST(TIGER_LIBS)
2409 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2412 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2413 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2414 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2415 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2419 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2420 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2421 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2423 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2424 if test $HAVE_LRDF = "yes"; then
2425 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2428 AC_SUBST(LRDF_CFLAGS)
2432 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2433 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2434 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2436 HAVE_LILV_0_22="yes"
2437 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2439 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2441 AC_SUBST(LILV_CFLAGS)
2445 dnl *** libde265 ***
2446 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2447 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2448 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2449 AC_SUBST(LIBDE265_CFLAGS)
2450 AC_SUBST(LIBDE265_LIBS)
2454 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2455 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2456 dnl check with pkg-config first
2457 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2461 AC_SUBST(LIBMMS_LIBS)
2465 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2466 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2467 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2468 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2471 AC_SUBST(SRTP_CFLAGS)
2475 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2476 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2477 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2479 AC_SUBST(DTLS_CFLAGS)
2487 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2488 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2489 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2490 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2499 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2500 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2501 if test "x$HAVE_CXX" != "xyes"; then
2502 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2505 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2507 AC_SUBST(MODPLUG_CFLAGS)
2508 AC_SUBST(MODPLUG_LIBS)
2511 dnl *** mjpegtools version info ***
2512 dnl some may prefer older version (given quirks above)
2513 dnl hm, no version info seems available within mjpegtools headers
2514 dnl and API really moves along
2516 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2517 mjpegtools_api=10601
2519 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2520 mjpegtools_api=10800
2522 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2523 mjpegtools_api=20000
2525 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2526 dnl logging API changed in release candidates
2527 OLD_CFLAGS="$CFLAGS"
2529 CFLAGS="$MJPEG_CFLAGS"
2530 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2531 AC_CHECK_FUNC(mjpeg_loglev_t, [
2532 mjpegtools_api=10903
2534 mjpegtools_api=10900
2536 CFLAGS="$OLD_CFLAGS"
2544 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2545 [mjpegtools API evolution])
2547 dnl *** mpeg2enc ***
2548 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2549 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2551 dnl we require a c++ compiler for this one
2552 if [ test x$HAVE_CXX = xyes ]; then
2553 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2554 dnl since many distros include mjpegtools specifically without mplex
2555 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2556 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2557 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2559 dnl switch over to c++ to test things
2561 OLD_CPPFLAGS="$CPPFLAGS"
2563 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2564 CPPFLAGS="$CPPFLAGS_GOOD -I."
2566 mpeg2enc_headers_ok=no
2567 AC_CHECK_HEADER([mpeg2encoder.hh], [
2568 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2570 LIBS="$LIBS $MPEG2ENC_LIBS"
2571 AC_MSG_CHECKING([for valid mpeg2enc objects])
2572 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2573 #include <mpeg2encoder.hh>
2574 #include <mpeg2encoptions.hh>
2580 MPEG2EncOptions *options = new MPEG2EncOptions ();
2581 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2586 dnl so far so good, let's check more things:
2587 dnl mjpegtools-1.8.0 does not install the required
2588 dnl mpeg2syntaxcodes.h header by default, and a new release
2589 dnl is not in sight, so check for this oversight in case
2590 dnl distros or folks have fixed this themselves
2591 if test "$mjpegtools_api" -ge "10800"; then
2592 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2593 mpeg2enc_headers_ok=yes
2595 mpeg2enc_headers_ok=no
2598 mpeg2enc_headers_ok=yes
2600 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2603 CPPFLAGS="$CPPFLAGS_GOOD"
2604 AC_SUBST(MPEG2ENC_CFLAGS)
2605 AC_SUBST(MPEG2ENC_LIBS)
2612 CPPFLAGS="$OLD_CPPFLAGS"
2621 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2622 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2624 dnl we require a c++ compiler for this one
2625 if [ test x$HAVE_CXX = xyes ]; then
2626 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2627 dnl since many distros include mjpegtools specifically without mplex
2628 dnl and mpeg2enc, we check for mplex on its own, too.
2629 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2630 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2631 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2633 dnl switch over to c++ to test things
2635 OLD_CPPFLAGS="$CPPFLAGS"
2637 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2638 CPPFLAGS="$CPPFLAGS_GOOD -I."
2639 AC_CHECK_HEADER(interact.hpp, [
2640 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2642 LIBS="$LIBS $MPLEX_LIBS"
2643 OLD_LDFLAGS="$LDFLAGS"
2644 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2645 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2646 dnl don't want this here
2647 AC_MSG_CHECKING([for valid mplex objects])
2648 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2650 #include <interact.hpp>
2651 #include <outputstrm.hpp>
2652 #include <multiplexor.hpp>
2657 class TestOutputStream : public OutputStream {
2659 TestOutputStream () : OutputStream () { }
2660 void Write (uint8_t *a, unsigned int b) { }
2661 void NextSegment () { }
2662 uint64_t SegmentSize () { }
2666 MultiplexJob *job = new MultiplexJob ();
2667 vector<IBitStream *> inputs;
2668 job->SetupInputStreams (inputs);
2669 TestOutputStream *out = new TestOutputStream ();
2670 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2675 CPPFLAGS="$CPPFLAGS_GOOD"
2676 AC_SUBST(MPLEX_CFLAGS)
2677 AC_SUBST(MPLEX_LIBS)
2678 AC_SUBST(MPLEX_LDFLAGS)
2680 ],[AC_MSG_RESULT(no)],[])
2682 LDFLAGS="$OLD_LDFLAGS"
2684 CPPFLAGS="$OLD_CPPFLAGS"
2690 dnl *** musepack ***
2691 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2692 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2693 AC_CHECK_HEADER([mpc/mpcdec.h], [
2695 MUSEPACK_LIBS="-lmpcdec"
2696 AC_SUBST(MUSEPACK_LIBS)
2697 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2699 MUSEPACK_LIBS="-lmpcdec"
2700 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2701 AC_SUBST(MUSEPACK_LIBS)
2702 ], [HAVE_MUSEPACK="no"])])
2706 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2707 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2708 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2711 AC_SUBST(NEON_CFLAGS)
2716 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2717 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2718 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2721 AC_SUBST(OFA_CFLAGS)
2726 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2727 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2728 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2731 AC_SUBST(OPENAL_CFLAGS)
2732 AC_SUBST(OPENAL_LIBS)
2736 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2737 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2738 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2739 dnl and don't want the build to break when a new opencv version comes out.
2740 dnl Need to adjust this upwards once we know that our code compiles fine with
2741 dnl a new version and the no-backward-compatibility define. (There doesn't
2742 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2744 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2747 OLD_CPPFLAGS=$CPPFLAGS
2748 CPPFLAGS=$OPENCV_CFLAGS
2749 something_not_found=no
2750 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2751 opencv2/core/version.hpp \
2752 opencv2/highgui/highgui_c.h \
2753 opencv2/imgproc/imgproc.hpp \
2754 opencv2/imgproc/imgproc_c.h \
2755 opencv2/objdetect/objdetect.hpp \
2756 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2758 dnl Only required for OpenCV >= 3, we have compat code for older versions
2759 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2760 dnl check opencv_contrib headers (not always present in opencv distributions)
2761 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2762 [NOT_A_PROBLEM=yes])
2764 CPPFLAGS=$OLD_CPPFLAGS
2767 if test $something_not_found = "yes"; then
2768 AC_MSG_RESULT([not all opencv2 headers were found])
2776 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2777 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2778 AC_SUBST(OPENCV_PREFIX)
2779 AC_SUBST(OPENCV_CFLAGS)
2780 AC_SUBST(OPENCV_LIBS)
2781 dnl the OpenCV prefix is used at runtime for some object properties, and also
2782 dnl used here to detect which directory is the correct one. For the second
2783 dnl case, make sure the right sysroot is used, ensuring correct behavior
2784 dnl during cross compilation.
2785 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2786 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2788 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2793 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2794 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2795 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2798 dnl *** openh264 ***
2799 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2800 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2801 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2804 dnl *** OpenJPEG ***
2805 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2806 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2808 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2809 if test x"$HAVE_OPENJPEG" = x"yes"; then
2810 dnl minor API changes in v2.1
2811 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2812 if test x"$HAVE_OPENJPEG" = x"yes"; then
2813 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2818 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2819 HAVE_OPENJPEG="yes",
2820 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2822 if test x"$HAVE_OPENJPEG" = x"yes"; then
2823 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2826 AC_SUBST(OPENJPEG_CFLAGS)
2827 AC_SUBST(OPENJPEG_LIBS)
2831 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2832 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2833 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2834 AC_SUBST(OPENNI2_CFLAGS)
2835 AC_SUBST(OPENNI2_LIBS)
2839 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2840 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2841 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2842 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2847 AC_SUBST(OPUS_CFLAGS)
2852 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2853 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2854 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2858 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2859 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2862 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2869 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2870 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2871 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2872 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2877 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2879 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2880 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2881 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2882 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2884 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2886 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2887 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2888 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2889 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2891 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2893 if test "x$GDK_WINDOWING" = "xyes"; then
2894 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2901 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2904 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2905 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2906 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2907 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2908 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2909 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2910 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2911 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2912 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2913 AC_MSG_WARN([One of the required qt build programs was not found])
2917 HAVE_QT_WINDOWING="no"
2918 QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2919 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2920 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2921 QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2922 HAVE_QT_QPA_HEADER="yes"
2923 ], [AC_MSG_NOTICE([Cannot find QPA])])
2924 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2925 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2926 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2927 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2928 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2929 HAVE_QT_WINDOWING="yes"
2930 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2932 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
2933 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2934 AC_DEFINE([HAVE_QT_WAYLAND], [],
2935 [Define if Qt Wayland integration is installed])
2936 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2937 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2938 HAVE_QT_WINDOWING="yes"
2939 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2941 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2942 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2943 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2944 # c++ on android requires a standard library and there are multiple
2945 # choices. cerbero provides a pkg-config file the describes a choice
2946 # so try to use that. Outside cerbero one has to pass these flags
2947 # manually for the library one is using
2948 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2949 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2950 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2952 AC_MSG_NOTICE([Could not find Standard C++ library])])
2953 AC_DEFINE([HAVE_QT_EGLFS], [],
2954 [Define if Qt eglfs integration is installed])
2955 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2956 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2957 HAVE_QT_WINDOWING="yes"
2958 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2960 AC_DEFINE([HAVE_QT_EGLFS], [],
2961 [Define if Qt eglfs integration is installed])
2962 HAVE_QT_WINDOWING="yes"
2965 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2966 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2967 AC_DEFINE([HAVE_QT_MAC], [],
2968 [Define if Qt Mac integration is installed])
2969 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2970 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2971 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2972 HAVE_QT_WINDOWING="yes"
2973 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2975 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2976 if test "x$HAVE_IOS" = "xyes"; then
2977 # iOS doesn't have its own extras package so if we have the core
2978 # modules we are good to go
2979 AC_DEFINE([HAVE_QT_IOS], [],
2980 [Define if Qt iOS integration is installed])
2981 HAVE_QT_WINDOWING="yes"
2984 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2985 AC_MSG_WARN([Could not find any Qt Windowing integration])
2988 AC_SUBST([QT_CFLAGS])
2997 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2998 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2999 AC_CHECK_HEADER(vulkan/vulkan.h, [
3000 AC_CHECK_LIB(vulkan, vkCreateDevice, [
3001 VULKAN_LIBS="-lvulkan"
3002 AC_SUBST(VULKAN_LIBS)
3003 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3006 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3013 dnl *** teletextdec ***
3014 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3015 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3016 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3019 dnl *** wildmidi ***
3020 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3021 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3022 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3025 WILDMIDI_LIBS="-lWildMidi")
3026 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3028 if test "x$HAVE_WILDMIDI" = "xyes"; then
3030 WILDMIDI_LIBS=-lWildMidi
3031 AC_MSG_NOTICE(compiling gstWildMidi)
3035 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3037 AC_SUBST(WILDMIDI_CFLAGS)
3038 AC_SUBST(WILDMIDI_LIBS)
3041 dnl **** Smooth Streaming ****
3042 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3043 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3044 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3046 HAVE_SMOOTHSTREAMING="yes"],
3048 HAVE_SMOOTHSTREAMING="no"])
3049 AC_SUBST(LIBXML2_CFLAGS)
3050 AC_SUBST(LIBXML2_LIBS)
3054 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3055 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3056 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3057 AC_SUBST(SNDFILE_CFLAGS)
3058 AC_SUBST(SNDFILE_LIBS)
3061 dnl *** soundtouch ***
3062 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3063 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3064 dnl We only need -lBPM on soundtouch < 1.4
3065 dnl We check for libSoundTouch since Debian used it before upstream
3066 dnl added a pkgconfig file.
3067 HAVE_SOUNDTOUCH_1_4=yes
3068 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3069 [HAVE_SOUNDTOUCH=yes],
3070 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3071 [HAVE_SOUNDTOUCH=yes],
3072 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3073 [HAVE_SOUNDTOUCH=yes
3074 HAVE_SOUNDTOUCH_1_4=no
3075 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3076 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3077 [HAVE_SOUNDTOUCH=yes],
3078 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3079 [HAVE_SOUNDTOUCH=yes
3080 HAVE_SOUNDTOUCH_1_4=no
3081 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3082 HAVE_SOUNDTOUCH=no)])])])])
3083 AC_SUBST(SOUNDTOUCH_CFLAGS)
3084 AC_SUBST(SOUNDTOUCH_LIBS)
3085 if test "x$HAVE_CXX" != "xyes"; then
3086 USE_SOUNDTOUCH=false
3087 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3089 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3090 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3091 [Defined if the available libSoundTouch is >= 1.4])
3096 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3097 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3098 AC_CHECK_HEADER(openspc.h, [
3099 AC_CHECK_LIB(openspc, OSPC_Init, [
3100 SPC_LIBS="-lopenspc"
3112 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3113 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3114 AC_CHECK_HEADER(gme/gme.h, [
3115 AC_CHECK_LIB(gme, gme_new_emu, [
3126 if test "x$HAVE_GME" = "xyes"; then
3127 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3128 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3134 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3135 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3136 AC_MSG_CHECKING([Checking for up to date dvb installation])
3137 AC_CHECK_HEADER(linux/dvb/version.h, [
3138 AC_MSG_CHECKING([for up-to-date dvb API])
3139 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3140 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3141 #error "Incompatible dvb API"
3143 ]])], [ AC_MSG_RESULT(yes)
3145 ], [ AC_MSG_RESULT(no)
3152 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3153 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3154 AC_MSG_CHECKING([Checking for ACM support])
3155 AC_CHECK_HEADERS([windows.h msacm.h],
3157 AC_SUBST(ACMENC_CFLAGS)
3158 AC_SUBST(ACMMP3DEC_CFLAGS)
3160 [AC_INCLUDES_DEFAULT
3161 #include <windows.h>])
3165 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3166 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3171 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3173 if test "$HAVE_VDPAU" = "no"; then
3174 saved_CPPFLAGS="$CPPFLAGS"
3175 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3177 if test -z "$HAVE_VDPAU_H"; then
3178 dnl Didn't find VDPAU header straight away.
3179 dnl Try /usr/include/nvidia. Need to clear caching vars first
3180 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3181 unset ac_cv_header_vdpau_vdpau_h
3182 unset ac_cv_header_vdpau_vdpau_x11_h
3183 VDPAU_CFLAGS="-I/usr/include/nvidia"
3184 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3185 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3186 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3189 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3191 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3192 dnl Found the headers - look for the lib
3193 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3195 LIBS="$VDPAU_LIBS $saved_LIBS"
3196 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3202 if test "$HAVE_VDPAU" = "yes"; then
3203 AC_MSG_NOTICE([Found up to date VDPAU installation])
3204 AC_SUBST(VDPAU_CFLAGS)
3205 AC_SUBST(VDPAU_LIBS)
3210 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3211 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3212 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3215 dnl *** schroedinger ***
3216 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3217 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3218 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3222 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3223 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3224 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3228 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3229 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3230 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3234 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3235 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3236 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3237 HAVE_SPANDSP="yes" ], [
3241 AC_SUBST(SPANDSP_CFLAGS)
3242 AC_SUBST(SPANDSP_LIBS)
3244 dnl *** hls-crypto ***
3245 AC_ARG_WITH([hls-crypto],
3246 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3247 which cryptographic library version to compile against for hls (default: auto)
3249 AS_CASE([$with_hls_crypto],
3253 [with_hls_crypto=auto]
3259 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3260 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3261 AS_CASE([$with_hls_crypto],
3263 PKG_CHECK_MODULES(NETTLE, nettle, [
3264 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3266 ],[AC_MSG_ERROR([Could not find nettle library])])
3269 AM_PATH_LIBGCRYPT([1.2.0], [
3270 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3272 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3275 PKG_CHECK_MODULES(OPENSSL, openssl, [
3276 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3278 ],[AC_MSG_ERROR([Could not find openssl library])])
3281 dnl Try to find a valid crypto library
3282 PKG_CHECK_MODULES(NETTLE, nettle, [
3283 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3286 AM_PATH_LIBGCRYPT([1.2.0], [
3287 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3290 PKG_CHECK_MODULES(OPENSSL, openssl, [
3291 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3302 dnl *** x265 (H.265/HEVC encoder) ***
3303 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3304 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3305 AG_GST_PKG_CHECK_MODULES(X265, x265)
3308 dnl *** WebRTC Audio Processing ***
3309 dnl Note: We test for a specific version as there is no API stability
3310 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3311 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3313 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3315 # On Android, C++ headers comes with the STL implementation
3316 AS_CASE(["${host}"],
3319 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3320 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3321 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3323 AC_SUBST([WEBRTCDSP_CFLAGS])
3324 AC_SUBST([WEBRTCDSP_LIBS])
3327 old_CPPFLAGS=$CPPFLAGS
3328 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3329 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3330 CPPFLAGS=$old_CPPFLAGS
3336 dnl not building plugins with external dependencies,
3337 dnl but we still need to set the conditionals
3339 AM_CONDITIONAL(USE_ASSRENDER, false)
3340 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3341 AM_CONDITIONAL(USE_VOAACENC, false)
3342 AM_CONDITIONAL(USE_BS2B, false)
3343 AM_CONDITIONAL(USE_BZ2, false)
3344 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3345 AM_CONDITIONAL(USE_CURL, false)
3346 AM_CONDITIONAL(USE_SSH2, false)
3347 AM_CONDITIONAL(USE_DASH, false)
3348 AM_CONDITIONAL(USE_DC1394, false)
3349 AM_CONDITIONAL(USE_DECKLINK, false)
3350 AM_CONDITIONAL(DECKLINK_OSX, false)
3351 AM_CONDITIONAL(USE_DIRECTFB, false)
3352 AM_CONDITIONAL(USE_WAYLAND, false)
3353 AM_CONDITIONAL(USE_DAALA, false)
3354 AM_CONDITIONAL(USE_DTS, false)
3355 AM_CONDITIONAL(USE_EXIF, false)
3356 AM_CONDITIONAL(USE_RESINDVD, false)
3357 AM_CONDITIONAL(USE_FAAC, false)
3358 AM_CONDITIONAL(USE_FAAD, false)
3359 AM_CONDITIONAL(USE_FBDEV, false)
3360 AM_CONDITIONAL(USE_FDK_AAC, false)
3361 AM_CONDITIONAL(USE_FLITE, false)
3362 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3363 AM_CONDITIONAL(USE_GL, false)
3364 AM_CONDITIONAL(USE_GSM, false)
3365 AM_CONDITIONAL(USE_GTK3, false)
3366 AM_CONDITIONAL(USE_GTK3_GL, false)
3367 AM_CONDITIONAL(USE_HLS, false)
3368 AM_CONDITIONAL(USE_IQA, false)
3369 AM_CONDITIONAL(USE_KATE, false)
3370 AM_CONDITIONAL(USE_KMS, false)
3371 AM_CONDITIONAL(USE_TIGER, false)
3372 AM_CONDITIONAL(USE_LADSPA, false)
3373 AM_CONDITIONAL(USE_LV2, false)
3374 AM_CONDITIONAL(USE_LIBDE265, false)
3375 AM_CONDITIONAL(USE_LIBMMS, false)
3376 AM_CONDITIONAL(USE_MODPLUG, false)
3377 AM_CONDITIONAL(USE_MPEG2ENC, false)
3378 AM_CONDITIONAL(USE_MPLEX, false)
3379 AM_CONDITIONAL(USE_MUSEPACK, false)
3380 AM_CONDITIONAL(USE_NEON, false)
3381 AM_CONDITIONAL(USE_OFA, false)
3382 AM_CONDITIONAL(USE_OPENAL, false)
3383 AM_CONDITIONAL(USE_OPENCV, false)
3384 AM_CONDITIONAL(USE_OPENEXR, false)
3385 AM_CONDITIONAL(USE_OPENJPEG, false)
3386 AM_CONDITIONAL(USE_OPENNI2, false)
3387 AM_CONDITIONAL(USE_OPUS, false)
3388 AM_CONDITIONAL(USE_QT, false)
3389 AM_CONDITIONAL(USE_WILDMIDI, false)
3390 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3391 AM_CONDITIONAL(USE_SNDFILE, false)
3392 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3393 AM_CONDITIONAL(USE_SPANDSP, false)
3394 AM_CONDITIONAL(USE_SPC, false)
3395 AM_CONDITIONAL(USE_SRTP, false)
3396 AM_CONDITIONAL(USE_GME, false)
3397 AM_CONDITIONAL(USE_DVB, false)
3398 AM_CONDITIONAL(USE_ACM, false)
3399 AM_CONDITIONAL(USE_VDPAU, false)
3400 AM_CONDITIONAL(USE_SBC, false)
3401 AM_CONDITIONAL(USE_SCHRO, false)
3402 AM_CONDITIONAL(USE_ZBAR, false)
3403 AM_CONDITIONAL(USE_RSVG, false)
3404 AM_CONDITIONAL(USE_RTMP, false)
3405 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3406 AM_CONDITIONAL(USE_UVCH264, false)
3407 AM_CONDITIONAL(USE_WEBP, false)
3408 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3409 AM_CONDITIONAL(USE_OPENH264, false)
3410 AM_CONDITIONAL(USE_X265, false)
3411 AM_CONDITIONAL(USE_DTLS, false)
3412 AM_CONDITIONAL(USE_VULKAN, false)
3413 AM_CONDITIONAL(USE_TTML, false)
3415 fi dnl of EXT plugins
3417 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3420 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3421 dnl GST_*: flags shared by built objects to link against GStreamer
3422 dnl GST_ALL_LDFLAGS: linker flags shared by all
3423 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3424 dnl GST_LT_LDFLAGS: library versioning of our libraries
3425 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3427 dnl GST_OPTION_CFLAGS
3428 if test "x$USE_DEBUG" = xyes; then
3431 AC_SUBST(PROFILE_CFLAGS)
3433 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3434 dnl Define _only_ during CVS (not pre-releases or releases)
3435 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3437 DEPRECATED_CFLAGS=""
3439 AC_SUBST(DEPRECATED_CFLAGS)
3441 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3442 dnl at make time with e.g. make ERROR_CFLAGS=""
3443 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3444 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3445 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3446 AC_SUBST(GST_OPTION_CFLAGS)
3447 AC_SUBST(GST_OPTION_CXXFLAGS)
3448 AC_SUBST(GST_OPTION_OBJCFLAGS)
3450 dnl FIXME: do we want to rename to GST_ALL_* ?
3451 dnl prefer internal headers to already installed ones
3452 dnl also add builddir include for enumtypes and marshal
3453 dnl add GST_OPTION_CFLAGS, but overridable
3454 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3455 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3456 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3457 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3458 AC_SUBST(GST_CFLAGS)
3459 AC_SUBST(GST_CXXFLAGS)
3460 AC_SUBST(GST_OBJCFLAGS)
3462 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3463 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3464 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3465 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3466 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3467 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3469 dnl LDFLAGS really should only contain flags, not libs - they get added before
3470 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3471 GST_ALL_LDFLAGS="-no-undefined"
3472 if test "x${enable_Bsymbolic}" = "xyes"; then
3473 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3475 AC_SUBST(GST_ALL_LDFLAGS)
3478 dnl linker flags shared by all libraries
3479 dnl LDFLAGS modifier defining exported symbols from built libraries
3480 dnl (export _gst_foo but not __gst_foo)
3481 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3482 AC_SUBST(GST_LIB_LDFLAGS)
3484 dnl this really should only contain flags, not libs - they get added before
3485 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3486 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3487 AC_SUBST(GST_PLUGIN_LDFLAGS)
3489 dnl *** output files ***
3491 $MKDIR_P tests/check/orc
3500 gst/accurip/Makefile
3501 gst/adpcmdec/Makefile
3502 gst/adpcmenc/Makefile
3504 gst/videoframe_audiolevel/Makefile
3506 gst/audiobuffersplit/Makefile
3507 gst/audiofxbad/Makefile
3508 gst/audiomixer/Makefile
3509 gst/audiomixmatrix/Makefile
3510 gst/audiovisualizers/Makefile
3511 gst/autoconvert/Makefile
3513 gst/camerabin2/Makefile
3514 gst/coloreffects/Makefile
3515 gst/debugutils/Makefile
3516 gst/dvbsuboverlay/Makefile
3518 gst/festival/Makefile
3519 gst/fieldanalysis/Makefile
3520 gst/freeverb/Makefile
3522 gst/gaudieffects/Makefile
3523 gst/geometrictransform/Makefile
3527 gst/interlace/Makefile
3528 gst/ivfparse/Makefile
3530 gst/jp2kdecimator/Makefile
3531 gst/jpegformat/Makefile
3534 gst/mpegdemux/Makefile
3535 gst/mpegtsdemux/Makefile
3536 gst/mpegtsmux/Makefile
3537 gst/mpegtsmux/tsmux/Makefile
3538 gst/mpegpsmux/Makefile
3542 gst/pcapparse/Makefile
3544 gst/rawparse/Makefile
3545 gst/removesilence/Makefile
3547 gst/segmentclip/Makefile
3553 gst/timecode/Makefile
3554 gst/videofilters/Makefile
3555 gst/videoparsers/Makefile
3556 gst/videosignal/Makefile
3560 gst/compositor/Makefile
3562 gst-libs/gst/Makefile
3563 gst-libs/gst/adaptivedemux/Makefile
3564 gst-libs/gst/basecamerabinsrc/Makefile
3565 gst-libs/gst/gl/Makefile
3566 gst-libs/gst/gl/android/Makefile
3567 gst-libs/gst/gl/cocoa/Makefile
3568 gst-libs/gst/gl/dispmanx/Makefile
3569 gst-libs/gst/gl/glprototypes/Makefile
3570 gst-libs/gst/gl/eagl/Makefile
3571 gst-libs/gst/gl/egl/Makefile
3572 gst-libs/gst/gl/wayland/Makefile
3573 gst-libs/gst/gl/win32/Makefile
3574 gst-libs/gst/gl/x11/Makefile
3575 gst-libs/gst/gl/viv-fb/Makefile
3576 gst-libs/gst/insertbin/Makefile
3577 gst-libs/gst/interfaces/Makefile
3578 gst-libs/gst/codecparsers/Makefile
3579 gst-libs/gst/mpegts/Makefile
3580 gst-libs/gst/uridownloader/Makefile
3581 gst-libs/gst/wayland/Makefile
3582 gst-libs/gst/base/Makefile
3583 gst-libs/gst/player/Makefile
3584 gst-libs/gst/video/Makefile
3585 gst-libs/gst/audio/Makefile
3586 gst-libs/gst/opencv/Makefile
3588 sys/dshowdecwrapper/Makefile
3590 sys/acmmp3dec/Makefile
3591 sys/androidmedia/Makefile
3592 sys/applemedia/Makefile
3594 sys/d3dvideosink/Makefile
3595 sys/decklink/Makefile
3596 sys/directsound/Makefile
3597 sys/dshowsrcwrapper/Makefile
3598 sys/dshowvideosink/Makefile
3604 sys/opensles/Makefile
3606 sys/tinyalsa/Makefile
3607 sys/uvch264/Makefile
3612 sys/winscreencap/Makefile
3614 tests/check/Makefile
3615 tests/files/Makefile
3616 tests/examples/Makefile
3617 tests/examples/avsamplesink/Makefile
3618 tests/examples/camerabin2/Makefile
3619 tests/examples/codecparsers/Makefile
3620 tests/examples/directfb/Makefile
3621 tests/examples/audiomixmatrix/Makefile
3622 tests/examples/gl/Makefile
3623 tests/examples/gl/cocoa/Makefile
3624 tests/examples/gl/clutter/Makefile
3625 tests/examples/gl/generic/Makefile
3626 tests/examples/gl/generic/cube/Makefile
3627 tests/examples/gl/generic/cubeyuv/Makefile
3628 tests/examples/gl/generic/doublecube/Makefile
3629 tests/examples/gl/generic/recordgraphic/Makefile
3630 tests/examples/gl/gtk/Makefile
3631 tests/examples/gl/gtk/3dvideo/Makefile
3632 tests/examples/gl/gtk/filternovideooverlay/Makefile
3633 tests/examples/gl/gtk/filtervideooverlay/Makefile
3634 tests/examples/gl/gtk/fxtest/Makefile
3635 tests/examples/gl/gtk/switchvideooverlay/Makefile
3636 tests/examples/gl/qt/Makefile
3637 tests/examples/gl/sdl/Makefile
3638 tests/examples/gtk/Makefile
3639 tests/examples/mpegts/Makefile
3640 tests/examples/mxf/Makefile
3641 tests/examples/opencv/Makefile
3642 tests/examples/uvch264/Makefile
3643 tests/examples/waylandsink/Makefile
3644 tests/icles/Makefile
3645 ext/voamrwbenc/Makefile
3646 ext/voaacenc/Makefile
3647 ext/assrender/Makefile
3650 ext/chromaprint/Makefile
3654 ext/directfb/Makefile
3655 ext/wayland/Makefile
3664 ext/fluidsynth/Makefile
3671 ext/libde265/Makefile
3674 ext/modplug/Makefile
3675 ext/mpeg2enc/Makefile
3677 ext/musepack/Makefile
3682 ext/openexr/Makefile
3683 ext/openh264/Makefile
3684 ext/openjpeg/Makefile
3685 ext/openni2/Makefile
3689 ext/resindvd/Makefile
3692 ext/schroedinger/Makefile
3693 ext/smoothstreaming/Makefile
3694 ext/sndfile/Makefile
3695 ext/soundtouch/Makefile
3696 ext/spandsp/Makefile
3698 ext/teletextdec/Makefile
3701 ext/wildmidi/Makefile
3703 ext/vulkan/xcb/Makefile
3704 ext/vulkan/wayland/Makefile
3709 ext/webrtcdsp/Makefile
3713 docs/plugins/Makefile
3715 docs/version.entities
3717 pkgconfig/gstreamer-plugins-bad.pc
3718 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3719 pkgconfig/gstreamer-codecparsers.pc
3720 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3721 pkgconfig/gstreamer-insertbin.pc
3722 pkgconfig/gstreamer-insertbin-uninstalled.pc
3723 pkgconfig/gstreamer-gl.pc
3724 pkgconfig/gstreamer-gl-uninstalled.pc
3725 pkgconfig/gstreamer-mpegts.pc
3726 pkgconfig/gstreamer-mpegts-uninstalled.pc
3727 pkgconfig/gstreamer-player.pc
3728 pkgconfig/gstreamer-player-uninstalled.pc
3729 pkgconfig/gstreamer-wayland.pc
3730 pkgconfig/gstreamer-wayland-uninstalled.pc
3731 pkgconfig/gstreamer-bad-base.pc
3732 pkgconfig/gstreamer-bad-base-uninstalled.pc
3733 pkgconfig/gstreamer-bad-video.pc
3734 pkgconfig/gstreamer-bad-video-uninstalled.pc
3735 pkgconfig/gstreamer-bad-audio.pc
3736 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3743 AG_GST_OUTPUT_PLUGINS