3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.9.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 900, 0, 900)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 if test "x$HAVE_PTHREAD_H" != "xyes"; then
168 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
171 dnl *** checks for types/defines ***
173 dnl Check for FIONREAD ioctl declaration
177 dnl *** checks for structures ***
179 dnl *** checks for compiler characteristics ***
181 dnl *** checks for library functions ***
182 AC_CHECK_FUNCS([gmtime_r])
184 dnl *** checks for headers ***
185 AC_CHECK_HEADERS([sys/utsname.h])
187 dnl *** checks for dependency libraries ***
189 dnl *** checks for socket and nsl libraries ***
190 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
191 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
195 AG_GST_GLIB_CHECK([$GLIB_REQ])
197 dnl checks for gstreamer
198 dnl uninstalled is selected preferentially -- see pkg-config(1)
199 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
202 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
203 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
204 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
206 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
208 dnl check for uninstalled plugin directories for unit tests
209 AG_GST_CHECK_UNINSTALLED_SETUP([
210 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
211 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
212 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
215 dnl Check for documentation xrefs
216 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
217 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
218 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
219 AC_SUBST(GLIB_PREFIX)
221 AC_SUBST(GSTPB_PREFIX)
223 dnl GTK is optional and used in examples
227 if test "x$BUILD_EXAMPLES" = "xyes"; then
228 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
230 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
232 2.0) GTK_REQ=$GTK2_REQ ;;
233 3.0) GTK_REQ=$GTK3_REQ ;;
234 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
238 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
239 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
243 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
245 dnl Check for -Bsymbolic-functions linker flag used to avoid
246 dnl intra-library PLT jumps, if available.
247 AC_ARG_ENABLE(Bsymbolic,
248 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
249 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
250 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
251 LDFLAGS=-Wl,-Bsymbolic-functions
253 AC_TRY_LINK([], [return 0],
255 enable_Bsymbolic=yes,
258 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
260 dnl *** set variables based on configure arguments ***
262 dnl GTK is optional and used in examples
264 if test "x$BUILD_EXAMPLES" = "xyes"; then
265 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
266 if test "x$HAVE_GTK3" = "xyes"; then
268 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
269 AC_SUBST(GTK_VERSION)
270 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
271 AC_SUBST(GTK_BASE_DIR)
275 AC_SUBST(GTK3_CFLAGS)
277 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
279 dnl clutter is optional and used in examples
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
285 AC_SUBST(CLUTTER_LIBS)
286 AC_SUBST(CLUTTER_CFLAGS)
287 AC_SUBST(HAVE_CLUTTER)
289 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
290 AC_SUBST(CLUTTER_GLX_LIBS)
291 AC_SUBST(CLUTTER_GLX_CFLAGS)
292 AC_SUBST(HAVE_CLUTTER_GLX)
294 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
295 AC_SUBST(CLUTTER_X11_LIBS)
296 AC_SUBST(CLUTTER_X11_CFLAGS)
297 AC_SUBST(HAVE_CLUTTER_X11)
299 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
300 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
301 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
303 dnl used in the gl/clutteractor example
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
306 AC_SUBST(XCOMPOSITE_CFLAGS)
307 AC_SUBST(XCOMPOSITE_LIBS)
309 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
311 dnl graphene-1.0 is optional and used in gltransformation
313 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
314 if test "x$HAVE_GRAPHENE" = "xyes"; then
315 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
317 AC_SUBST(HAVE_GRAPHENE)
318 AC_SUBST(GRAPHENE_LIBS)
319 AC_SUBST(GRAPHENE_CFLAGS)
320 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
323 dnl sdl is optional and used in examples
325 if test "x$BUILD_EXAMPLES" = "xyes"; then
326 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
329 AC_SUBST(SDL_CLUTTER)
331 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
334 dnl Needed for GtkBuilder to autoconnect signals
335 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
337 dnl Needed by plugins that use g_module_*() API
338 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
340 dnl x11 is optional for librfb
342 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
346 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
347 if test "x$HAVE_X11" = "xyes"; then
348 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
351 dnl exif (used on jifmux tests) ****
352 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
354 AC_SUBST(EXIF_CFLAGS)
355 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
360 dnl set license and copyright notice
362 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
363 AC_SUBST(GST_LICENSE)
365 dnl define LIBDIR so we can inform people where we live
366 AS_AC_EXPAND(LIBDIR, $libdir)
367 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
369 dnl set location of plugin directory
372 dnl set release date/time
373 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
374 ["${srcdir}/gst-plugins-bad.doap"],
375 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
377 dnl build static plugins or not
378 AC_MSG_CHECKING([whether to build static plugins or not])
382 [--enable-static-plugins],
383 [build static plugins @<:@default=no@:>@]),
385 [$enableval], [no], [], [yes], [],
386 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
387 [enable_static_plugins=no])
388 AC_MSG_RESULT([$enable_static_plugins])
389 if test "x$enable_static_plugins" = xyes; then
390 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
391 [Define if static plugins should be built])
392 GST_PLUGIN_LIBTOOLFLAGS=""
394 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
396 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
397 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
399 AC_ARG_WITH([player-tests],
400 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
401 if test x$with_player_tests = xyes; then
402 AC_PATH_PROG([WGET], [wget], no)
403 if test x$WGET = xno; then
404 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
408 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
410 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
411 dnl make sure it doesn't complain about unused variables if debugging is disabled
413 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
415 dnl define an ERROR_CFLAGS Makefile variable
416 dnl -Waggregate-return - libexif returns aggregates
417 dnl -Wundef - Windows headers check _MSC_VER unconditionally
418 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
419 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
420 -Wwrite-strings -Wformat-security -Wold-style-definition
421 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
422 -Wnested-externs $NO_WARNINGS])
424 dnl define an ERROR_CXXFLAGS Makefile variable
425 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
426 -Wmissing-declarations -Wredundant-decls
427 -Wwrite-strings -Wformat-nonliteral -Wformat-security
428 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
430 dnl define an ERROR_OBJCFLAGS Makefile variable
431 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
432 -Wmissing-declarations -Wredundant-decls
433 -Wwrite-strings -Wformat-nonliteral -Wformat-security
434 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
436 dnl define correct level for debugging messages
437 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
440 AG_GST_DEFAULT_ELEMENTS
442 dnl *** plug-ins to include ***
443 dnl Non ported plugins (non-dependant, then dependant)
444 dnl Make sure you have a space before and after all plugins
445 GST_PLUGINS_NONPORTED=" cdxaparse \
454 musepack nas sdl timidity \
456 xvid sndio libvisual"
458 AC_SUBST(GST_PLUGINS_NONPORTED)
460 dnl these are all the gst plug-ins, compilable without additional libs
461 AG_GST_CHECK_PLUGIN(accurip)
462 AG_GST_CHECK_PLUGIN(adpcmdec)
463 AG_GST_CHECK_PLUGIN(adpcmenc)
464 AG_GST_CHECK_PLUGIN(aiff)
465 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
466 AG_GST_CHECK_PLUGIN(asfmux)
467 AG_GST_CHECK_PLUGIN(audiofxbad)
468 AG_GST_CHECK_PLUGIN(audiomixer)
469 AG_GST_CHECK_PLUGIN(compositor)
470 AG_GST_CHECK_PLUGIN(audiovisualizers)
471 AG_GST_CHECK_PLUGIN(autoconvert)
472 AG_GST_CHECK_PLUGIN(bayer)
473 AG_GST_CHECK_PLUGIN(camerabin2)
474 AG_GST_CHECK_PLUGIN(cdxaparse)
475 AG_GST_CHECK_PLUGIN(coloreffects)
476 AG_GST_CHECK_PLUGIN(dataurisrc)
477 AG_GST_CHECK_PLUGIN(dccp)
478 AG_GST_CHECK_PLUGIN(debugutils)
479 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
480 AG_GST_CHECK_PLUGIN(dvdspu)
481 AG_GST_CHECK_PLUGIN(faceoverlay)
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(hdvparse)
490 AG_GST_CHECK_PLUGIN(id3tag)
491 AG_GST_CHECK_PLUGIN(inter)
492 AG_GST_CHECK_PLUGIN(interlace)
493 AG_GST_CHECK_PLUGIN(ivfparse)
494 AG_GST_CHECK_PLUGIN(ivtc)
495 AG_GST_CHECK_PLUGIN(jp2kdecimator)
496 AG_GST_CHECK_PLUGIN(jpegformat)
497 AG_GST_CHECK_PLUGIN(librfb)
498 AG_GST_CHECK_PLUGIN(midi)
499 AG_GST_CHECK_PLUGIN(mpegdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsmux)
502 AG_GST_CHECK_PLUGIN(mpegpsmux)
503 AG_GST_CHECK_PLUGIN(mve)
504 AG_GST_CHECK_PLUGIN(mxf)
505 AG_GST_CHECK_PLUGIN(netsim)
506 AG_GST_CHECK_PLUGIN(nuvdemux)
507 AG_GST_CHECK_PLUGIN(onvif)
508 AG_GST_CHECK_PLUGIN(patchdetect)
509 AG_GST_CHECK_PLUGIN(pcapparse)
510 AG_GST_CHECK_PLUGIN(pnm)
511 AG_GST_CHECK_PLUGIN(rawparse)
512 AG_GST_CHECK_PLUGIN(removesilence)
513 AG_GST_CHECK_PLUGIN(sdi)
514 AG_GST_CHECK_PLUGIN(sdp)
515 AG_GST_CHECK_PLUGIN(segmentclip)
516 AG_GST_CHECK_PLUGIN(siren)
517 AG_GST_CHECK_PLUGIN(smooth)
518 AG_GST_CHECK_PLUGIN(speed)
519 AG_GST_CHECK_PLUGIN(subenc)
520 AG_GST_CHECK_PLUGIN(stereo)
521 AG_GST_CHECK_PLUGIN(tta)
522 AG_GST_CHECK_PLUGIN(videofilters)
523 AG_GST_CHECK_PLUGIN(videomeasure)
524 AG_GST_CHECK_PLUGIN(videoparsers)
525 AG_GST_CHECK_PLUGIN(videosignal)
526 AG_GST_CHECK_PLUGIN(vmnc)
527 AG_GST_CHECK_PLUGIN(y4m)
528 AG_GST_CHECK_PLUGIN(yadif)
530 dnl *** plug-ins to exclude ***
532 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
533 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
534 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
536 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
538 LIBS="$LIBS -framework VideoToolbox"
539 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
540 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
546 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
547 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
548 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
551 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
552 if test "x$HAVE_IOS" = "xyes"; then
553 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
556 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
557 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
558 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
561 dnl disable gst plugins we might not be able to build on this
562 dnl platform: (ugly but minimally invasive)
563 dnl FIXME: maybe move to sys, or make work with winsock2
564 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
565 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
567 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
568 WINSOCK2_LIBS="-lws2_32"
569 AC_SUBST(WINSOCK2_LIBS)
572 if test "x$HAVE_PTHREAD_H" = "xyes"; then
573 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
576 AG_GST_DISABLE_PLUGIN(dccp)
580 AC_ARG_ENABLE([opengl],
581 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
582 [case "${enableval}" in
585 auto) NEED_GL=auto ;;
586 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
587 esac],[NEED_GL=auto])
589 AC_ARG_WITH([opengl-module-name],
590 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
591 if test x$with_opengl_module_name != x; then
592 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
595 AC_ARG_ENABLE([gles2],
596 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
597 [case "${enableval}" in
598 yes) NEED_GLES2=yes ;;
600 auto) NEED_GLES2=auto ;;
601 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
602 esac],[NEED_GLES2=auto])
604 AC_ARG_WITH([gles2-module-name],
605 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
606 if test x$with_gles2_module_name != x; then
607 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
611 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
612 [case "${enableval}" in
615 auto) NEED_EGL=auto ;;
616 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
617 esac],[NEED_EGL=auto])
619 AC_ARG_WITH([egl-module-name],
620 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
621 if test x$with_egl_module_name != x; then
622 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
626 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
627 [case "${enableval}" in
630 auto) NEED_WGL=auto ;;
631 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
632 esac],[NEED_WGL=auto])
635 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
636 [case "${enableval}" in
639 auto) NEED_GLX=auto ;;
640 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
641 esac],[NEED_GLX=auto])
643 AC_ARG_ENABLE([cocoa],
644 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
645 [case "${enableval}" in
646 yes) NEED_COCOA=yes ;;
648 auto) NEED_COCOA=auto ;;
649 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
650 esac],[NEED_COCOA=auto])
653 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
654 [case "${enableval}" in
657 auto) NEED_X11=auto ;;
658 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
659 esac],[NEED_X11=auto])
661 AC_ARG_ENABLE([wayland],
662 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
663 [case "${enableval}" in
664 yes) NEED_WAYLAND_EGL=yes ;;
665 no) NEED_WAYLAND_EGL=no ;;
666 auto) NEED_WAYLAND_EGL=auto ;;
667 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
668 esac],[NEED_WAYLAND_EGL=auto])
670 AC_ARG_ENABLE([dispmanx],
671 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
672 [case "${enableval}" in
673 yes) NEED_DISPMANX=yes ;;
674 no) NEED_DISPMANX=no ;;
675 auto) NEED_DISPMANX=auto ;;
676 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
677 esac],[NEED_DISPMANX=auto])
679 AG_GST_PKG_CHECK_MODULES(X, x11)
680 save_CPPFLAGS="$CPPFLAGS"
693 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
694 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
695 if test "x$HAVE_WGLEXT" = "xyes"; then
701 if test "x$NEED_GL" != "xno"; then
702 AG_GST_PKG_CHECK_MODULES(GL, gl)
703 if test "x$HAVE_GL" != "xyes"; then
704 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
707 if test "x$NEED_GLES2" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
709 if test "x$HAVE_GLES2" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
712 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
714 if test "x$NEED_EGL" != "xno"; then
715 AG_GST_PKG_CHECK_MODULES(EGL, egl)
716 if test "x$HAVE_EGL" != "xyes"; then
717 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
724 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
725 AC_CHECK_HEADER([EGL/fbdev_window.h],
728 AC_CHECK_LIB([Mali], [mali_image_create],
731 AC_CHECK_LIB([GLESv2], [glEnable],
733 AC_CHECK_HEADER([GLES2/gl2.h],
735 AC_CHECK_LIB([EGL], [eglGetProcAddress],
737 AC_CHECK_HEADER([EGL/egl.h],
741 EGL_LIBS="-lMali -lUMP"
743 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
751 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
752 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
753 LIBS="$LIBS -lvcos -lvchiq_arm"
754 AC_CHECK_LIB([bcm_host], [bcm_host_init],
756 LIBS="$LIBS -lbcm_host"
757 AC_CHECK_HEADER(bcm_host.h,
759 LIBS="$LIBS -lGLESv2"
760 AC_CHECK_LIB([EGL], [eglGetProcAddress],
763 AC_CHECK_HEADER([EGL/egl.h],
765 AC_CHECK_LIB([GLESv2], [glEnable],
767 AC_CHECK_HEADER([GLES2/gl2.h],
772 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
774 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
785 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)
789 CPPFLAGS="$save_CPPFLAGS"
803 dnl Check for what the user asked for and what we could find
804 if test "x$HAVE_EGL" = "xno"; then
805 if test "x$NEED_EGL" = "xyes"; then
806 AC_MSG_ERROR([Could not find the required EGL libraries])
810 if test "x$HAVE_GL" = "xno"; then
811 if test "x$NEED_GL" = "xyes"; then
812 AC_MSG_ERROR([Could not find the required OpenGL libraries])
816 if test "x$HAVE_GLES2" = "xno"; then
817 if test "x$NEED_GLES2" = "xyes"; then
818 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
822 dnl X, GLX and OpenGL
823 if test "x$HAVE_X" = "xno"; then
824 if test "x$NEED_GLX" = "xyes"; then
825 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
827 if test "x$NEED_X11" = "xyes"; then
828 AC_MSG_ERROR([Could not find X11 development libraries])
831 if test "x$NEED_GL" != "xno"; then
832 if test "x$HAVE_GL" = "xno"; then
833 if test "x$NEED_GLX" = "xyes"; then
834 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
838 if test "x$NEED_GLX" != "xno"; then
845 dnl check for DMABUF support
846 HAVE_DRM_FOURCC_HEADER=no
847 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
848 HAVE_DRM_FOURCC_HEADER=yes, )
850 HAVE_GST_ALLOCATORS=no
851 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
852 HAVE_GST_ALLOCATORS=yes, )
855 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
856 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
857 "x$HAVE_EGL" = "xyes"; then
861 dnl check if we can include both GL and GLES2 at the same time
862 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
864 if test "x$HAVE_GLES3_H" == "xyes"; then
869 # pragma GCC diagnostic push
870 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
872 #ifndef GL_GLEXT_PROTOTYPES
873 #define GL_GLEXT_PROTOTYPES 1
876 # include <OpenGLES/ES2/gl.h>
877 # include <OpenGLES/ES2/glext.h>
880 # include <GLES3/gl3.h>
881 # include <GLES3/gl3ext.h>
883 # include <GLES2/gl2.h>
884 # include <GLES2/gl2ext.h>
888 # include <OpenGL/OpenGL.h>
889 # include <OpenGL/gl.h>
890 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
891 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
892 # include <OpenGL/gl3.h>
896 # if __WIN32__ || _WIN32
897 # include <GL/glext.h>
900 int main (int argc, char **argv) { return 0; }
902 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
903 save_CFLAGS="$CFLAGS"
904 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
905 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
906 #if !defined(GL_FALSE)
907 #error Failed to include GL headers
909 ]])],[ AC_MSG_RESULT(yes)
911 if test "x$NEED_GLES2" = "xyes"; then
912 if test "x$NEED_GL" = "xyes"; then
913 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
915 AC_MSG_WARN([Disabling Desktop GL support])
919 AC_MSG_WARN([Disabling GL|ES 2.0 support])
924 CFLAGS="$save_CFLAGS"
927 #dnl Check for OpenGL
931 if test "x$NEED_WGL" = "xyes"; then
932 AC_MSG_ERROR([WGL is not available on Android])
934 if test "x$NEED_GLX" = "xyes"; then
935 AC_MSG_ERROR([GLX is not available on Android])
937 if test "x$NEED_GL" = "xyes"; then
938 AC_MSG_ERROR([GL is not available on Android])
940 if test "x$NEED_X11" = "xyes"; then
941 AC_MSG_ERROR([X11 is not available on Android])
943 if test "x$NEED_COCOA" = "xyes"; then
944 AC_MSG_ERROR([Cocoa is not available on Android])
948 if test "x$HAVE_GLES2" = "xyes"; then
949 if test "x$NEED_GLES2" != "xno"; then
950 GL_LIBS="$GL_LIBS -lGLESv2"
956 if test "x$HAVE_EGL" = "xyes"; then
957 if test "x$NEED_EGL" != "xno"; then
958 GL_LIBS="$GL_LIBS -lEGL"
963 if test "x$USE_EGL" != "xyes"; then
964 AC_MSG_ERROR([Need EGL on Android])
967 if test "x$USE_GLES2" != "xyes"; then
968 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
971 HAVE_WINDOW_ANDROID=yes
973 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
974 if test "x$NEED_WGL" = "xyes"; then
975 AC_MSG_ERROR([WGL is not available on unix])
978 if test "x$HAVE_X" = "xno"; then
979 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
980 AC_MSG_WARN([X or Wayland is required for OpenGL support])
984 dnl check Desktop OpenGL
985 if test "x$HAVE_GL" = "xyes"; then
986 if test "x$NEED_GL" != "xno"; then
987 GL_LIBS="$GL_LIBS -lGL"
992 if test "x$HAVE_GLES2" = "xyes"; then
993 if test "x$NEED_GLES2" != "xno"; then
994 GL_LIBS="$GL_LIBS -lGLESv2"
999 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1000 if test "x$NEED_X11" != "xno"; then
1001 GL_LIBS="$GL_LIBS $X_LIBS"
1002 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1007 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1008 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1009 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1011 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1012 HAVE_WINDOW_WAYLAND=yes
1013 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1014 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1019 if test "x$HAVE_EGL_RPI" = "xyes"; then
1020 if test "x$NEED_DISPMANX" != "xno"; then
1021 HAVE_WINDOW_DISPMANX=yes
1027 if test "x$HAVE_EGL" = "xno"; then
1028 if test "x$HAVE_GL" = "xno"; then
1029 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1032 if test "x$NEED_EGL" != "xno"; then
1033 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1034 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1035 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1042 if test "x$HAVE_IOS" = "xyes"; then
1043 if test "x$NEED_WGL" = "xyes"; then
1044 AC_MSG_ERROR([WGL is not available on iOS])
1046 if test "x$NEED_GLX" = "xyes"; then
1047 AC_MSG_ERROR([GLX is not available on iOS])
1049 if test "x$NEED_GL" = "xyes"; then
1050 AC_MSG_ERROR([GL is not available on iOS])
1052 if test "x$NEED_X11" = "xyes"; then
1053 AC_MSG_ERROR([X11 is not available on iOS])
1055 if test "x$NEED_COCOA" = "xyes"; then
1056 AC_MSG_ERROR([Cocoa is not available on iOS])
1058 if test "x$NEED_EGL" = "xyes"; then
1059 AC_MSG_ERROR([EGL is not available on iOS])
1062 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1063 GL_CFLAGS="$GL_CFLAGS"
1066 HAVE_WINDOW_EAGL=yes
1068 ac_cv_type_GLsizeiptr=yes
1069 ac_cv_type_GLintptr=yes
1070 ac_cv_type_GLchar=yes
1072 dnl Only osx supports cocoa.
1073 if test "x$NEED_WGL" = "xyes"; then
1074 AC_MSG_ERROR([WGL is not available on Mac OS X])
1077 if test "x$NEED_COCOA" != "xno"; then
1078 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1079 GL_CFLAGS="$GL_CFLAGS"
1081 HAVE_WINDOW_COCOA=yes
1085 if test "x$USE_GLX" = "xyes"; then
1086 if test "x$HAVE_X" = "xyes"; then
1087 if test "x$NEED_X11" != "xno"; then
1088 GL_LIBS="$GL_LIBS $X_LIBS"
1089 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1094 if test "x$HAVE_GL" = "xyes"; then
1095 if test "x$NEED_GL" != "xno"; then
1096 GL_LIBS="$GL_LIBS -lGL"
1102 if test "x$HAVE_EGL" = "xyes"; then
1103 if test "x$NEED_EGL" != "xno"; then
1104 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1105 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1106 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1113 if test "x$HAVE_GLES2" = "xyes"; then
1114 if test "x$NEED_GLES2" != "xno"; then
1115 GL_LIBS="$GL_LIBS -lGLESv2"
1122 if test "x$NEED_GLX" = "xyes"; then
1123 AC_MSG_ERROR([GLX is not available on Windows])
1125 if test "x$NEED_GLES2" = "xyes"; then
1126 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1129 if test "x$HAVE_GL" = "xyes"; then
1130 if test "x$NEED_GL" != "xno"; then
1131 if test "x$HAVE_WGL" = "xyes"; then
1132 if test "$NEED_WGL" != "xno"; then
1133 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1134 HAVE_WINDOW_WIN32=yes
1143 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1154 GST_GL_HAVE_OPENGL=0
1158 if test "x$USE_OPENGL" = "xyes"; then
1159 GL_APIS="gl $GL_APIS"
1160 GST_GL_HAVE_OPENGL=1
1162 if test "x$USE_GLES2" = "xyes"; then
1163 GL_APIS="gles2 $GL_APIS"
1165 if test "x$HAVE_GLES3_H" = "xyes"; then
1170 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1171 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1172 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1173 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1178 GST_GL_HAVE_WINDOW_X11=0
1179 GST_GL_HAVE_WINDOW_COCOA=0
1180 GST_GL_HAVE_WINDOW_WIN32=0
1181 GST_GL_HAVE_WINDOW_WAYLAND=0
1182 GST_GL_HAVE_WINDOW_ANDROID=0
1183 GST_GL_HAVE_WINDOW_DISPMANX=0
1184 GST_GL_HAVE_WINDOW_EAGL=0
1186 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1187 GL_WINDOWS="x11 $GL_WINDOWS"
1188 GST_GL_HAVE_WINDOW_X11=1
1190 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1191 GL_WINDOWS="cocoa $GL_WINDOWS"
1192 GST_GL_HAVE_WINDOW_COCOA=1
1194 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1195 GL_WINDOWS="win32 $GL_WINDOWS"
1196 GST_GL_HAVE_WINDOW_WIN32=1
1198 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1199 GL_WINDOWS="wayland $GL_WINDOWS"
1200 GST_GL_HAVE_WINDOW_WAYLAND=1
1202 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1203 GL_WINDOWS="android $GL_WINDOWS"
1204 GST_GL_HAVE_WINDOW_ANDROID=1
1206 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1207 GL_WINDOWS="dispmanx $GL_WINDOWS"
1208 GST_GL_HAVE_WINDOW_DISPMANX=1
1210 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1211 GL_WINDOWS="eagl $GL_WINDOWS"
1212 GST_GL_HAVE_WINDOW_EAGL=1
1215 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1216 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1217 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1218 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1219 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1220 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1221 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1222 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1227 GST_GL_HAVE_PLATFORM_EGL=0
1228 GST_GL_HAVE_PLATFORM_GLX=0
1229 GST_GL_HAVE_PLATFORM_WGL=0
1230 GST_GL_HAVE_PLATFORM_CGL=0
1231 GST_GL_HAVE_PLATFORM_EAGL=0
1233 if test "x$USE_EGL" = "xyes"; then
1234 GL_PLATFORMS="egl $GL_PLATFORMS"
1235 GST_GL_HAVE_PLATFORM_EGL=1
1237 if test "x$USE_GLX" = "xyes"; then
1238 GL_PLATFORMS="glx $GL_PLATFORMS"
1239 GST_GL_HAVE_PLATFORM_GLX=1
1241 if test "x$USE_WGL" = "xyes"; then
1242 GL_PLATFORMS="wgl $GL_PLATFORMS"
1243 GST_GL_HAVE_PLATFORM_WGL=1
1245 if test "x$USE_COCOA" = "xyes"; then
1246 GL_PLATFORMS="cgl $GL_PLATFORMS"
1247 GST_GL_HAVE_PLATFORM_CGL=1
1249 if test "x$USE_EAGL" = "xyes"; then
1250 GL_PLATFORMS="eagl $GL_PLATFORMS"
1251 GST_GL_HAVE_PLATFORM_EAGL=1
1254 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1255 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1256 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1257 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1258 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1259 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1262 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1263 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1266 dnl Check for no platforms/window systems
1267 if test "x$GL_APIS" = "x"; then
1268 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1270 if test "x$GL_PLATFORMS" = "x"; then
1271 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1273 if test "x$GL_WINDOWS" = "x"; then
1274 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1277 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1292 HAVE_WINDOW_WIN32=no
1293 HAVE_WINDOW_DISPMANX=no
1294 HAVE_WINDOW_WAYLAND=no
1295 HAVE_WINDOW_ANDROID=no
1296 HAVE_WINDOW_COCOA=no
1302 AC_SUBST(GL_OBJCFLAGS)
1303 AC_SUBST(USE_OPENGL)
1306 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1307 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1308 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1309 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1310 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1311 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1312 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1314 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1315 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1316 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1317 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1318 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1319 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1320 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1321 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1322 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1324 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1326 dnl Check for some types that are not always present
1328 if test "x$USE_GLES2" = "xyes"; then
1329 GL_INCLUDES="$GL_INCLUDES
1330 #ifndef GL_GLEXT_PROTOTYPES
1331 #define GL_GLEXT_PROTOTYPES 1
1334 # include <OpenGLES/ES2/gl.h>
1335 # include <OpenGLES/ES2/glext.h>
1337 # if $GST_GL_HAVE_GLES3
1338 # include <GLES3/gl3.h>
1339 # include <GLES3/gl3ext.h>
1341 # include <GLES2/gl2.h>
1342 # include <GLES2/gl2ext.h>
1348 if test "x$USE_OPENGL" = "xyes"; then
1349 GL_INCLUDES="$GL_INCLUDES
1351 # include <OpenGL/OpenGL.h>
1352 # include <OpenGL/gl.h>
1355 # if __WIN32__ || _WIN32
1356 # include <GL/glext.h>
1362 GST_GL_HAVE_GLEGLIMAGEOES=0
1363 GST_GL_HAVE_GLCHAR=0
1364 GST_GL_HAVE_GLSIZEIPTR=0
1365 GST_GL_HAVE_GLINTPTR=0
1366 GST_GL_HAVE_GLSYNC=0
1367 GST_GL_HAVE_GLUINT64=0
1368 GST_GL_HAVE_GLINT64=0
1371 CFLAGS="$GL_CFLAGS $CFLAGS"
1373 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1374 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1375 GST_GL_HAVE_GLEGLIMAGEOES=1
1378 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1379 if test "x$ac_cv_type_GLchar" = "xyes"; then
1380 GST_GL_HAVE_GLCHAR=1
1383 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1384 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1385 GST_GL_HAVE_GLSIZEIPTR=1
1388 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1389 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1390 GST_GL_HAVE_GLINTPTR=1
1393 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1394 if test "x$ac_cv_type_GLsync" = "xyes"; then
1395 GST_GL_HAVE_GLSYNC=1
1398 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1399 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1400 GST_GL_HAVE_GLUINT64=1
1403 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1404 if test "x$ac_cv_type_GLint64" = "xyes"; then
1405 GST_GL_HAVE_GLINT64=1
1410 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1411 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1412 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1413 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1414 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1415 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1416 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1417 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1420 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1421 outfile=gstglconfig.h-tmp
1422 cat > $outfile <<\_______EOF
1425 * This is a generated file. Please modify `configure.ac'
1428 #ifndef __GST_GL_CONFIG_H__
1429 #define __GST_GL_CONFIG_H__
1431 #include <gst/gst.h>
1437 cat >>$outfile <<_______EOF
1441 cat >>$outfile <<_______EOF
1445 #endif /* __GST_GL_CONFIG_H__ */
1449 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1450 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1453 mv $outfile gst-libs/gst/gl/gstglconfig.h
1456 gl_config_defines='$GL_CONFIG_DEFINES'
1459 dnl libpng is optional
1460 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1461 if test "x$HAVE_PNG" = "xyes"; then
1462 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1465 AC_SUBST(LIBPNG_LIBS)
1466 AC_SUBST(LIBPNG_CFLAGS)
1467 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1469 dnl libjpeg is optional
1470 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1472 if test x$with_jpeg_mmx != x; then
1473 LIBS="$LIBS -L$with_jpeg_mmx"
1475 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1476 JPEG_LIBS="$LIBS -ljpeg-mmx"
1478 if test x$HAVE_JPEG != xyes; then
1480 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1483 if test x$HAVE_JPEG = xyes; then
1484 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1486 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1491 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1494 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1495 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1497 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1498 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1499 VULKAN_CONFIG_DEFINES="
1500 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1501 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1503 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1504 outfile=vkconfig.h-tmp
1505 cat > $outfile <<\_______EOF
1508 * This is a generated file. Please modify `configure.ac'
1511 #ifndef __GST_VULKAN_CONFIG_H__
1512 #define __GST_VULKAN_CONFIG_H__
1514 #include <gst/gst.h>
1520 cat >>$outfile <<_______EOF
1521 $vulkan_config_defines
1524 cat >>$outfile <<_______EOF
1528 #endif /* __GST_VULKAN_CONFIG_H__ */
1532 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1533 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1536 mv $outfile ext/vulkan/vkconfig.h
1539 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1542 dnl *** sys plug-ins ***
1545 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1546 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1547 HAVE_DIRECTSOUND="no"
1548 save_CFLAGS="$CFLAGS"
1549 save_LDFLAGS="$LDFLAGS"
1551 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1552 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1553 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1554 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1555 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1556 #include <windows.h>
1559 #include <mmsystem.h>
1561 DXGetErrorString9 (0);
1562 DirectSoundCreate(NULL, NULL, NULL);
1564 [HAVE_DIRECTSOUND="yes"],
1565 [HAVE_DIRECTSOUND="no"])
1566 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1568 LDFLAGS=$save_LDFLAGS
1571 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1572 dnl this is much more than we want
1573 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1574 AC_SUBST(DIRECTX_CFLAGS)
1575 AC_SUBST(DIRECTX_LDFLAGS)
1576 AC_SUBST(DIRECTSOUND_LIBS)
1578 AC_SUBST(HAVE_DIRECTSOUND)
1582 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1583 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1585 save_CFLAGS="$CFLAGS"
1586 save_LDFLAGS="$LDFLAGS"
1588 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1589 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1590 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1591 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1592 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1593 #include <windows.h>
1595 #include <mmsystem.h>
1596 #include <mmdeviceapi.h>
1602 hr = CoInitialize(NULL);
1604 printf("CoInitialize failed: hr = 0x%08x", hr);
1609 // result = do_everything(argc, argv);
1615 [HAVE_WASAPI="yes"],
1617 AC_MSG_RESULT($HAVE_WASAPI)
1619 LDFLAGS=$save_LDFLAGS
1622 if test "x$HAVE_WASAPI" = "xyes"; then
1623 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1624 AC_SUBST(WASAPI_LIBS)
1626 AC_SUBST(HAVE_WASAPI)
1630 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1631 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1633 save_CFLAGS="$CFLAGS"
1634 save_LDFLAGS="$LDFLAGS"
1636 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1637 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1638 LIBS="$LIBS -ld3d9 -lgdi32"
1639 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1640 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1641 #include <windows.h>
1644 Direct3DCreate9(D3D_SDK_VERSION);
1646 [HAVE_DIRECT3D="yes"],
1647 [HAVE_DIRECT3D="no"])
1648 AC_MSG_RESULT($HAVE_DIRECT3D)
1650 LDFLAGS=$save_LDFLAGS
1653 if test "x$HAVE_DIRECT3D" = "xyes"; then
1654 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1655 AC_SUBST(DIRECT3D_LIBS)
1657 AC_SUBST(HAVE_DIRECT3D)
1661 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1662 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1663 HAVE_WINSCREENCAP="no"
1664 save_CFLAGS="$CFLAGS"
1665 save_LDFLAGS="$LDFLAGS"
1667 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1668 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1669 LIBS="$LIBS -ld3d9 -lgdi32"
1670 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1671 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1672 #include <windows.h>
1675 Direct3DCreate9(D3D_SDK_VERSION);
1677 [HAVE_WINSCREENCAP="yes"],
1678 [HAVE_WINSCREENCAP="no"])
1679 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1681 LDFLAGS=$save_LDFLAGS
1684 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1685 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1686 AC_SUBST(WINSCREENCAP_LIBS)
1688 AC_SUBST(HAVE_WINSCREENCAP)
1692 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1693 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1695 save_CFLAGS="$CFLAGS"
1696 save_LDFLAGS="$LDFLAGS"
1698 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1699 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1700 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1701 AC_MSG_CHECKING(for Winks LDFLAGS)
1702 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1703 #include <windows.h>
1708 IGraphBuilder *pGraph = NULL;
1709 HRESULT hr = CoInitialize(NULL);
1710 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1711 &IID_IGraphBuilder, (void **)&pGraph);
1718 AC_MSG_RESULT($HAVE_WINKS)
1720 LDFLAGS=$save_LDFLAGS
1723 if test "x$HAVE_WINKS" = "xyes"; then
1724 dnl this is much more than we want
1725 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1726 AC_SUBST(DIRECTX_CFLAGS)
1727 AC_SUBST(DIRECTX_LDFLAGS)
1728 AC_SUBST(WINKS_LIBS)
1730 AC_SUBST(HAVE_WINKS)
1733 dnl *** Android Media ***
1734 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1735 HAVE_ANDROID_MEDIA="no"
1736 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1739 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1742 HAVE_ANDROID_MEDIA="no"
1747 dnl *** AppleMedia (OS X and iOS) ***
1748 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1749 HAVE_APPLE_MEDIA="no"
1750 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1751 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1752 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1753 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1754 if test "x$HAVE_IOS" = "xno"; then
1755 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1759 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1764 HAVE_APPLE_MEDIA="no"
1769 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1770 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1771 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1772 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1773 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1775 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1784 dnl *** OS/X AVCVideoServices ***
1785 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1787 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1789 save_CPPFLAGS="$CPPFLAGS"
1790 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1792 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1793 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1795 CPPFLAGS=$save_CPPFLAGS
1798 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1807 dnl check for shm_open (for shm plugin)
1808 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1809 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1810 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1812 *-darwin* | *-macos10*)
1813 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1817 AC_CHECK_LIB([rt], [shm_open],
1818 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1819 #include <sys/socket.h>
1822 AC_SUBST(SHM_LIBS, "-lrt")
1830 dnl check for Video CD
1831 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1832 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1833 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1836 dnl check for OpenSL ES
1837 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1838 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1839 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1842 dnl *** UVC H264 ***
1843 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1844 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1845 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1846 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1847 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1850 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1851 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1852 HAVE_LIBUSB="yes" ],
1854 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1855 test "x$HAVE_GUDEV" = "xyes" && \
1856 test "x$HAVE_LIBUSB" = "xyes"; then
1862 AC_SUBST(LIBUDEV_CFLAGS)
1863 AC_SUBST(LIBUDEV_LIBS)
1864 AC_SUBST(LIBUSB_CFLAGS)
1865 AC_SUBST(LIBUSB_LIBS)
1868 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1869 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1870 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1871 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1872 AC_ARG_WITH([cuda-prefix],
1873 AS_HELP_STRING([--with-cuda-prefix],
1874 [Use the provided prefix for detecting the cuda installation]),
1875 [AS_IF([test "x$with_cuda_prefix" != "x"],
1876 [CUDA_PREFIX="$with_cuda_prefix"])],
1880 if test "x$CUDA_PREFIX" != "x"; then
1881 dnl only override if not already set
1882 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1883 dnl this is an educated guess, user can always override these
1884 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1885 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1888 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1889 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1890 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1891 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1896 save_CPPFLAGS="$CPPFLAGS"
1897 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1898 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1899 AC_MSG_WARN([Could not find cuda.h]))
1900 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1901 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1902 CPPFLAGS=$save_CPPFLAGS
1904 dnl libcuda and libcudart libraries
1906 LIBS="$CUDA_LIBS $save_LIBS"
1907 HAVE_CUDART_LIB="no"
1908 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1909 AC_MSG_WARN([Could not find cudart library])])
1911 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1912 AC_MSG_WARN([Could not find cuda library])])
1915 dnl nvEncodeAPI.h header
1916 HAVE_NVENCODEAPI_H=no
1917 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1918 save_CPPFLAGS="$CPPFLAGS"
1919 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1920 AC_CHECK_HEADER([nvEncodeAPI.h], [
1921 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1922 #if NVENCAPI_MAJOR_VERSION < 5
1923 #error "Need nvEncodeAPI.h >= 5.0"
1926 HAVE_NVENCODEAPI_H=yes
1928 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1931 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1932 AC_SUBST(NVENCODE_CFLAGS)
1933 CPPFLAGS="$save_CPPFLAGS"
1935 dnl libnvnidia-encode library
1936 HAVE_NVENCODE_LIB=no
1937 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1939 LIBS="$NVENCODE_LIBS $saved_LIBS"
1940 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1941 AC_MSG_WARN([Could not find library nvidia-encode]))
1942 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1943 AC_SUBST(NVENCODE_LIBS)
1947 if test "x$HAVE_CUDA_H" = "xyes" \
1948 -a "x$HAVE_CUDART_H" = "xyes" \
1949 -a "x$HAVE_CUDA_LIB" = "xyes" \
1950 -a "x$HAVE_CUDART_LIB" = "xyes" \
1951 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1952 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1954 if test x"$USE_OPENGL" = x"yes"; then
1955 dnl cuda-gl interop header
1956 save_CPPFLAGS="$CPPFLAGS"
1957 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1958 AC_CHECK_HEADER([cuda_gl_interop.h], [
1959 USE_NVENC_GST_GL="yes"
1960 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1962 CPPFLAGS="$save_CPPFLAGS"
1968 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1970 dnl check for tinyalsa
1971 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1972 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1973 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1976 dnl *** ext plug-ins ***
1977 dnl keep this list sorted alphabetically !
1979 if test "x$BUILD_EXTERNAL" = "xyes"; then
1981 dnl *** assrender ***
1982 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1983 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1984 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1985 HAVE_ASSRENDER="yes" ], [
1989 AC_SUBST(ASSRENDER_CFLAGS)
1990 AC_SUBST(ASSRENDER_LIBS)
1992 dnl *** vo-amrwbenc ***
1993 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1994 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1995 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1998 dnl *** vo-aacenc ***
1999 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2000 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2001 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2004 dnl *** apexsink ***
2005 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2006 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2007 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2011 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2012 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2013 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2015 AC_SUBST(APEXSINK_CFLAGS)
2016 AC_SUBST(APEXSINK_LIBS)
2023 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2024 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2025 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2028 AC_SUBST(BS2B_CFLAGS)
2033 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2034 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2037 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2038 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2039 AC_MSG_RESULT($HAVE_BZ2)
2041 if test "x$HAVE_BZ2" = "xyes"; then
2049 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2050 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2051 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2054 # AC_SUBST(CAIRO_CFLAGS)
2055 # AC_SUBST(CAIRO_LIBS)
2058 dnl *** chromaprint ***
2059 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2060 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2061 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2062 HAVE_CHROMAPRINT="no"
2064 AC_SUBST(CHROMAPRINT_CFLAGS)
2065 AC_SUBST(CHROMAPRINT_LIBS)
2069 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2070 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2071 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2073 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2074 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2076 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2077 [[#ifdef HAVE_SYS_TYPES_H
2078 # include <sys/types.h>
2080 #ifdef HAVE_NETINET_IN_H
2081 # include <netinet/in.h>
2084 AC_MSG_CHECKING([for socket support needed by curlsink])
2085 AC_MSG_RESULT($HAVE_CURL)
2089 AC_SUBST(CURL_CFLAGS)
2091 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2093 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2097 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2098 AC_SUBST(SSH2_CFLAGS)
2100 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2103 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2104 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2105 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2106 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2108 AC_SUBST(LIBXML2_CFLAGS)
2109 AC_SUBST(LIBXML2_LIBS)
2113 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2114 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2115 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2116 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2125 AC_SUBST(LIBDC1394_CFLAGS)
2126 AC_SUBST(LIBDC1394_LIBS)
2129 dnl *** decklink ***
2130 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2131 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2138 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2139 AC_CHECK_LIB(dl, dlopen,
2143 DECKLINK_LIBS="-lpthread -ldl"
2148 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2149 AC_CHECK_LIB(dl, dlopen,
2153 DECKLINK_LIBS="-lpthread -ldl"
2154 HAVE_DECKLINK_OSX=yes
2163 AC_SUBST(DECKLINK_CXXFLAGS)
2164 AC_SUBST(DECKLINK_LIBS)
2166 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2168 dnl **** DirectFB ****
2169 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2170 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2171 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2176 dnl **** Wayland ****
2177 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2178 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2179 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2180 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2181 if test "x$wayland_scanner" != "x"; then
2184 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2193 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2194 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2195 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2196 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2198 AC_SUBST(WEBP_CFLAGS)
2203 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2204 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2205 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2206 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2211 AC_SUBST(DAALA_CFLAGS)
2212 AC_SUBST(DAALA_LIBS)
2217 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2218 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2220 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2221 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2222 if test $HAVE_DTS = "no"; then
2223 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2224 [ DTS_LIBS="-ldts_pic $LIBM"
2225 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2231 dnl *** resindvd ***
2232 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2233 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2234 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2239 dnl **** Free AAC Encoder (FAAC) ****
2240 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2241 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2242 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2243 FAAC_LIBS="-lfaac $LIBM")
2247 dnl **** Free AAC Decoder (FAAD2) ****
2248 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2249 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2250 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2251 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2252 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2254 #elif !defined(LATM)
2255 #error Not faad2 >= 2.7
2261 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2271 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2272 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2273 if test "x$HAVE_FBDEV" != "xyes"; then
2274 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2279 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2280 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2281 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2282 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2284 AC_SUBST(FLITE_CFLAGS)
2285 AC_SUBST(FLITE_LIBS)
2289 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2290 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2291 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2292 if test $HAVE_GSM != "yes"; then
2293 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2294 if test $HAVE_GSM = "yes"; then
2295 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2301 dnl *** fluidSynth ***
2302 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2303 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2304 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2305 HAVE_FLUIDSYNTH="no"
2310 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2311 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2312 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2315 AC_SUBST(KATE_CFLAGS)
2317 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2320 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2326 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2327 AC_SUBST(TIGER_CFLAGS)
2328 AC_SUBST(TIGER_LIBS)
2329 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2332 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2333 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2334 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2335 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2336 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2340 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2341 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2342 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2344 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2345 if test $HAVE_LRDF = "yes"; then
2346 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2349 AC_SUBST(LRDF_CFLAGS)
2353 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2354 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2355 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2356 AC_SUBST(LILV_CFLAGS)
2360 dnl *** libde265 ***
2361 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2362 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2363 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2364 AC_SUBST(LIBDE265_CFLAGS)
2365 AC_SUBST(LIBDE265_LIBS)
2369 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2370 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2371 dnl check with pkg-config first
2372 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2376 AC_SUBST(LIBMMS_LIBS)
2380 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2381 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2382 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2383 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2386 AC_SUBST(SRTP_CFLAGS)
2390 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2391 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2392 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2394 AC_SUBST(DTLS_CFLAGS)
2402 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2403 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2415 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2416 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2417 if test "x$HAVE_CXX" != "xyes"; then
2418 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2421 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2423 AC_SUBST(MODPLUG_CFLAGS)
2424 AC_SUBST(MODPLUG_LIBS)
2428 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2429 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2431 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2432 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2433 AC_SUBST(MIMIC_CFLAGS)
2434 AC_SUBST(MIMIC_LIBS)
2437 dnl *** mjpegtools version info ***
2438 dnl some may prefer older version (given quirks above)
2439 dnl hm, no version info seems available within mjpegtools headers
2440 dnl and API really moves along
2442 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2443 mjpegtools_api=10601
2445 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2446 mjpegtools_api=10800
2448 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2449 mjpegtools_api=20000
2451 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2452 dnl logging API changed in release candidates
2453 OLD_CFLAGS="$CFLAGS"
2455 CFLAGS="$MJPEG_CFLAGS"
2456 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2457 AC_CHECK_FUNC(mjpeg_loglev_t, [
2458 mjpegtools_api=10903
2460 mjpegtools_api=10900
2462 CFLAGS="$OLD_CFLAGS"
2470 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2471 [mjpegtools API evolution])
2473 dnl *** mpeg2enc ***
2474 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2475 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2477 dnl we require a c++ compiler for this one
2478 if [ test x$HAVE_CXX = xyes ]; then
2479 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2480 dnl since many distros include mjpegtools specifically without mplex
2481 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2482 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2483 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2485 dnl switch over to c++ to test things
2487 OLD_CPPFLAGS="$CPPFLAGS"
2489 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2490 CPPFLAGS="$CPPFLAGS_GOOD -I."
2492 mpeg2enc_headers_ok=no
2493 AC_CHECK_HEADER([mpeg2encoder.hh], [
2494 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2496 LIBS="$LIBS $MPEG2ENC_LIBS"
2497 AC_MSG_CHECKING([for valid mpeg2enc objects])
2498 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2499 #include <mpeg2encoder.hh>
2500 #include <mpeg2encoptions.hh>
2506 MPEG2EncOptions *options = new MPEG2EncOptions ();
2507 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2512 dnl so far so good, let's check more things:
2513 dnl mjpegtools-1.8.0 does not install the required
2514 dnl mpeg2syntaxcodes.h header by default, and a new release
2515 dnl is not in sight, so check for this oversight in case
2516 dnl distros or folks have fixed this themselves
2517 if test "$mjpegtools_api" -ge "10800"; then
2518 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2519 mpeg2enc_headers_ok=yes
2521 mpeg2enc_headers_ok=no
2524 mpeg2enc_headers_ok=yes
2526 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2529 CPPFLAGS="$CPPFLAGS_GOOD"
2530 AC_SUBST(MPEG2ENC_CFLAGS)
2531 AC_SUBST(MPEG2ENC_LIBS)
2538 CPPFLAGS="$OLD_CPPFLAGS"
2547 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2548 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2550 dnl we require a c++ compiler for this one
2551 if [ test x$HAVE_CXX = xyes ]; then
2552 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2553 dnl since many distros include mjpegtools specifically without mplex
2554 dnl and mpeg2enc, we check for mplex on its own, too.
2555 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2556 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2557 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2559 dnl switch over to c++ to test things
2561 OLD_CPPFLAGS="$CPPFLAGS"
2563 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2564 CPPFLAGS="$CPPFLAGS_GOOD -I."
2565 AC_CHECK_HEADER(interact.hpp, [
2566 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2568 LIBS="$LIBS $MPLEX_LIBS"
2569 OLD_LDFLAGS="$LDFLAGS"
2570 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2571 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2572 dnl don't want this here
2573 AC_MSG_CHECKING([for valid mplex objects])
2574 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2576 #include <interact.hpp>
2577 #include <outputstrm.hpp>
2578 #include <multiplexor.hpp>
2583 class TestOutputStream : public OutputStream {
2585 TestOutputStream () : OutputStream () { }
2586 void Write (uint8_t *a, unsigned int b) { }
2587 void NextSegment () { }
2588 uint64_t SegmentSize () { }
2592 MultiplexJob *job = new MultiplexJob ();
2593 vector<IBitStream *> inputs;
2594 job->SetupInputStreams (inputs);
2595 TestOutputStream *out = new TestOutputStream ();
2596 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2601 CPPFLAGS="$CPPFLAGS_GOOD"
2602 AC_SUBST(MPLEX_CFLAGS)
2603 AC_SUBST(MPLEX_LIBS)
2604 AC_SUBST(MPLEX_LDFLAGS)
2606 ],[AC_MSG_RESULT(no)],[])
2608 LDFLAGS="$OLD_LDFLAGS"
2610 CPPFLAGS="$OLD_CPPFLAGS"
2616 dnl *** musepack ***
2617 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2618 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2619 AC_CHECK_HEADER([mpc/mpcdec.h], [
2621 MUSEPACK_LIBS="-lmpcdec"
2622 AC_SUBST(MUSEPACK_LIBS)
2623 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2625 MUSEPACK_LIBS="-lmpcdec"
2626 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2627 AC_SUBST(MUSEPACK_LIBS)
2628 ], [HAVE_MUSEPACK="no"])])
2632 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2633 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2635 if test "x$HAVE_X" = "xyes"; then
2636 save_cppflags=$CFLAGS
2637 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2638 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2639 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2640 CPPFLAGS="$save_cppflags"
2642 AC_SUBST(NAS_CFLAGS)
2647 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2648 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2649 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2652 AC_SUBST(NEON_CFLAGS)
2657 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2658 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2659 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2662 AC_SUBST(OFA_CFLAGS)
2667 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2668 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2669 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2672 AC_SUBST(OPENAL_CFLAGS)
2673 AC_SUBST(OPENAL_LIBS)
2677 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2678 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2679 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2680 dnl and don't want the build to break when a new opencv version comes out.
2681 dnl Need to adjust this upwards once we know that our code compiles fine with
2682 dnl a new version and the no-backward-compatibility define. (There doesn't
2683 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2685 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2688 OLD_CPPFLAGS=$CPPFLAGS
2689 CPPFLAGS=$OPENCV_CFLAGS
2690 something_not_found=no
2691 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2692 opencv2/core/version.hpp \
2693 opencv2/highgui/highgui_c.h \
2694 opencv2/imgproc/imgproc.hpp \
2695 opencv2/imgproc/imgproc_c.h \
2696 opencv2/objdetect/objdetect.hpp \
2697 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2698 CPPFLAGS=$OLD_CPPFLAGS
2701 if test $something_not_found = "yes"; then
2702 AC_MSG_RESULT([not all opencv2 headers were found])
2710 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2711 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2712 AC_SUBST(OPENCV_PREFIX)
2713 AC_SUBST(OPENCV_CFLAGS)
2714 AC_SUBST(OPENCV_LIBS)
2715 dnl the OpenCV prefix is used at runtime for some object properties, and also
2716 dnl used here to detect which directory is the correct one. For the second
2717 dnl case, make sure the right sysroot is used, ensuring correct behavior
2718 dnl during cross compilation.
2719 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2720 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2722 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2727 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2728 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2729 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2732 dnl *** openh264 ***
2733 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2734 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2735 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2738 dnl *** OpenJPEG ***
2739 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2740 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2744 save_CFLAGS="$CFLAGS"
2745 OPENJPEG_LIBS="-lopenjp2"
2746 LIBS="$LIBS $OPENJPEG_LIBS"
2747 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2749 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2750 [return (int) *opj_version ();])
2751 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2753 CFLAGS="$save_CFLAGS"
2755 if test x"$HAVE_OPENJPEG" = x"no"; then
2757 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2758 HAVE_OPENJPEG="yes",
2759 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2761 if test x"$HAVE_OPENJPEG" = x"yes"; then
2762 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2765 AC_SUBST(OPENJPEG_CFLAGS)
2766 AC_SUBST(OPENJPEG_LIBS)
2770 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2771 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2772 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2773 AC_SUBST(OPENNI2_CFLAGS)
2774 AC_SUBST(OPENNI2_LIBS)
2778 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2779 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2780 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2781 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2786 AC_SUBST(OPUS_CFLAGS)
2791 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2792 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2793 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2794 AC_SUBST(PVR_CFLAGS)
2798 AC_ARG_WITH([pvr-external-headers],
2799 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2800 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2801 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2802 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2805 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2806 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2807 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2811 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2812 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2815 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2822 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2823 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2824 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2825 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2830 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2832 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2833 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2834 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2835 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2837 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2839 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2840 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2841 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2842 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2844 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2846 if test "x$GDK_WINDOWING" = "xyes"; then
2847 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2854 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2857 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2858 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2859 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2860 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2861 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2862 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2863 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2864 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2865 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2866 AC_MSG_WARN([One of the required qt build programs was not found])
2870 HAVE_QT_WINDOWING="no"
2871 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2872 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2873 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2874 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2875 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2876 HAVE_QT_WINDOWING="yes"
2877 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2879 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2880 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2881 AC_DEFINE([HAVE_QT_WAYLAND], [],
2882 [Define if Qt Wayland integration is installed])
2883 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2884 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2885 HAVE_QT_WINDOWING="yes"
2886 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2888 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2889 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2890 # c++ on android requires a standard library and there are multiple
2891 # choices. cerbero provides a pkg-config file the describes a choice
2892 # so try to use that. Outside cerbero one has to pass these flags
2893 # manually for the library one is using
2894 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2895 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2896 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2898 AC_MSG_NOTICE([Could not find Standard C++ library])])
2900 AC_DEFINE([HAVE_QT_ANDROID], [],
2901 [Define if Qt Android integration is installed])
2902 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2903 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2904 HAVE_QT_WINDOWING="yes"
2905 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2907 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2908 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2909 AC_DEFINE([HAVE_QT_MAC], [],
2910 [Define if Qt Mac integration is installed])
2911 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2912 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2913 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2914 HAVE_QT_WINDOWING="yes"
2915 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2917 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2918 if test "x$HAVE_IOS" = "xyes"; then
2919 # iOS doesn't have its own extras package so if we have the core
2920 # modules we are good to go
2921 AC_DEFINE([HAVE_QT_IOS], [],
2922 [Define if Qt iOS integration is installed])
2923 HAVE_QT_WINDOWING="yes"
2926 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2927 AC_MSG_WARN([Could not find any Qt Windowing integration])
2930 AC_SUBST([QT_CFLAGS])
2939 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2940 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2942 AC_CHECK_HEADER(vulkan/vulkan.h, [
2943 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2944 VULKAN_LIBS="-lvulkan"
2945 AC_SUBST(VULKAN_LIBS)
2946 dnl TODO check platform support (x11, win32, wayland, android, etc)
2947 if test "x$HAVE_XCB" = "xyes"; then
2954 dnl *** libvisual ***
2955 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2956 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2957 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2958 if test x$HAVE_LIBVISUAL = xyes; then
2959 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2961 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2962 if test x$LIBVIS_PLUGINSDIR != x; then
2963 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2964 "$LIBVIS_PLUGINSDIR",
2965 [directory in which the detected libvisual's plugins are located])
2969 dnl *** timidity ***
2970 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2971 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2972 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2973 HAVE_TIMIDITY="yes",
2974 AC_MSG_CHECKING([for timidity.cfg])
2976 if test -r /etc/timidity.cfg; then
2977 timidity_cfg=/etc/timidity.cfg
2978 elif test -r /etc/timidity/timidity.cfg; then
2979 timidity_cfg=/etc/timidity/timidity.cfg
2980 elif test -r /usr/share/timidity/timidity.cfg; then
2981 timidity_cfg=/usr/share/timidity/timidity.cfg
2982 elif test -r /usr/local/share/timidity/timidity.cfg; then
2983 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2985 if test "x$timidity_cfg" != "x"; then
2986 AC_MSG_RESULT($timidity_cfg)
2987 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2989 AC_MSG_RESULT([not found])
2994 AC_SUBST(TIMIDITY_CFLAGS)
2995 AC_SUBST(TIMIDITY_LIBS)
2998 dnl *** teletextdec ***
2999 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3000 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3001 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3004 dnl *** wildmidi ***
3005 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3006 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3007 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3010 WILDMIDI_LIBS="-lWildMidi")
3011 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3013 if test "x$HAVE_WILDMIDI" = "xyes"; then
3015 WILDMIDI_LIBS=-lWildMidi
3016 AC_MSG_NOTICE(compiling gstWildMidi)
3020 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3022 AC_SUBST(WILDMIDI_CFLAGS)
3023 AC_SUBST(WILDMIDI_LIBS)
3027 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3028 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3029 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3032 dnl **** Smooth Streaming ****
3033 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3034 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3035 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3037 HAVE_SMOOTHSTREAMING="yes"],
3039 HAVE_SMOOTHSTREAMING="no"])
3040 AC_SUBST(LIBXML2_CFLAGS)
3041 AC_SUBST(LIBXML2_LIBS)
3045 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3046 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3047 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3048 AC_SUBST(SNDFILE_CFLAGS)
3049 AC_SUBST(SNDFILE_LIBS)
3052 dnl *** soundtouch ***
3053 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3054 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3055 dnl We only need -lBPM on soundtouch < 1.4
3056 dnl We check for libSoundTouch since Debian used it before upstream
3057 dnl added a pkgconfig file.
3058 HAVE_SOUNDTOUCH_1_4=yes
3059 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3060 [HAVE_SOUNDTOUCH=yes],
3061 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3062 [HAVE_SOUNDTOUCH=yes],
3063 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3064 [HAVE_SOUNDTOUCH=yes
3065 HAVE_SOUNDTOUCH_1_4=no
3066 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3067 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3068 [HAVE_SOUNDTOUCH=yes],
3069 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3070 [HAVE_SOUNDTOUCH=yes
3071 HAVE_SOUNDTOUCH_1_4=no
3072 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3073 HAVE_SOUNDTOUCH=no)])])])])
3074 AC_SUBST(SOUNDTOUCH_CFLAGS)
3075 AC_SUBST(SOUNDTOUCH_LIBS)
3076 if test "x$HAVE_CXX" != "xyes"; then
3077 USE_SOUNDTOUCH=false
3078 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3080 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3081 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3082 [Defined if the available libSoundTouch is >= 1.4])
3087 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3088 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3089 AC_CHECK_HEADER(openspc.h, [
3090 AC_CHECK_LIB(openspc, OSPC_Init, [
3091 SPC_LIBS="-lopenspc"
3103 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3104 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3105 AC_CHECK_HEADER(gme/gme.h, [
3106 AC_CHECK_LIB(gme, gme_new_emu, [
3117 if test "x$HAVE_GME" = "xyes"; then
3118 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3119 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3125 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3126 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3128 AC_CHECK_HEADER(xvid.h, [
3130 LIBS="$PTHREAD_LIBS $LIBM"
3131 AC_CHECK_LIB(xvidcore, xvid_encore, [
3132 AC_CHECK_LIB(xvidcore, xvid_decore, [
3133 AC_CHECK_LIB(xvidcore, xvid_global, [
3134 AC_MSG_CHECKING([for up-to-date XviD API version])
3135 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3136 #if XVID_API_MAJOR(XVID_API) != 4
3137 #error "Incompatible XviD API version"
3139 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3140 #error "Incompatible XviD API version"
3142 ]])],[ AC_MSG_RESULT(yes)
3143 XVID_LIBS="-lxvidcore $LIBM"
3146 ],[AC_MSG_RESULT(no) ])
3155 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3156 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3157 AC_MSG_CHECKING([Checking for up to date dvb installation])
3158 AC_CHECK_HEADER(linux/dvb/version.h, [
3159 AC_MSG_CHECKING([for up-to-date dvb API])
3160 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3161 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3162 #error "Incompatible dvb API"
3164 ]])], [ AC_MSG_RESULT(yes)
3166 ], [ AC_MSG_RESULT(no)
3173 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3174 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3175 AC_MSG_CHECKING([Checking for windows internet support])
3176 AC_CHECK_HEADERS([windows.h wininet.h],
3177 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3178 [AC_INCLUDES_DEFAULT
3179 #include <windows.h>])
3183 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3184 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3185 AC_MSG_CHECKING([Checking for ACM support])
3186 AC_CHECK_HEADERS([windows.h msacm.h],
3188 AC_SUBST(ACMENC_CFLAGS)
3189 AC_SUBST(ACMMP3DEC_CFLAGS)
3191 [AC_INCLUDES_DEFAULT
3192 #include <windows.h>])
3196 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3197 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3202 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3204 if test "$HAVE_VDPAU" = "no"; then
3205 saved_CPPFLAGS="$CPPFLAGS"
3206 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3208 if test -z "$HAVE_VDPAU_H"; then
3209 dnl Didn't find VDPAU header straight away.
3210 dnl Try /usr/include/nvidia. Need to clear caching vars first
3211 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3212 unset ac_cv_header_vdpau_vdpau_h
3213 unset ac_cv_header_vdpau_vdpau_x11_h
3214 VDPAU_CFLAGS="-I/usr/include/nvidia"
3215 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3216 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3217 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3220 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3222 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3223 dnl Found the headers - look for the lib
3224 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3226 LIBS="$VDPAU_LIBS $saved_LIBS"
3227 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3233 if test "$HAVE_VDPAU" = "yes"; then
3234 AC_MSG_NOTICE([Found up to date VDPAU installation])
3235 AC_SUBST(VDPAU_CFLAGS)
3236 AC_SUBST(VDPAU_LIBS)
3241 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3242 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3243 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3246 dnl *** schroedinger ***
3247 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3248 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3249 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3253 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3254 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3255 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3259 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3260 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3261 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3265 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3266 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3267 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3268 HAVE_SPANDSP="yes" ], [
3272 AC_SUBST(SPANDSP_CFLAGS)
3273 AC_SUBST(SPANDSP_LIBS)
3276 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3277 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3278 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3279 if test "x$HAVE_SNDIO" = "xyes"; then
3280 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3281 if test "x$HAVE_SNDIO" = "xyes"; then
3283 AC_SUBST(SNDIO_LIBS)
3288 dnl *** hls-crypto ***
3289 AC_ARG_WITH([hls-crypto],
3290 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3291 which cryptographic library version to compile against for hls (default: auto)
3293 AS_CASE([$with_hls_crypto],
3297 [with_hls_crypto=auto]
3303 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3304 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3305 AS_CASE([$with_hls_crypto],
3307 PKG_CHECK_MODULES(NETTLE, nettle, [
3308 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3310 ],[AC_MSG_ERROR([Could not find nettle library])])
3313 AM_PATH_LIBGCRYPT([1.2.0], [
3314 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3316 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3319 PKG_CHECK_MODULES(OPENSSL, openssl, [
3320 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3322 ],[AC_MSG_ERROR([Could not find openssl library])])
3325 dnl Try to find a valid crypto library
3326 PKG_CHECK_MODULES(NETTLE, nettle, [
3327 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3330 AM_PATH_LIBGCRYPT([1.2.0], [
3331 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3334 PKG_CHECK_MODULES(OPENSSL, openssl, [
3335 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3346 dnl *** x265 (H.265/HEVC encoder) ***
3347 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3348 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3349 AG_GST_PKG_CHECK_MODULES(X265, x265)
3354 dnl not building plugins with external dependencies,
3355 dnl but we still need to set the conditionals
3357 AM_CONDITIONAL(USE_ASSRENDER, false)
3358 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3359 AM_CONDITIONAL(USE_VOAACENC, false)
3360 AM_CONDITIONAL(USE_APEXSINK, false)
3361 AM_CONDITIONAL(USE_BS2B, false)
3362 AM_CONDITIONAL(USE_BZ2, false)
3363 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3364 AM_CONDITIONAL(USE_CURL, false)
3365 AM_CONDITIONAL(USE_SSH2, false)
3366 AM_CONDITIONAL(USE_DASH, false)
3367 AM_CONDITIONAL(USE_DC1394, false)
3368 AM_CONDITIONAL(USE_DECKLINK, false)
3369 AM_CONDITIONAL(DECKLINK_OSX, false)
3370 AM_CONDITIONAL(USE_DIRECTFB, false)
3371 AM_CONDITIONAL(USE_WAYLAND, false)
3372 AM_CONDITIONAL(USE_DAALA, false)
3373 AM_CONDITIONAL(USE_DTS, false)
3374 AM_CONDITIONAL(USE_EXIF, false)
3375 AM_CONDITIONAL(USE_RESINDVD, false)
3376 AM_CONDITIONAL(USE_FAAC, false)
3377 AM_CONDITIONAL(USE_FAAD, false)
3378 AM_CONDITIONAL(USE_FBDEV, false)
3379 AM_CONDITIONAL(USE_FLITE, false)
3380 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3381 AM_CONDITIONAL(USE_GL, false)
3382 AM_CONDITIONAL(USE_GSM, false)
3383 AM_CONDITIONAL(USE_GTK3, false)
3384 AM_CONDITIONAL(USE_GTK3_GL, false)
3385 AM_CONDITIONAL(USE_HLS, false)
3386 AM_CONDITIONAL(USE_KATE, false)
3387 AM_CONDITIONAL(USE_KMS, false)
3388 AM_CONDITIONAL(USE_TIGER, false)
3389 AM_CONDITIONAL(USE_LADSPA, false)
3390 AM_CONDITIONAL(USE_LV2, false)
3391 AM_CONDITIONAL(USE_LIBDE265, false)
3392 AM_CONDITIONAL(USE_LIBMMS, false)
3393 AM_CONDITIONAL(USE_LINSYS, false)
3394 AM_CONDITIONAL(USE_MODPLUG, false)
3395 AM_CONDITIONAL(USE_MIMIC, false)
3396 AM_CONDITIONAL(USE_MPEG2ENC, false)
3397 AM_CONDITIONAL(USE_MPLEX, false)
3398 AM_CONDITIONAL(USE_MUSEPACK, false)
3399 AM_CONDITIONAL(USE_NAS, false)
3400 AM_CONDITIONAL(USE_NEON, false)
3401 AM_CONDITIONAL(USE_OFA, false)
3402 AM_CONDITIONAL(USE_OPENAL, false)
3403 AM_CONDITIONAL(USE_OPENCV, false)
3404 AM_CONDITIONAL(USE_OPENEXR, false)
3405 AM_CONDITIONAL(USE_OPENJPEG, false)
3406 AM_CONDITIONAL(USE_OPENNI2, false)
3407 AM_CONDITIONAL(USE_OPUS, false)
3408 AM_CONDITIONAL(USE_PVR, false)
3409 AM_CONDITIONAL(USE_QT, false)
3410 AM_CONDITIONAL(USE_LIBVISUAL, false)
3411 AM_CONDITIONAL(USE_TIMIDITY, false)
3412 AM_CONDITIONAL(USE_WILDMIDI, false)
3413 AM_CONDITIONAL(USE_SDL, false)
3414 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3415 AM_CONDITIONAL(USE_SNDFILE, false)
3416 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3417 AM_CONDITIONAL(USE_SPANDSP, false)
3418 AM_CONDITIONAL(USE_SPC, false)
3419 AM_CONDITIONAL(USE_SRTP, false)
3420 AM_CONDITIONAL(USE_GME, false)
3421 AM_CONDITIONAL(USE_XVID, false)
3422 AM_CONDITIONAL(USE_DVB, false)
3423 AM_CONDITIONAL(USE_WININET, false)
3424 AM_CONDITIONAL(USE_ACM, false)
3425 AM_CONDITIONAL(USE_VDPAU, false)
3426 AM_CONDITIONAL(USE_SBC, false)
3427 AM_CONDITIONAL(USE_SCHRO, false)
3428 AM_CONDITIONAL(USE_ZBAR, false)
3429 AM_CONDITIONAL(USE_RSVG, false)
3430 AM_CONDITIONAL(USE_RTMP, false)
3431 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3432 AM_CONDITIONAL(USE_SNDIO, false)
3433 AM_CONDITIONAL(USE_UVCH264, false)
3434 AM_CONDITIONAL(USE_WEBP, false)
3435 AM_CONDITIONAL(USE_OPENH264, false)
3436 AM_CONDITIONAL(USE_X265, false)
3437 AM_CONDITIONAL(USE_DTLS, false)
3439 fi dnl of EXT plugins
3441 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3444 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3445 dnl GST_*: flags shared by built objects to link against GStreamer
3446 dnl GST_ALL_LDFLAGS: linker flags shared by all
3447 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3448 dnl GST_LT_LDFLAGS: library versioning of our libraries
3449 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3451 dnl GST_OPTION_CFLAGS
3452 if test "x$USE_DEBUG" = xyes; then
3455 AC_SUBST(PROFILE_CFLAGS)
3457 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3458 dnl Define _only_ during CVS (not pre-releases or releases)
3459 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3461 DEPRECATED_CFLAGS=""
3463 AC_SUBST(DEPRECATED_CFLAGS)
3465 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3466 dnl at make time with e.g. make ERROR_CFLAGS=""
3467 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3468 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3469 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3470 AC_SUBST(GST_OPTION_CFLAGS)
3471 AC_SUBST(GST_OPTION_CXXFLAGS)
3472 AC_SUBST(GST_OPTION_OBJCFLAGS)
3474 dnl FIXME: do we want to rename to GST_ALL_* ?
3475 dnl prefer internal headers to already installed ones
3476 dnl also add builddir include for enumtypes and marshal
3477 dnl add GST_OPTION_CFLAGS, but overridable
3478 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3479 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3480 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3481 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3482 AC_SUBST(GST_CFLAGS)
3483 AC_SUBST(GST_CXXFLAGS)
3484 AC_SUBST(GST_OBJCFLAGS)
3486 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3487 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3488 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3489 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3490 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3491 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3493 dnl LDFLAGS really should only contain flags, not libs - they get added before
3494 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3495 GST_ALL_LDFLAGS="-no-undefined"
3496 if test "x${enable_Bsymbolic}" = "xyes"; then
3497 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3499 AC_SUBST(GST_ALL_LDFLAGS)
3502 dnl linker flags shared by all libraries
3503 dnl LDFLAGS modifier defining exported symbols from built libraries
3504 dnl (export _gst_foo but not __gst_foo)
3505 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3506 AC_SUBST(GST_LIB_LDFLAGS)
3508 dnl this really should only contain flags, not libs - they get added before
3509 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3510 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3511 AC_SUBST(GST_PLUGIN_LDFLAGS)
3513 dnl *** output files ***
3515 $MKDIR_P tests/check/orc
3523 gst-plugins-bad.spec
3525 gst/accurip/Makefile
3526 gst/adpcmdec/Makefile
3527 gst/adpcmenc/Makefile
3529 gst/videoframe_audiolevel/Makefile
3531 gst/audiofxbad/Makefile
3532 gst/audiomixer/Makefile
3533 gst/audiovisualizers/Makefile
3534 gst/autoconvert/Makefile
3536 gst/camerabin2/Makefile
3537 gst/cdxaparse/Makefile
3538 gst/coloreffects/Makefile
3539 gst/dataurisrc/Makefile
3541 gst/debugutils/Makefile
3542 gst/dvbsuboverlay/Makefile
3544 gst/faceoverlay/Makefile
3545 gst/festival/Makefile
3546 gst/fieldanalysis/Makefile
3547 gst/freeverb/Makefile
3549 gst/gaudieffects/Makefile
3550 gst/geometrictransform/Makefile
3552 gst/hdvparse/Makefile
3555 gst/interlace/Makefile
3556 gst/ivfparse/Makefile
3558 gst/jp2kdecimator/Makefile
3559 gst/jpegformat/Makefile
3562 gst/mpegdemux/Makefile
3563 gst/mpegtsdemux/Makefile
3564 gst/mpegtsmux/Makefile
3565 gst/mpegtsmux/tsmux/Makefile
3566 gst/mpegpsmux/Makefile
3570 gst/nuvdemux/Makefile
3572 gst/patchdetect/Makefile
3573 gst/pcapparse/Makefile
3575 gst/rawparse/Makefile
3576 gst/removesilence/Makefile
3579 gst/segmentclip/Makefile
3586 gst/videofilters/Makefile
3587 gst/videomeasure/Makefile
3588 gst/videoparsers/Makefile
3589 gst/videosignal/Makefile
3593 gst/compositor/Makefile
3595 gst-libs/gst/Makefile
3596 gst-libs/gst/adaptivedemux/Makefile
3597 gst-libs/gst/basecamerabinsrc/Makefile
3598 gst-libs/gst/gl/Makefile
3599 gst-libs/gst/gl/android/Makefile
3600 gst-libs/gst/gl/cocoa/Makefile
3601 gst-libs/gst/gl/dispmanx/Makefile
3602 gst-libs/gst/gl/glprototypes/Makefile
3603 gst-libs/gst/gl/eagl/Makefile
3604 gst-libs/gst/gl/egl/Makefile
3605 gst-libs/gst/gl/wayland/Makefile
3606 gst-libs/gst/gl/win32/Makefile
3607 gst-libs/gst/gl/x11/Makefile
3608 gst-libs/gst/insertbin/Makefile
3609 gst-libs/gst/interfaces/Makefile
3610 gst-libs/gst/codecparsers/Makefile
3611 gst-libs/gst/mpegts/Makefile
3612 gst-libs/gst/uridownloader/Makefile
3613 gst-libs/gst/wayland/Makefile
3614 gst-libs/gst/base/Makefile
3615 gst-libs/gst/player/Makefile
3616 gst-libs/gst/video/Makefile
3617 gst-libs/gst/audio/Makefile
3619 sys/dshowdecwrapper/Makefile
3621 sys/acmmp3dec/Makefile
3622 sys/androidmedia/Makefile
3623 sys/applemedia/Makefile
3624 sys/applemedia-nonpublic/Makefile
3627 sys/d3dvideosink/Makefile
3628 sys/decklink/Makefile
3629 sys/directsound/Makefile
3630 sys/dshowsrcwrapper/Makefile
3631 sys/dshowvideosink/Makefile
3637 sys/opensles/Makefile
3639 sys/tinyalsa/Makefile
3640 sys/uvch264/Makefile
3645 sys/wininet/Makefile
3647 sys/winscreencap/Makefile
3649 tests/check/Makefile
3650 tests/files/Makefile
3651 tests/examples/Makefile
3652 tests/examples/avsamplesink/Makefile
3653 tests/examples/camerabin2/Makefile
3654 tests/examples/codecparsers/Makefile
3655 tests/examples/directfb/Makefile
3656 tests/examples/gl/Makefile
3657 tests/examples/gl/cocoa/Makefile
3658 tests/examples/gl/clutter/Makefile
3659 tests/examples/gl/generic/Makefile
3660 tests/examples/gl/generic/cube/Makefile
3661 tests/examples/gl/generic/cubeyuv/Makefile
3662 tests/examples/gl/generic/doublecube/Makefile
3663 tests/examples/gl/generic/recordgraphic/Makefile
3664 tests/examples/gl/gtk/Makefile
3665 tests/examples/gl/gtk/3dvideo/Makefile
3666 tests/examples/gl/gtk/filternovideooverlay/Makefile
3667 tests/examples/gl/gtk/filtervideooverlay/Makefile
3668 tests/examples/gl/gtk/fxtest/Makefile
3669 tests/examples/gl/gtk/switchvideooverlay/Makefile
3670 tests/examples/gl/qt/Makefile
3671 tests/examples/gl/sdl/Makefile
3672 tests/examples/gtk/Makefile
3673 tests/examples/mpegts/Makefile
3674 tests/examples/mxf/Makefile
3675 tests/examples/opencv/Makefile
3676 tests/examples/uvch264/Makefile
3677 tests/examples/waylandsink/Makefile
3678 tests/icles/Makefile
3679 ext/voamrwbenc/Makefile
3680 ext/voaacenc/Makefile
3681 ext/assrender/Makefile
3682 ext/apexsink/Makefile
3685 ext/chromaprint/Makefile
3689 ext/directfb/Makefile
3690 ext/wayland/Makefile
3698 ext/fluidsynth/Makefile
3704 ext/libde265/Makefile
3706 ext/libvisual/Makefile
3708 ext/modplug/Makefile
3709 ext/mpeg2enc/Makefile
3712 ext/musepack/Makefile
3718 ext/openexr/Makefile
3719 ext/openh264/Makefile
3720 ext/openjpeg/Makefile
3721 ext/openni2/Makefile
3725 ext/resindvd/Makefile
3728 ext/schroedinger/Makefile
3730 ext/smoothstreaming/Makefile
3731 ext/sndfile/Makefile
3732 ext/soundtouch/Makefile
3733 ext/spandsp/Makefile
3736 ext/teletextdec/Makefile
3739 ext/timidity/Makefile
3741 ext/vulkan/xcb/Makefile
3742 ext/vulkan/wayland/Makefile
3750 docs/plugins/Makefile
3752 docs/version.entities
3754 pkgconfig/gstreamer-plugins-bad.pc
3755 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3756 pkgconfig/gstreamer-codecparsers.pc
3757 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3758 pkgconfig/gstreamer-insertbin.pc
3759 pkgconfig/gstreamer-insertbin-uninstalled.pc
3760 pkgconfig/gstreamer-gl.pc
3761 pkgconfig/gstreamer-gl-uninstalled.pc
3762 pkgconfig/gstreamer-mpegts.pc
3763 pkgconfig/gstreamer-mpegts-uninstalled.pc
3764 pkgconfig/gstreamer-player.pc
3765 pkgconfig/gstreamer-player-uninstalled.pc
3766 pkgconfig/gstreamer-wayland.pc
3767 pkgconfig/gstreamer-wayland-uninstalled.pc
3768 pkgconfig/gstreamer-bad-base.pc
3769 pkgconfig/gstreamer-bad-base-uninstalled.pc
3770 pkgconfig/gstreamer-bad-video.pc
3771 pkgconfig/gstreamer-bad-video-uninstalled.pc
3772 pkgconfig/gstreamer-bad-audio.pc
3773 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3778 dnl Create the config.h file for Visual Studio builds
3779 dnl Beware of spaces and /'s in some of the shell variable contents.
3781 -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"/' \
3782 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3783 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3784 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3785 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3786 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3787 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3788 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3789 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3790 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3791 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3792 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3793 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3794 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3795 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3796 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3797 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3798 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3799 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3800 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3801 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3802 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3803 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3804 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3805 -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n# define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n# define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
3806 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3807 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3808 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3809 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3810 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3811 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3812 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3813 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3814 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3815 config.h.in >win32/common/config.h-new
3819 AG_GST_OUTPUT_PLUGINS