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])
1820 AC_CHECK_LIB([rt], [shm_open],
1821 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1822 #include <sys/socket.h>
1825 AC_SUBST(SHM_LIBS, "-lrt")
1833 dnl check for Video CD
1834 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1835 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1836 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1839 dnl check for OpenSL ES
1840 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1841 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1842 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1845 dnl *** UVC H264 ***
1846 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1847 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1848 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1849 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1850 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1853 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1854 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1855 HAVE_LIBUSB="yes" ],
1857 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1858 test "x$HAVE_GUDEV" = "xyes" && \
1859 test "x$HAVE_LIBUSB" = "xyes"; then
1865 AC_SUBST(LIBUDEV_CFLAGS)
1866 AC_SUBST(LIBUDEV_LIBS)
1867 AC_SUBST(LIBUSB_CFLAGS)
1868 AC_SUBST(LIBUSB_LIBS)
1871 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1872 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1873 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1874 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1875 AC_ARG_WITH([cuda-prefix],
1876 AS_HELP_STRING([--with-cuda-prefix],
1877 [Use the provided prefix for detecting the cuda installation]),
1878 [AS_IF([test "x$with_cuda_prefix" != "x"],
1879 [CUDA_PREFIX="$with_cuda_prefix"])],
1883 if test "x$CUDA_PREFIX" != "x"; then
1884 dnl only override if not already set
1885 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1886 dnl this is an educated guess, user can always override these
1887 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1888 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1891 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1892 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1893 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1894 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1899 save_CPPFLAGS="$CPPFLAGS"
1900 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1901 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1902 AC_MSG_WARN([Could not find cuda.h]))
1903 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1904 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1905 CPPFLAGS=$save_CPPFLAGS
1907 dnl libcuda and libcudart libraries
1909 LIBS="$CUDA_LIBS $save_LIBS"
1910 HAVE_CUDART_LIB="no"
1911 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1912 AC_MSG_WARN([Could not find cudart library])])
1914 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1915 AC_MSG_WARN([Could not find cuda library])])
1918 dnl nvEncodeAPI.h header
1919 HAVE_NVENCODEAPI_H=no
1920 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1921 save_CPPFLAGS="$CPPFLAGS"
1922 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1923 AC_CHECK_HEADER([nvEncodeAPI.h], [
1924 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1925 #if NVENCAPI_MAJOR_VERSION < 5
1926 #error "Need nvEncodeAPI.h >= 5.0"
1929 HAVE_NVENCODEAPI_H=yes
1931 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1934 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1935 AC_SUBST(NVENCODE_CFLAGS)
1936 CPPFLAGS="$save_CPPFLAGS"
1938 dnl libnvnidia-encode library
1939 HAVE_NVENCODE_LIB=no
1940 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1942 LIBS="$NVENCODE_LIBS $saved_LIBS"
1943 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1944 AC_MSG_WARN([Could not find library nvidia-encode]))
1945 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1946 AC_SUBST(NVENCODE_LIBS)
1950 if test "x$HAVE_CUDA_H" = "xyes" \
1951 -a "x$HAVE_CUDART_H" = "xyes" \
1952 -a "x$HAVE_CUDA_LIB" = "xyes" \
1953 -a "x$HAVE_CUDART_LIB" = "xyes" \
1954 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1955 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1957 if test x"$USE_OPENGL" = x"yes"; then
1958 dnl cuda-gl interop header
1959 save_CPPFLAGS="$CPPFLAGS"
1960 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1961 AC_CHECK_HEADER([cuda_gl_interop.h], [
1962 USE_NVENC_GST_GL="yes"
1963 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1965 CPPFLAGS="$save_CPPFLAGS"
1971 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1973 dnl check for tinyalsa
1974 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1975 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1976 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1979 dnl *** ext plug-ins ***
1980 dnl keep this list sorted alphabetically !
1982 if test "x$BUILD_EXTERNAL" = "xyes"; then
1984 dnl *** assrender ***
1985 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1986 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1987 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1988 HAVE_ASSRENDER="yes" ], [
1992 AC_SUBST(ASSRENDER_CFLAGS)
1993 AC_SUBST(ASSRENDER_LIBS)
1995 dnl *** vo-amrwbenc ***
1996 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1997 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1998 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2001 dnl *** vo-aacenc ***
2002 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2003 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2004 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2007 dnl *** apexsink ***
2008 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2009 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2010 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2014 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2015 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2016 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2018 AC_SUBST(APEXSINK_CFLAGS)
2019 AC_SUBST(APEXSINK_LIBS)
2026 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2027 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2028 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2031 AC_SUBST(BS2B_CFLAGS)
2036 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2037 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2040 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2041 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2042 AC_MSG_RESULT($HAVE_BZ2)
2044 if test "x$HAVE_BZ2" = "xyes"; then
2052 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2053 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2054 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2057 # AC_SUBST(CAIRO_CFLAGS)
2058 # AC_SUBST(CAIRO_LIBS)
2061 dnl *** chromaprint ***
2062 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2063 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2064 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2065 HAVE_CHROMAPRINT="no"
2067 AC_SUBST(CHROMAPRINT_CFLAGS)
2068 AC_SUBST(CHROMAPRINT_LIBS)
2072 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2073 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2074 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2076 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2077 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2079 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2080 [[#ifdef HAVE_SYS_TYPES_H
2081 # include <sys/types.h>
2083 #ifdef HAVE_NETINET_IN_H
2084 # include <netinet/in.h>
2087 AC_MSG_CHECKING([for socket support needed by curlsink])
2088 AC_MSG_RESULT($HAVE_CURL)
2092 AC_SUBST(CURL_CFLAGS)
2094 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2096 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2100 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2101 AC_SUBST(SSH2_CFLAGS)
2103 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2106 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2107 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2108 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2109 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2111 AC_SUBST(LIBXML2_CFLAGS)
2112 AC_SUBST(LIBXML2_LIBS)
2116 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2117 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2118 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2119 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2128 AC_SUBST(LIBDC1394_CFLAGS)
2129 AC_SUBST(LIBDC1394_LIBS)
2132 dnl *** decklink ***
2133 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2134 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2141 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2142 AC_CHECK_LIB(dl, dlopen,
2146 DECKLINK_LIBS="-lpthread -ldl"
2151 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2152 AC_CHECK_LIB(dl, dlopen,
2156 DECKLINK_LIBS="-lpthread -ldl"
2157 HAVE_DECKLINK_OSX=yes
2166 AC_SUBST(DECKLINK_CXXFLAGS)
2167 AC_SUBST(DECKLINK_LIBS)
2169 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2171 dnl **** DirectFB ****
2172 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2173 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2174 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2179 dnl **** Wayland ****
2180 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2181 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2182 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2183 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2184 if test "x$wayland_scanner" != "x"; then
2187 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2196 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2197 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2198 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2199 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2201 AC_SUBST(WEBP_CFLAGS)
2206 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2207 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2208 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2209 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2214 AC_SUBST(DAALA_CFLAGS)
2215 AC_SUBST(DAALA_LIBS)
2220 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2221 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2223 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2224 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2225 if test $HAVE_DTS = "no"; then
2226 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2227 [ DTS_LIBS="-ldts_pic $LIBM"
2228 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2234 dnl *** resindvd ***
2235 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2236 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2237 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2242 dnl **** Free AAC Encoder (FAAC) ****
2243 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2244 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2245 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2246 FAAC_LIBS="-lfaac $LIBM")
2250 dnl **** Free AAC Decoder (FAAD2) ****
2251 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2252 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2253 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2254 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2255 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2257 #elif !defined(LATM)
2258 #error Not faad2 >= 2.7
2264 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2274 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2275 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2276 if test "x$HAVE_FBDEV" != "xyes"; then
2277 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2282 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2283 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2284 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2285 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2287 AC_SUBST(FLITE_CFLAGS)
2288 AC_SUBST(FLITE_LIBS)
2292 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2293 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2294 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2295 if test $HAVE_GSM != "yes"; then
2296 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2297 if test $HAVE_GSM = "yes"; then
2298 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2304 dnl *** fluidSynth ***
2305 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2306 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2307 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2308 HAVE_FLUIDSYNTH="no"
2313 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2314 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2315 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2318 AC_SUBST(KATE_CFLAGS)
2320 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2323 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2329 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2330 AC_SUBST(TIGER_CFLAGS)
2331 AC_SUBST(TIGER_LIBS)
2332 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2335 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2336 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2337 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2338 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2339 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2343 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2344 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2345 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2347 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2348 if test $HAVE_LRDF = "yes"; then
2349 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2352 AC_SUBST(LRDF_CFLAGS)
2356 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2357 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2358 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2359 AC_SUBST(LILV_CFLAGS)
2363 dnl *** libde265 ***
2364 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2365 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2366 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2367 AC_SUBST(LIBDE265_CFLAGS)
2368 AC_SUBST(LIBDE265_LIBS)
2372 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2373 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2374 dnl check with pkg-config first
2375 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2379 AC_SUBST(LIBMMS_LIBS)
2383 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2384 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2385 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2386 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2389 AC_SUBST(SRTP_CFLAGS)
2393 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2394 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2395 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2397 AC_SUBST(DTLS_CFLAGS)
2405 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2406 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2418 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2419 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2420 if test "x$HAVE_CXX" != "xyes"; then
2421 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2424 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2426 AC_SUBST(MODPLUG_CFLAGS)
2427 AC_SUBST(MODPLUG_LIBS)
2431 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2432 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2434 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2435 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2436 AC_SUBST(MIMIC_CFLAGS)
2437 AC_SUBST(MIMIC_LIBS)
2440 dnl *** mjpegtools version info ***
2441 dnl some may prefer older version (given quirks above)
2442 dnl hm, no version info seems available within mjpegtools headers
2443 dnl and API really moves along
2445 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2446 mjpegtools_api=10601
2448 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2449 mjpegtools_api=10800
2451 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2452 mjpegtools_api=20000
2454 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2455 dnl logging API changed in release candidates
2456 OLD_CFLAGS="$CFLAGS"
2458 CFLAGS="$MJPEG_CFLAGS"
2459 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2460 AC_CHECK_FUNC(mjpeg_loglev_t, [
2461 mjpegtools_api=10903
2463 mjpegtools_api=10900
2465 CFLAGS="$OLD_CFLAGS"
2473 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2474 [mjpegtools API evolution])
2476 dnl *** mpeg2enc ***
2477 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2478 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2480 dnl we require a c++ compiler for this one
2481 if [ test x$HAVE_CXX = xyes ]; then
2482 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2483 dnl since many distros include mjpegtools specifically without mplex
2484 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2485 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2486 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2488 dnl switch over to c++ to test things
2490 OLD_CPPFLAGS="$CPPFLAGS"
2492 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2493 CPPFLAGS="$CPPFLAGS_GOOD -I."
2495 mpeg2enc_headers_ok=no
2496 AC_CHECK_HEADER([mpeg2encoder.hh], [
2497 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2499 LIBS="$LIBS $MPEG2ENC_LIBS"
2500 AC_MSG_CHECKING([for valid mpeg2enc objects])
2501 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2502 #include <mpeg2encoder.hh>
2503 #include <mpeg2encoptions.hh>
2509 MPEG2EncOptions *options = new MPEG2EncOptions ();
2510 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2515 dnl so far so good, let's check more things:
2516 dnl mjpegtools-1.8.0 does not install the required
2517 dnl mpeg2syntaxcodes.h header by default, and a new release
2518 dnl is not in sight, so check for this oversight in case
2519 dnl distros or folks have fixed this themselves
2520 if test "$mjpegtools_api" -ge "10800"; then
2521 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2522 mpeg2enc_headers_ok=yes
2524 mpeg2enc_headers_ok=no
2527 mpeg2enc_headers_ok=yes
2529 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2532 CPPFLAGS="$CPPFLAGS_GOOD"
2533 AC_SUBST(MPEG2ENC_CFLAGS)
2534 AC_SUBST(MPEG2ENC_LIBS)
2541 CPPFLAGS="$OLD_CPPFLAGS"
2550 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2551 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2553 dnl we require a c++ compiler for this one
2554 if [ test x$HAVE_CXX = xyes ]; then
2555 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2556 dnl since many distros include mjpegtools specifically without mplex
2557 dnl and mpeg2enc, we check for mplex on its own, too.
2558 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2559 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2560 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2562 dnl switch over to c++ to test things
2564 OLD_CPPFLAGS="$CPPFLAGS"
2566 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2567 CPPFLAGS="$CPPFLAGS_GOOD -I."
2568 AC_CHECK_HEADER(interact.hpp, [
2569 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2571 LIBS="$LIBS $MPLEX_LIBS"
2572 OLD_LDFLAGS="$LDFLAGS"
2573 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2574 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2575 dnl don't want this here
2576 AC_MSG_CHECKING([for valid mplex objects])
2577 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2579 #include <interact.hpp>
2580 #include <outputstrm.hpp>
2581 #include <multiplexor.hpp>
2586 class TestOutputStream : public OutputStream {
2588 TestOutputStream () : OutputStream () { }
2589 void Write (uint8_t *a, unsigned int b) { }
2590 void NextSegment () { }
2591 uint64_t SegmentSize () { }
2595 MultiplexJob *job = new MultiplexJob ();
2596 vector<IBitStream *> inputs;
2597 job->SetupInputStreams (inputs);
2598 TestOutputStream *out = new TestOutputStream ();
2599 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2604 CPPFLAGS="$CPPFLAGS_GOOD"
2605 AC_SUBST(MPLEX_CFLAGS)
2606 AC_SUBST(MPLEX_LIBS)
2607 AC_SUBST(MPLEX_LDFLAGS)
2609 ],[AC_MSG_RESULT(no)],[])
2611 LDFLAGS="$OLD_LDFLAGS"
2613 CPPFLAGS="$OLD_CPPFLAGS"
2619 dnl *** musepack ***
2620 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2621 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2622 AC_CHECK_HEADER([mpc/mpcdec.h], [
2624 MUSEPACK_LIBS="-lmpcdec"
2625 AC_SUBST(MUSEPACK_LIBS)
2626 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2628 MUSEPACK_LIBS="-lmpcdec"
2629 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2630 AC_SUBST(MUSEPACK_LIBS)
2631 ], [HAVE_MUSEPACK="no"])])
2635 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2636 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2638 if test "x$HAVE_X" = "xyes"; then
2639 save_cppflags=$CFLAGS
2640 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2641 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2642 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2643 CPPFLAGS="$save_cppflags"
2645 AC_SUBST(NAS_CFLAGS)
2650 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2651 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2652 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2655 AC_SUBST(NEON_CFLAGS)
2660 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2661 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2662 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2665 AC_SUBST(OFA_CFLAGS)
2670 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2671 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2672 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2675 AC_SUBST(OPENAL_CFLAGS)
2676 AC_SUBST(OPENAL_LIBS)
2680 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2681 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2682 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2683 dnl and don't want the build to break when a new opencv version comes out.
2684 dnl Need to adjust this upwards once we know that our code compiles fine with
2685 dnl a new version and the no-backward-compatibility define. (There doesn't
2686 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2688 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2691 OLD_CPPFLAGS=$CPPFLAGS
2692 CPPFLAGS=$OPENCV_CFLAGS
2693 something_not_found=no
2694 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2695 opencv2/core/version.hpp \
2696 opencv2/highgui/highgui_c.h \
2697 opencv2/imgproc/imgproc.hpp \
2698 opencv2/imgproc/imgproc_c.h \
2699 opencv2/objdetect/objdetect.hpp \
2700 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2701 CPPFLAGS=$OLD_CPPFLAGS
2704 if test $something_not_found = "yes"; then
2705 AC_MSG_RESULT([not all opencv2 headers were found])
2713 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2714 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2715 AC_SUBST(OPENCV_PREFIX)
2716 AC_SUBST(OPENCV_CFLAGS)
2717 AC_SUBST(OPENCV_LIBS)
2718 dnl the OpenCV prefix is used at runtime for some object properties, and also
2719 dnl used here to detect which directory is the correct one. For the second
2720 dnl case, make sure the right sysroot is used, ensuring correct behavior
2721 dnl during cross compilation.
2722 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2723 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2725 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2730 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2731 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2732 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2735 dnl *** openh264 ***
2736 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2737 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2738 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2741 dnl *** OpenJPEG ***
2742 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2743 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2745 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2746 if test x"$HAVE_OPENJPEG" = x"yes"; then
2747 dnl minor API changes in v2.1
2748 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2749 if test x"$HAVE_OPENJPEG" = x"yes"; then
2750 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2755 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2756 HAVE_OPENJPEG="yes",
2757 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2759 if test x"$HAVE_OPENJPEG" = x"yes"; then
2760 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2763 AC_SUBST(OPENJPEG_CFLAGS)
2764 AC_SUBST(OPENJPEG_LIBS)
2768 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2769 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2770 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2771 AC_SUBST(OPENNI2_CFLAGS)
2772 AC_SUBST(OPENNI2_LIBS)
2776 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2777 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2778 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2779 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2784 AC_SUBST(OPUS_CFLAGS)
2789 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2790 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2791 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2792 AC_SUBST(PVR_CFLAGS)
2796 AC_ARG_WITH([pvr-external-headers],
2797 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2798 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2799 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2800 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2803 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2804 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2805 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2809 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2810 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2813 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2820 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2821 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2822 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2823 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2828 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2830 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2831 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2832 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2833 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2835 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2837 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2838 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2839 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2840 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2842 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2844 if test "x$GDK_WINDOWING" = "xyes"; then
2845 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2852 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2855 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2856 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2857 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2858 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2859 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2860 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2861 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2862 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2863 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2864 AC_MSG_WARN([One of the required qt build programs was not found])
2868 HAVE_QT_WINDOWING="no"
2869 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2870 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2871 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2872 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2873 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2874 HAVE_QT_WINDOWING="yes"
2875 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2877 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2878 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2879 AC_DEFINE([HAVE_QT_WAYLAND], [],
2880 [Define if Qt Wayland integration is installed])
2881 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2882 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2883 HAVE_QT_WINDOWING="yes"
2884 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2886 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2887 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2888 # c++ on android requires a standard library and there are multiple
2889 # choices. cerbero provides a pkg-config file the describes a choice
2890 # so try to use that. Outside cerbero one has to pass these flags
2891 # manually for the library one is using
2892 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2893 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2894 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2896 AC_MSG_NOTICE([Could not find Standard C++ library])])
2898 AC_DEFINE([HAVE_QT_ANDROID], [],
2899 [Define if Qt Android integration is installed])
2900 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2901 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2902 HAVE_QT_WINDOWING="yes"
2903 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2905 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2906 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2907 AC_DEFINE([HAVE_QT_MAC], [],
2908 [Define if Qt Mac integration is installed])
2909 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2910 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2911 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2912 HAVE_QT_WINDOWING="yes"
2913 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2915 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2916 if test "x$HAVE_IOS" = "xyes"; then
2917 # iOS doesn't have its own extras package so if we have the core
2918 # modules we are good to go
2919 AC_DEFINE([HAVE_QT_IOS], [],
2920 [Define if Qt iOS integration is installed])
2921 HAVE_QT_WINDOWING="yes"
2924 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2925 AC_MSG_WARN([Could not find any Qt Windowing integration])
2928 AC_SUBST([QT_CFLAGS])
2937 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2938 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2940 AC_CHECK_HEADER(vulkan/vulkan.h, [
2941 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2942 VULKAN_LIBS="-lvulkan"
2943 AC_SUBST(VULKAN_LIBS)
2944 dnl TODO check platform support (x11, win32, wayland, android, etc)
2945 if test "x$HAVE_XCB" = "xyes"; then
2952 dnl *** libvisual ***
2953 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2954 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2955 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2956 if test x$HAVE_LIBVISUAL = xyes; then
2957 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2959 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2960 if test x$LIBVIS_PLUGINSDIR != x; then
2961 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2962 "$LIBVIS_PLUGINSDIR",
2963 [directory in which the detected libvisual's plugins are located])
2967 dnl *** timidity ***
2968 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2969 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2970 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2971 HAVE_TIMIDITY="yes",
2972 AC_MSG_CHECKING([for timidity.cfg])
2974 if test -r /etc/timidity.cfg; then
2975 timidity_cfg=/etc/timidity.cfg
2976 elif test -r /etc/timidity/timidity.cfg; then
2977 timidity_cfg=/etc/timidity/timidity.cfg
2978 elif test -r /usr/share/timidity/timidity.cfg; then
2979 timidity_cfg=/usr/share/timidity/timidity.cfg
2980 elif test -r /usr/local/share/timidity/timidity.cfg; then
2981 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2983 if test "x$timidity_cfg" != "x"; then
2984 AC_MSG_RESULT($timidity_cfg)
2985 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2987 AC_MSG_RESULT([not found])
2992 AC_SUBST(TIMIDITY_CFLAGS)
2993 AC_SUBST(TIMIDITY_LIBS)
2996 dnl *** teletextdec ***
2997 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2998 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2999 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3002 dnl *** wildmidi ***
3003 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3004 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3005 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3008 WILDMIDI_LIBS="-lWildMidi")
3009 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3011 if test "x$HAVE_WILDMIDI" = "xyes"; then
3013 WILDMIDI_LIBS=-lWildMidi
3014 AC_MSG_NOTICE(compiling gstWildMidi)
3018 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3020 AC_SUBST(WILDMIDI_CFLAGS)
3021 AC_SUBST(WILDMIDI_LIBS)
3025 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3026 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3027 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3030 dnl **** Smooth Streaming ****
3031 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3032 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3033 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3035 HAVE_SMOOTHSTREAMING="yes"],
3037 HAVE_SMOOTHSTREAMING="no"])
3038 AC_SUBST(LIBXML2_CFLAGS)
3039 AC_SUBST(LIBXML2_LIBS)
3043 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3044 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3045 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3046 AC_SUBST(SNDFILE_CFLAGS)
3047 AC_SUBST(SNDFILE_LIBS)
3050 dnl *** soundtouch ***
3051 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3052 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3053 dnl We only need -lBPM on soundtouch < 1.4
3054 dnl We check for libSoundTouch since Debian used it before upstream
3055 dnl added a pkgconfig file.
3056 HAVE_SOUNDTOUCH_1_4=yes
3057 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3058 [HAVE_SOUNDTOUCH=yes],
3059 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3060 [HAVE_SOUNDTOUCH=yes],
3061 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3062 [HAVE_SOUNDTOUCH=yes
3063 HAVE_SOUNDTOUCH_1_4=no
3064 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3065 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3066 [HAVE_SOUNDTOUCH=yes],
3067 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3068 [HAVE_SOUNDTOUCH=yes
3069 HAVE_SOUNDTOUCH_1_4=no
3070 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3071 HAVE_SOUNDTOUCH=no)])])])])
3072 AC_SUBST(SOUNDTOUCH_CFLAGS)
3073 AC_SUBST(SOUNDTOUCH_LIBS)
3074 if test "x$HAVE_CXX" != "xyes"; then
3075 USE_SOUNDTOUCH=false
3076 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3078 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3079 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3080 [Defined if the available libSoundTouch is >= 1.4])
3085 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3086 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3087 AC_CHECK_HEADER(openspc.h, [
3088 AC_CHECK_LIB(openspc, OSPC_Init, [
3089 SPC_LIBS="-lopenspc"
3101 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3102 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3103 AC_CHECK_HEADER(gme/gme.h, [
3104 AC_CHECK_LIB(gme, gme_new_emu, [
3115 if test "x$HAVE_GME" = "xyes"; then
3116 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3117 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3123 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3124 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3126 AC_CHECK_HEADER(xvid.h, [
3128 LIBS="$PTHREAD_LIBS $LIBM"
3129 AC_CHECK_LIB(xvidcore, xvid_encore, [
3130 AC_CHECK_LIB(xvidcore, xvid_decore, [
3131 AC_CHECK_LIB(xvidcore, xvid_global, [
3132 AC_MSG_CHECKING([for up-to-date XviD API version])
3133 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3134 #if XVID_API_MAJOR(XVID_API) != 4
3135 #error "Incompatible XviD API version"
3137 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3138 #error "Incompatible XviD API version"
3140 ]])],[ AC_MSG_RESULT(yes)
3141 XVID_LIBS="-lxvidcore $LIBM"
3144 ],[AC_MSG_RESULT(no) ])
3153 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3154 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3155 AC_MSG_CHECKING([Checking for up to date dvb installation])
3156 AC_CHECK_HEADER(linux/dvb/version.h, [
3157 AC_MSG_CHECKING([for up-to-date dvb API])
3158 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3159 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3160 #error "Incompatible dvb API"
3162 ]])], [ AC_MSG_RESULT(yes)
3164 ], [ AC_MSG_RESULT(no)
3171 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3172 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3173 AC_MSG_CHECKING([Checking for windows internet support])
3174 AC_CHECK_HEADERS([windows.h wininet.h],
3175 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3176 [AC_INCLUDES_DEFAULT
3177 #include <windows.h>])
3181 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3182 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3183 AC_MSG_CHECKING([Checking for ACM support])
3184 AC_CHECK_HEADERS([windows.h msacm.h],
3186 AC_SUBST(ACMENC_CFLAGS)
3187 AC_SUBST(ACMMP3DEC_CFLAGS)
3189 [AC_INCLUDES_DEFAULT
3190 #include <windows.h>])
3194 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3195 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3200 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3202 if test "$HAVE_VDPAU" = "no"; then
3203 saved_CPPFLAGS="$CPPFLAGS"
3204 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3206 if test -z "$HAVE_VDPAU_H"; then
3207 dnl Didn't find VDPAU header straight away.
3208 dnl Try /usr/include/nvidia. Need to clear caching vars first
3209 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3210 unset ac_cv_header_vdpau_vdpau_h
3211 unset ac_cv_header_vdpau_vdpau_x11_h
3212 VDPAU_CFLAGS="-I/usr/include/nvidia"
3213 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3214 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3215 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3218 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3220 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3221 dnl Found the headers - look for the lib
3222 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3224 LIBS="$VDPAU_LIBS $saved_LIBS"
3225 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3231 if test "$HAVE_VDPAU" = "yes"; then
3232 AC_MSG_NOTICE([Found up to date VDPAU installation])
3233 AC_SUBST(VDPAU_CFLAGS)
3234 AC_SUBST(VDPAU_LIBS)
3239 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3240 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3241 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3244 dnl *** schroedinger ***
3245 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3246 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3247 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3251 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3252 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3253 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3257 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3258 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3259 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3263 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3264 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3265 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3266 HAVE_SPANDSP="yes" ], [
3270 AC_SUBST(SPANDSP_CFLAGS)
3271 AC_SUBST(SPANDSP_LIBS)
3274 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3275 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3276 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3277 if test "x$HAVE_SNDIO" = "xyes"; then
3278 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3279 if test "x$HAVE_SNDIO" = "xyes"; then
3281 AC_SUBST(SNDIO_LIBS)
3286 dnl *** hls-crypto ***
3287 AC_ARG_WITH([hls-crypto],
3288 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3289 which cryptographic library version to compile against for hls (default: auto)
3291 AS_CASE([$with_hls_crypto],
3295 [with_hls_crypto=auto]
3301 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3302 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3303 AS_CASE([$with_hls_crypto],
3305 PKG_CHECK_MODULES(NETTLE, nettle, [
3306 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3308 ],[AC_MSG_ERROR([Could not find nettle library])])
3311 AM_PATH_LIBGCRYPT([1.2.0], [
3312 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3314 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3317 PKG_CHECK_MODULES(OPENSSL, openssl, [
3318 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3320 ],[AC_MSG_ERROR([Could not find openssl library])])
3323 dnl Try to find a valid crypto library
3324 PKG_CHECK_MODULES(NETTLE, nettle, [
3325 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3328 AM_PATH_LIBGCRYPT([1.2.0], [
3329 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3332 PKG_CHECK_MODULES(OPENSSL, openssl, [
3333 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3344 dnl *** x265 (H.265/HEVC encoder) ***
3345 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3346 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3347 AG_GST_PKG_CHECK_MODULES(X265, x265)
3352 dnl not building plugins with external dependencies,
3353 dnl but we still need to set the conditionals
3355 AM_CONDITIONAL(USE_ASSRENDER, false)
3356 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3357 AM_CONDITIONAL(USE_VOAACENC, false)
3358 AM_CONDITIONAL(USE_APEXSINK, false)
3359 AM_CONDITIONAL(USE_BS2B, false)
3360 AM_CONDITIONAL(USE_BZ2, false)
3361 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3362 AM_CONDITIONAL(USE_CURL, false)
3363 AM_CONDITIONAL(USE_SSH2, false)
3364 AM_CONDITIONAL(USE_DASH, false)
3365 AM_CONDITIONAL(USE_DC1394, false)
3366 AM_CONDITIONAL(USE_DECKLINK, false)
3367 AM_CONDITIONAL(DECKLINK_OSX, false)
3368 AM_CONDITIONAL(USE_DIRECTFB, false)
3369 AM_CONDITIONAL(USE_WAYLAND, false)
3370 AM_CONDITIONAL(USE_DAALA, false)
3371 AM_CONDITIONAL(USE_DTS, false)
3372 AM_CONDITIONAL(USE_EXIF, false)
3373 AM_CONDITIONAL(USE_RESINDVD, false)
3374 AM_CONDITIONAL(USE_FAAC, false)
3375 AM_CONDITIONAL(USE_FAAD, false)
3376 AM_CONDITIONAL(USE_FBDEV, false)
3377 AM_CONDITIONAL(USE_FLITE, false)
3378 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3379 AM_CONDITIONAL(USE_GL, false)
3380 AM_CONDITIONAL(USE_GSM, false)
3381 AM_CONDITIONAL(USE_GTK3, false)
3382 AM_CONDITIONAL(USE_GTK3_GL, false)
3383 AM_CONDITIONAL(USE_HLS, false)
3384 AM_CONDITIONAL(USE_KATE, false)
3385 AM_CONDITIONAL(USE_KMS, false)
3386 AM_CONDITIONAL(USE_TIGER, false)
3387 AM_CONDITIONAL(USE_LADSPA, false)
3388 AM_CONDITIONAL(USE_LV2, false)
3389 AM_CONDITIONAL(USE_LIBDE265, false)
3390 AM_CONDITIONAL(USE_LIBMMS, false)
3391 AM_CONDITIONAL(USE_LINSYS, false)
3392 AM_CONDITIONAL(USE_MODPLUG, false)
3393 AM_CONDITIONAL(USE_MIMIC, false)
3394 AM_CONDITIONAL(USE_MPEG2ENC, false)
3395 AM_CONDITIONAL(USE_MPLEX, false)
3396 AM_CONDITIONAL(USE_MUSEPACK, false)
3397 AM_CONDITIONAL(USE_NAS, false)
3398 AM_CONDITIONAL(USE_NEON, false)
3399 AM_CONDITIONAL(USE_OFA, false)
3400 AM_CONDITIONAL(USE_OPENAL, false)
3401 AM_CONDITIONAL(USE_OPENCV, false)
3402 AM_CONDITIONAL(USE_OPENEXR, false)
3403 AM_CONDITIONAL(USE_OPENJPEG, false)
3404 AM_CONDITIONAL(USE_OPENNI2, false)
3405 AM_CONDITIONAL(USE_OPUS, false)
3406 AM_CONDITIONAL(USE_PVR, false)
3407 AM_CONDITIONAL(USE_QT, false)
3408 AM_CONDITIONAL(USE_LIBVISUAL, false)
3409 AM_CONDITIONAL(USE_TIMIDITY, false)
3410 AM_CONDITIONAL(USE_WILDMIDI, false)
3411 AM_CONDITIONAL(USE_SDL, false)
3412 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3413 AM_CONDITIONAL(USE_SNDFILE, false)
3414 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3415 AM_CONDITIONAL(USE_SPANDSP, false)
3416 AM_CONDITIONAL(USE_SPC, false)
3417 AM_CONDITIONAL(USE_SRTP, false)
3418 AM_CONDITIONAL(USE_GME, false)
3419 AM_CONDITIONAL(USE_XVID, false)
3420 AM_CONDITIONAL(USE_DVB, false)
3421 AM_CONDITIONAL(USE_WININET, false)
3422 AM_CONDITIONAL(USE_ACM, false)
3423 AM_CONDITIONAL(USE_VDPAU, false)
3424 AM_CONDITIONAL(USE_SBC, false)
3425 AM_CONDITIONAL(USE_SCHRO, false)
3426 AM_CONDITIONAL(USE_ZBAR, false)
3427 AM_CONDITIONAL(USE_RSVG, false)
3428 AM_CONDITIONAL(USE_RTMP, false)
3429 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3430 AM_CONDITIONAL(USE_SNDIO, false)
3431 AM_CONDITIONAL(USE_UVCH264, false)
3432 AM_CONDITIONAL(USE_WEBP, false)
3433 AM_CONDITIONAL(USE_OPENH264, false)
3434 AM_CONDITIONAL(USE_X265, false)
3435 AM_CONDITIONAL(USE_DTLS, false)
3437 fi dnl of EXT plugins
3439 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3442 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3443 dnl GST_*: flags shared by built objects to link against GStreamer
3444 dnl GST_ALL_LDFLAGS: linker flags shared by all
3445 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3446 dnl GST_LT_LDFLAGS: library versioning of our libraries
3447 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3449 dnl GST_OPTION_CFLAGS
3450 if test "x$USE_DEBUG" = xyes; then
3453 AC_SUBST(PROFILE_CFLAGS)
3455 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3456 dnl Define _only_ during CVS (not pre-releases or releases)
3457 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3459 DEPRECATED_CFLAGS=""
3461 AC_SUBST(DEPRECATED_CFLAGS)
3463 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3464 dnl at make time with e.g. make ERROR_CFLAGS=""
3465 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3466 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3467 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3468 AC_SUBST(GST_OPTION_CFLAGS)
3469 AC_SUBST(GST_OPTION_CXXFLAGS)
3470 AC_SUBST(GST_OPTION_OBJCFLAGS)
3472 dnl FIXME: do we want to rename to GST_ALL_* ?
3473 dnl prefer internal headers to already installed ones
3474 dnl also add builddir include for enumtypes and marshal
3475 dnl add GST_OPTION_CFLAGS, but overridable
3476 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3477 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3478 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3479 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3480 AC_SUBST(GST_CFLAGS)
3481 AC_SUBST(GST_CXXFLAGS)
3482 AC_SUBST(GST_OBJCFLAGS)
3484 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3485 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3486 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3487 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3488 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3489 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3491 dnl LDFLAGS really should only contain flags, not libs - they get added before
3492 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3493 GST_ALL_LDFLAGS="-no-undefined"
3494 if test "x${enable_Bsymbolic}" = "xyes"; then
3495 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3497 AC_SUBST(GST_ALL_LDFLAGS)
3500 dnl linker flags shared by all libraries
3501 dnl LDFLAGS modifier defining exported symbols from built libraries
3502 dnl (export _gst_foo but not __gst_foo)
3503 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3504 AC_SUBST(GST_LIB_LDFLAGS)
3506 dnl this really should only contain flags, not libs - they get added before
3507 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3508 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3509 AC_SUBST(GST_PLUGIN_LDFLAGS)
3511 dnl *** output files ***
3513 $MKDIR_P tests/check/orc
3521 gst-plugins-bad.spec
3523 gst/accurip/Makefile
3524 gst/adpcmdec/Makefile
3525 gst/adpcmenc/Makefile
3527 gst/videoframe_audiolevel/Makefile
3529 gst/audiofxbad/Makefile
3530 gst/audiomixer/Makefile
3531 gst/audiovisualizers/Makefile
3532 gst/autoconvert/Makefile
3534 gst/camerabin2/Makefile
3535 gst/cdxaparse/Makefile
3536 gst/coloreffects/Makefile
3537 gst/dataurisrc/Makefile
3539 gst/debugutils/Makefile
3540 gst/dvbsuboverlay/Makefile
3542 gst/faceoverlay/Makefile
3543 gst/festival/Makefile
3544 gst/fieldanalysis/Makefile
3545 gst/freeverb/Makefile
3547 gst/gaudieffects/Makefile
3548 gst/geometrictransform/Makefile
3550 gst/hdvparse/Makefile
3553 gst/interlace/Makefile
3554 gst/ivfparse/Makefile
3556 gst/jp2kdecimator/Makefile
3557 gst/jpegformat/Makefile
3560 gst/mpegdemux/Makefile
3561 gst/mpegtsdemux/Makefile
3562 gst/mpegtsmux/Makefile
3563 gst/mpegtsmux/tsmux/Makefile
3564 gst/mpegpsmux/Makefile
3568 gst/nuvdemux/Makefile
3570 gst/patchdetect/Makefile
3571 gst/pcapparse/Makefile
3573 gst/rawparse/Makefile
3574 gst/removesilence/Makefile
3577 gst/segmentclip/Makefile
3584 gst/videofilters/Makefile
3585 gst/videomeasure/Makefile
3586 gst/videoparsers/Makefile
3587 gst/videosignal/Makefile
3591 gst/compositor/Makefile
3593 gst-libs/gst/Makefile
3594 gst-libs/gst/adaptivedemux/Makefile
3595 gst-libs/gst/basecamerabinsrc/Makefile
3596 gst-libs/gst/gl/Makefile
3597 gst-libs/gst/gl/android/Makefile
3598 gst-libs/gst/gl/cocoa/Makefile
3599 gst-libs/gst/gl/dispmanx/Makefile
3600 gst-libs/gst/gl/glprototypes/Makefile
3601 gst-libs/gst/gl/eagl/Makefile
3602 gst-libs/gst/gl/egl/Makefile
3603 gst-libs/gst/gl/wayland/Makefile
3604 gst-libs/gst/gl/win32/Makefile
3605 gst-libs/gst/gl/x11/Makefile
3606 gst-libs/gst/insertbin/Makefile
3607 gst-libs/gst/interfaces/Makefile
3608 gst-libs/gst/codecparsers/Makefile
3609 gst-libs/gst/mpegts/Makefile
3610 gst-libs/gst/uridownloader/Makefile
3611 gst-libs/gst/wayland/Makefile
3612 gst-libs/gst/base/Makefile
3613 gst-libs/gst/player/Makefile
3614 gst-libs/gst/video/Makefile
3615 gst-libs/gst/audio/Makefile
3617 sys/dshowdecwrapper/Makefile
3619 sys/acmmp3dec/Makefile
3620 sys/androidmedia/Makefile
3621 sys/applemedia/Makefile
3622 sys/applemedia-nonpublic/Makefile
3625 sys/d3dvideosink/Makefile
3626 sys/decklink/Makefile
3627 sys/directsound/Makefile
3628 sys/dshowsrcwrapper/Makefile
3629 sys/dshowvideosink/Makefile
3635 sys/opensles/Makefile
3637 sys/tinyalsa/Makefile
3638 sys/uvch264/Makefile
3643 sys/wininet/Makefile
3645 sys/winscreencap/Makefile
3647 tests/check/Makefile
3648 tests/files/Makefile
3649 tests/examples/Makefile
3650 tests/examples/avsamplesink/Makefile
3651 tests/examples/camerabin2/Makefile
3652 tests/examples/codecparsers/Makefile
3653 tests/examples/directfb/Makefile
3654 tests/examples/gl/Makefile
3655 tests/examples/gl/cocoa/Makefile
3656 tests/examples/gl/clutter/Makefile
3657 tests/examples/gl/generic/Makefile
3658 tests/examples/gl/generic/cube/Makefile
3659 tests/examples/gl/generic/cubeyuv/Makefile
3660 tests/examples/gl/generic/doublecube/Makefile
3661 tests/examples/gl/generic/recordgraphic/Makefile
3662 tests/examples/gl/gtk/Makefile
3663 tests/examples/gl/gtk/3dvideo/Makefile
3664 tests/examples/gl/gtk/filternovideooverlay/Makefile
3665 tests/examples/gl/gtk/filtervideooverlay/Makefile
3666 tests/examples/gl/gtk/fxtest/Makefile
3667 tests/examples/gl/gtk/switchvideooverlay/Makefile
3668 tests/examples/gl/qt/Makefile
3669 tests/examples/gl/sdl/Makefile
3670 tests/examples/gtk/Makefile
3671 tests/examples/mpegts/Makefile
3672 tests/examples/mxf/Makefile
3673 tests/examples/opencv/Makefile
3674 tests/examples/uvch264/Makefile
3675 tests/examples/waylandsink/Makefile
3676 tests/icles/Makefile
3677 ext/voamrwbenc/Makefile
3678 ext/voaacenc/Makefile
3679 ext/assrender/Makefile
3680 ext/apexsink/Makefile
3683 ext/chromaprint/Makefile
3687 ext/directfb/Makefile
3688 ext/wayland/Makefile
3696 ext/fluidsynth/Makefile
3702 ext/libde265/Makefile
3704 ext/libvisual/Makefile
3706 ext/modplug/Makefile
3707 ext/mpeg2enc/Makefile
3710 ext/musepack/Makefile
3716 ext/openexr/Makefile
3717 ext/openh264/Makefile
3718 ext/openjpeg/Makefile
3719 ext/openni2/Makefile
3723 ext/resindvd/Makefile
3726 ext/schroedinger/Makefile
3728 ext/smoothstreaming/Makefile
3729 ext/sndfile/Makefile
3730 ext/soundtouch/Makefile
3731 ext/spandsp/Makefile
3734 ext/teletextdec/Makefile
3737 ext/timidity/Makefile
3739 ext/vulkan/xcb/Makefile
3740 ext/vulkan/wayland/Makefile
3748 docs/plugins/Makefile
3750 docs/version.entities
3752 pkgconfig/gstreamer-plugins-bad.pc
3753 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3754 pkgconfig/gstreamer-codecparsers.pc
3755 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3756 pkgconfig/gstreamer-insertbin.pc
3757 pkgconfig/gstreamer-insertbin-uninstalled.pc
3758 pkgconfig/gstreamer-gl.pc
3759 pkgconfig/gstreamer-gl-uninstalled.pc
3760 pkgconfig/gstreamer-mpegts.pc
3761 pkgconfig/gstreamer-mpegts-uninstalled.pc
3762 pkgconfig/gstreamer-player.pc
3763 pkgconfig/gstreamer-player-uninstalled.pc
3764 pkgconfig/gstreamer-wayland.pc
3765 pkgconfig/gstreamer-wayland-uninstalled.pc
3766 pkgconfig/gstreamer-bad-base.pc
3767 pkgconfig/gstreamer-bad-base-uninstalled.pc
3768 pkgconfig/gstreamer-bad-video.pc
3769 pkgconfig/gstreamer-bad-video-uninstalled.pc
3770 pkgconfig/gstreamer-bad-audio.pc
3771 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3776 dnl Create the config.h file for Visual Studio builds
3777 dnl Beware of spaces and /'s in some of the shell variable contents.
3779 -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"/' \
3780 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3781 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3782 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3783 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3784 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3785 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3786 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3787 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3788 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3789 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3790 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3791 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3792 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3793 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3794 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3795 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3796 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3797 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3798 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3799 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3800 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3801 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3802 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3803 -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/' \
3804 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3805 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3806 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3807 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3808 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3809 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3810 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3811 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3812 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3813 config.h.in >win32/common/config.h-new
3817 AG_GST_OUTPUT_PLUGINS