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"
686 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
687 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
688 if test "x$HAVE_WGLEXT" = "xyes"; then
694 if test "x$NEED_GL" != "xno"; then
695 AG_GST_PKG_CHECK_MODULES(GL, gl)
696 if test "x$HAVE_GL" != "xyes"; then
697 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
700 if test "x$NEED_GLES2" != "xno"; then
701 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
702 if test "x$HAVE_GLES2" != "xyes"; then
703 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
705 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
707 if test "x$NEED_EGL" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(EGL, egl)
709 if test "x$HAVE_EGL" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
717 dnl imx6 / Vivante specifics
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 for Vivante DirectVIV support
871 AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no])
873 GST_GL_HAVE_VIV_DIRECTVIV=0
874 if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then
875 GST_GL_HAVE_VIV_DIRECTVIV=1
878 dnl check if we can include both GL and GLES2 at the same time
879 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
881 if test "x$HAVE_GLES3_H" == "xyes"; then
886 # pragma GCC diagnostic push
887 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
889 #ifndef GL_GLEXT_PROTOTYPES
890 #define GL_GLEXT_PROTOTYPES 1
893 # include <OpenGLES/ES2/gl.h>
894 # include <OpenGLES/ES2/glext.h>
897 # include <GLES3/gl3.h>
898 # include <GLES3/gl3ext.h>
900 # include <GLES2/gl2.h>
901 # include <GLES2/gl2ext.h>
905 # include <OpenGL/OpenGL.h>
906 # include <OpenGL/gl.h>
907 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
908 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
909 # include <OpenGL/gl3.h>
913 # if __WIN32__ || _WIN32
914 # include <GL/glext.h>
917 int main (int argc, char **argv) { return 0; }
919 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
920 save_CFLAGS="$CFLAGS"
921 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
922 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
923 #if !defined(GL_FALSE)
924 #error Failed to include GL headers
926 ]])],[ AC_MSG_RESULT(yes)
928 if test "x$NEED_GLES2" = "xyes"; then
929 if test "x$NEED_GL" = "xyes"; then
930 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
932 AC_MSG_WARN([Disabling Desktop GL support])
936 AC_MSG_WARN([Disabling GL|ES 2.0 support])
941 CFLAGS="$save_CFLAGS"
944 #dnl Check for OpenGL
948 if test "x$NEED_WGL" = "xyes"; then
949 AC_MSG_ERROR([WGL is not available on Android])
951 if test "x$NEED_GLX" = "xyes"; then
952 AC_MSG_ERROR([GLX is not available on Android])
954 if test "x$NEED_GL" = "xyes"; then
955 AC_MSG_ERROR([GL is not available on Android])
957 if test "x$NEED_X11" = "xyes"; then
958 AC_MSG_ERROR([X11 is not available on Android])
960 if test "x$NEED_COCOA" = "xyes"; then
961 AC_MSG_ERROR([Cocoa is not available on Android])
965 if test "x$HAVE_GLES2" = "xyes"; then
966 if test "x$NEED_GLES2" != "xno"; then
967 GL_LIBS="$GL_LIBS -lGLESv2"
973 if test "x$HAVE_EGL" = "xyes"; then
974 if test "x$NEED_EGL" != "xno"; then
975 GL_LIBS="$GL_LIBS -lEGL"
980 if test "x$USE_EGL" != "xyes"; then
981 AC_MSG_ERROR([Need EGL on Android])
984 if test "x$USE_GLES2" != "xyes"; then
985 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
988 HAVE_WINDOW_ANDROID=yes
990 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
991 if test "x$NEED_WGL" = "xyes"; then
992 AC_MSG_ERROR([WGL is not available on unix])
995 if test "x$HAVE_X11_XCB" = "xno"; then
996 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
997 AC_MSG_WARN([X or Wayland is required for OpenGL support])
1001 dnl check Desktop OpenGL
1002 if test "x$HAVE_GL" = "xyes"; then
1003 if test "x$NEED_GL" != "xno"; then
1004 GL_LIBS="$GL_LIBS -lGL"
1009 if test "x$HAVE_GLES2" = "xyes"; then
1010 if test "x$NEED_GLES2" != "xno"; then
1011 GL_LIBS="$GL_LIBS -lGLESv2"
1016 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1017 if test "x$NEED_X11" != "xno"; then
1018 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1019 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1024 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1025 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1026 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1028 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1029 HAVE_WINDOW_WAYLAND=yes
1030 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1031 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1036 if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1037 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1038 AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1040 HAVE_WINDOW_VIV_FB=yes
1042 GL_CFLAGS="$GL_CFLAGS"
1046 if test "x$HAVE_EGL_RPI" = "xyes"; then
1047 if test "x$NEED_DISPMANX" != "xno"; then
1048 HAVE_WINDOW_DISPMANX=yes
1054 if test "x$HAVE_EGL" = "xno"; then
1055 if test "x$HAVE_GL" = "xno"; then
1056 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1059 if test "x$NEED_EGL" != "xno"; then
1060 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
1061 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1062 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1069 if test "x$HAVE_IOS" = "xyes"; then
1070 if test "x$NEED_WGL" = "xyes"; then
1071 AC_MSG_ERROR([WGL is not available on iOS])
1073 if test "x$NEED_GLX" = "xyes"; then
1074 AC_MSG_ERROR([GLX is not available on iOS])
1076 if test "x$NEED_GL" = "xyes"; then
1077 AC_MSG_ERROR([GL is not available on iOS])
1079 if test "x$NEED_X11" = "xyes"; then
1080 AC_MSG_ERROR([X11 is not available on iOS])
1082 if test "x$NEED_COCOA" = "xyes"; then
1083 AC_MSG_ERROR([Cocoa is not available on iOS])
1085 if test "x$NEED_EGL" = "xyes"; then
1086 AC_MSG_ERROR([EGL is not available on iOS])
1089 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1090 GL_CFLAGS="$GL_CFLAGS"
1093 HAVE_WINDOW_EAGL=yes
1095 ac_cv_type_GLsizeiptr=yes
1096 ac_cv_type_GLintptr=yes
1097 ac_cv_type_GLchar=yes
1099 dnl Only osx supports cocoa.
1100 if test "x$NEED_WGL" = "xyes"; then
1101 AC_MSG_ERROR([WGL is not available on Mac OS X])
1104 if test "x$NEED_COCOA" != "xno"; then
1105 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1106 GL_CFLAGS="$GL_CFLAGS"
1108 HAVE_WINDOW_COCOA=yes
1112 if test "x$USE_GLX" = "xyes"; then
1113 if test "x$HAVE_X11_XCB" = "xyes"; then
1114 if test "x$NEED_X11" != "xno"; then
1115 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1116 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1121 if test "x$HAVE_GL" = "xyes"; then
1122 if test "x$NEED_GL" != "xno"; then
1123 GL_LIBS="$GL_LIBS -lGL"
1129 if test "x$HAVE_EGL" = "xyes"; then
1130 if test "x$NEED_EGL" != "xno"; then
1131 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1132 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1133 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1140 if test "x$HAVE_GLES2" = "xyes"; then
1141 if test "x$NEED_GLES2" != "xno"; then
1142 GL_LIBS="$GL_LIBS -lGLESv2"
1149 if test "x$NEED_GLX" = "xyes"; then
1150 AC_MSG_ERROR([GLX is not available on Windows])
1152 if test "x$NEED_GLES2" = "xyes"; then
1153 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1156 if test "x$HAVE_GL" = "xyes"; then
1157 if test "x$NEED_GL" != "xno"; then
1158 if test "x$HAVE_WGL" = "xyes"; then
1159 if test "$NEED_WGL" != "xno"; then
1160 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1161 HAVE_WINDOW_WIN32=yes
1170 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1181 GST_GL_HAVE_OPENGL=0
1185 if test "x$USE_OPENGL" = "xyes"; then
1186 GL_APIS="gl $GL_APIS"
1187 GST_GL_HAVE_OPENGL=1
1189 if test "x$USE_GLES2" = "xyes"; then
1190 GL_APIS="gles2 $GL_APIS"
1192 if test "x$HAVE_GLES3_H" = "xyes"; then
1197 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1198 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1199 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1200 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1205 GST_GL_HAVE_WINDOW_X11=0
1206 GST_GL_HAVE_WINDOW_COCOA=0
1207 GST_GL_HAVE_WINDOW_WIN32=0
1208 GST_GL_HAVE_WINDOW_WAYLAND=0
1209 GST_GL_HAVE_WINDOW_ANDROID=0
1210 GST_GL_HAVE_WINDOW_DISPMANX=0
1211 GST_GL_HAVE_WINDOW_EAGL=0
1212 GST_GL_HAVE_WINDOW_VIV_FB=0
1214 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1215 GL_WINDOWS="x11 $GL_WINDOWS"
1216 GST_GL_HAVE_WINDOW_X11=1
1218 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1219 GL_WINDOWS="cocoa $GL_WINDOWS"
1220 GST_GL_HAVE_WINDOW_COCOA=1
1222 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1223 GL_WINDOWS="win32 $GL_WINDOWS"
1224 GST_GL_HAVE_WINDOW_WIN32=1
1226 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1227 GL_WINDOWS="wayland $GL_WINDOWS"
1228 GST_GL_HAVE_WINDOW_WAYLAND=1
1230 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1231 GL_WINDOWS="android $GL_WINDOWS"
1232 GST_GL_HAVE_WINDOW_ANDROID=1
1234 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1235 GL_WINDOWS="dispmanx $GL_WINDOWS"
1236 GST_GL_HAVE_WINDOW_DISPMANX=1
1238 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1239 GL_WINDOWS="eagl $GL_WINDOWS"
1240 GST_GL_HAVE_WINDOW_EAGL=1
1242 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1243 GL_WINDOWS="viv-fb $GL_WINDOWS"
1244 GST_GL_HAVE_WINDOW_VIV_FB=1
1247 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1248 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1249 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1250 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1251 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1252 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1253 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1254 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1255 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1260 GST_GL_HAVE_PLATFORM_EGL=0
1261 GST_GL_HAVE_PLATFORM_GLX=0
1262 GST_GL_HAVE_PLATFORM_WGL=0
1263 GST_GL_HAVE_PLATFORM_CGL=0
1264 GST_GL_HAVE_PLATFORM_EAGL=0
1266 if test "x$USE_EGL" = "xyes"; then
1267 GL_PLATFORMS="egl $GL_PLATFORMS"
1268 GST_GL_HAVE_PLATFORM_EGL=1
1270 if test "x$USE_GLX" = "xyes"; then
1271 GL_PLATFORMS="glx $GL_PLATFORMS"
1272 GST_GL_HAVE_PLATFORM_GLX=1
1274 if test "x$USE_WGL" = "xyes"; then
1275 GL_PLATFORMS="wgl $GL_PLATFORMS"
1276 GST_GL_HAVE_PLATFORM_WGL=1
1278 if test "x$USE_COCOA" = "xyes"; then
1279 GL_PLATFORMS="cgl $GL_PLATFORMS"
1280 GST_GL_HAVE_PLATFORM_CGL=1
1282 if test "x$USE_EAGL" = "xyes"; then
1283 GL_PLATFORMS="eagl $GL_PLATFORMS"
1284 GST_GL_HAVE_PLATFORM_EAGL=1
1287 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1288 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1289 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1290 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1291 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1292 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1295 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1296 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1297 #define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV
1300 dnl Check for no platforms/window systems
1301 if test "x$GL_APIS" = "x"; then
1302 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1304 if test "x$GL_PLATFORMS" = "x"; then
1305 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1307 if test "x$GL_WINDOWS" = "x"; then
1308 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1311 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1326 HAVE_WINDOW_WIN32=no
1327 HAVE_WINDOW_DISPMANX=no
1328 HAVE_WINDOW_WAYLAND=no
1329 HAVE_WINDOW_ANDROID=no
1330 HAVE_WINDOW_COCOA=no
1332 HAVE_WINDOW_VIV_FB=no
1336 AC_SUBST(GL_PLATFORMS)
1337 AC_SUBST(GL_WINDOWS)
1340 AC_SUBST(GL_OBJCFLAGS)
1341 AC_SUBST(USE_OPENGL)
1344 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1345 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1346 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1347 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1348 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1349 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1350 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1351 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1353 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1354 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1355 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1356 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1357 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1358 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1359 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1360 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1361 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1363 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1365 dnl Check for some types that are not always present
1367 if test "x$USE_GLES2" = "xyes"; then
1368 GL_INCLUDES="$GL_INCLUDES
1369 #ifndef GL_GLEXT_PROTOTYPES
1370 #define GL_GLEXT_PROTOTYPES 1
1373 # include <OpenGLES/ES2/gl.h>
1374 # include <OpenGLES/ES2/glext.h>
1376 # if $GST_GL_HAVE_GLES3
1377 # include <GLES3/gl3.h>
1378 # include <GLES3/gl3ext.h>
1380 # include <GLES2/gl2.h>
1381 # include <GLES2/gl2ext.h>
1387 if test "x$USE_OPENGL" = "xyes"; then
1388 GL_INCLUDES="$GL_INCLUDES
1390 # include <OpenGL/OpenGL.h>
1391 # include <OpenGL/gl.h>
1394 # if __WIN32__ || _WIN32
1395 # include <GL/glext.h>
1401 GST_GL_HAVE_GLEGLIMAGEOES=0
1402 GST_GL_HAVE_GLCHAR=0
1403 GST_GL_HAVE_GLSIZEIPTR=0
1404 GST_GL_HAVE_GLINTPTR=0
1405 GST_GL_HAVE_GLSYNC=0
1406 GST_GL_HAVE_GLUINT64=0
1407 GST_GL_HAVE_GLINT64=0
1408 GST_GL_HAVE_EGLATTRIB=0
1411 CFLAGS="$GL_CFLAGS $CFLAGS"
1413 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1414 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1415 GST_GL_HAVE_GLEGLIMAGEOES=1
1418 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1419 if test "x$ac_cv_type_GLchar" = "xyes"; then
1420 GST_GL_HAVE_GLCHAR=1
1423 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1424 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1425 GST_GL_HAVE_GLSIZEIPTR=1
1428 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1429 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1430 GST_GL_HAVE_GLINTPTR=1
1433 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1434 if test "x$ac_cv_type_GLsync" = "xyes"; then
1435 GST_GL_HAVE_GLSYNC=1
1438 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1439 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1440 GST_GL_HAVE_GLUINT64=1
1443 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1444 if test "x$ac_cv_type_GLint64" = "xyes"; then
1445 GST_GL_HAVE_GLINT64=1
1448 if test "x$USE_EGL" = "xyes"; then
1449 EGL_INCLUDES="$GL_INCLUDES
1450 #include <EGL/egl.h>
1451 #include <EGL/eglext.h>
1453 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1454 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1455 GST_GL_HAVE_EGLATTRIB=1
1461 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1462 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1463 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1464 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1465 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1466 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1467 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1468 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1469 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1472 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1473 outfile=gstglconfig.h-tmp
1474 cat > $outfile <<\_______EOF
1477 * This is a generated file. Please modify `configure.ac'
1480 #ifndef __GST_GL_CONFIG_H__
1481 #define __GST_GL_CONFIG_H__
1483 #include <gst/gst.h>
1489 cat >>$outfile <<_______EOF
1493 cat >>$outfile <<_______EOF
1497 #endif /* __GST_GL_CONFIG_H__ */
1501 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1502 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1505 mv $outfile gst-libs/gst/gl/gstglconfig.h
1508 gl_config_defines='$GL_CONFIG_DEFINES'
1511 dnl libpng is optional
1512 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1513 if test "x$HAVE_PNG" = "xyes"; then
1514 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1517 AC_SUBST(LIBPNG_LIBS)
1518 AC_SUBST(LIBPNG_CFLAGS)
1519 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1521 dnl libjpeg is optional
1522 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1524 if test x$with_jpeg_mmx != x; then
1525 LIBS="$LIBS -L$with_jpeg_mmx"
1527 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1528 JPEG_LIBS="$LIBS -ljpeg-mmx"
1530 if test x$HAVE_JPEG != xyes; then
1532 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1535 if test x$HAVE_JPEG = xyes; then
1536 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1538 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1543 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1546 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1547 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1549 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1550 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1551 VULKAN_CONFIG_DEFINES="
1552 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1553 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1555 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1556 outfile=vkconfig.h-tmp
1557 cat > $outfile <<\_______EOF
1560 * This is a generated file. Please modify `configure.ac'
1563 #ifndef __GST_VULKAN_CONFIG_H__
1564 #define __GST_VULKAN_CONFIG_H__
1566 #include <gst/gst.h>
1572 cat >>$outfile <<_______EOF
1573 $vulkan_config_defines
1576 cat >>$outfile <<_______EOF
1580 #endif /* __GST_VULKAN_CONFIG_H__ */
1584 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1585 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1588 mv $outfile ext/vulkan/vkconfig.h
1591 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1594 dnl *** sys plug-ins ***
1597 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1598 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1599 HAVE_DIRECTSOUND="no"
1600 save_CFLAGS="$CFLAGS"
1601 save_LDFLAGS="$LDFLAGS"
1603 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1604 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1605 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1606 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1607 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1608 #include <windows.h>
1611 #include <mmsystem.h>
1613 DXGetErrorString9 (0);
1614 DirectSoundCreate(NULL, NULL, NULL);
1616 [HAVE_DIRECTSOUND="yes"],
1617 [HAVE_DIRECTSOUND="no"])
1618 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1620 LDFLAGS=$save_LDFLAGS
1623 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1624 dnl this is much more than we want
1625 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1626 AC_SUBST(DIRECTX_CFLAGS)
1627 AC_SUBST(DIRECTX_LDFLAGS)
1628 AC_SUBST(DIRECTSOUND_LIBS)
1630 AC_SUBST(HAVE_DIRECTSOUND)
1634 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1635 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1637 save_CFLAGS="$CFLAGS"
1638 save_LDFLAGS="$LDFLAGS"
1640 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1641 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1642 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1643 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1644 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1645 #include <windows.h>
1647 #include <mmsystem.h>
1648 #include <mmdeviceapi.h>
1654 hr = CoInitialize(NULL);
1656 printf("CoInitialize failed: hr = 0x%08x", hr);
1661 // result = do_everything(argc, argv);
1667 [HAVE_WASAPI="yes"],
1669 AC_MSG_RESULT($HAVE_WASAPI)
1671 LDFLAGS=$save_LDFLAGS
1674 if test "x$HAVE_WASAPI" = "xyes"; then
1675 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1676 AC_SUBST(WASAPI_LIBS)
1678 AC_SUBST(HAVE_WASAPI)
1682 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1683 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1685 save_CFLAGS="$CFLAGS"
1686 save_LDFLAGS="$LDFLAGS"
1688 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1689 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1690 LIBS="$LIBS -ld3d9 -lgdi32"
1691 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1692 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1693 #include <windows.h>
1696 Direct3DCreate9(D3D_SDK_VERSION);
1698 [HAVE_DIRECT3D="yes"],
1699 [HAVE_DIRECT3D="no"])
1700 AC_MSG_RESULT($HAVE_DIRECT3D)
1702 LDFLAGS=$save_LDFLAGS
1705 if test "x$HAVE_DIRECT3D" = "xyes"; then
1706 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1707 AC_SUBST(DIRECT3D_LIBS)
1709 AC_SUBST(HAVE_DIRECT3D)
1713 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1714 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1715 HAVE_WINSCREENCAP="no"
1716 save_CFLAGS="$CFLAGS"
1717 save_LDFLAGS="$LDFLAGS"
1719 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1720 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1721 LIBS="$LIBS -ld3d9 -lgdi32"
1722 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1723 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1724 #include <windows.h>
1727 Direct3DCreate9(D3D_SDK_VERSION);
1729 [HAVE_WINSCREENCAP="yes"],
1730 [HAVE_WINSCREENCAP="no"])
1731 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1733 LDFLAGS=$save_LDFLAGS
1736 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1737 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1738 AC_SUBST(WINSCREENCAP_LIBS)
1740 AC_SUBST(HAVE_WINSCREENCAP)
1744 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1745 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1747 save_CFLAGS="$CFLAGS"
1748 save_LDFLAGS="$LDFLAGS"
1750 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1751 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1752 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1753 AC_MSG_CHECKING(for Winks LDFLAGS)
1754 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1755 #include <windows.h>
1760 IGraphBuilder *pGraph = NULL;
1761 HRESULT hr = CoInitialize(NULL);
1762 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1763 &IID_IGraphBuilder, (void **)&pGraph);
1770 AC_MSG_RESULT($HAVE_WINKS)
1772 LDFLAGS=$save_LDFLAGS
1775 if test "x$HAVE_WINKS" = "xyes"; then
1776 dnl this is much more than we want
1777 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1778 AC_SUBST(DIRECTX_CFLAGS)
1779 AC_SUBST(DIRECTX_LDFLAGS)
1780 AC_SUBST(WINKS_LIBS)
1782 AC_SUBST(HAVE_WINKS)
1785 dnl *** Android Media ***
1786 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1787 HAVE_ANDROID_MEDIA="no"
1788 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1791 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1794 HAVE_ANDROID_MEDIA="no"
1799 dnl *** AppleMedia (OS X and iOS) ***
1800 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1801 HAVE_APPLE_MEDIA="no"
1802 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1803 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1804 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1805 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1806 if test "x$HAVE_IOS" = "xno"; then
1807 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1811 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1816 HAVE_APPLE_MEDIA="no"
1821 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1822 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1823 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1824 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1825 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1827 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1836 dnl *** OS/X AVCVideoServices ***
1837 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1839 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1841 save_CPPFLAGS="$CPPFLAGS"
1842 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1844 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1845 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1847 CPPFLAGS=$save_CPPFLAGS
1850 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1859 dnl check for shm_open (for shm plugin)
1860 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1861 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1862 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1864 *-darwin* | *-macos10*)
1865 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1872 AC_CHECK_LIB([rt], [shm_open],
1873 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1874 #include <sys/socket.h>
1877 AC_SUBST(SHM_LIBS, "-lrt")
1885 dnl check for Video CD
1886 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1887 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1888 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1891 dnl check for OpenSL ES
1892 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1893 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1894 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1897 dnl *** UVC H264 ***
1898 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1899 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1900 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1901 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1902 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1905 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1906 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1907 HAVE_LIBUSB="yes" ],
1909 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1910 test "x$HAVE_GUDEV" = "xyes" && \
1911 test "x$HAVE_LIBUSB" = "xyes"; then
1917 AC_SUBST(LIBUDEV_CFLAGS)
1918 AC_SUBST(LIBUDEV_LIBS)
1919 AC_SUBST(LIBUSB_CFLAGS)
1920 AC_SUBST(LIBUSB_LIBS)
1923 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1924 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1925 AC_ARG_WITH([cuda-prefix],
1926 AS_HELP_STRING([--with-cuda-prefix],
1927 [Use the provided prefix for detecting the cuda installation]),
1928 [AS_IF([test "x$with_cuda_prefix" != "x"],
1929 [CUDA_PREFIX="$with_cuda_prefix"])],
1933 if test "x$CUDA_PREFIX" != "x"; then
1934 dnl only override if not already set
1935 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1936 dnl this is an educated guess, user can always override these
1937 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1938 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1941 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1942 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1943 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1944 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1949 save_CPPFLAGS="$CPPFLAGS"
1950 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1951 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1952 AC_MSG_WARN([Could not find cuda.h]))
1953 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1954 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1955 CPPFLAGS=$save_CPPFLAGS
1957 dnl libcuda and libcudart libraries
1959 LIBS="$CUDA_LIBS $save_LIBS"
1960 HAVE_CUDART_LIB="no"
1961 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1962 AC_MSG_WARN([Could not find cudart library])])
1964 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1965 AC_MSG_WARN([Could not find cuda library])])
1968 dnl nvEncodeAPI.h header
1969 HAVE_NVENCODEAPI_H=no
1970 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1971 save_CPPFLAGS="$CPPFLAGS"
1972 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1973 AC_CHECK_HEADER([nvEncodeAPI.h], [
1974 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1975 #if NVENCAPI_MAJOR_VERSION < 5
1976 #error "Need nvEncodeAPI.h >= 5.0"
1979 HAVE_NVENCODEAPI_H=yes
1981 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1984 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1985 AC_SUBST(NVENCODE_CFLAGS)
1986 CPPFLAGS="$save_CPPFLAGS"
1988 dnl libnvnidia-encode library
1989 HAVE_NVENCODE_LIB=no
1990 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1992 LIBS="$NVENCODE_LIBS $saved_LIBS"
1993 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1994 AC_MSG_WARN([Could not find library nvidia-encode]))
1995 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1996 AC_SUBST(NVENCODE_LIBS)
2000 if test "x$HAVE_CUDA_H" = "xyes" \
2001 -a "x$HAVE_CUDART_H" = "xyes" \
2002 -a "x$HAVE_CUDA_LIB" = "xyes" \
2003 -a "x$HAVE_CUDART_LIB" = "xyes" \
2004 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
2005 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
2007 if test x"$USE_OPENGL" = x"yes"; then
2008 dnl cuda-gl interop header
2009 save_CPPFLAGS="$CPPFLAGS"
2010 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2011 AC_CHECK_HEADER([cuda_gl_interop.h], [
2012 USE_NVENC_GST_GL="yes"
2013 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2015 CPPFLAGS="$save_CPPFLAGS"
2021 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2023 dnl check for tinyalsa
2024 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2025 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2026 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2029 dnl check for intel mediasdk
2030 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2031 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2032 AC_ARG_WITH([msdk-prefix],
2033 AS_HELP_STRING([--with-msdk-prefix],
2034 [Use the provided prefix for detecting the Intel MediaSDK]),
2035 [AS_IF([test "x$with_msdk_prefix" != "x"],
2036 [MSDK_PREFIX="$with_msdk_prefix"])],
2037 [AS_IF([test "x$MFX_HOME" != "x"],
2038 [MSDK_PREFIX="$MFX_HOME"],
2039 [MSDK_PREFIX="/opt/intel/media"])])
2040 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2041 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2042 AC_SUBST(MSDK_CFLAGS)
2045 save_CPPFLAGS="$CPPFLAGS"
2046 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2047 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2048 CPPFLAGS="$save_CPPFLAGS"
2051 LIBS="$MSDK_LIBS $LIBS"
2053 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2057 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2059 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2060 -a "x$HAVE_MFX_LIB" = "xyes" \
2061 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2067 AM_CONDITIONAL(USE_MSDK_LIBVA,
2068 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2070 dnl *** ext plug-ins ***
2071 dnl keep this list sorted alphabetically !
2073 if test "x$BUILD_EXTERNAL" = "xyes"; then
2075 dnl *** assrender ***
2076 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2077 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2078 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2079 HAVE_ASSRENDER="yes" ], [
2083 AC_SUBST(ASSRENDER_CFLAGS)
2084 AC_SUBST(ASSRENDER_LIBS)
2086 dnl *** vo-amrwbenc ***
2087 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2088 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2089 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2092 dnl *** vo-aacenc ***
2093 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2094 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2095 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2099 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2100 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2101 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2104 AC_SUBST(BS2B_CFLAGS)
2109 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2110 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2113 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2114 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2115 AC_MSG_RESULT($HAVE_BZ2)
2117 if test "x$HAVE_BZ2" = "xyes"; then
2125 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2126 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2127 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2130 # AC_SUBST(CAIRO_CFLAGS)
2131 # AC_SUBST(CAIRO_LIBS)
2134 dnl *** chromaprint ***
2135 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2136 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2137 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2138 HAVE_CHROMAPRINT="no"
2140 AC_SUBST(CHROMAPRINT_CFLAGS)
2141 AC_SUBST(CHROMAPRINT_LIBS)
2145 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2146 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2147 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2149 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2150 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2152 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2153 [[#ifdef HAVE_SYS_TYPES_H
2154 # include <sys/types.h>
2156 #ifdef HAVE_NETINET_IN_H
2157 # include <netinet/in.h>
2160 AC_MSG_CHECKING([for socket support needed by curlsink])
2161 AC_MSG_RESULT($HAVE_CURL)
2165 AC_SUBST(CURL_CFLAGS)
2167 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2169 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2173 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2174 AC_SUBST(SSH2_CFLAGS)
2176 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2179 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2180 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2181 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2182 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2184 AC_SUBST(LIBXML2_CFLAGS)
2185 AC_SUBST(LIBXML2_LIBS)
2189 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2190 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2191 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2192 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2201 AC_SUBST(LIBDC1394_CFLAGS)
2202 AC_SUBST(LIBDC1394_LIBS)
2205 dnl *** decklink ***
2206 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2207 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2214 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2215 AC_CHECK_LIB(dl, dlopen,
2219 DECKLINK_LIBS="-lpthread -ldl"
2224 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2225 AC_CHECK_LIB(dl, dlopen,
2229 DECKLINK_LIBS="-lpthread -ldl"
2230 HAVE_DECKLINK_OSX=yes
2239 AC_SUBST(DECKLINK_CXXFLAGS)
2240 AC_SUBST(DECKLINK_LIBS)
2242 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2244 dnl **** DirectFB ****
2245 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2246 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2247 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2252 dnl **** Wayland ****
2253 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2254 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2255 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2256 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2257 if test "x$wayland_scanner" != "x"; then
2259 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2261 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2270 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2271 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2272 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2273 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2275 AC_SUBST(WEBP_CFLAGS)
2280 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2281 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2282 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2283 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2288 AC_SUBST(DAALA_CFLAGS)
2289 AC_SUBST(DAALA_LIBS)
2294 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2295 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2297 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2298 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2299 if test $HAVE_DTS = "no"; then
2300 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2301 [ DTS_LIBS="-ldts_pic $LIBM"
2302 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2308 dnl *** resindvd ***
2309 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2310 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2311 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2316 dnl **** Free AAC Encoder (FAAC) ****
2317 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2318 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2319 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2320 FAAC_LIBS="-lfaac $LIBM")
2324 dnl **** Free AAC Decoder (FAAD2) ****
2325 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2326 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2327 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2328 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2329 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2331 #elif !defined(LATM)
2332 #error Not faad2 >= 2.7
2338 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2348 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2349 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2350 if test "x$HAVE_FBDEV" != "xyes"; then
2351 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2356 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2357 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2358 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2360 HAVE_FDK_AAC_0_1_4="yes"
2361 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2363 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2368 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2369 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2370 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2371 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2373 AC_SUBST(FLITE_CFLAGS)
2374 AC_SUBST(FLITE_LIBS)
2378 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2379 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2380 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2381 if test $HAVE_GSM != "yes"; then
2382 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2383 if test $HAVE_GSM = "yes"; then
2384 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2390 dnl *** fluidSynth ***
2391 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2392 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2393 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2394 HAVE_FLUIDSYNTH="no"
2399 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2400 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2401 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2404 AC_SUBST(KATE_CFLAGS)
2406 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2409 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2415 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2416 AC_SUBST(TIGER_CFLAGS)
2417 AC_SUBST(TIGER_LIBS)
2418 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2421 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2422 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2423 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2424 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2428 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2429 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2430 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2432 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2433 if test $HAVE_LRDF = "yes"; then
2434 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2437 AC_SUBST(LRDF_CFLAGS)
2441 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2442 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2443 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2445 HAVE_LILV_0_22="yes"
2446 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2448 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2450 AC_SUBST(LILV_CFLAGS)
2454 dnl *** libde265 ***
2455 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2456 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2457 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2458 AC_SUBST(LIBDE265_CFLAGS)
2459 AC_SUBST(LIBDE265_LIBS)
2463 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2464 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2465 dnl check with pkg-config first
2466 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2470 AC_SUBST(LIBMMS_LIBS)
2474 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2475 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2476 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2477 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2480 AC_SUBST(SRTP_CFLAGS)
2484 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2485 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2486 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2488 AC_SUBST(DTLS_CFLAGS)
2496 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2497 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2498 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2499 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2508 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2509 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2510 if test "x$HAVE_CXX" != "xyes"; then
2511 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2514 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2516 AC_SUBST(MODPLUG_CFLAGS)
2517 AC_SUBST(MODPLUG_LIBS)
2520 dnl *** mjpegtools version info ***
2521 dnl some may prefer older version (given quirks above)
2522 dnl hm, no version info seems available within mjpegtools headers
2523 dnl and API really moves along
2525 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2526 mjpegtools_api=10601
2528 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2529 mjpegtools_api=10800
2531 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2532 mjpegtools_api=20000
2534 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2535 dnl logging API changed in release candidates
2536 OLD_CFLAGS="$CFLAGS"
2538 CFLAGS="$MJPEG_CFLAGS"
2539 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2540 AC_CHECK_FUNC(mjpeg_loglev_t, [
2541 mjpegtools_api=10903
2543 mjpegtools_api=10900
2545 CFLAGS="$OLD_CFLAGS"
2553 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2554 [mjpegtools API evolution])
2556 dnl *** mpeg2enc ***
2557 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2558 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2560 dnl we require a c++ compiler for this one
2561 if [ test x$HAVE_CXX = xyes ]; then
2562 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2563 dnl since many distros include mjpegtools specifically without mplex
2564 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2565 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2566 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2568 dnl switch over to c++ to test things
2570 OLD_CPPFLAGS="$CPPFLAGS"
2572 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2573 CPPFLAGS="$CPPFLAGS_GOOD -I."
2575 mpeg2enc_headers_ok=no
2576 AC_CHECK_HEADER([mpeg2encoder.hh], [
2577 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2579 LIBS="$LIBS $MPEG2ENC_LIBS"
2580 AC_MSG_CHECKING([for valid mpeg2enc objects])
2581 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2582 #include <mpeg2encoder.hh>
2583 #include <mpeg2encoptions.hh>
2589 MPEG2EncOptions *options = new MPEG2EncOptions ();
2590 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2595 dnl so far so good, let's check more things:
2596 dnl mjpegtools-1.8.0 does not install the required
2597 dnl mpeg2syntaxcodes.h header by default, and a new release
2598 dnl is not in sight, so check for this oversight in case
2599 dnl distros or folks have fixed this themselves
2600 if test "$mjpegtools_api" -ge "10800"; then
2601 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2602 mpeg2enc_headers_ok=yes
2604 mpeg2enc_headers_ok=no
2607 mpeg2enc_headers_ok=yes
2609 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2612 CPPFLAGS="$CPPFLAGS_GOOD"
2613 AC_SUBST(MPEG2ENC_CFLAGS)
2614 AC_SUBST(MPEG2ENC_LIBS)
2621 CPPFLAGS="$OLD_CPPFLAGS"
2630 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2631 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2633 dnl we require a c++ compiler for this one
2634 if [ test x$HAVE_CXX = xyes ]; then
2635 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2636 dnl since many distros include mjpegtools specifically without mplex
2637 dnl and mpeg2enc, we check for mplex on its own, too.
2638 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2639 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2640 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2642 dnl switch over to c++ to test things
2644 OLD_CPPFLAGS="$CPPFLAGS"
2646 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2647 CPPFLAGS="$CPPFLAGS_GOOD -I."
2648 AC_CHECK_HEADER(interact.hpp, [
2649 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2651 LIBS="$LIBS $MPLEX_LIBS"
2652 OLD_LDFLAGS="$LDFLAGS"
2653 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2654 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2655 dnl don't want this here
2656 AC_MSG_CHECKING([for valid mplex objects])
2657 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2659 #include <interact.hpp>
2660 #include <outputstrm.hpp>
2661 #include <multiplexor.hpp>
2666 class TestOutputStream : public OutputStream {
2668 TestOutputStream () : OutputStream () { }
2669 void Write (uint8_t *a, unsigned int b) { }
2670 void NextSegment () { }
2671 uint64_t SegmentSize () { }
2675 MultiplexJob *job = new MultiplexJob ();
2676 vector<IBitStream *> inputs;
2677 job->SetupInputStreams (inputs);
2678 TestOutputStream *out = new TestOutputStream ();
2679 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2684 CPPFLAGS="$CPPFLAGS_GOOD"
2685 AC_SUBST(MPLEX_CFLAGS)
2686 AC_SUBST(MPLEX_LIBS)
2687 AC_SUBST(MPLEX_LDFLAGS)
2689 ],[AC_MSG_RESULT(no)],[])
2691 LDFLAGS="$OLD_LDFLAGS"
2693 CPPFLAGS="$OLD_CPPFLAGS"
2699 dnl *** musepack ***
2700 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2701 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2702 AC_CHECK_HEADER([mpc/mpcdec.h], [
2704 MUSEPACK_LIBS="-lmpcdec"
2705 AC_SUBST(MUSEPACK_LIBS)
2706 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2708 MUSEPACK_LIBS="-lmpcdec"
2709 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2710 AC_SUBST(MUSEPACK_LIBS)
2711 ], [HAVE_MUSEPACK="no"])])
2715 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2716 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2717 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2720 AC_SUBST(NEON_CFLAGS)
2725 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2726 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2727 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2730 AC_SUBST(OFA_CFLAGS)
2735 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2736 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2737 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2740 AC_SUBST(OPENAL_CFLAGS)
2741 AC_SUBST(OPENAL_LIBS)
2745 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2746 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2747 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2748 dnl and don't want the build to break when a new opencv version comes out.
2749 dnl Need to adjust this upwards once we know that our code compiles fine with
2750 dnl a new version and the no-backward-compatibility define. (There doesn't
2751 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2753 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2756 OLD_CPPFLAGS=$CPPFLAGS
2757 CPPFLAGS=$OPENCV_CFLAGS
2758 something_not_found=no
2759 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2760 opencv2/core/version.hpp \
2761 opencv2/highgui/highgui_c.h \
2762 opencv2/imgproc/imgproc.hpp \
2763 opencv2/imgproc/imgproc_c.h \
2764 opencv2/objdetect/objdetect.hpp \
2765 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2767 dnl Only required for OpenCV >= 3, we have compat code for older versions
2768 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2769 dnl check opencv_contrib headers (not always present in opencv distributions)
2770 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2771 [NOT_A_PROBLEM=yes])
2773 CPPFLAGS=$OLD_CPPFLAGS
2776 if test $something_not_found = "yes"; then
2777 AC_MSG_RESULT([not all opencv2 headers were found])
2785 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2786 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2787 AC_SUBST(OPENCV_PREFIX)
2788 AC_SUBST(OPENCV_CFLAGS)
2789 AC_SUBST(OPENCV_LIBS)
2790 dnl the OpenCV prefix is used at runtime for some object properties, and also
2791 dnl used here to detect which directory is the correct one. For the second
2792 dnl case, make sure the right sysroot is used, ensuring correct behavior
2793 dnl during cross compilation.
2794 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2795 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2797 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2802 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2803 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2804 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2807 dnl *** openh264 ***
2808 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2809 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2810 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2813 dnl *** OpenJPEG ***
2814 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2815 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2817 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2818 if test x"$HAVE_OPENJPEG" = x"yes"; then
2819 dnl minor API changes in v2.1
2820 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2821 if test x"$HAVE_OPENJPEG" = x"yes"; then
2822 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2827 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2828 HAVE_OPENJPEG="yes",
2829 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2831 if test x"$HAVE_OPENJPEG" = x"yes"; then
2832 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2835 AC_SUBST(OPENJPEG_CFLAGS)
2836 AC_SUBST(OPENJPEG_LIBS)
2840 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2841 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2842 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2843 AC_SUBST(OPENNI2_CFLAGS)
2844 AC_SUBST(OPENNI2_LIBS)
2848 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2849 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2850 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2851 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2856 AC_SUBST(OPUS_CFLAGS)
2861 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2862 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2863 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2867 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2868 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2871 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2878 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2879 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2880 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2881 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2886 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2888 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2889 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2890 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2891 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2893 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2895 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2896 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2897 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2898 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2900 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2902 if test "x$GDK_WINDOWING" = "xyes"; then
2903 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2910 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2913 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2914 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2915 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2916 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2917 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2918 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2919 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2920 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2921 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2922 AC_MSG_WARN([One of the required qt build programs was not found])
2926 HAVE_QT_WINDOWING="no"
2927 QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2928 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2929 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2930 QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2931 HAVE_QT_QPA_HEADER="yes"
2932 ], [AC_MSG_NOTICE([Cannot find QPA])])
2933 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2934 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2935 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2936 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2937 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2938 HAVE_QT_WINDOWING="yes"
2939 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2941 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
2942 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2943 AC_DEFINE([HAVE_QT_WAYLAND], [],
2944 [Define if Qt Wayland integration is installed])
2945 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2946 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2947 HAVE_QT_WINDOWING="yes"
2948 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2950 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2951 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2952 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2953 # c++ on android requires a standard library and there are multiple
2954 # choices. cerbero provides a pkg-config file the describes a choice
2955 # so try to use that. Outside cerbero one has to pass these flags
2956 # manually for the library one is using
2957 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2958 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2959 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2961 AC_MSG_NOTICE([Could not find Standard C++ library])])
2962 AC_DEFINE([HAVE_QT_EGLFS], [],
2963 [Define if Qt eglfs integration is installed])
2964 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2965 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2966 HAVE_QT_WINDOWING="yes"
2967 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2969 AC_DEFINE([HAVE_QT_EGLFS], [],
2970 [Define if Qt eglfs integration is installed])
2971 HAVE_QT_WINDOWING="yes"
2974 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2975 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2976 AC_DEFINE([HAVE_QT_MAC], [],
2977 [Define if Qt Mac integration is installed])
2978 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2979 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2980 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2981 HAVE_QT_WINDOWING="yes"
2982 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2984 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2985 if test "x$HAVE_IOS" = "xyes"; then
2986 # iOS doesn't have its own extras package so if we have the core
2987 # modules we are good to go
2988 AC_DEFINE([HAVE_QT_IOS], [],
2989 [Define if Qt iOS integration is installed])
2990 HAVE_QT_WINDOWING="yes"
2993 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2994 AC_MSG_WARN([Could not find any Qt Windowing integration])
2997 AC_SUBST([QT_CFLAGS])
3006 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
3007 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
3008 AC_CHECK_HEADER(vulkan/vulkan.h, [
3009 AC_CHECK_LIB(vulkan, vkCreateDevice, [
3010 VULKAN_LIBS="-lvulkan"
3011 AC_SUBST(VULKAN_LIBS)
3012 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3015 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3022 dnl *** teletextdec ***
3023 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3024 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3025 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3028 dnl *** wildmidi ***
3029 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3030 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3031 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3034 WILDMIDI_LIBS="-lWildMidi")
3035 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3037 if test "x$HAVE_WILDMIDI" = "xyes"; then
3039 WILDMIDI_LIBS=-lWildMidi
3040 AC_MSG_NOTICE(compiling gstWildMidi)
3044 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3046 AC_SUBST(WILDMIDI_CFLAGS)
3047 AC_SUBST(WILDMIDI_LIBS)
3050 dnl **** Smooth Streaming ****
3051 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3052 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3053 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3055 HAVE_SMOOTHSTREAMING="yes"],
3057 HAVE_SMOOTHSTREAMING="no"])
3058 AC_SUBST(LIBXML2_CFLAGS)
3059 AC_SUBST(LIBXML2_LIBS)
3063 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3064 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3065 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3066 AC_SUBST(SNDFILE_CFLAGS)
3067 AC_SUBST(SNDFILE_LIBS)
3070 dnl *** soundtouch ***
3071 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3072 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3073 dnl We only need -lBPM on soundtouch < 1.4
3074 dnl We check for libSoundTouch since Debian used it before upstream
3075 dnl added a pkgconfig file.
3076 HAVE_SOUNDTOUCH_1_4=yes
3077 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3078 [HAVE_SOUNDTOUCH=yes],
3079 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3080 [HAVE_SOUNDTOUCH=yes],
3081 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3082 [HAVE_SOUNDTOUCH=yes
3083 HAVE_SOUNDTOUCH_1_4=no
3084 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3085 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3086 [HAVE_SOUNDTOUCH=yes],
3087 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3088 [HAVE_SOUNDTOUCH=yes
3089 HAVE_SOUNDTOUCH_1_4=no
3090 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3091 HAVE_SOUNDTOUCH=no)])])])])
3092 AC_SUBST(SOUNDTOUCH_CFLAGS)
3093 AC_SUBST(SOUNDTOUCH_LIBS)
3094 if test "x$HAVE_CXX" != "xyes"; then
3095 USE_SOUNDTOUCH=false
3096 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3098 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3099 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3100 [Defined if the available libSoundTouch is >= 1.4])
3105 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3106 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3107 AC_CHECK_HEADER(openspc.h, [
3108 AC_CHECK_LIB(openspc, OSPC_Init, [
3109 SPC_LIBS="-lopenspc"
3121 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3122 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3123 AC_CHECK_HEADER(gme/gme.h, [
3124 AC_CHECK_LIB(gme, gme_new_emu, [
3135 if test "x$HAVE_GME" = "xyes"; then
3136 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3137 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3143 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3144 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3145 AC_MSG_CHECKING([Checking for up to date dvb installation])
3146 AC_CHECK_HEADER(linux/dvb/version.h, [
3147 AC_MSG_CHECKING([for up-to-date dvb API])
3148 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3149 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3150 #error "Incompatible dvb API"
3152 ]])], [ AC_MSG_RESULT(yes)
3154 ], [ AC_MSG_RESULT(no)
3161 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3162 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3163 AC_MSG_CHECKING([Checking for ACM support])
3164 AC_CHECK_HEADERS([windows.h msacm.h],
3166 AC_SUBST(ACMENC_CFLAGS)
3167 AC_SUBST(ACMMP3DEC_CFLAGS)
3169 [AC_INCLUDES_DEFAULT
3170 #include <windows.h>])
3174 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3175 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3180 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3182 if test "$HAVE_VDPAU" = "no"; then
3183 saved_CPPFLAGS="$CPPFLAGS"
3184 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3186 if test -z "$HAVE_VDPAU_H"; then
3187 dnl Didn't find VDPAU header straight away.
3188 dnl Try /usr/include/nvidia. Need to clear caching vars first
3189 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3190 unset ac_cv_header_vdpau_vdpau_h
3191 unset ac_cv_header_vdpau_vdpau_x11_h
3192 VDPAU_CFLAGS="-I/usr/include/nvidia"
3193 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3194 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3195 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3198 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3200 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3201 dnl Found the headers - look for the lib
3202 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3204 LIBS="$VDPAU_LIBS $saved_LIBS"
3205 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3211 if test "$HAVE_VDPAU" = "yes"; then
3212 AC_MSG_NOTICE([Found up to date VDPAU installation])
3213 AC_SUBST(VDPAU_CFLAGS)
3214 AC_SUBST(VDPAU_LIBS)
3219 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3220 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3221 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3224 dnl *** schroedinger ***
3225 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3226 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3227 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3231 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3232 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3233 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3237 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3238 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3239 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3243 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3244 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3245 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3246 HAVE_SPANDSP="yes" ], [
3250 AC_SUBST(SPANDSP_CFLAGS)
3251 AC_SUBST(SPANDSP_LIBS)
3253 dnl *** hls-crypto ***
3254 AC_ARG_WITH([hls-crypto],
3255 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3256 which cryptographic library version to compile against for hls (default: auto)
3258 AS_CASE([$with_hls_crypto],
3262 [with_hls_crypto=auto]
3268 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3269 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3270 AS_CASE([$with_hls_crypto],
3272 PKG_CHECK_MODULES(NETTLE, nettle, [
3273 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3275 ],[AC_MSG_ERROR([Could not find nettle library])])
3278 AM_PATH_LIBGCRYPT([1.2.0], [
3279 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3281 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3284 PKG_CHECK_MODULES(OPENSSL, openssl, [
3285 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3287 ],[AC_MSG_ERROR([Could not find openssl library])])
3290 dnl Try to find a valid crypto library
3291 PKG_CHECK_MODULES(NETTLE, nettle, [
3292 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3295 AM_PATH_LIBGCRYPT([1.2.0], [
3296 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3299 PKG_CHECK_MODULES(OPENSSL, openssl, [
3300 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3311 dnl *** x265 (H.265/HEVC encoder) ***
3312 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3313 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3314 AG_GST_PKG_CHECK_MODULES(X265, x265)
3317 dnl *** WebRTC Audio Processing ***
3318 dnl Note: We test for a specific version as there is no API stability
3319 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3320 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3322 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3324 # On Android, C++ headers comes with the STL implementation
3325 AS_CASE(["${host}"],
3328 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3329 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3330 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3332 AC_SUBST([WEBRTCDSP_CFLAGS])
3333 AC_SUBST([WEBRTCDSP_LIBS])
3336 old_CPPFLAGS=$CPPFLAGS
3337 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3338 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3339 CPPFLAGS=$old_CPPFLAGS
3345 dnl not building plugins with external dependencies,
3346 dnl but we still need to set the conditionals
3348 AM_CONDITIONAL(USE_ASSRENDER, false)
3349 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3350 AM_CONDITIONAL(USE_VOAACENC, false)
3351 AM_CONDITIONAL(USE_BS2B, false)
3352 AM_CONDITIONAL(USE_BZ2, false)
3353 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3354 AM_CONDITIONAL(USE_CURL, false)
3355 AM_CONDITIONAL(USE_SSH2, false)
3356 AM_CONDITIONAL(USE_DASH, false)
3357 AM_CONDITIONAL(USE_DC1394, false)
3358 AM_CONDITIONAL(USE_DECKLINK, false)
3359 AM_CONDITIONAL(DECKLINK_OSX, false)
3360 AM_CONDITIONAL(USE_DIRECTFB, false)
3361 AM_CONDITIONAL(USE_WAYLAND, false)
3362 AM_CONDITIONAL(USE_DAALA, false)
3363 AM_CONDITIONAL(USE_DTS, false)
3364 AM_CONDITIONAL(USE_EXIF, false)
3365 AM_CONDITIONAL(USE_RESINDVD, false)
3366 AM_CONDITIONAL(USE_FAAC, false)
3367 AM_CONDITIONAL(USE_FAAD, false)
3368 AM_CONDITIONAL(USE_FBDEV, false)
3369 AM_CONDITIONAL(USE_FDK_AAC, false)
3370 AM_CONDITIONAL(USE_FLITE, false)
3371 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3372 AM_CONDITIONAL(USE_GL, false)
3373 AM_CONDITIONAL(USE_GSM, false)
3374 AM_CONDITIONAL(USE_GTK3, false)
3375 AM_CONDITIONAL(USE_GTK3_GL, false)
3376 AM_CONDITIONAL(USE_HLS, false)
3377 AM_CONDITIONAL(USE_IQA, false)
3378 AM_CONDITIONAL(USE_KATE, false)
3379 AM_CONDITIONAL(USE_KMS, false)
3380 AM_CONDITIONAL(USE_TIGER, false)
3381 AM_CONDITIONAL(USE_LADSPA, false)
3382 AM_CONDITIONAL(USE_LV2, false)
3383 AM_CONDITIONAL(USE_LIBDE265, false)
3384 AM_CONDITIONAL(USE_LIBMMS, false)
3385 AM_CONDITIONAL(USE_MODPLUG, false)
3386 AM_CONDITIONAL(USE_MPEG2ENC, false)
3387 AM_CONDITIONAL(USE_MPLEX, false)
3388 AM_CONDITIONAL(USE_MUSEPACK, false)
3389 AM_CONDITIONAL(USE_NEON, false)
3390 AM_CONDITIONAL(USE_OFA, false)
3391 AM_CONDITIONAL(USE_OPENAL, false)
3392 AM_CONDITIONAL(USE_OPENCV, false)
3393 AM_CONDITIONAL(USE_OPENEXR, false)
3394 AM_CONDITIONAL(USE_OPENJPEG, false)
3395 AM_CONDITIONAL(USE_OPENNI2, false)
3396 AM_CONDITIONAL(USE_OPUS, false)
3397 AM_CONDITIONAL(USE_QT, false)
3398 AM_CONDITIONAL(USE_WILDMIDI, false)
3399 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3400 AM_CONDITIONAL(USE_SNDFILE, false)
3401 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3402 AM_CONDITIONAL(USE_SPANDSP, false)
3403 AM_CONDITIONAL(USE_SPC, false)
3404 AM_CONDITIONAL(USE_SRTP, false)
3405 AM_CONDITIONAL(USE_GME, false)
3406 AM_CONDITIONAL(USE_DVB, false)
3407 AM_CONDITIONAL(USE_ACM, false)
3408 AM_CONDITIONAL(USE_VDPAU, false)
3409 AM_CONDITIONAL(USE_SBC, false)
3410 AM_CONDITIONAL(USE_SCHRO, false)
3411 AM_CONDITIONAL(USE_ZBAR, false)
3412 AM_CONDITIONAL(USE_RSVG, false)
3413 AM_CONDITIONAL(USE_RTMP, false)
3414 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3415 AM_CONDITIONAL(USE_UVCH264, false)
3416 AM_CONDITIONAL(USE_WEBP, false)
3417 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3418 AM_CONDITIONAL(USE_OPENH264, false)
3419 AM_CONDITIONAL(USE_X265, false)
3420 AM_CONDITIONAL(USE_DTLS, false)
3421 AM_CONDITIONAL(USE_VULKAN, false)
3422 AM_CONDITIONAL(USE_TTML, false)
3424 fi dnl of EXT plugins
3426 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3429 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3430 dnl GST_*: flags shared by built objects to link against GStreamer
3431 dnl GST_ALL_LDFLAGS: linker flags shared by all
3432 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3433 dnl GST_LT_LDFLAGS: library versioning of our libraries
3434 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3436 dnl GST_OPTION_CFLAGS
3437 if test "x$USE_DEBUG" = xyes; then
3440 AC_SUBST(PROFILE_CFLAGS)
3442 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3443 dnl Define _only_ during CVS (not pre-releases or releases)
3444 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3446 DEPRECATED_CFLAGS=""
3448 AC_SUBST(DEPRECATED_CFLAGS)
3450 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3451 dnl at make time with e.g. make ERROR_CFLAGS=""
3452 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3453 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3454 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3455 AC_SUBST(GST_OPTION_CFLAGS)
3456 AC_SUBST(GST_OPTION_CXXFLAGS)
3457 AC_SUBST(GST_OPTION_OBJCFLAGS)
3459 dnl FIXME: do we want to rename to GST_ALL_* ?
3460 dnl prefer internal headers to already installed ones
3461 dnl also add builddir include for enumtypes and marshal
3462 dnl add GST_OPTION_CFLAGS, but overridable
3463 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3464 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3465 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3466 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3467 AC_SUBST(GST_CFLAGS)
3468 AC_SUBST(GST_CXXFLAGS)
3469 AC_SUBST(GST_OBJCFLAGS)
3471 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3472 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3473 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3474 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3475 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3476 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3478 dnl LDFLAGS really should only contain flags, not libs - they get added before
3479 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3480 GST_ALL_LDFLAGS="-no-undefined"
3481 if test "x${enable_Bsymbolic}" = "xyes"; then
3482 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3484 AC_SUBST(GST_ALL_LDFLAGS)
3487 dnl linker flags shared by all libraries
3488 dnl LDFLAGS modifier defining exported symbols from built libraries
3489 dnl (export _gst_foo but not __gst_foo)
3490 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3491 AC_SUBST(GST_LIB_LDFLAGS)
3493 dnl this really should only contain flags, not libs - they get added before
3494 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3495 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3496 AC_SUBST(GST_PLUGIN_LDFLAGS)
3498 dnl *** output files ***
3500 $MKDIR_P tests/check/orc
3509 gst/accurip/Makefile
3510 gst/adpcmdec/Makefile
3511 gst/adpcmenc/Makefile
3513 gst/videoframe_audiolevel/Makefile
3515 gst/audiobuffersplit/Makefile
3516 gst/audiofxbad/Makefile
3517 gst/audiomixer/Makefile
3518 gst/audiomixmatrix/Makefile
3519 gst/audiovisualizers/Makefile
3520 gst/autoconvert/Makefile
3522 gst/camerabin2/Makefile
3523 gst/coloreffects/Makefile
3524 gst/debugutils/Makefile
3525 gst/dvbsuboverlay/Makefile
3527 gst/festival/Makefile
3528 gst/fieldanalysis/Makefile
3529 gst/freeverb/Makefile
3531 gst/gaudieffects/Makefile
3532 gst/geometrictransform/Makefile
3536 gst/interlace/Makefile
3537 gst/ivfparse/Makefile
3539 gst/jp2kdecimator/Makefile
3540 gst/jpegformat/Makefile
3543 gst/mpegdemux/Makefile
3544 gst/mpegtsdemux/Makefile
3545 gst/mpegtsmux/Makefile
3546 gst/mpegtsmux/tsmux/Makefile
3547 gst/mpegpsmux/Makefile
3551 gst/pcapparse/Makefile
3553 gst/rawparse/Makefile
3554 gst/removesilence/Makefile
3556 gst/segmentclip/Makefile
3562 gst/timecode/Makefile
3563 gst/videofilters/Makefile
3564 gst/videoparsers/Makefile
3565 gst/videosignal/Makefile
3569 gst/compositor/Makefile
3571 gst-libs/gst/Makefile
3572 gst-libs/gst/adaptivedemux/Makefile
3573 gst-libs/gst/basecamerabinsrc/Makefile
3574 gst-libs/gst/gl/Makefile
3575 gst-libs/gst/gl/android/Makefile
3576 gst-libs/gst/gl/cocoa/Makefile
3577 gst-libs/gst/gl/dispmanx/Makefile
3578 gst-libs/gst/gl/glprototypes/Makefile
3579 gst-libs/gst/gl/eagl/Makefile
3580 gst-libs/gst/gl/egl/Makefile
3581 gst-libs/gst/gl/wayland/Makefile
3582 gst-libs/gst/gl/win32/Makefile
3583 gst-libs/gst/gl/x11/Makefile
3584 gst-libs/gst/gl/viv-fb/Makefile
3585 gst-libs/gst/insertbin/Makefile
3586 gst-libs/gst/interfaces/Makefile
3587 gst-libs/gst/codecparsers/Makefile
3588 gst-libs/gst/mpegts/Makefile
3589 gst-libs/gst/uridownloader/Makefile
3590 gst-libs/gst/wayland/Makefile
3591 gst-libs/gst/base/Makefile
3592 gst-libs/gst/player/Makefile
3593 gst-libs/gst/video/Makefile
3594 gst-libs/gst/audio/Makefile
3595 gst-libs/gst/opencv/Makefile
3596 gst-libs/gst/allocators/Makefile
3598 sys/dshowdecwrapper/Makefile
3600 sys/acmmp3dec/Makefile
3601 sys/androidmedia/Makefile
3602 sys/applemedia/Makefile
3604 sys/d3dvideosink/Makefile
3605 sys/decklink/Makefile
3606 sys/directsound/Makefile
3607 sys/dshowsrcwrapper/Makefile
3608 sys/dshowvideosink/Makefile
3614 sys/opensles/Makefile
3616 sys/tinyalsa/Makefile
3617 sys/uvch264/Makefile
3622 sys/winscreencap/Makefile
3624 tests/check/Makefile
3625 tests/files/Makefile
3626 tests/examples/Makefile
3627 tests/examples/avsamplesink/Makefile
3628 tests/examples/camerabin2/Makefile
3629 tests/examples/codecparsers/Makefile
3630 tests/examples/directfb/Makefile
3631 tests/examples/audiomixmatrix/Makefile
3632 tests/examples/gl/Makefile
3633 tests/examples/gl/cocoa/Makefile
3634 tests/examples/gl/clutter/Makefile
3635 tests/examples/gl/generic/Makefile
3636 tests/examples/gl/generic/cube/Makefile
3637 tests/examples/gl/generic/cubeyuv/Makefile
3638 tests/examples/gl/generic/doublecube/Makefile
3639 tests/examples/gl/generic/recordgraphic/Makefile
3640 tests/examples/gl/gtk/Makefile
3641 tests/examples/gl/gtk/3dvideo/Makefile
3642 tests/examples/gl/gtk/filternovideooverlay/Makefile
3643 tests/examples/gl/gtk/filtervideooverlay/Makefile
3644 tests/examples/gl/gtk/fxtest/Makefile
3645 tests/examples/gl/gtk/switchvideooverlay/Makefile
3646 tests/examples/gl/qt/Makefile
3647 tests/examples/gl/sdl/Makefile
3648 tests/examples/gtk/Makefile
3649 tests/examples/mpegts/Makefile
3650 tests/examples/mxf/Makefile
3651 tests/examples/opencv/Makefile
3652 tests/examples/uvch264/Makefile
3653 tests/examples/waylandsink/Makefile
3654 tests/icles/Makefile
3655 ext/voamrwbenc/Makefile
3656 ext/voaacenc/Makefile
3657 ext/assrender/Makefile
3660 ext/chromaprint/Makefile
3664 ext/directfb/Makefile
3665 ext/wayland/Makefile
3674 ext/fluidsynth/Makefile
3681 ext/libde265/Makefile
3684 ext/modplug/Makefile
3685 ext/mpeg2enc/Makefile
3687 ext/musepack/Makefile
3692 ext/openexr/Makefile
3693 ext/openh264/Makefile
3694 ext/openjpeg/Makefile
3695 ext/openni2/Makefile
3699 ext/resindvd/Makefile
3702 ext/schroedinger/Makefile
3703 ext/smoothstreaming/Makefile
3704 ext/sndfile/Makefile
3705 ext/soundtouch/Makefile
3706 ext/spandsp/Makefile
3708 ext/teletextdec/Makefile
3711 ext/wildmidi/Makefile
3713 ext/vulkan/xcb/Makefile
3714 ext/vulkan/wayland/Makefile
3719 ext/webrtcdsp/Makefile
3723 docs/plugins/Makefile
3725 docs/version.entities
3727 pkgconfig/gstreamer-plugins-bad.pc
3728 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3729 pkgconfig/gstreamer-codecparsers.pc
3730 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3731 pkgconfig/gstreamer-insertbin.pc
3732 pkgconfig/gstreamer-insertbin-uninstalled.pc
3733 pkgconfig/gstreamer-gl.pc
3734 pkgconfig/gstreamer-gl-uninstalled.pc
3735 pkgconfig/gstreamer-mpegts.pc
3736 pkgconfig/gstreamer-mpegts-uninstalled.pc
3737 pkgconfig/gstreamer-player.pc
3738 pkgconfig/gstreamer-player-uninstalled.pc
3739 pkgconfig/gstreamer-wayland.pc
3740 pkgconfig/gstreamer-wayland-uninstalled.pc
3741 pkgconfig/gstreamer-bad-base.pc
3742 pkgconfig/gstreamer-bad-base-uninstalled.pc
3743 pkgconfig/gstreamer-bad-video.pc
3744 pkgconfig/gstreamer-bad-video-uninstalled.pc
3745 pkgconfig/gstreamer-bad-audio.pc
3746 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3747 pkgconfig/gstreamer-bad-allocators.pc
3748 pkgconfig/gstreamer-bad-allocators-uninstalled.pc
3755 AG_GST_OUTPUT_PLUGINS