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.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1101, 0, 1101)
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(compositor)
474 AG_GST_CHECK_PLUGIN(audiovisualizers)
475 AG_GST_CHECK_PLUGIN(autoconvert)
476 AG_GST_CHECK_PLUGIN(bayer)
477 AG_GST_CHECK_PLUGIN(camerabin2)
478 AG_GST_CHECK_PLUGIN(coloreffects)
479 AG_GST_CHECK_PLUGIN(debugutils)
480 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
481 AG_GST_CHECK_PLUGIN(dvdspu)
482 AG_GST_CHECK_PLUGIN(festival)
483 AG_GST_CHECK_PLUGIN(fieldanalysis)
484 AG_GST_CHECK_PLUGIN(freeverb)
485 AG_GST_CHECK_PLUGIN(frei0r)
486 AG_GST_CHECK_PLUGIN(gaudieffects)
487 AG_GST_CHECK_PLUGIN(geometrictransform)
488 AG_GST_CHECK_PLUGIN(gdp)
489 AG_GST_CHECK_PLUGIN(id3tag)
490 AG_GST_CHECK_PLUGIN(inter)
491 AG_GST_CHECK_PLUGIN(interlace)
492 AG_GST_CHECK_PLUGIN(ivfparse)
493 AG_GST_CHECK_PLUGIN(ivtc)
494 AG_GST_CHECK_PLUGIN(jp2kdecimator)
495 AG_GST_CHECK_PLUGIN(jpegformat)
496 AG_GST_CHECK_PLUGIN(librfb)
497 AG_GST_CHECK_PLUGIN(midi)
498 AG_GST_CHECK_PLUGIN(mpegdemux)
499 AG_GST_CHECK_PLUGIN(mpegtsdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsmux)
501 AG_GST_CHECK_PLUGIN(mpegpsmux)
502 AG_GST_CHECK_PLUGIN(mxf)
503 AG_GST_CHECK_PLUGIN(netsim)
504 AG_GST_CHECK_PLUGIN(onvif)
505 AG_GST_CHECK_PLUGIN(pcapparse)
506 AG_GST_CHECK_PLUGIN(pnm)
507 AG_GST_CHECK_PLUGIN(rawparse)
508 AG_GST_CHECK_PLUGIN(removesilence)
509 AG_GST_CHECK_PLUGIN(sdp)
510 AG_GST_CHECK_PLUGIN(segmentclip)
511 AG_GST_CHECK_PLUGIN(siren)
512 AG_GST_CHECK_PLUGIN(smooth)
513 AG_GST_CHECK_PLUGIN(speed)
514 AG_GST_CHECK_PLUGIN(subenc)
515 AG_GST_CHECK_PLUGIN(stereo)
516 AG_GST_CHECK_PLUGIN(timecode)
517 AG_GST_CHECK_PLUGIN(videofilters)
518 AG_GST_CHECK_PLUGIN(videoparsers)
519 AG_GST_CHECK_PLUGIN(videosignal)
520 AG_GST_CHECK_PLUGIN(vmnc)
521 AG_GST_CHECK_PLUGIN(y4m)
522 AG_GST_CHECK_PLUGIN(yadif)
524 dnl *** plug-ins to exclude ***
526 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
527 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
528 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
529 AC_CHECK_HEADER(QTKit/QTKit.h, HAVE_QTKIT="yes", HAVE_QTKIT="no", [-])
531 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
533 LIBS="$LIBS -framework VideoToolbox"
534 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
535 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
541 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
542 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
543 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
546 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
547 if test "x$HAVE_IOS" = "xyes"; then
548 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
551 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
552 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
553 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
556 AM_CONDITIONAL(HAVE_QTKIT, test "x$HAVE_QTKIT" = "xyes")
557 if test "x$HAVE_QTKIT" = "xyes"; then
558 AC_DEFINE(HAVE_QTKIT, 1, [Define if building with QTKit])
560 dnl disable gst plugins we might not be able to build on this
561 dnl platform: (ugly but minimally invasive)
562 dnl FIXME: maybe move to sys, or make work with winsock2
563 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
564 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
566 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
567 WINSOCK2_LIBS="-lws2_32"
568 AC_SUBST(WINSOCK2_LIBS)
572 AC_ARG_ENABLE([opengl],
573 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
574 [case "${enableval}" in
577 auto) NEED_GL=auto ;;
578 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
579 esac],[NEED_GL=auto])
581 AC_ARG_WITH([opengl-module-name],
582 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
583 if test x$with_opengl_module_name != x; then
584 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
587 AC_ARG_ENABLE([gles2],
588 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
589 [case "${enableval}" in
590 yes) NEED_GLES2=yes ;;
592 auto) NEED_GLES2=auto ;;
593 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
594 esac],[NEED_GLES2=auto])
596 AC_ARG_WITH([gles2-module-name],
597 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
598 if test x$with_gles2_module_name != x; then
599 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
603 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
604 [case "${enableval}" in
607 auto) NEED_EGL=auto ;;
608 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
609 esac],[NEED_EGL=auto])
611 AC_ARG_WITH([egl-module-name],
612 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
613 if test x$with_egl_module_name != x; then
614 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
618 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
619 [case "${enableval}" in
622 auto) NEED_WGL=auto ;;
623 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
624 esac],[NEED_WGL=auto])
627 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
628 [case "${enableval}" in
631 auto) NEED_GLX=auto ;;
632 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
633 esac],[NEED_GLX=auto])
635 AC_ARG_ENABLE([cocoa],
636 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
637 [case "${enableval}" in
638 yes) NEED_COCOA=yes ;;
640 auto) NEED_COCOA=auto ;;
641 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
642 esac],[NEED_COCOA=auto])
645 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
646 [case "${enableval}" in
649 auto) NEED_X11=auto ;;
650 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
651 esac],[NEED_X11=auto])
653 AC_ARG_ENABLE([wayland],
654 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
655 [case "${enableval}" in
656 yes) NEED_WAYLAND_EGL=yes ;;
657 no) NEED_WAYLAND_EGL=no ;;
658 auto) NEED_WAYLAND_EGL=auto ;;
659 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
660 esac],[NEED_WAYLAND_EGL=auto])
662 AC_ARG_ENABLE([dispmanx],
663 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
664 [case "${enableval}" in
665 yes) NEED_DISPMANX=yes ;;
666 no) NEED_DISPMANX=no ;;
667 auto) NEED_DISPMANX=auto ;;
668 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
669 esac],[NEED_DISPMANX=auto])
671 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
672 save_CPPFLAGS="$CPPFLAGS"
685 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
686 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
687 if test "x$HAVE_WGLEXT" = "xyes"; then
693 if test "x$NEED_GL" != "xno"; then
694 AG_GST_PKG_CHECK_MODULES(GL, gl)
695 if test "x$HAVE_GL" != "xyes"; then
696 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
699 if test "x$NEED_GLES2" != "xno"; then
700 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
701 if test "x$HAVE_GLES2" != "xyes"; then
702 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
704 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
706 if test "x$NEED_EGL" != "xno"; then
707 AG_GST_PKG_CHECK_MODULES(EGL, egl)
708 if test "x$HAVE_EGL" != "xyes"; then
709 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
716 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
717 AC_CHECK_HEADER([EGL/fbdev_window.h],
720 AC_CHECK_LIB([Mali], [mali_image_create],
723 AC_CHECK_LIB([GLESv2], [glEnable],
725 AC_CHECK_HEADER([GLES2/gl2.h],
727 AC_CHECK_LIB([EGL], [eglGetProcAddress],
729 AC_CHECK_HEADER([EGL/egl.h],
733 EGL_LIBS="-lMali -lUMP"
735 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
743 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
744 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
745 LIBS="$LIBS -lvcos -lvchiq_arm"
746 AC_CHECK_LIB([bcm_host], [bcm_host_init],
748 LIBS="$LIBS -lbcm_host"
749 AC_CHECK_HEADER(bcm_host.h,
751 LIBS="$LIBS -lGLESv2"
752 AC_CHECK_LIB([EGL], [eglGetProcAddress],
755 AC_CHECK_HEADER([EGL/egl.h],
757 AC_CHECK_LIB([GLESv2], [glEnable],
759 AC_CHECK_HEADER([GLES2/gl2.h],
764 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
766 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
777 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)
779 # OS X and iOS always have GL available
782 if test "x$HAVE_IOS" = "xyes"; then
792 CPPFLAGS="$save_CPPFLAGS"
806 dnl Check for what the user asked for and what we could find
807 if test "x$HAVE_EGL" = "xno"; then
808 if test "x$NEED_EGL" = "xyes"; then
809 AC_MSG_ERROR([Could not find the required EGL libraries])
813 if test "x$HAVE_GL" = "xno"; then
814 if test "x$NEED_GL" = "xyes"; then
815 AC_MSG_ERROR([Could not find the required OpenGL libraries])
819 if test "x$HAVE_GLES2" = "xno"; then
820 if test "x$NEED_GLES2" = "xyes"; then
821 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
825 dnl X, GLX and OpenGL
826 if test "x$HAVE_X11_XCB" = "xno"; then
827 if test "x$NEED_GLX" = "xyes"; then
828 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
830 if test "x$NEED_X11" = "xyes"; then
831 AC_MSG_ERROR([Could not find X11 development libraries])
834 if test "x$NEED_GL" != "xno"; then
835 if test "x$HAVE_GL" = "xno"; then
836 if test "x$NEED_GLX" = "xyes"; then
837 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
841 if test "x$NEED_GLX" != "xno"; then
848 dnl check for DMABUF support
849 HAVE_DRM_FOURCC_HEADER=no
850 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
851 HAVE_DRM_FOURCC_HEADER=yes, )
853 HAVE_GST_ALLOCATORS=no
854 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
855 HAVE_GST_ALLOCATORS=yes, )
858 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
859 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
860 "x$HAVE_EGL" = "xyes"; then
864 dnl check if we can include both GL and GLES2 at the same time
865 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
867 if test "x$HAVE_GLES3_H" == "xyes"; then
872 # pragma GCC diagnostic push
873 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
875 #ifndef GL_GLEXT_PROTOTYPES
876 #define GL_GLEXT_PROTOTYPES 1
879 # include <OpenGLES/ES2/gl.h>
880 # include <OpenGLES/ES2/glext.h>
883 # include <GLES3/gl3.h>
884 # include <GLES3/gl3ext.h>
886 # include <GLES2/gl2.h>
887 # include <GLES2/gl2ext.h>
891 # include <OpenGL/OpenGL.h>
892 # include <OpenGL/gl.h>
893 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
894 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
895 # include <OpenGL/gl3.h>
899 # if __WIN32__ || _WIN32
900 # include <GL/glext.h>
903 int main (int argc, char **argv) { return 0; }
905 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
906 save_CFLAGS="$CFLAGS"
907 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
908 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
909 #if !defined(GL_FALSE)
910 #error Failed to include GL headers
912 ]])],[ AC_MSG_RESULT(yes)
914 if test "x$NEED_GLES2" = "xyes"; then
915 if test "x$NEED_GL" = "xyes"; then
916 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
918 AC_MSG_WARN([Disabling Desktop GL support])
922 AC_MSG_WARN([Disabling GL|ES 2.0 support])
927 CFLAGS="$save_CFLAGS"
930 #dnl Check for OpenGL
934 if test "x$NEED_WGL" = "xyes"; then
935 AC_MSG_ERROR([WGL is not available on Android])
937 if test "x$NEED_GLX" = "xyes"; then
938 AC_MSG_ERROR([GLX is not available on Android])
940 if test "x$NEED_GL" = "xyes"; then
941 AC_MSG_ERROR([GL is not available on Android])
943 if test "x$NEED_X11" = "xyes"; then
944 AC_MSG_ERROR([X11 is not available on Android])
946 if test "x$NEED_COCOA" = "xyes"; then
947 AC_MSG_ERROR([Cocoa is not available on Android])
951 if test "x$HAVE_GLES2" = "xyes"; then
952 if test "x$NEED_GLES2" != "xno"; then
953 GL_LIBS="$GL_LIBS -lGLESv2"
959 if test "x$HAVE_EGL" = "xyes"; then
960 if test "x$NEED_EGL" != "xno"; then
961 GL_LIBS="$GL_LIBS -lEGL"
966 if test "x$USE_EGL" != "xyes"; then
967 AC_MSG_ERROR([Need EGL on Android])
970 if test "x$USE_GLES2" != "xyes"; then
971 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
974 HAVE_WINDOW_ANDROID=yes
976 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
977 if test "x$NEED_WGL" = "xyes"; then
978 AC_MSG_ERROR([WGL is not available on unix])
981 if test "x$HAVE_X11_XCB" = "xno"; then
982 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
983 AC_MSG_WARN([X or Wayland is required for OpenGL support])
987 dnl check Desktop OpenGL
988 if test "x$HAVE_GL" = "xyes"; then
989 if test "x$NEED_GL" != "xno"; then
990 GL_LIBS="$GL_LIBS -lGL"
995 if test "x$HAVE_GLES2" = "xyes"; then
996 if test "x$NEED_GLES2" != "xno"; then
997 GL_LIBS="$GL_LIBS -lGLESv2"
1002 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1003 if test "x$NEED_X11" != "xno"; then
1004 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1005 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1010 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1011 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1012 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1014 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1015 HAVE_WINDOW_WAYLAND=yes
1016 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1017 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1022 if test "x$HAVE_EGL_RPI" = "xyes"; then
1023 if test "x$NEED_DISPMANX" != "xno"; then
1024 HAVE_WINDOW_DISPMANX=yes
1030 if test "x$HAVE_EGL" = "xno"; then
1031 if test "x$HAVE_GL" = "xno"; then
1032 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1035 if test "x$NEED_EGL" != "xno"; then
1036 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1037 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1038 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1045 if test "x$HAVE_IOS" = "xyes"; then
1046 if test "x$NEED_WGL" = "xyes"; then
1047 AC_MSG_ERROR([WGL is not available on iOS])
1049 if test "x$NEED_GLX" = "xyes"; then
1050 AC_MSG_ERROR([GLX is not available on iOS])
1052 if test "x$NEED_GL" = "xyes"; then
1053 AC_MSG_ERROR([GL is not available on iOS])
1055 if test "x$NEED_X11" = "xyes"; then
1056 AC_MSG_ERROR([X11 is not available on iOS])
1058 if test "x$NEED_COCOA" = "xyes"; then
1059 AC_MSG_ERROR([Cocoa is not available on iOS])
1061 if test "x$NEED_EGL" = "xyes"; then
1062 AC_MSG_ERROR([EGL is not available on iOS])
1065 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1066 GL_CFLAGS="$GL_CFLAGS"
1069 HAVE_WINDOW_EAGL=yes
1071 ac_cv_type_GLsizeiptr=yes
1072 ac_cv_type_GLintptr=yes
1073 ac_cv_type_GLchar=yes
1075 dnl Only osx supports cocoa.
1076 if test "x$NEED_WGL" = "xyes"; then
1077 AC_MSG_ERROR([WGL is not available on Mac OS X])
1080 if test "x$NEED_COCOA" != "xno"; then
1081 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1082 GL_CFLAGS="$GL_CFLAGS"
1084 HAVE_WINDOW_COCOA=yes
1088 if test "x$USE_GLX" = "xyes"; then
1089 if test "x$HAVE_X11_XCB" = "xyes"; then
1090 if test "x$NEED_X11" != "xno"; then
1091 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1092 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1097 if test "x$HAVE_GL" = "xyes"; then
1098 if test "x$NEED_GL" != "xno"; then
1099 GL_LIBS="$GL_LIBS -lGL"
1105 if test "x$HAVE_EGL" = "xyes"; then
1106 if test "x$NEED_EGL" != "xno"; then
1107 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1108 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1109 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1116 if test "x$HAVE_GLES2" = "xyes"; then
1117 if test "x$NEED_GLES2" != "xno"; then
1118 GL_LIBS="$GL_LIBS -lGLESv2"
1125 if test "x$NEED_GLX" = "xyes"; then
1126 AC_MSG_ERROR([GLX is not available on Windows])
1128 if test "x$NEED_GLES2" = "xyes"; then
1129 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1132 if test "x$HAVE_GL" = "xyes"; then
1133 if test "x$NEED_GL" != "xno"; then
1134 if test "x$HAVE_WGL" = "xyes"; then
1135 if test "$NEED_WGL" != "xno"; then
1136 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1137 HAVE_WINDOW_WIN32=yes
1146 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1157 GST_GL_HAVE_OPENGL=0
1161 if test "x$USE_OPENGL" = "xyes"; then
1162 GL_APIS="gl $GL_APIS"
1163 GST_GL_HAVE_OPENGL=1
1165 if test "x$USE_GLES2" = "xyes"; then
1166 GL_APIS="gles2 $GL_APIS"
1168 if test "x$HAVE_GLES3_H" = "xyes"; then
1173 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1174 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1175 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1176 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1181 GST_GL_HAVE_WINDOW_X11=0
1182 GST_GL_HAVE_WINDOW_COCOA=0
1183 GST_GL_HAVE_WINDOW_WIN32=0
1184 GST_GL_HAVE_WINDOW_WAYLAND=0
1185 GST_GL_HAVE_WINDOW_ANDROID=0
1186 GST_GL_HAVE_WINDOW_DISPMANX=0
1187 GST_GL_HAVE_WINDOW_EAGL=0
1189 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1190 GL_WINDOWS="x11 $GL_WINDOWS"
1191 GST_GL_HAVE_WINDOW_X11=1
1193 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1194 GL_WINDOWS="cocoa $GL_WINDOWS"
1195 GST_GL_HAVE_WINDOW_COCOA=1
1197 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1198 GL_WINDOWS="win32 $GL_WINDOWS"
1199 GST_GL_HAVE_WINDOW_WIN32=1
1201 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1202 GL_WINDOWS="wayland $GL_WINDOWS"
1203 GST_GL_HAVE_WINDOW_WAYLAND=1
1205 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1206 GL_WINDOWS="android $GL_WINDOWS"
1207 GST_GL_HAVE_WINDOW_ANDROID=1
1209 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1210 GL_WINDOWS="dispmanx $GL_WINDOWS"
1211 GST_GL_HAVE_WINDOW_DISPMANX=1
1213 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1214 GL_WINDOWS="eagl $GL_WINDOWS"
1215 GST_GL_HAVE_WINDOW_EAGL=1
1218 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1219 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1220 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1221 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1222 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1223 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1224 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1225 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1230 GST_GL_HAVE_PLATFORM_EGL=0
1231 GST_GL_HAVE_PLATFORM_GLX=0
1232 GST_GL_HAVE_PLATFORM_WGL=0
1233 GST_GL_HAVE_PLATFORM_CGL=0
1234 GST_GL_HAVE_PLATFORM_EAGL=0
1236 if test "x$USE_EGL" = "xyes"; then
1237 GL_PLATFORMS="egl $GL_PLATFORMS"
1238 GST_GL_HAVE_PLATFORM_EGL=1
1240 if test "x$USE_GLX" = "xyes"; then
1241 GL_PLATFORMS="glx $GL_PLATFORMS"
1242 GST_GL_HAVE_PLATFORM_GLX=1
1244 if test "x$USE_WGL" = "xyes"; then
1245 GL_PLATFORMS="wgl $GL_PLATFORMS"
1246 GST_GL_HAVE_PLATFORM_WGL=1
1248 if test "x$USE_COCOA" = "xyes"; then
1249 GL_PLATFORMS="cgl $GL_PLATFORMS"
1250 GST_GL_HAVE_PLATFORM_CGL=1
1252 if test "x$USE_EAGL" = "xyes"; then
1253 GL_PLATFORMS="eagl $GL_PLATFORMS"
1254 GST_GL_HAVE_PLATFORM_EAGL=1
1257 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1258 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1259 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1260 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1261 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1262 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1265 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1266 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1269 dnl Check for no platforms/window systems
1270 if test "x$GL_APIS" = "x"; then
1271 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1273 if test "x$GL_PLATFORMS" = "x"; then
1274 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1276 if test "x$GL_WINDOWS" = "x"; then
1277 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1280 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1295 HAVE_WINDOW_WIN32=no
1296 HAVE_WINDOW_DISPMANX=no
1297 HAVE_WINDOW_WAYLAND=no
1298 HAVE_WINDOW_ANDROID=no
1299 HAVE_WINDOW_COCOA=no
1304 AC_SUBST(GL_PLATFORMS)
1305 AC_SUBST(GL_WINDOWS)
1308 AC_SUBST(GL_OBJCFLAGS)
1309 AC_SUBST(USE_OPENGL)
1312 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1313 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1314 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1315 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1316 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1317 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1318 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1320 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1321 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1322 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1323 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1324 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1325 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1326 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1327 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1328 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1330 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1332 dnl Check for some types that are not always present
1334 if test "x$USE_GLES2" = "xyes"; then
1335 GL_INCLUDES="$GL_INCLUDES
1336 #ifndef GL_GLEXT_PROTOTYPES
1337 #define GL_GLEXT_PROTOTYPES 1
1340 # include <OpenGLES/ES2/gl.h>
1341 # include <OpenGLES/ES2/glext.h>
1343 # if $GST_GL_HAVE_GLES3
1344 # include <GLES3/gl3.h>
1345 # include <GLES3/gl3ext.h>
1347 # include <GLES2/gl2.h>
1348 # include <GLES2/gl2ext.h>
1354 if test "x$USE_OPENGL" = "xyes"; then
1355 GL_INCLUDES="$GL_INCLUDES
1357 # include <OpenGL/OpenGL.h>
1358 # include <OpenGL/gl.h>
1361 # if __WIN32__ || _WIN32
1362 # include <GL/glext.h>
1368 GST_GL_HAVE_GLEGLIMAGEOES=0
1369 GST_GL_HAVE_GLCHAR=0
1370 GST_GL_HAVE_GLSIZEIPTR=0
1371 GST_GL_HAVE_GLINTPTR=0
1372 GST_GL_HAVE_GLSYNC=0
1373 GST_GL_HAVE_GLUINT64=0
1374 GST_GL_HAVE_GLINT64=0
1375 GST_GL_HAVE_EGLATTRIB=0
1378 CFLAGS="$GL_CFLAGS $CFLAGS"
1380 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1381 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1382 GST_GL_HAVE_GLEGLIMAGEOES=1
1385 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1386 if test "x$ac_cv_type_GLchar" = "xyes"; then
1387 GST_GL_HAVE_GLCHAR=1
1390 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1391 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1392 GST_GL_HAVE_GLSIZEIPTR=1
1395 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1396 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1397 GST_GL_HAVE_GLINTPTR=1
1400 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1401 if test "x$ac_cv_type_GLsync" = "xyes"; then
1402 GST_GL_HAVE_GLSYNC=1
1405 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1406 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1407 GST_GL_HAVE_GLUINT64=1
1410 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1411 if test "x$ac_cv_type_GLint64" = "xyes"; then
1412 GST_GL_HAVE_GLINT64=1
1415 if test "x$USE_EGL" = "xyes"; then
1416 EGL_INCLUDES="$GL_INCLUDES
1417 #include <EGL/egl.h>
1418 #include <EGL/eglext.h>
1420 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1421 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1422 GST_GL_HAVE_EGLATTRIB=1
1428 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1429 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1430 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1431 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1432 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1433 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1434 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1435 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1436 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1439 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1440 outfile=gstglconfig.h-tmp
1441 cat > $outfile <<\_______EOF
1444 * This is a generated file. Please modify `configure.ac'
1447 #ifndef __GST_GL_CONFIG_H__
1448 #define __GST_GL_CONFIG_H__
1450 #include <gst/gst.h>
1456 cat >>$outfile <<_______EOF
1460 cat >>$outfile <<_______EOF
1464 #endif /* __GST_GL_CONFIG_H__ */
1468 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1469 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1472 mv $outfile gst-libs/gst/gl/gstglconfig.h
1475 gl_config_defines='$GL_CONFIG_DEFINES'
1478 dnl libpng is optional
1479 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1480 if test "x$HAVE_PNG" = "xyes"; then
1481 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1484 AC_SUBST(LIBPNG_LIBS)
1485 AC_SUBST(LIBPNG_CFLAGS)
1486 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1488 dnl libjpeg is optional
1489 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1491 if test x$with_jpeg_mmx != x; then
1492 LIBS="$LIBS -L$with_jpeg_mmx"
1494 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1495 JPEG_LIBS="$LIBS -ljpeg-mmx"
1497 if test x$HAVE_JPEG != xyes; then
1499 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1502 if test x$HAVE_JPEG = xyes; then
1503 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1505 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1510 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1513 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1514 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1516 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1517 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1518 VULKAN_CONFIG_DEFINES="
1519 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1520 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1522 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1523 outfile=vkconfig.h-tmp
1524 cat > $outfile <<\_______EOF
1527 * This is a generated file. Please modify `configure.ac'
1530 #ifndef __GST_VULKAN_CONFIG_H__
1531 #define __GST_VULKAN_CONFIG_H__
1533 #include <gst/gst.h>
1539 cat >>$outfile <<_______EOF
1540 $vulkan_config_defines
1543 cat >>$outfile <<_______EOF
1547 #endif /* __GST_VULKAN_CONFIG_H__ */
1551 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1552 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1555 mv $outfile ext/vulkan/vkconfig.h
1558 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1561 dnl *** sys plug-ins ***
1564 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1565 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1566 HAVE_DIRECTSOUND="no"
1567 save_CFLAGS="$CFLAGS"
1568 save_LDFLAGS="$LDFLAGS"
1570 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1571 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1572 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1573 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1574 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1575 #include <windows.h>
1578 #include <mmsystem.h>
1580 DXGetErrorString9 (0);
1581 DirectSoundCreate(NULL, NULL, NULL);
1583 [HAVE_DIRECTSOUND="yes"],
1584 [HAVE_DIRECTSOUND="no"])
1585 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1587 LDFLAGS=$save_LDFLAGS
1590 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1591 dnl this is much more than we want
1592 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1593 AC_SUBST(DIRECTX_CFLAGS)
1594 AC_SUBST(DIRECTX_LDFLAGS)
1595 AC_SUBST(DIRECTSOUND_LIBS)
1597 AC_SUBST(HAVE_DIRECTSOUND)
1601 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1602 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1604 save_CFLAGS="$CFLAGS"
1605 save_LDFLAGS="$LDFLAGS"
1607 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1608 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1609 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1610 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1611 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1612 #include <windows.h>
1614 #include <mmsystem.h>
1615 #include <mmdeviceapi.h>
1621 hr = CoInitialize(NULL);
1623 printf("CoInitialize failed: hr = 0x%08x", hr);
1628 // result = do_everything(argc, argv);
1634 [HAVE_WASAPI="yes"],
1636 AC_MSG_RESULT($HAVE_WASAPI)
1638 LDFLAGS=$save_LDFLAGS
1641 if test "x$HAVE_WASAPI" = "xyes"; then
1642 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1643 AC_SUBST(WASAPI_LIBS)
1645 AC_SUBST(HAVE_WASAPI)
1649 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1650 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1652 save_CFLAGS="$CFLAGS"
1653 save_LDFLAGS="$LDFLAGS"
1655 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1656 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1657 LIBS="$LIBS -ld3d9 -lgdi32"
1658 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1659 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1660 #include <windows.h>
1663 Direct3DCreate9(D3D_SDK_VERSION);
1665 [HAVE_DIRECT3D="yes"],
1666 [HAVE_DIRECT3D="no"])
1667 AC_MSG_RESULT($HAVE_DIRECT3D)
1669 LDFLAGS=$save_LDFLAGS
1672 if test "x$HAVE_DIRECT3D" = "xyes"; then
1673 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1674 AC_SUBST(DIRECT3D_LIBS)
1676 AC_SUBST(HAVE_DIRECT3D)
1680 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1681 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1682 HAVE_WINSCREENCAP="no"
1683 save_CFLAGS="$CFLAGS"
1684 save_LDFLAGS="$LDFLAGS"
1686 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1687 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1688 LIBS="$LIBS -ld3d9 -lgdi32"
1689 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1690 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1691 #include <windows.h>
1694 Direct3DCreate9(D3D_SDK_VERSION);
1696 [HAVE_WINSCREENCAP="yes"],
1697 [HAVE_WINSCREENCAP="no"])
1698 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1700 LDFLAGS=$save_LDFLAGS
1703 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1704 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1705 AC_SUBST(WINSCREENCAP_LIBS)
1707 AC_SUBST(HAVE_WINSCREENCAP)
1711 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1712 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1714 save_CFLAGS="$CFLAGS"
1715 save_LDFLAGS="$LDFLAGS"
1717 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1718 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1719 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1720 AC_MSG_CHECKING(for Winks LDFLAGS)
1721 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1722 #include <windows.h>
1727 IGraphBuilder *pGraph = NULL;
1728 HRESULT hr = CoInitialize(NULL);
1729 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1730 &IID_IGraphBuilder, (void **)&pGraph);
1737 AC_MSG_RESULT($HAVE_WINKS)
1739 LDFLAGS=$save_LDFLAGS
1742 if test "x$HAVE_WINKS" = "xyes"; then
1743 dnl this is much more than we want
1744 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1745 AC_SUBST(DIRECTX_CFLAGS)
1746 AC_SUBST(DIRECTX_LDFLAGS)
1747 AC_SUBST(WINKS_LIBS)
1749 AC_SUBST(HAVE_WINKS)
1752 dnl *** Android Media ***
1753 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1754 HAVE_ANDROID_MEDIA="no"
1755 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1758 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1761 HAVE_ANDROID_MEDIA="no"
1766 dnl *** AppleMedia (OS X and iOS) ***
1767 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1768 HAVE_APPLE_MEDIA="no"
1769 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1770 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1771 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1772 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1773 if test "x$HAVE_IOS" = "xno"; then
1774 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1778 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1783 HAVE_APPLE_MEDIA="no"
1788 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1789 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1790 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1791 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1792 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1794 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1803 dnl *** OS/X AVCVideoServices ***
1804 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1806 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1808 save_CPPFLAGS="$CPPFLAGS"
1809 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1811 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1812 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1814 CPPFLAGS=$save_CPPFLAGS
1817 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1826 dnl check for shm_open (for shm plugin)
1827 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1828 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1829 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1831 *-darwin* | *-macos10*)
1832 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1839 AC_CHECK_LIB([rt], [shm_open],
1840 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1841 #include <sys/socket.h>
1844 AC_SUBST(SHM_LIBS, "-lrt")
1852 dnl check for Video CD
1853 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1854 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1855 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1858 dnl check for OpenSL ES
1859 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1860 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1861 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1864 dnl *** UVC H264 ***
1865 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1866 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1867 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1868 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1869 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1872 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1873 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1874 HAVE_LIBUSB="yes" ],
1876 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1877 test "x$HAVE_GUDEV" = "xyes" && \
1878 test "x$HAVE_LIBUSB" = "xyes"; then
1884 AC_SUBST(LIBUDEV_CFLAGS)
1885 AC_SUBST(LIBUDEV_LIBS)
1886 AC_SUBST(LIBUSB_CFLAGS)
1887 AC_SUBST(LIBUSB_LIBS)
1890 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1891 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1892 AC_ARG_WITH([cuda-prefix],
1893 AS_HELP_STRING([--with-cuda-prefix],
1894 [Use the provided prefix for detecting the cuda installation]),
1895 [AS_IF([test "x$with_cuda_prefix" != "x"],
1896 [CUDA_PREFIX="$with_cuda_prefix"])],
1900 if test "x$CUDA_PREFIX" != "x"; then
1901 dnl only override if not already set
1902 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1903 dnl this is an educated guess, user can always override these
1904 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1905 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1908 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1909 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1910 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1911 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1916 save_CPPFLAGS="$CPPFLAGS"
1917 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1918 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1919 AC_MSG_WARN([Could not find cuda.h]))
1920 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1921 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1922 CPPFLAGS=$save_CPPFLAGS
1924 dnl libcuda and libcudart libraries
1926 LIBS="$CUDA_LIBS $save_LIBS"
1927 HAVE_CUDART_LIB="no"
1928 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1929 AC_MSG_WARN([Could not find cudart library])])
1931 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1932 AC_MSG_WARN([Could not find cuda library])])
1935 dnl nvEncodeAPI.h header
1936 HAVE_NVENCODEAPI_H=no
1937 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1938 save_CPPFLAGS="$CPPFLAGS"
1939 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1940 AC_CHECK_HEADER([nvEncodeAPI.h], [
1941 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1942 #if NVENCAPI_MAJOR_VERSION < 5
1943 #error "Need nvEncodeAPI.h >= 5.0"
1946 HAVE_NVENCODEAPI_H=yes
1948 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1951 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1952 AC_SUBST(NVENCODE_CFLAGS)
1953 CPPFLAGS="$save_CPPFLAGS"
1955 dnl libnvnidia-encode library
1956 HAVE_NVENCODE_LIB=no
1957 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1959 LIBS="$NVENCODE_LIBS $saved_LIBS"
1960 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1961 AC_MSG_WARN([Could not find library nvidia-encode]))
1962 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1963 AC_SUBST(NVENCODE_LIBS)
1967 if test "x$HAVE_CUDA_H" = "xyes" \
1968 -a "x$HAVE_CUDART_H" = "xyes" \
1969 -a "x$HAVE_CUDA_LIB" = "xyes" \
1970 -a "x$HAVE_CUDART_LIB" = "xyes" \
1971 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1972 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1974 if test x"$USE_OPENGL" = x"yes"; then
1975 dnl cuda-gl interop header
1976 save_CPPFLAGS="$CPPFLAGS"
1977 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1978 AC_CHECK_HEADER([cuda_gl_interop.h], [
1979 USE_NVENC_GST_GL="yes"
1980 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1982 CPPFLAGS="$save_CPPFLAGS"
1988 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1990 dnl check for tinyalsa
1991 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1992 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1993 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1996 dnl check for intel mediasdk
1997 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1998 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1999 AC_ARG_WITH([msdk-prefix],
2000 AS_HELP_STRING([--with-msdk-prefix],
2001 [Use the provided prefix for detecting the Intel MediaSDK]),
2002 [AS_IF([test "x$with_msdk_prefix" != "x"],
2003 [MSDK_PREFIX="$with_msdk_prefix"])],
2004 [AS_IF([test "x$MFX_HOME" != "x"],
2005 [MSDK_PREFIX="$MFX_HOME"],
2006 [MSDK_PREFIX="/opt/intel/media"])])
2007 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2008 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2009 AC_SUBST(MSDK_CFLAGS)
2012 save_CPPFLAGS="$CPPFLAGS"
2013 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2014 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2015 CPPFLAGS="$save_CPPFLAGS"
2018 LIBS="$MSDK_LIBS $LIBS"
2020 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2024 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2026 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2027 -a "x$HAVE_MFX_LIB" = "xyes" \
2028 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2034 AM_CONDITIONAL(USE_MSDK_LIBVA,
2035 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2037 dnl *** ext plug-ins ***
2038 dnl keep this list sorted alphabetically !
2040 if test "x$BUILD_EXTERNAL" = "xyes"; then
2042 dnl *** assrender ***
2043 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2044 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2045 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2046 HAVE_ASSRENDER="yes" ], [
2050 AC_SUBST(ASSRENDER_CFLAGS)
2051 AC_SUBST(ASSRENDER_LIBS)
2053 dnl *** vo-amrwbenc ***
2054 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2055 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2056 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2059 dnl *** vo-aacenc ***
2060 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2061 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2062 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2066 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2067 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2068 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2071 AC_SUBST(BS2B_CFLAGS)
2076 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2077 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2080 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2081 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2082 AC_MSG_RESULT($HAVE_BZ2)
2084 if test "x$HAVE_BZ2" = "xyes"; then
2092 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2093 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2094 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2097 # AC_SUBST(CAIRO_CFLAGS)
2098 # AC_SUBST(CAIRO_LIBS)
2101 dnl *** chromaprint ***
2102 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2103 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2104 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2105 HAVE_CHROMAPRINT="no"
2107 AC_SUBST(CHROMAPRINT_CFLAGS)
2108 AC_SUBST(CHROMAPRINT_LIBS)
2112 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2113 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2114 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2116 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2117 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2119 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2120 [[#ifdef HAVE_SYS_TYPES_H
2121 # include <sys/types.h>
2123 #ifdef HAVE_NETINET_IN_H
2124 # include <netinet/in.h>
2127 AC_MSG_CHECKING([for socket support needed by curlsink])
2128 AC_MSG_RESULT($HAVE_CURL)
2132 AC_SUBST(CURL_CFLAGS)
2134 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2136 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2140 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2141 AC_SUBST(SSH2_CFLAGS)
2143 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2146 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2147 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2148 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2149 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2151 AC_SUBST(LIBXML2_CFLAGS)
2152 AC_SUBST(LIBXML2_LIBS)
2156 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2157 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2158 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2159 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2168 AC_SUBST(LIBDC1394_CFLAGS)
2169 AC_SUBST(LIBDC1394_LIBS)
2172 dnl *** decklink ***
2173 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2174 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2181 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2182 AC_CHECK_LIB(dl, dlopen,
2186 DECKLINK_LIBS="-lpthread -ldl"
2191 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2192 AC_CHECK_LIB(dl, dlopen,
2196 DECKLINK_LIBS="-lpthread -ldl"
2197 HAVE_DECKLINK_OSX=yes
2206 AC_SUBST(DECKLINK_CXXFLAGS)
2207 AC_SUBST(DECKLINK_LIBS)
2209 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2211 dnl **** DirectFB ****
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2213 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2214 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2219 dnl **** Wayland ****
2220 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2221 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2222 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2223 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2224 if test "x$wayland_scanner" != "x"; then
2226 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2228 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2237 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2238 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2239 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2240 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2242 AC_SUBST(WEBP_CFLAGS)
2247 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2248 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2249 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2250 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2255 AC_SUBST(DAALA_CFLAGS)
2256 AC_SUBST(DAALA_LIBS)
2261 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2262 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2264 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2265 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2266 if test $HAVE_DTS = "no"; then
2267 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2268 [ DTS_LIBS="-ldts_pic $LIBM"
2269 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2275 dnl *** resindvd ***
2276 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2277 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2278 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2283 dnl **** Free AAC Encoder (FAAC) ****
2284 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2285 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2286 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2287 FAAC_LIBS="-lfaac $LIBM")
2291 dnl **** Free AAC Decoder (FAAD2) ****
2292 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2293 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2294 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2295 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2296 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2298 #elif !defined(LATM)
2299 #error Not faad2 >= 2.7
2305 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2315 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2316 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2317 if test "x$HAVE_FBDEV" != "xyes"; then
2318 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2323 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2324 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2325 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2327 HAVE_FDK_AAC_0_1_4="yes"
2328 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2330 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2335 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2336 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2337 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2338 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2340 AC_SUBST(FLITE_CFLAGS)
2341 AC_SUBST(FLITE_LIBS)
2345 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2346 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2347 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2348 if test $HAVE_GSM != "yes"; then
2349 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2350 if test $HAVE_GSM = "yes"; then
2351 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2357 dnl *** fluidSynth ***
2358 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2359 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2360 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2361 HAVE_FLUIDSYNTH="no"
2366 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2367 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2368 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2371 AC_SUBST(KATE_CFLAGS)
2373 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2376 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2382 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2383 AC_SUBST(TIGER_CFLAGS)
2384 AC_SUBST(TIGER_LIBS)
2385 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2388 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2389 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2390 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2391 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2396 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2397 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2399 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2400 if test $HAVE_LRDF = "yes"; then
2401 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2404 AC_SUBST(LRDF_CFLAGS)
2408 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2409 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2410 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2412 HAVE_LILV_0_22="yes"
2413 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2415 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2417 AC_SUBST(LILV_CFLAGS)
2421 dnl *** libde265 ***
2422 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2423 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2424 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2425 AC_SUBST(LIBDE265_CFLAGS)
2426 AC_SUBST(LIBDE265_LIBS)
2430 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2431 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2432 dnl check with pkg-config first
2433 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2437 AC_SUBST(LIBMMS_LIBS)
2441 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2442 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2443 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2444 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2447 AC_SUBST(SRTP_CFLAGS)
2451 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2452 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2453 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2455 AC_SUBST(DTLS_CFLAGS)
2463 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2464 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2465 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2466 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2475 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2476 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2477 if test "x$HAVE_CXX" != "xyes"; then
2478 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2481 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2483 AC_SUBST(MODPLUG_CFLAGS)
2484 AC_SUBST(MODPLUG_LIBS)
2487 dnl *** mjpegtools version info ***
2488 dnl some may prefer older version (given quirks above)
2489 dnl hm, no version info seems available within mjpegtools headers
2490 dnl and API really moves along
2492 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2493 mjpegtools_api=10601
2495 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2496 mjpegtools_api=10800
2498 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2499 mjpegtools_api=20000
2501 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2502 dnl logging API changed in release candidates
2503 OLD_CFLAGS="$CFLAGS"
2505 CFLAGS="$MJPEG_CFLAGS"
2506 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2507 AC_CHECK_FUNC(mjpeg_loglev_t, [
2508 mjpegtools_api=10903
2510 mjpegtools_api=10900
2512 CFLAGS="$OLD_CFLAGS"
2520 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2521 [mjpegtools API evolution])
2523 dnl *** mpeg2enc ***
2524 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2525 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2527 dnl we require a c++ compiler for this one
2528 if [ test x$HAVE_CXX = xyes ]; then
2529 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2530 dnl since many distros include mjpegtools specifically without mplex
2531 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2532 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2533 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2535 dnl switch over to c++ to test things
2537 OLD_CPPFLAGS="$CPPFLAGS"
2539 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2540 CPPFLAGS="$CPPFLAGS_GOOD -I."
2542 mpeg2enc_headers_ok=no
2543 AC_CHECK_HEADER([mpeg2encoder.hh], [
2544 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2546 LIBS="$LIBS $MPEG2ENC_LIBS"
2547 AC_MSG_CHECKING([for valid mpeg2enc objects])
2548 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2549 #include <mpeg2encoder.hh>
2550 #include <mpeg2encoptions.hh>
2556 MPEG2EncOptions *options = new MPEG2EncOptions ();
2557 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2562 dnl so far so good, let's check more things:
2563 dnl mjpegtools-1.8.0 does not install the required
2564 dnl mpeg2syntaxcodes.h header by default, and a new release
2565 dnl is not in sight, so check for this oversight in case
2566 dnl distros or folks have fixed this themselves
2567 if test "$mjpegtools_api" -ge "10800"; then
2568 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2569 mpeg2enc_headers_ok=yes
2571 mpeg2enc_headers_ok=no
2574 mpeg2enc_headers_ok=yes
2576 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2579 CPPFLAGS="$CPPFLAGS_GOOD"
2580 AC_SUBST(MPEG2ENC_CFLAGS)
2581 AC_SUBST(MPEG2ENC_LIBS)
2588 CPPFLAGS="$OLD_CPPFLAGS"
2597 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2598 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2600 dnl we require a c++ compiler for this one
2601 if [ test x$HAVE_CXX = xyes ]; then
2602 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2603 dnl since many distros include mjpegtools specifically without mplex
2604 dnl and mpeg2enc, we check for mplex on its own, too.
2605 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2606 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2607 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2609 dnl switch over to c++ to test things
2611 OLD_CPPFLAGS="$CPPFLAGS"
2613 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2614 CPPFLAGS="$CPPFLAGS_GOOD -I."
2615 AC_CHECK_HEADER(interact.hpp, [
2616 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2618 LIBS="$LIBS $MPLEX_LIBS"
2619 OLD_LDFLAGS="$LDFLAGS"
2620 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2621 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2622 dnl don't want this here
2623 AC_MSG_CHECKING([for valid mplex objects])
2624 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2626 #include <interact.hpp>
2627 #include <outputstrm.hpp>
2628 #include <multiplexor.hpp>
2633 class TestOutputStream : public OutputStream {
2635 TestOutputStream () : OutputStream () { }
2636 void Write (uint8_t *a, unsigned int b) { }
2637 void NextSegment () { }
2638 uint64_t SegmentSize () { }
2642 MultiplexJob *job = new MultiplexJob ();
2643 vector<IBitStream *> inputs;
2644 job->SetupInputStreams (inputs);
2645 TestOutputStream *out = new TestOutputStream ();
2646 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2651 CPPFLAGS="$CPPFLAGS_GOOD"
2652 AC_SUBST(MPLEX_CFLAGS)
2653 AC_SUBST(MPLEX_LIBS)
2654 AC_SUBST(MPLEX_LDFLAGS)
2656 ],[AC_MSG_RESULT(no)],[])
2658 LDFLAGS="$OLD_LDFLAGS"
2660 CPPFLAGS="$OLD_CPPFLAGS"
2666 dnl *** musepack ***
2667 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2668 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2669 AC_CHECK_HEADER([mpc/mpcdec.h], [
2671 MUSEPACK_LIBS="-lmpcdec"
2672 AC_SUBST(MUSEPACK_LIBS)
2673 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2675 MUSEPACK_LIBS="-lmpcdec"
2676 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2677 AC_SUBST(MUSEPACK_LIBS)
2678 ], [HAVE_MUSEPACK="no"])])
2682 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2683 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2684 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2687 AC_SUBST(NEON_CFLAGS)
2692 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2693 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2694 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2697 AC_SUBST(OFA_CFLAGS)
2702 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2703 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2704 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2707 AC_SUBST(OPENAL_CFLAGS)
2708 AC_SUBST(OPENAL_LIBS)
2712 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2713 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2714 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2715 dnl and don't want the build to break when a new opencv version comes out.
2716 dnl Need to adjust this upwards once we know that our code compiles fine with
2717 dnl a new version and the no-backward-compatibility define. (There doesn't
2718 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2720 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2723 OLD_CPPFLAGS=$CPPFLAGS
2724 CPPFLAGS=$OPENCV_CFLAGS
2725 something_not_found=no
2726 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2727 opencv2/core/version.hpp \
2728 opencv2/highgui/highgui_c.h \
2729 opencv2/imgproc/imgproc.hpp \
2730 opencv2/imgproc/imgproc_c.h \
2731 opencv2/objdetect/objdetect.hpp \
2732 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2734 dnl Only required for OpenCV >= 3, we have compat code for older versions
2735 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2736 dnl check opencv_contrib headers (not always present in opencv distributions)
2737 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2738 [NOT_A_PROBLEM=yes])
2740 CPPFLAGS=$OLD_CPPFLAGS
2743 if test $something_not_found = "yes"; then
2744 AC_MSG_RESULT([not all opencv2 headers were found])
2752 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2753 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2754 AC_SUBST(OPENCV_PREFIX)
2755 AC_SUBST(OPENCV_CFLAGS)
2756 AC_SUBST(OPENCV_LIBS)
2757 dnl the OpenCV prefix is used at runtime for some object properties, and also
2758 dnl used here to detect which directory is the correct one. For the second
2759 dnl case, make sure the right sysroot is used, ensuring correct behavior
2760 dnl during cross compilation.
2761 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2762 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2764 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2769 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2770 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2771 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2774 dnl *** openh264 ***
2775 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2776 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2777 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2780 dnl *** OpenJPEG ***
2781 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2782 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2784 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2785 if test x"$HAVE_OPENJPEG" = x"yes"; then
2786 dnl minor API changes in v2.1
2787 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2788 if test x"$HAVE_OPENJPEG" = x"yes"; then
2789 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2794 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2795 HAVE_OPENJPEG="yes",
2796 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2798 if test x"$HAVE_OPENJPEG" = x"yes"; then
2799 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2802 AC_SUBST(OPENJPEG_CFLAGS)
2803 AC_SUBST(OPENJPEG_LIBS)
2807 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2808 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2809 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2810 AC_SUBST(OPENNI2_CFLAGS)
2811 AC_SUBST(OPENNI2_LIBS)
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2816 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2817 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2818 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2823 AC_SUBST(OPUS_CFLAGS)
2828 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2829 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2830 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2834 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2835 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2838 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2845 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2846 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2847 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2848 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2853 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2855 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2856 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2857 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2858 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2860 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2862 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2863 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2864 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2865 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2867 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2869 if test "x$GDK_WINDOWING" = "xyes"; then
2870 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2877 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2880 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2881 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2882 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2883 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2884 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2885 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2886 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2887 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2888 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2889 AC_MSG_WARN([One of the required qt build programs was not found])
2893 HAVE_QT_WINDOWING="no"
2894 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2895 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2896 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2897 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2898 HAVE_QT_QPA_HEADER="yes"
2899 ], [AC_MSG_NOTICE([Cannot find QPA])])
2900 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2901 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2902 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2903 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2904 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2905 HAVE_QT_WINDOWING="yes"
2906 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2908 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
2909 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2910 AC_DEFINE([HAVE_QT_WAYLAND], [],
2911 [Define if Qt Wayland integration is installed])
2912 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2913 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2914 HAVE_QT_WINDOWING="yes"
2915 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2917 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2918 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2919 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2920 # c++ on android requires a standard library and there are multiple
2921 # choices. cerbero provides a pkg-config file the describes a choice
2922 # so try to use that. Outside cerbero one has to pass these flags
2923 # manually for the library one is using
2924 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2925 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2926 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2928 AC_MSG_NOTICE([Could not find Standard C++ library])])
2929 AC_DEFINE([HAVE_QT_EGLFS], [],
2930 [Define if Qt eglfs integration is installed])
2931 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2932 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2933 HAVE_QT_WINDOWING="yes"
2934 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2936 AC_DEFINE([HAVE_QT_EGLFS], [],
2937 [Define if Qt eglfs integration is installed])
2938 HAVE_QT_WINDOWING="yes"
2941 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2942 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2943 AC_DEFINE([HAVE_QT_MAC], [],
2944 [Define if Qt Mac integration is installed])
2945 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2946 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2947 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2948 HAVE_QT_WINDOWING="yes"
2949 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2951 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2952 if test "x$HAVE_IOS" = "xyes"; then
2953 # iOS doesn't have its own extras package so if we have the core
2954 # modules we are good to go
2955 AC_DEFINE([HAVE_QT_IOS], [],
2956 [Define if Qt iOS integration is installed])
2957 HAVE_QT_WINDOWING="yes"
2960 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2961 AC_MSG_WARN([Could not find any Qt Windowing integration])
2964 AC_SUBST([QT_CFLAGS])
2973 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2974 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2975 AC_CHECK_HEADER(vulkan/vulkan.h, [
2976 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2977 VULKAN_LIBS="-lvulkan"
2978 AC_SUBST(VULKAN_LIBS)
2979 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2982 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2989 dnl *** teletextdec ***
2990 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2991 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2992 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2995 dnl *** wildmidi ***
2996 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2997 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2998 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3001 WILDMIDI_LIBS="-lWildMidi")
3002 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3004 if test "x$HAVE_WILDMIDI" = "xyes"; then
3006 WILDMIDI_LIBS=-lWildMidi
3007 AC_MSG_NOTICE(compiling gstWildMidi)
3011 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3013 AC_SUBST(WILDMIDI_CFLAGS)
3014 AC_SUBST(WILDMIDI_LIBS)
3017 dnl **** Smooth Streaming ****
3018 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3019 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3020 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3022 HAVE_SMOOTHSTREAMING="yes"],
3024 HAVE_SMOOTHSTREAMING="no"])
3025 AC_SUBST(LIBXML2_CFLAGS)
3026 AC_SUBST(LIBXML2_LIBS)
3030 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3031 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3032 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3033 AC_SUBST(SNDFILE_CFLAGS)
3034 AC_SUBST(SNDFILE_LIBS)
3037 dnl *** soundtouch ***
3038 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3039 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3040 dnl We only need -lBPM on soundtouch < 1.4
3041 dnl We check for libSoundTouch since Debian used it before upstream
3042 dnl added a pkgconfig file.
3043 HAVE_SOUNDTOUCH_1_4=yes
3044 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3045 [HAVE_SOUNDTOUCH=yes],
3046 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3047 [HAVE_SOUNDTOUCH=yes],
3048 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3049 [HAVE_SOUNDTOUCH=yes
3050 HAVE_SOUNDTOUCH_1_4=no
3051 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3052 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3053 [HAVE_SOUNDTOUCH=yes],
3054 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3055 [HAVE_SOUNDTOUCH=yes
3056 HAVE_SOUNDTOUCH_1_4=no
3057 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3058 HAVE_SOUNDTOUCH=no)])])])])
3059 AC_SUBST(SOUNDTOUCH_CFLAGS)
3060 AC_SUBST(SOUNDTOUCH_LIBS)
3061 if test "x$HAVE_CXX" != "xyes"; then
3062 USE_SOUNDTOUCH=false
3063 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3065 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3066 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3067 [Defined if the available libSoundTouch is >= 1.4])
3072 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3073 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3074 AC_CHECK_HEADER(openspc.h, [
3075 AC_CHECK_LIB(openspc, OSPC_Init, [
3076 SPC_LIBS="-lopenspc"
3088 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3089 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3090 AC_CHECK_HEADER(gme/gme.h, [
3091 AC_CHECK_LIB(gme, gme_new_emu, [
3102 if test "x$HAVE_GME" = "xyes"; then
3103 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3104 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3110 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3111 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3112 AC_MSG_CHECKING([Checking for up to date dvb installation])
3113 AC_CHECK_HEADER(linux/dvb/version.h, [
3114 AC_MSG_CHECKING([for up-to-date dvb API])
3115 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3116 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3117 #error "Incompatible dvb API"
3119 ]])], [ AC_MSG_RESULT(yes)
3121 ], [ AC_MSG_RESULT(no)
3128 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3129 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3130 AC_MSG_CHECKING([Checking for ACM support])
3131 AC_CHECK_HEADERS([windows.h msacm.h],
3133 AC_SUBST(ACMENC_CFLAGS)
3134 AC_SUBST(ACMMP3DEC_CFLAGS)
3136 [AC_INCLUDES_DEFAULT
3137 #include <windows.h>])
3141 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3142 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3147 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3149 if test "$HAVE_VDPAU" = "no"; then
3150 saved_CPPFLAGS="$CPPFLAGS"
3151 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3153 if test -z "$HAVE_VDPAU_H"; then
3154 dnl Didn't find VDPAU header straight away.
3155 dnl Try /usr/include/nvidia. Need to clear caching vars first
3156 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3157 unset ac_cv_header_vdpau_vdpau_h
3158 unset ac_cv_header_vdpau_vdpau_x11_h
3159 VDPAU_CFLAGS="-I/usr/include/nvidia"
3160 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3161 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3162 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3165 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3167 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3168 dnl Found the headers - look for the lib
3169 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3171 LIBS="$VDPAU_LIBS $saved_LIBS"
3172 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3178 if test "$HAVE_VDPAU" = "yes"; then
3179 AC_MSG_NOTICE([Found up to date VDPAU installation])
3180 AC_SUBST(VDPAU_CFLAGS)
3181 AC_SUBST(VDPAU_LIBS)
3186 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3187 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3188 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3191 dnl *** schroedinger ***
3192 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3193 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3194 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3198 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3199 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3200 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3204 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3205 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3206 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3210 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3211 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3212 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3213 HAVE_SPANDSP="yes" ], [
3217 AC_SUBST(SPANDSP_CFLAGS)
3218 AC_SUBST(SPANDSP_LIBS)
3220 dnl *** hls-crypto ***
3221 AC_ARG_WITH([hls-crypto],
3222 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3223 which cryptographic library version to compile against for hls (default: auto)
3225 AS_CASE([$with_hls_crypto],
3229 [with_hls_crypto=auto]
3235 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3236 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3237 AS_CASE([$with_hls_crypto],
3239 PKG_CHECK_MODULES(NETTLE, nettle, [
3240 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3242 ],[AC_MSG_ERROR([Could not find nettle library])])
3245 AM_PATH_LIBGCRYPT([1.2.0], [
3246 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3248 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3251 PKG_CHECK_MODULES(OPENSSL, openssl, [
3252 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3254 ],[AC_MSG_ERROR([Could not find openssl library])])
3257 dnl Try to find a valid crypto library
3258 PKG_CHECK_MODULES(NETTLE, nettle, [
3259 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3262 AM_PATH_LIBGCRYPT([1.2.0], [
3263 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3266 PKG_CHECK_MODULES(OPENSSL, openssl, [
3267 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3278 dnl *** x265 (H.265/HEVC encoder) ***
3279 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3280 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3281 AG_GST_PKG_CHECK_MODULES(X265, x265)
3284 dnl *** WebRTC Audio Processing ***
3285 dnl Note: We test for a specific version as there is no API stability
3286 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3287 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3289 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3291 # On Android, C++ headers comes with the STL implementation
3292 AS_CASE(["${host}"],
3295 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3296 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3297 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3299 AC_SUBST([WEBRTCDSP_CFLAGS])
3300 AC_SUBST([WEBRTCDSP_LIBS])
3303 old_CPPFLAGS=$CPPFLAGS
3304 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3305 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3306 CPPFLAGS=$old_CPPFLAGS
3312 dnl not building plugins with external dependencies,
3313 dnl but we still need to set the conditionals
3315 AM_CONDITIONAL(USE_ASSRENDER, false)
3316 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3317 AM_CONDITIONAL(USE_VOAACENC, false)
3318 AM_CONDITIONAL(USE_BS2B, false)
3319 AM_CONDITIONAL(USE_BZ2, false)
3320 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3321 AM_CONDITIONAL(USE_CURL, false)
3322 AM_CONDITIONAL(USE_SSH2, false)
3323 AM_CONDITIONAL(USE_DASH, false)
3324 AM_CONDITIONAL(USE_DC1394, false)
3325 AM_CONDITIONAL(USE_DECKLINK, false)
3326 AM_CONDITIONAL(DECKLINK_OSX, false)
3327 AM_CONDITIONAL(USE_DIRECTFB, false)
3328 AM_CONDITIONAL(USE_WAYLAND, false)
3329 AM_CONDITIONAL(USE_DAALA, false)
3330 AM_CONDITIONAL(USE_DTS, false)
3331 AM_CONDITIONAL(USE_EXIF, false)
3332 AM_CONDITIONAL(USE_RESINDVD, false)
3333 AM_CONDITIONAL(USE_FAAC, false)
3334 AM_CONDITIONAL(USE_FAAD, false)
3335 AM_CONDITIONAL(USE_FBDEV, false)
3336 AM_CONDITIONAL(USE_FDK_AAC, false)
3337 AM_CONDITIONAL(USE_FLITE, false)
3338 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3339 AM_CONDITIONAL(USE_GL, false)
3340 AM_CONDITIONAL(USE_GSM, false)
3341 AM_CONDITIONAL(USE_GTK3, false)
3342 AM_CONDITIONAL(USE_GTK3_GL, false)
3343 AM_CONDITIONAL(USE_HLS, false)
3344 AM_CONDITIONAL(USE_IQA, false)
3345 AM_CONDITIONAL(USE_KATE, false)
3346 AM_CONDITIONAL(USE_KMS, false)
3347 AM_CONDITIONAL(USE_TIGER, false)
3348 AM_CONDITIONAL(USE_LADSPA, false)
3349 AM_CONDITIONAL(USE_LV2, false)
3350 AM_CONDITIONAL(USE_LIBDE265, false)
3351 AM_CONDITIONAL(USE_LIBMMS, false)
3352 AM_CONDITIONAL(USE_MODPLUG, false)
3353 AM_CONDITIONAL(USE_MPEG2ENC, false)
3354 AM_CONDITIONAL(USE_MPLEX, false)
3355 AM_CONDITIONAL(USE_MUSEPACK, false)
3356 AM_CONDITIONAL(USE_NEON, false)
3357 AM_CONDITIONAL(USE_OFA, false)
3358 AM_CONDITIONAL(USE_OPENAL, false)
3359 AM_CONDITIONAL(USE_OPENCV, false)
3360 AM_CONDITIONAL(USE_OPENEXR, false)
3361 AM_CONDITIONAL(USE_OPENJPEG, false)
3362 AM_CONDITIONAL(USE_OPENNI2, false)
3363 AM_CONDITIONAL(USE_OPUS, false)
3364 AM_CONDITIONAL(USE_QT, false)
3365 AM_CONDITIONAL(USE_WILDMIDI, false)
3366 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3367 AM_CONDITIONAL(USE_SNDFILE, false)
3368 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3369 AM_CONDITIONAL(USE_SPANDSP, false)
3370 AM_CONDITIONAL(USE_SPC, false)
3371 AM_CONDITIONAL(USE_SRTP, false)
3372 AM_CONDITIONAL(USE_GME, false)
3373 AM_CONDITIONAL(USE_DVB, false)
3374 AM_CONDITIONAL(USE_ACM, false)
3375 AM_CONDITIONAL(USE_VDPAU, false)
3376 AM_CONDITIONAL(USE_SBC, false)
3377 AM_CONDITIONAL(USE_SCHRO, false)
3378 AM_CONDITIONAL(USE_ZBAR, false)
3379 AM_CONDITIONAL(USE_RSVG, false)
3380 AM_CONDITIONAL(USE_RTMP, false)
3381 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3382 AM_CONDITIONAL(USE_UVCH264, false)
3383 AM_CONDITIONAL(USE_WEBP, false)
3384 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3385 AM_CONDITIONAL(USE_OPENH264, false)
3386 AM_CONDITIONAL(USE_X265, false)
3387 AM_CONDITIONAL(USE_DTLS, false)
3388 AM_CONDITIONAL(USE_VULKAN, false)
3389 AM_CONDITIONAL(USE_TTML, false)
3391 fi dnl of EXT plugins
3393 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3396 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3397 dnl GST_*: flags shared by built objects to link against GStreamer
3398 dnl GST_ALL_LDFLAGS: linker flags shared by all
3399 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3400 dnl GST_LT_LDFLAGS: library versioning of our libraries
3401 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3403 dnl GST_OPTION_CFLAGS
3404 if test "x$USE_DEBUG" = xyes; then
3407 AC_SUBST(PROFILE_CFLAGS)
3409 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3410 dnl Define _only_ during CVS (not pre-releases or releases)
3411 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3413 DEPRECATED_CFLAGS=""
3415 AC_SUBST(DEPRECATED_CFLAGS)
3417 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3418 dnl at make time with e.g. make ERROR_CFLAGS=""
3419 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3420 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3421 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3422 AC_SUBST(GST_OPTION_CFLAGS)
3423 AC_SUBST(GST_OPTION_CXXFLAGS)
3424 AC_SUBST(GST_OPTION_OBJCFLAGS)
3426 dnl FIXME: do we want to rename to GST_ALL_* ?
3427 dnl prefer internal headers to already installed ones
3428 dnl also add builddir include for enumtypes and marshal
3429 dnl add GST_OPTION_CFLAGS, but overridable
3430 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3431 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3432 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3433 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3434 AC_SUBST(GST_CFLAGS)
3435 AC_SUBST(GST_CXXFLAGS)
3436 AC_SUBST(GST_OBJCFLAGS)
3438 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3439 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3440 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3441 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3442 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3443 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3445 dnl LDFLAGS really should only contain flags, not libs - they get added before
3446 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3447 GST_ALL_LDFLAGS="-no-undefined"
3448 if test "x${enable_Bsymbolic}" = "xyes"; then
3449 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3451 AC_SUBST(GST_ALL_LDFLAGS)
3454 dnl linker flags shared by all libraries
3455 dnl LDFLAGS modifier defining exported symbols from built libraries
3456 dnl (export _gst_foo but not __gst_foo)
3457 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3458 AC_SUBST(GST_LIB_LDFLAGS)
3460 dnl this really should only contain flags, not libs - they get added before
3461 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3462 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3463 AC_SUBST(GST_PLUGIN_LDFLAGS)
3465 dnl *** output files ***
3467 $MKDIR_P tests/check/orc
3476 gst/accurip/Makefile
3477 gst/adpcmdec/Makefile
3478 gst/adpcmenc/Makefile
3480 gst/videoframe_audiolevel/Makefile
3482 gst/audiobuffersplit/Makefile
3483 gst/audiofxbad/Makefile
3484 gst/audiomixer/Makefile
3485 gst/audiovisualizers/Makefile
3486 gst/autoconvert/Makefile
3488 gst/camerabin2/Makefile
3489 gst/coloreffects/Makefile
3490 gst/debugutils/Makefile
3491 gst/dvbsuboverlay/Makefile
3493 gst/festival/Makefile
3494 gst/fieldanalysis/Makefile
3495 gst/freeverb/Makefile
3497 gst/gaudieffects/Makefile
3498 gst/geometrictransform/Makefile
3502 gst/interlace/Makefile
3503 gst/ivfparse/Makefile
3505 gst/jp2kdecimator/Makefile
3506 gst/jpegformat/Makefile
3509 gst/mpegdemux/Makefile
3510 gst/mpegtsdemux/Makefile
3511 gst/mpegtsmux/Makefile
3512 gst/mpegtsmux/tsmux/Makefile
3513 gst/mpegpsmux/Makefile
3517 gst/pcapparse/Makefile
3519 gst/rawparse/Makefile
3520 gst/removesilence/Makefile
3522 gst/segmentclip/Makefile
3528 gst/timecode/Makefile
3529 gst/videofilters/Makefile
3530 gst/videoparsers/Makefile
3531 gst/videosignal/Makefile
3535 gst/compositor/Makefile
3537 gst-libs/gst/Makefile
3538 gst-libs/gst/adaptivedemux/Makefile
3539 gst-libs/gst/basecamerabinsrc/Makefile
3540 gst-libs/gst/gl/Makefile
3541 gst-libs/gst/gl/android/Makefile
3542 gst-libs/gst/gl/cocoa/Makefile
3543 gst-libs/gst/gl/dispmanx/Makefile
3544 gst-libs/gst/gl/glprototypes/Makefile
3545 gst-libs/gst/gl/eagl/Makefile
3546 gst-libs/gst/gl/egl/Makefile
3547 gst-libs/gst/gl/wayland/Makefile
3548 gst-libs/gst/gl/win32/Makefile
3549 gst-libs/gst/gl/x11/Makefile
3550 gst-libs/gst/insertbin/Makefile
3551 gst-libs/gst/interfaces/Makefile
3552 gst-libs/gst/codecparsers/Makefile
3553 gst-libs/gst/mpegts/Makefile
3554 gst-libs/gst/uridownloader/Makefile
3555 gst-libs/gst/wayland/Makefile
3556 gst-libs/gst/base/Makefile
3557 gst-libs/gst/player/Makefile
3558 gst-libs/gst/video/Makefile
3559 gst-libs/gst/audio/Makefile
3560 gst-libs/gst/opencv/Makefile
3562 sys/dshowdecwrapper/Makefile
3564 sys/acmmp3dec/Makefile
3565 sys/androidmedia/Makefile
3566 sys/applemedia/Makefile
3568 sys/d3dvideosink/Makefile
3569 sys/decklink/Makefile
3570 sys/directsound/Makefile
3571 sys/dshowsrcwrapper/Makefile
3572 sys/dshowvideosink/Makefile
3578 sys/opensles/Makefile
3580 sys/tinyalsa/Makefile
3581 sys/uvch264/Makefile
3586 sys/winscreencap/Makefile
3588 tests/check/Makefile
3589 tests/files/Makefile
3590 tests/examples/Makefile
3591 tests/examples/avsamplesink/Makefile
3592 tests/examples/camerabin2/Makefile
3593 tests/examples/codecparsers/Makefile
3594 tests/examples/directfb/Makefile
3595 tests/examples/gl/Makefile
3596 tests/examples/gl/cocoa/Makefile
3597 tests/examples/gl/clutter/Makefile
3598 tests/examples/gl/generic/Makefile
3599 tests/examples/gl/generic/cube/Makefile
3600 tests/examples/gl/generic/cubeyuv/Makefile
3601 tests/examples/gl/generic/doublecube/Makefile
3602 tests/examples/gl/generic/recordgraphic/Makefile
3603 tests/examples/gl/gtk/Makefile
3604 tests/examples/gl/gtk/3dvideo/Makefile
3605 tests/examples/gl/gtk/filternovideooverlay/Makefile
3606 tests/examples/gl/gtk/filtervideooverlay/Makefile
3607 tests/examples/gl/gtk/fxtest/Makefile
3608 tests/examples/gl/gtk/switchvideooverlay/Makefile
3609 tests/examples/gl/qt/Makefile
3610 tests/examples/gl/sdl/Makefile
3611 tests/examples/gtk/Makefile
3612 tests/examples/mpegts/Makefile
3613 tests/examples/mxf/Makefile
3614 tests/examples/opencv/Makefile
3615 tests/examples/uvch264/Makefile
3616 tests/examples/waylandsink/Makefile
3617 tests/icles/Makefile
3618 ext/voamrwbenc/Makefile
3619 ext/voaacenc/Makefile
3620 ext/assrender/Makefile
3623 ext/chromaprint/Makefile
3627 ext/directfb/Makefile
3628 ext/wayland/Makefile
3637 ext/fluidsynth/Makefile
3644 ext/libde265/Makefile
3647 ext/modplug/Makefile
3648 ext/mpeg2enc/Makefile
3650 ext/musepack/Makefile
3655 ext/openexr/Makefile
3656 ext/openh264/Makefile
3657 ext/openjpeg/Makefile
3658 ext/openni2/Makefile
3662 ext/resindvd/Makefile
3665 ext/schroedinger/Makefile
3666 ext/smoothstreaming/Makefile
3667 ext/sndfile/Makefile
3668 ext/soundtouch/Makefile
3669 ext/spandsp/Makefile
3671 ext/teletextdec/Makefile
3674 ext/wildmidi/Makefile
3676 ext/vulkan/xcb/Makefile
3677 ext/vulkan/wayland/Makefile
3682 ext/webrtcdsp/Makefile
3686 docs/plugins/Makefile
3688 docs/version.entities
3690 pkgconfig/gstreamer-plugins-bad.pc
3691 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3692 pkgconfig/gstreamer-codecparsers.pc
3693 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3694 pkgconfig/gstreamer-insertbin.pc
3695 pkgconfig/gstreamer-insertbin-uninstalled.pc
3696 pkgconfig/gstreamer-gl.pc
3697 pkgconfig/gstreamer-gl-uninstalled.pc
3698 pkgconfig/gstreamer-mpegts.pc
3699 pkgconfig/gstreamer-mpegts-uninstalled.pc
3700 pkgconfig/gstreamer-player.pc
3701 pkgconfig/gstreamer-player-uninstalled.pc
3702 pkgconfig/gstreamer-wayland.pc
3703 pkgconfig/gstreamer-wayland-uninstalled.pc
3704 pkgconfig/gstreamer-bad-base.pc
3705 pkgconfig/gstreamer-bad-base-uninstalled.pc
3706 pkgconfig/gstreamer-bad-video.pc
3707 pkgconfig/gstreamer-bad-video-uninstalled.pc
3708 pkgconfig/gstreamer-bad-audio.pc
3709 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3716 AG_GST_OUTPUT_PLUGINS