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
865 # pragma GCC diagnostic push
866 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
868 #ifndef GL_GLEXT_PROTOTYPES
869 #define GL_GLEXT_PROTOTYPES 1
872 # include <OpenGLES/ES2/gl.h>
873 # include <OpenGLES/ES2/glext.h>
875 # include <GLES2/gl2.h>
876 # include <GLES2/gl2ext.h>
878 # include <GLES3/gl3.h>
879 # include <GLES3/gl3ext.h>
883 # include <OpenGL/OpenGL.h>
884 # include <OpenGL/gl.h>
885 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
886 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
887 # include <OpenGL/gl3.h>
891 # if __WIN32__ || _WIN32
892 # include <GL/glext.h>
895 int main (int argc, char **argv) { return 0; }
897 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
898 save_CFLAGS="$CFLAGS"
899 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
900 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
901 #if !defined(GL_FALSE)
902 #error Failed to include GL headers
904 ]])],[ AC_MSG_RESULT(yes)
906 if test "x$NEED_GLES2" = "xyes"; then
907 if test "x$NEED_GL" = "xyes"; then
908 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
910 AC_MSG_WARN([Disabling Desktop GL support])
914 AC_MSG_WARN([Disabling GL|ES 2.0 support])
919 CFLAGS="$save_CFLAGS"
922 #dnl Check for OpenGL
926 if test "x$NEED_WGL" = "xyes"; then
927 AC_MSG_ERROR([WGL is not available on Android])
929 if test "x$NEED_GLX" = "xyes"; then
930 AC_MSG_ERROR([GLX is not available on Android])
932 if test "x$NEED_GL" = "xyes"; then
933 AC_MSG_ERROR([GL is not available on Android])
935 if test "x$NEED_X11" = "xyes"; then
936 AC_MSG_ERROR([X11 is not available on Android])
938 if test "x$NEED_COCOA" = "xyes"; then
939 AC_MSG_ERROR([Cocoa is not available on Android])
943 if test "x$HAVE_GLES2" = "xyes"; then
944 if test "x$NEED_GLES2" != "xno"; then
945 GL_LIBS="$GL_LIBS -lGLESv2"
951 if test "x$HAVE_EGL" = "xyes"; then
952 if test "x$NEED_EGL" != "xno"; then
953 GL_LIBS="$GL_LIBS -lEGL"
958 if test "x$USE_EGL" != "xyes"; then
959 AC_MSG_ERROR([Need EGL on Android])
962 if test "x$USE_GLES2" != "xyes"; then
963 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
966 HAVE_WINDOW_ANDROID=yes
968 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
969 if test "x$NEED_WGL" = "xyes"; then
970 AC_MSG_ERROR([WGL is not available on unix])
973 if test "x$HAVE_X" = "xno"; then
974 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
975 AC_MSG_WARN([X or Wayland is required for OpenGL support])
979 dnl check Desktop OpenGL
980 if test "x$HAVE_GL" = "xyes"; then
981 if test "x$NEED_GL" != "xno"; then
982 GL_LIBS="$GL_LIBS -lGL"
987 if test "x$HAVE_GLES2" = "xyes"; then
988 if test "x$NEED_GLES2" != "xno"; then
989 GL_LIBS="$GL_LIBS -lGLESv2"
994 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
995 if test "x$NEED_X11" != "xno"; then
996 GL_LIBS="$GL_LIBS $X_LIBS"
997 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1002 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1003 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1004 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1006 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1007 HAVE_WINDOW_WAYLAND=yes
1008 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1009 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1014 if test "x$HAVE_EGL_RPI" = "xyes"; then
1015 if test "x$NEED_DISPMANX" != "xno"; then
1016 HAVE_WINDOW_DISPMANX=yes
1022 if test "x$HAVE_EGL" = "xno"; then
1023 if test "x$HAVE_GL" = "xno"; then
1024 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1027 if test "x$NEED_EGL" != "xno"; then
1028 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1029 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1030 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1037 if test "x$HAVE_IOS" = "xyes"; then
1038 if test "x$NEED_WGL" = "xyes"; then
1039 AC_MSG_ERROR([WGL is not available on iOS])
1041 if test "x$NEED_GLX" = "xyes"; then
1042 AC_MSG_ERROR([GLX is not available on iOS])
1044 if test "x$NEED_GL" = "xyes"; then
1045 AC_MSG_ERROR([GL is not available on iOS])
1047 if test "x$NEED_X11" = "xyes"; then
1048 AC_MSG_ERROR([X11 is not available on iOS])
1050 if test "x$NEED_COCOA" = "xyes"; then
1051 AC_MSG_ERROR([Cocoa is not available on iOS])
1053 if test "x$NEED_EGL" = "xyes"; then
1054 AC_MSG_ERROR([EGL is not available on iOS])
1057 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1058 GL_CFLAGS="$GL_CFLAGS"
1061 HAVE_WINDOW_EAGL=yes
1063 ac_cv_type_GLsizeiptr=yes
1064 ac_cv_type_GLintptr=yes
1065 ac_cv_type_GLchar=yes
1067 dnl Only osx supports cocoa.
1068 if test "x$NEED_WGL" = "xyes"; then
1069 AC_MSG_ERROR([WGL is not available on Mac OS X])
1072 if test "x$NEED_COCOA" != "xno"; then
1073 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1074 GL_CFLAGS="$GL_CFLAGS"
1076 HAVE_WINDOW_COCOA=yes
1080 if test "x$USE_GLX" = "xyes"; then
1081 if test "x$HAVE_X" = "xyes"; then
1082 if test "x$NEED_X11" != "xno"; then
1083 GL_LIBS="$GL_LIBS $X_LIBS"
1084 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1089 if test "x$HAVE_GL" = "xyes"; then
1090 if test "x$NEED_GL" != "xno"; then
1091 GL_LIBS="$GL_LIBS -lGL"
1097 if test "x$HAVE_EGL" = "xyes"; then
1098 if test "x$NEED_EGL" != "xno"; then
1099 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1100 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1101 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1108 if test "x$HAVE_GLES2" = "xyes"; then
1109 if test "x$NEED_GLES2" != "xno"; then
1110 GL_LIBS="$GL_LIBS -lGLESv2"
1117 if test "x$NEED_GLX" = "xyes"; then
1118 AC_MSG_ERROR([GLX is not available on Windows])
1120 if test "x$NEED_GLES2" = "xyes"; then
1121 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1124 if test "x$HAVE_GL" = "xyes"; then
1125 if test "x$NEED_GL" != "xno"; then
1126 if test "x$HAVE_WGL" = "xyes"; then
1127 if test "$NEED_WGL" != "xno"; then
1128 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1129 HAVE_WINDOW_WIN32=yes
1138 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1149 GST_GL_HAVE_OPENGL=0
1153 if test "x$USE_OPENGL" = "xyes"; then
1154 GL_APIS="gl $GL_APIS"
1155 GST_GL_HAVE_OPENGL=1
1157 if test "x$USE_GLES2" = "xyes"; then
1158 GL_APIS="gles2 $GL_APIS"
1160 if test "x$HAVE_GLES3_H" = "xyes"; then
1165 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1166 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1167 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1168 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1173 GST_GL_HAVE_WINDOW_X11=0
1174 GST_GL_HAVE_WINDOW_COCOA=0
1175 GST_GL_HAVE_WINDOW_WIN32=0
1176 GST_GL_HAVE_WINDOW_WAYLAND=0
1177 GST_GL_HAVE_WINDOW_ANDROID=0
1178 GST_GL_HAVE_WINDOW_DISPMANX=0
1179 GST_GL_HAVE_WINDOW_EAGL=0
1181 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1182 GL_WINDOWS="x11 $GL_WINDOWS"
1183 GST_GL_HAVE_WINDOW_X11=1
1185 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1186 GL_WINDOWS="cocoa $GL_WINDOWS"
1187 GST_GL_HAVE_WINDOW_COCOA=1
1189 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1190 GL_WINDOWS="win32 $GL_WINDOWS"
1191 GST_GL_HAVE_WINDOW_WIN32=1
1193 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1194 GL_WINDOWS="wayland $GL_WINDOWS"
1195 GST_GL_HAVE_WINDOW_WAYLAND=1
1197 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1198 GL_WINDOWS="android $GL_WINDOWS"
1199 GST_GL_HAVE_WINDOW_ANDROID=1
1201 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1202 GL_WINDOWS="dispmanx $GL_WINDOWS"
1203 GST_GL_HAVE_WINDOW_DISPMANX=1
1205 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1206 GL_WINDOWS="eagl $GL_WINDOWS"
1207 GST_GL_HAVE_WINDOW_EAGL=1
1210 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1211 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1212 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1213 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1214 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1215 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1216 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1217 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1222 GST_GL_HAVE_PLATFORM_EGL=0
1223 GST_GL_HAVE_PLATFORM_GLX=0
1224 GST_GL_HAVE_PLATFORM_WGL=0
1225 GST_GL_HAVE_PLATFORM_CGL=0
1226 GST_GL_HAVE_PLATFORM_EAGL=0
1228 if test "x$USE_EGL" = "xyes"; then
1229 GL_PLATFORMS="egl $GL_PLATFORMS"
1230 GST_GL_HAVE_PLATFORM_EGL=1
1232 if test "x$USE_GLX" = "xyes"; then
1233 GL_PLATFORMS="glx $GL_PLATFORMS"
1234 GST_GL_HAVE_PLATFORM_GLX=1
1236 if test "x$USE_WGL" = "xyes"; then
1237 GL_PLATFORMS="wgl $GL_PLATFORMS"
1238 GST_GL_HAVE_PLATFORM_WGL=1
1240 if test "x$USE_COCOA" = "xyes"; then
1241 GL_PLATFORMS="cgl $GL_PLATFORMS"
1242 GST_GL_HAVE_PLATFORM_CGL=1
1244 if test "x$USE_EAGL" = "xyes"; then
1245 GL_PLATFORMS="eagl $GL_PLATFORMS"
1246 GST_GL_HAVE_PLATFORM_EAGL=1
1249 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1250 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1251 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1252 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1253 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1254 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1257 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1258 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1261 dnl Check for no platforms/window systems
1262 if test "x$GL_APIS" = "x"; then
1263 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1265 if test "x$GL_PLATFORMS" = "x"; then
1266 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1268 if test "x$GL_WINDOWS" = "x"; then
1269 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1272 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1287 HAVE_WINDOW_WIN32=no
1288 HAVE_WINDOW_DISPMANX=no
1289 HAVE_WINDOW_WAYLAND=no
1290 HAVE_WINDOW_ANDROID=no
1291 HAVE_WINDOW_COCOA=no
1297 AC_SUBST(GL_OBJCFLAGS)
1298 AC_SUBST(USE_OPENGL)
1301 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1302 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1303 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1304 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1305 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1306 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1307 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1309 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1310 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1311 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1312 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1313 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1314 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1315 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1316 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1317 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1319 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1321 dnl Check for some types that are not always present
1323 if test "x$USE_GLES2" = "xyes"; then
1324 GL_INCLUDES="$GL_INCLUDES
1325 #ifndef GL_GLEXT_PROTOTYPES
1326 #define GL_GLEXT_PROTOTYPES 1
1329 # include <OpenGLES/ES2/gl.h>
1330 # include <OpenGLES/ES2/glext.h>
1332 # include <GLES2/gl2.h>
1333 # include <GLES2/gl2ext.h>
1334 # if GST_GL_HAVE_GLES3
1335 # include <GLES3/gl3.h>
1336 # include <GLES3/gl3ext.h>
1342 if test "x$USE_OPENGL" = "xyes"; then
1343 GL_INCLUDES="$GL_INCLUDES
1345 # include <OpenGL/OpenGL.h>
1346 # include <OpenGL/gl.h>
1349 # if __WIN32__ || _WIN32
1350 # include <GL/glext.h>
1356 GST_GL_HAVE_GLEGLIMAGEOES=0
1357 GST_GL_HAVE_GLCHAR=0
1358 GST_GL_HAVE_GLSIZEIPTR=0
1359 GST_GL_HAVE_GLINTPTR=0
1360 GST_GL_HAVE_GLSYNC=0
1361 GST_GL_HAVE_GLUINT64=0
1362 GST_GL_HAVE_GLINT64=0
1365 CFLAGS="$GL_CFLAGS $CFLAGS"
1367 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1368 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1369 GST_GL_HAVE_GLEGLIMAGEOES=1
1372 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1373 if test "x$ac_cv_type_GLchar" = "xyes"; then
1374 GST_GL_HAVE_GLCHAR=1
1377 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1378 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1379 GST_GL_HAVE_GLSIZEIPTR=1
1382 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1383 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1384 GST_GL_HAVE_GLINTPTR=1
1387 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1388 if test "x$ac_cv_type_GLsync" = "xyes"; then
1389 GST_GL_HAVE_GLSYNC=1
1392 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1393 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1394 GST_GL_HAVE_GLUINT64=1
1397 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1398 if test "x$ac_cv_type_GLint64" = "xyes"; then
1399 GST_GL_HAVE_GLINT64=1
1404 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1405 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1406 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1407 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1408 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1409 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1410 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1411 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1414 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1415 outfile=gstglconfig.h-tmp
1416 cat > $outfile <<\_______EOF
1419 * This is a generated file. Please modify `configure.ac'
1422 #ifndef __GST_GL_CONFIG_H__
1423 #define __GST_GL_CONFIG_H__
1425 #include <gst/gst.h>
1431 cat >>$outfile <<_______EOF
1435 cat >>$outfile <<_______EOF
1439 #endif /* __GST_GL_CONFIG_H__ */
1443 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1444 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1447 mv $outfile gst-libs/gst/gl/gstglconfig.h
1450 gl_config_defines='$GL_CONFIG_DEFINES'
1453 dnl libpng is optional
1454 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1455 if test "x$HAVE_PNG" = "xyes"; then
1456 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1459 AC_SUBST(LIBPNG_LIBS)
1460 AC_SUBST(LIBPNG_CFLAGS)
1461 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1463 dnl libjpeg is optional
1464 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1466 if test x$with_jpeg_mmx != x; then
1467 LIBS="$LIBS -L$with_jpeg_mmx"
1469 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1470 JPEG_LIBS="$LIBS -ljpeg-mmx"
1472 if test x$HAVE_JPEG != xyes; then
1474 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1477 if test x$HAVE_JPEG = xyes; then
1478 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1480 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1485 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1488 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1489 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1491 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1492 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1493 VULKAN_CONFIG_DEFINES="
1494 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1495 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1497 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1498 outfile=vkconfig.h-tmp
1499 cat > $outfile <<\_______EOF
1502 * This is a generated file. Please modify `configure.ac'
1505 #ifndef __GST_VULKAN_CONFIG_H__
1506 #define __GST_VULKAN_CONFIG_H__
1508 #include <gst/gst.h>
1514 cat >>$outfile <<_______EOF
1515 $vulkan_config_defines
1518 cat >>$outfile <<_______EOF
1522 #endif /* __GST_VULKAN_CONFIG_H__ */
1526 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1527 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1530 mv $outfile ext/vulkan/vkconfig.h
1533 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1536 dnl *** sys plug-ins ***
1539 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1540 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1541 HAVE_DIRECTSOUND="no"
1542 save_CFLAGS="$CFLAGS"
1543 save_LDFLAGS="$LDFLAGS"
1545 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1546 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1547 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1548 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1549 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1550 #include <windows.h>
1553 #include <mmsystem.h>
1555 DXGetErrorString9 (0);
1556 DirectSoundCreate(NULL, NULL, NULL);
1558 [HAVE_DIRECTSOUND="yes"],
1559 [HAVE_DIRECTSOUND="no"])
1560 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1562 LDFLAGS=$save_LDFLAGS
1565 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1566 dnl this is much more than we want
1567 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1568 AC_SUBST(DIRECTX_CFLAGS)
1569 AC_SUBST(DIRECTX_LDFLAGS)
1570 AC_SUBST(DIRECTSOUND_LIBS)
1572 AC_SUBST(HAVE_DIRECTSOUND)
1576 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1577 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1579 save_CFLAGS="$CFLAGS"
1580 save_LDFLAGS="$LDFLAGS"
1582 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1583 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1584 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1585 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1586 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1587 #include <windows.h>
1589 #include <mmsystem.h>
1590 #include <mmdeviceapi.h>
1596 hr = CoInitialize(NULL);
1598 printf("CoInitialize failed: hr = 0x%08x", hr);
1603 // result = do_everything(argc, argv);
1609 [HAVE_WASAPI="yes"],
1611 AC_MSG_RESULT($HAVE_WASAPI)
1613 LDFLAGS=$save_LDFLAGS
1616 if test "x$HAVE_WASAPI" = "xyes"; then
1617 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1618 AC_SUBST(WASAPI_LIBS)
1620 AC_SUBST(HAVE_WASAPI)
1624 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1625 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1627 save_CFLAGS="$CFLAGS"
1628 save_LDFLAGS="$LDFLAGS"
1630 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1631 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1632 LIBS="$LIBS -ld3d9 -lgdi32"
1633 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1634 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1635 #include <windows.h>
1638 Direct3DCreate9(D3D_SDK_VERSION);
1640 [HAVE_DIRECT3D="yes"],
1641 [HAVE_DIRECT3D="no"])
1642 AC_MSG_RESULT($HAVE_DIRECT3D)
1644 LDFLAGS=$save_LDFLAGS
1647 if test "x$HAVE_DIRECT3D" = "xyes"; then
1648 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1649 AC_SUBST(DIRECT3D_LIBS)
1651 AC_SUBST(HAVE_DIRECT3D)
1655 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1656 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1657 HAVE_WINSCREENCAP="no"
1658 save_CFLAGS="$CFLAGS"
1659 save_LDFLAGS="$LDFLAGS"
1661 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1662 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1663 LIBS="$LIBS -ld3d9 -lgdi32"
1664 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1665 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1666 #include <windows.h>
1669 Direct3DCreate9(D3D_SDK_VERSION);
1671 [HAVE_WINSCREENCAP="yes"],
1672 [HAVE_WINSCREENCAP="no"])
1673 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1675 LDFLAGS=$save_LDFLAGS
1678 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1679 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1680 AC_SUBST(WINSCREENCAP_LIBS)
1682 AC_SUBST(HAVE_WINSCREENCAP)
1686 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1687 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1689 save_CFLAGS="$CFLAGS"
1690 save_LDFLAGS="$LDFLAGS"
1692 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1693 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1694 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1695 AC_MSG_CHECKING(for Winks LDFLAGS)
1696 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1697 #include <windows.h>
1702 IGraphBuilder *pGraph = NULL;
1703 HRESULT hr = CoInitialize(NULL);
1704 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1705 &IID_IGraphBuilder, (void **)&pGraph);
1712 AC_MSG_RESULT($HAVE_WINKS)
1714 LDFLAGS=$save_LDFLAGS
1717 if test "x$HAVE_WINKS" = "xyes"; then
1718 dnl this is much more than we want
1719 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1720 AC_SUBST(DIRECTX_CFLAGS)
1721 AC_SUBST(DIRECTX_LDFLAGS)
1722 AC_SUBST(WINKS_LIBS)
1724 AC_SUBST(HAVE_WINKS)
1727 dnl *** Android Media ***
1728 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1729 HAVE_ANDROID_MEDIA="no"
1730 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1733 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1736 HAVE_ANDROID_MEDIA="no"
1741 dnl *** AppleMedia (OS X and iOS) ***
1742 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1743 HAVE_APPLE_MEDIA="no"
1744 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1745 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1746 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1747 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1748 if test "x$HAVE_IOS" = "xno"; then
1749 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1753 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1758 HAVE_APPLE_MEDIA="no"
1763 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1764 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1765 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1766 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1767 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1769 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1778 dnl *** OS/X AVCVideoServices ***
1779 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1781 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1783 save_CPPFLAGS="$CPPFLAGS"
1784 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1786 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1787 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1789 CPPFLAGS=$save_CPPFLAGS
1792 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1801 dnl check for shm_open (for shm plugin)
1802 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1803 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1804 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1806 *-darwin* | *-macos10*)
1807 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1811 AC_CHECK_LIB([rt], [shm_open],
1812 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1813 #include <sys/socket.h>
1816 AC_SUBST(SHM_LIBS, "-lrt")
1824 dnl check for Video CD
1825 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1826 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1827 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1830 dnl check for OpenSL ES
1831 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1832 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1833 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1836 dnl *** UVC H264 ***
1837 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1838 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1839 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1840 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1841 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1844 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1845 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1846 HAVE_LIBUSB="yes" ],
1848 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1849 test "x$HAVE_GUDEV" = "xyes" && \
1850 test "x$HAVE_LIBUSB" = "xyes"; then
1856 AC_SUBST(LIBUDEV_CFLAGS)
1857 AC_SUBST(LIBUDEV_LIBS)
1858 AC_SUBST(LIBUSB_CFLAGS)
1859 AC_SUBST(LIBUSB_LIBS)
1862 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1863 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1864 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1865 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1866 AC_ARG_WITH([cuda-prefix],
1867 AS_HELP_STRING([--with-cuda-prefix],
1868 [Use the provided prefix for detecting the cuda installation]),
1869 [AS_IF([test "x$with_cuda_prefix" != "x"],
1870 [CUDA_PREFIX="$with_cuda_prefix"])],
1874 if test "x$CUDA_PREFIX" != "x"; then
1875 dnl only override if not already set
1876 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1877 dnl this is an educated guess, user can always override these
1878 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1879 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1882 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1883 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1884 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1885 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1890 save_CPPFLAGS="$CPPFLAGS"
1891 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1892 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1893 AC_MSG_WARN([Could not find cuda.h]))
1894 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1895 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1896 CPPFLAGS=$save_CPPFLAGS
1898 dnl libcuda and libcudart libraries
1900 LIBS="$CUDA_LIBS $save_LIBS"
1901 HAVE_CUDART_LIB="no"
1902 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1903 AC_MSG_WARN([Could not find cudart library])])
1905 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1906 AC_MSG_WARN([Could not find cuda library])])
1909 dnl nvEncodeAPI.h header
1910 HAVE_NVENCODEAPI_H=no
1911 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1912 save_CPPFLAGS="$CPPFLAGS"
1913 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1914 AC_CHECK_HEADER([nvEncodeAPI.h], [
1915 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1916 #if NVENCAPI_MAJOR_VERSION < 5
1917 #error "Need nvEncodeAPI.h >= 5.0"
1920 HAVE_NVENCODEAPI_H=yes
1922 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1925 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1926 AC_SUBST(NVENCODE_CFLAGS)
1927 CPPFLAGS="$save_CPPFLAGS"
1929 dnl libnvnidia-encode library
1930 HAVE_NVENCODE_LIB=no
1931 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1933 LIBS="$NVENCODE_LIBS $saved_LIBS"
1934 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1935 AC_MSG_WARN([Could not find library nvidia-encode]))
1936 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1937 AC_SUBST(NVENCODE_LIBS)
1941 if test "x$HAVE_CUDA_H" = "xyes" \
1942 -a "x$HAVE_CUDART_H" = "xyes" \
1943 -a "x$HAVE_CUDA_LIB" = "xyes" \
1944 -a "x$HAVE_CUDART_LIB" = "xyes" \
1945 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1946 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1948 if test x"$USE_OPENGL" = x"yes"; then
1949 dnl cuda-gl interop header
1950 save_CPPFLAGS="$CPPFLAGS"
1951 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1952 AC_CHECK_HEADER([cuda_gl_interop.h], [
1953 USE_NVENC_GST_GL="yes"
1954 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1956 CPPFLAGS="$save_CPPFLAGS"
1962 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1964 dnl check for tinyalsa
1965 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1966 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1967 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1970 dnl *** ext plug-ins ***
1971 dnl keep this list sorted alphabetically !
1973 if test "x$BUILD_EXTERNAL" = "xyes"; then
1975 dnl *** assrender ***
1976 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1977 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1978 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1979 HAVE_ASSRENDER="yes" ], [
1983 AC_SUBST(ASSRENDER_CFLAGS)
1984 AC_SUBST(ASSRENDER_LIBS)
1986 dnl *** vo-amrwbenc ***
1987 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1988 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1989 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1992 dnl *** vo-aacenc ***
1993 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1994 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1995 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1998 dnl *** apexsink ***
1999 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2000 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2001 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2005 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2006 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2007 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2009 AC_SUBST(APEXSINK_CFLAGS)
2010 AC_SUBST(APEXSINK_LIBS)
2017 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2018 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2019 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2022 AC_SUBST(BS2B_CFLAGS)
2027 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2028 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2031 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2032 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2033 AC_MSG_RESULT($HAVE_BZ2)
2035 if test "x$HAVE_BZ2" = "xyes"; then
2043 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2044 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2045 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2048 # AC_SUBST(CAIRO_CFLAGS)
2049 # AC_SUBST(CAIRO_LIBS)
2052 dnl *** chromaprint ***
2053 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2054 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2055 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2056 HAVE_CHROMAPRINT="no"
2058 AC_SUBST(CHROMAPRINT_CFLAGS)
2059 AC_SUBST(CHROMAPRINT_LIBS)
2063 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2064 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2065 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2067 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2068 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2070 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2071 [[#ifdef HAVE_SYS_TYPES_H
2072 # include <sys/types.h>
2074 #ifdef HAVE_NETINET_IN_H
2075 # include <netinet/in.h>
2078 AC_MSG_CHECKING([for socket support needed by curlsink])
2079 AC_MSG_RESULT($HAVE_CURL)
2083 AC_SUBST(CURL_CFLAGS)
2085 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2087 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2091 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2092 AC_SUBST(SSH2_CFLAGS)
2094 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2097 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2098 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2099 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2100 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2102 AC_SUBST(LIBXML2_CFLAGS)
2103 AC_SUBST(LIBXML2_LIBS)
2107 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2108 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2109 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2110 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2119 AC_SUBST(LIBDC1394_CFLAGS)
2120 AC_SUBST(LIBDC1394_LIBS)
2123 dnl *** decklink ***
2124 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2125 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2132 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2133 AC_CHECK_LIB(dl, dlopen,
2137 DECKLINK_LIBS="-lpthread -ldl"
2142 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2143 AC_CHECK_LIB(dl, dlopen,
2147 DECKLINK_LIBS="-lpthread -ldl"
2148 HAVE_DECKLINK_OSX=yes
2157 AC_SUBST(DECKLINK_CXXFLAGS)
2158 AC_SUBST(DECKLINK_LIBS)
2160 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2162 dnl **** DirectFB ****
2163 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2164 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2165 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2170 dnl **** Wayland ****
2171 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2172 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2173 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2174 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2175 if test "x$wayland_scanner" != "x"; then
2178 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2187 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2188 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2189 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2190 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2192 AC_SUBST(WEBP_CFLAGS)
2197 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2198 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2199 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2200 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2205 AC_SUBST(DAALA_CFLAGS)
2206 AC_SUBST(DAALA_LIBS)
2211 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2212 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2214 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2215 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2216 if test $HAVE_DTS = "no"; then
2217 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2218 [ DTS_LIBS="-ldts_pic $LIBM"
2219 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2225 dnl *** resindvd ***
2226 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2227 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2228 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2233 dnl **** Free AAC Encoder (FAAC) ****
2234 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2235 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2236 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2237 FAAC_LIBS="-lfaac $LIBM")
2241 dnl **** Free AAC Decoder (FAAD2) ****
2242 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2243 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2244 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2245 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2246 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2248 #elif !defined(LATM)
2249 #error Not faad2 >= 2.7
2255 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2265 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2266 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2267 if test "x$HAVE_FBDEV" != "xyes"; then
2268 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2273 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2274 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2275 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2276 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2278 AC_SUBST(FLITE_CFLAGS)
2279 AC_SUBST(FLITE_LIBS)
2283 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2284 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2285 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2286 if test $HAVE_GSM != "yes"; then
2287 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2288 if test $HAVE_GSM = "yes"; then
2289 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2295 dnl *** fluidSynth ***
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2297 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2298 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2299 HAVE_FLUIDSYNTH="no"
2304 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2305 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2306 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2309 AC_SUBST(KATE_CFLAGS)
2311 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2314 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2320 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2321 AC_SUBST(TIGER_CFLAGS)
2322 AC_SUBST(TIGER_LIBS)
2323 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2326 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2327 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2328 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
2329 PKG_CHECK_MODULES([DRM], [libdrm libkms], HAVE_KMS=yes, HAVE_KMS=no)
2333 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2334 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2335 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2337 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2338 if test $HAVE_LRDF = "yes"; then
2339 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2342 AC_SUBST(LRDF_CFLAGS)
2346 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2347 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2348 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2349 AC_SUBST(LILV_CFLAGS)
2353 dnl *** libde265 ***
2354 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2355 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2356 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2357 AC_SUBST(LIBDE265_CFLAGS)
2358 AC_SUBST(LIBDE265_LIBS)
2362 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2363 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2364 dnl check with pkg-config first
2365 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2369 AC_SUBST(LIBMMS_LIBS)
2373 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2374 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2375 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2376 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2379 AC_SUBST(SRTP_CFLAGS)
2383 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2384 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2385 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2387 AC_SUBST(DTLS_CFLAGS)
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2396 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2408 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2409 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2410 if test "x$HAVE_CXX" != "xyes"; then
2411 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2414 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2416 AC_SUBST(MODPLUG_CFLAGS)
2417 AC_SUBST(MODPLUG_LIBS)
2421 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2422 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2424 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2425 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2426 AC_SUBST(MIMIC_CFLAGS)
2427 AC_SUBST(MIMIC_LIBS)
2430 dnl *** mjpegtools version info ***
2431 dnl some may prefer older version (given quirks above)
2432 dnl hm, no version info seems available within mjpegtools headers
2433 dnl and API really moves along
2435 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2436 mjpegtools_api=10601
2438 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2439 mjpegtools_api=10800
2441 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2442 mjpegtools_api=20000
2444 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2445 dnl logging API changed in release candidates
2446 OLD_CFLAGS="$CFLAGS"
2448 CFLAGS="$MJPEG_CFLAGS"
2449 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2450 AC_CHECK_FUNC(mjpeg_loglev_t, [
2451 mjpegtools_api=10903
2453 mjpegtools_api=10900
2455 CFLAGS="$OLD_CFLAGS"
2463 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2464 [mjpegtools API evolution])
2466 dnl *** mpeg2enc ***
2467 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2468 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2470 dnl we require a c++ compiler for this one
2471 if [ test x$HAVE_CXX = xyes ]; then
2472 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2473 dnl since many distros include mjpegtools specifically without mplex
2474 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2475 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2476 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2478 dnl switch over to c++ to test things
2480 OLD_CPPFLAGS="$CPPFLAGS"
2482 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2483 CPPFLAGS="$CPPFLAGS_GOOD -I."
2485 mpeg2enc_headers_ok=no
2486 AC_CHECK_HEADER([mpeg2encoder.hh], [
2487 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2489 LIBS="$LIBS $MPEG2ENC_LIBS"
2490 AC_MSG_CHECKING([for valid mpeg2enc objects])
2491 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2492 #include <mpeg2encoder.hh>
2493 #include <mpeg2encoptions.hh>
2499 MPEG2EncOptions *options = new MPEG2EncOptions ();
2500 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2505 dnl so far so good, let's check more things:
2506 dnl mjpegtools-1.8.0 does not install the required
2507 dnl mpeg2syntaxcodes.h header by default, and a new release
2508 dnl is not in sight, so check for this oversight in case
2509 dnl distros or folks have fixed this themselves
2510 if test "$mjpegtools_api" -ge "10800"; then
2511 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2512 mpeg2enc_headers_ok=yes
2514 mpeg2enc_headers_ok=no
2517 mpeg2enc_headers_ok=yes
2519 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2522 CPPFLAGS="$CPPFLAGS_GOOD"
2523 AC_SUBST(MPEG2ENC_CFLAGS)
2524 AC_SUBST(MPEG2ENC_LIBS)
2531 CPPFLAGS="$OLD_CPPFLAGS"
2540 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2541 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2543 dnl we require a c++ compiler for this one
2544 if [ test x$HAVE_CXX = xyes ]; then
2545 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2546 dnl since many distros include mjpegtools specifically without mplex
2547 dnl and mpeg2enc, we check for mplex on its own, too.
2548 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2549 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2550 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2552 dnl switch over to c++ to test things
2554 OLD_CPPFLAGS="$CPPFLAGS"
2556 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2557 CPPFLAGS="$CPPFLAGS_GOOD -I."
2558 AC_CHECK_HEADER(interact.hpp, [
2559 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2561 LIBS="$LIBS $MPLEX_LIBS"
2562 OLD_LDFLAGS="$LDFLAGS"
2563 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2564 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2565 dnl don't want this here
2566 AC_MSG_CHECKING([for valid mplex objects])
2567 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2569 #include <interact.hpp>
2570 #include <outputstrm.hpp>
2571 #include <multiplexor.hpp>
2576 class TestOutputStream : public OutputStream {
2578 TestOutputStream () : OutputStream () { }
2579 void Write (uint8_t *a, unsigned int b) { }
2580 void NextSegment () { }
2581 uint64_t SegmentSize () { }
2585 MultiplexJob *job = new MultiplexJob ();
2586 vector<IBitStream *> inputs;
2587 job->SetupInputStreams (inputs);
2588 TestOutputStream *out = new TestOutputStream ();
2589 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2594 CPPFLAGS="$CPPFLAGS_GOOD"
2595 AC_SUBST(MPLEX_CFLAGS)
2596 AC_SUBST(MPLEX_LIBS)
2597 AC_SUBST(MPLEX_LDFLAGS)
2599 ],[AC_MSG_RESULT(no)],[])
2601 LDFLAGS="$OLD_LDFLAGS"
2603 CPPFLAGS="$OLD_CPPFLAGS"
2609 dnl *** musepack ***
2610 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2611 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2612 AC_CHECK_HEADER([mpc/mpcdec.h], [
2614 MUSEPACK_LIBS="-lmpcdec"
2615 AC_SUBST(MUSEPACK_LIBS)
2616 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2618 MUSEPACK_LIBS="-lmpcdec"
2619 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2620 AC_SUBST(MUSEPACK_LIBS)
2621 ], [HAVE_MUSEPACK="no"])])
2625 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2626 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2628 if test "x$HAVE_X" = "xyes"; then
2629 save_cppflags=$CFLAGS
2630 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2631 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2632 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2633 CPPFLAGS="$save_cppflags"
2635 AC_SUBST(NAS_CFLAGS)
2640 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2641 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2642 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2645 AC_SUBST(NEON_CFLAGS)
2650 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2651 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2652 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2655 AC_SUBST(OFA_CFLAGS)
2660 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2661 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2662 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2665 AC_SUBST(OPENAL_CFLAGS)
2666 AC_SUBST(OPENAL_LIBS)
2670 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2671 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2672 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2673 dnl and don't want the build to break when a new opencv version comes out.
2674 dnl Need to adjust this upwards once we know that our code compiles fine with
2675 dnl a new version and the no-backward-compatibility define. (There doesn't
2676 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2678 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2681 OLD_CPPFLAGS=$CPPFLAGS
2682 CPPFLAGS=$OPENCV_CFLAGS
2683 something_not_found=no
2684 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2685 opencv2/core/version.hpp \
2686 opencv2/highgui/highgui_c.h \
2687 opencv2/imgproc/imgproc.hpp \
2688 opencv2/imgproc/imgproc_c.h \
2689 opencv2/objdetect/objdetect.hpp \
2690 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2691 CPPFLAGS=$OLD_CPPFLAGS
2694 if test $something_not_found = "yes"; then
2695 AC_MSG_RESULT([not all opencv2 headers were found])
2703 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2704 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2705 AC_SUBST(OPENCV_PREFIX)
2706 AC_SUBST(OPENCV_CFLAGS)
2707 AC_SUBST(OPENCV_LIBS)
2708 dnl the OpenCV prefix is used at runtime for some object properties, and also
2709 dnl used here to detect which directory is the correct one. For the second
2710 dnl case, make sure the right sysroot is used, ensuring correct behavior
2711 dnl during cross compilation.
2712 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2713 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2715 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2720 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2721 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2722 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2725 dnl *** openh264 ***
2726 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2727 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2728 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2731 dnl *** OpenJPEG ***
2732 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2733 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2737 save_CFLAGS="$CFLAGS"
2738 OPENJPEG_LIBS="-lopenjp2"
2739 LIBS="$LIBS $OPENJPEG_LIBS"
2740 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2742 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2743 [return (int) *opj_version ();])
2744 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2746 CFLAGS="$save_CFLAGS"
2748 if test x"$HAVE_OPENJPEG" = x"no"; then
2750 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2751 HAVE_OPENJPEG="yes",
2752 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2754 if test x"$HAVE_OPENJPEG" = x"yes"; then
2755 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2758 AC_SUBST(OPENJPEG_CFLAGS)
2759 AC_SUBST(OPENJPEG_LIBS)
2763 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2764 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2765 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2766 AC_SUBST(OPENNI2_CFLAGS)
2767 AC_SUBST(OPENNI2_LIBS)
2771 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2772 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2773 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2774 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2779 AC_SUBST(OPUS_CFLAGS)
2784 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2785 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2786 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2787 AC_SUBST(PVR_CFLAGS)
2791 AC_ARG_WITH([pvr-external-headers],
2792 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2793 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2794 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2795 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2798 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2799 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2800 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2804 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2805 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2808 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2815 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2816 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2817 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2818 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2823 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2825 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2826 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2827 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2828 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2830 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2832 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2833 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2834 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2835 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2837 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2839 if test "x$GDK_WINDOWING" = "xyes"; then
2840 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2847 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2850 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2851 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2852 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2853 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2854 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2855 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2856 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2857 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2858 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2859 AC_MSG_WARN([One of the required qt build programs was not found])
2863 HAVE_QT_WINDOWING="no"
2864 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2865 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2866 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2867 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2868 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2869 HAVE_QT_WINDOWING="yes"
2870 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2872 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2873 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2874 AC_DEFINE([HAVE_QT_WAYLAND], [],
2875 [Define if Qt Wayland integration is installed])
2876 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2877 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2878 HAVE_QT_WINDOWING="yes"
2879 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2881 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2882 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2883 # c++ on android requires a standard library and there are multiple
2884 # choices. cerbero provides a pkg-config file the describes a choice
2885 # so try to use that. Outside cerbero one has to pass these flags
2886 # manually for the library one is using
2887 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2888 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2889 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2891 AC_MSG_NOTICE([Could not find Standard C++ library])])
2893 AC_DEFINE([HAVE_QT_ANDROID], [],
2894 [Define if Qt Android integration is installed])
2895 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2896 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2897 HAVE_QT_WINDOWING="yes"
2898 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2900 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2901 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2902 AC_DEFINE([HAVE_QT_MAC], [],
2903 [Define if Qt Mac integration is installed])
2904 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2905 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2906 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2907 HAVE_QT_WINDOWING="yes"
2908 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2910 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2911 if test "x$HAVE_IOS" = "xyes"; then
2912 # iOS doesn't have its own extras package so if we have the core
2913 # modules we are good to go
2914 AC_DEFINE([HAVE_QT_IOS], [],
2915 [Define if Qt iOS integration is installed])
2916 HAVE_QT_WINDOWING="yes"
2919 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2920 AC_MSG_WARN([Could not find any Qt Windowing integration])
2923 AC_SUBST([QT_CFLAGS])
2932 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2933 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2935 AC_CHECK_HEADER(vulkan/vulkan.h, [
2936 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2937 VULKAN_LIBS="-lvulkan"
2938 AC_SUBST(VULKAN_LIBS)
2939 dnl TODO check platform support (x11, win32, wayland, android, etc)
2940 if test "x$HAVE_XCB" = "xyes"; then
2947 dnl *** libvisual ***
2948 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2949 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2950 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2951 if test x$HAVE_LIBVISUAL = xyes; then
2952 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2954 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2955 if test x$LIBVIS_PLUGINSDIR != x; then
2956 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2957 "$LIBVIS_PLUGINSDIR",
2958 [directory in which the detected libvisual's plugins are located])
2962 dnl *** timidity ***
2963 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2964 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2965 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2966 HAVE_TIMIDITY="yes",
2967 AC_MSG_CHECKING([for timidity.cfg])
2969 if test -r /etc/timidity.cfg; then
2970 timidity_cfg=/etc/timidity.cfg
2971 elif test -r /etc/timidity/timidity.cfg; then
2972 timidity_cfg=/etc/timidity/timidity.cfg
2973 elif test -r /usr/share/timidity/timidity.cfg; then
2974 timidity_cfg=/usr/share/timidity/timidity.cfg
2975 elif test -r /usr/local/share/timidity/timidity.cfg; then
2976 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2978 if test "x$timidity_cfg" != "x"; then
2979 AC_MSG_RESULT($timidity_cfg)
2980 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2982 AC_MSG_RESULT([not found])
2987 AC_SUBST(TIMIDITY_CFLAGS)
2988 AC_SUBST(TIMIDITY_LIBS)
2991 dnl *** teletextdec ***
2992 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2993 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2994 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2997 dnl *** wildmidi ***
2998 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2999 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3000 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3003 WILDMIDI_LIBS="-lWildMidi")
3004 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3006 if test "x$HAVE_WILDMIDI" = "xyes"; then
3008 WILDMIDI_LIBS=-lWildMidi
3009 AC_MSG_NOTICE(compiling gstWildMidi)
3013 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3015 AC_SUBST(WILDMIDI_CFLAGS)
3016 AC_SUBST(WILDMIDI_LIBS)
3020 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3021 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3022 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3025 dnl **** Smooth Streaming ****
3026 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3027 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3028 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3030 HAVE_SMOOTHSTREAMING="yes"],
3032 HAVE_SMOOTHSTREAMING="no"])
3033 AC_SUBST(LIBXML2_CFLAGS)
3034 AC_SUBST(LIBXML2_LIBS)
3038 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3039 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3040 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3041 AC_SUBST(SNDFILE_CFLAGS)
3042 AC_SUBST(SNDFILE_LIBS)
3045 dnl *** soundtouch ***
3046 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3047 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3048 dnl We only need -lBPM on soundtouch < 1.4
3049 dnl We check for libSoundTouch since Debian used it before upstream
3050 dnl added a pkgconfig file.
3051 HAVE_SOUNDTOUCH_1_4=yes
3052 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3053 [HAVE_SOUNDTOUCH=yes],
3054 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3055 [HAVE_SOUNDTOUCH=yes],
3056 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3057 [HAVE_SOUNDTOUCH=yes
3058 HAVE_SOUNDTOUCH_1_4=no
3059 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3060 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3061 [HAVE_SOUNDTOUCH=yes],
3062 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3063 [HAVE_SOUNDTOUCH=yes
3064 HAVE_SOUNDTOUCH_1_4=no
3065 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3066 HAVE_SOUNDTOUCH=no)])])])])
3067 AC_SUBST(SOUNDTOUCH_CFLAGS)
3068 AC_SUBST(SOUNDTOUCH_LIBS)
3069 if test "x$HAVE_CXX" != "xyes"; then
3070 USE_SOUNDTOUCH=false
3071 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3073 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3074 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3075 [Defined if the available libSoundTouch is >= 1.4])
3080 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3081 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3082 AC_CHECK_HEADER(openspc.h, [
3083 AC_CHECK_LIB(openspc, OSPC_Init, [
3084 SPC_LIBS="-lopenspc"
3096 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3097 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3098 AC_CHECK_HEADER(gme/gme.h, [
3099 AC_CHECK_LIB(gme, gme_new_emu, [
3110 if test "x$HAVE_GME" = "xyes"; then
3111 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3112 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3118 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3119 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3121 AC_CHECK_HEADER(xvid.h, [
3123 LIBS="$PTHREAD_LIBS $LIBM"
3124 AC_CHECK_LIB(xvidcore, xvid_encore, [
3125 AC_CHECK_LIB(xvidcore, xvid_decore, [
3126 AC_CHECK_LIB(xvidcore, xvid_global, [
3127 AC_MSG_CHECKING([for up-to-date XviD API version])
3128 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3129 #if XVID_API_MAJOR(XVID_API) != 4
3130 #error "Incompatible XviD API version"
3132 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3133 #error "Incompatible XviD API version"
3135 ]])],[ AC_MSG_RESULT(yes)
3136 XVID_LIBS="-lxvidcore $LIBM"
3139 ],[AC_MSG_RESULT(no) ])
3148 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3149 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3150 AC_MSG_CHECKING([Checking for up to date dvb installation])
3151 AC_CHECK_HEADER(linux/dvb/version.h, [
3152 AC_MSG_CHECKING([for up-to-date dvb API])
3153 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3154 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3155 #error "Incompatible dvb API"
3157 ]])], [ AC_MSG_RESULT(yes)
3159 ], [ AC_MSG_RESULT(no)
3166 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3167 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3168 AC_MSG_CHECKING([Checking for windows internet support])
3169 AC_CHECK_HEADERS([windows.h wininet.h],
3170 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3171 [AC_INCLUDES_DEFAULT
3172 #include <windows.h>])
3176 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3177 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3178 AC_MSG_CHECKING([Checking for ACM support])
3179 AC_CHECK_HEADERS([windows.h msacm.h],
3181 AC_SUBST(ACMENC_CFLAGS)
3182 AC_SUBST(ACMMP3DEC_CFLAGS)
3184 [AC_INCLUDES_DEFAULT
3185 #include <windows.h>])
3189 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3190 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3195 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3197 if test "$HAVE_VDPAU" = "no"; then
3198 saved_CPPFLAGS="$CPPFLAGS"
3199 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3201 if test -z "$HAVE_VDPAU_H"; then
3202 dnl Didn't find VDPAU header straight away.
3203 dnl Try /usr/include/nvidia. Need to clear caching vars first
3204 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3205 unset ac_cv_header_vdpau_vdpau_h
3206 unset ac_cv_header_vdpau_vdpau_x11_h
3207 VDPAU_CFLAGS="-I/usr/include/nvidia"
3208 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3209 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3210 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3213 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3215 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3216 dnl Found the headers - look for the lib
3217 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3219 LIBS="$VDPAU_LIBS $saved_LIBS"
3220 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3226 if test "$HAVE_VDPAU" = "yes"; then
3227 AC_MSG_NOTICE([Found up to date VDPAU installation])
3228 AC_SUBST(VDPAU_CFLAGS)
3229 AC_SUBST(VDPAU_LIBS)
3234 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3235 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3236 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3239 dnl *** schroedinger ***
3240 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3241 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3242 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3246 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3247 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3248 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3252 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3253 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3254 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3258 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3259 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3260 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3261 HAVE_SPANDSP="yes" ], [
3265 AC_SUBST(SPANDSP_CFLAGS)
3266 AC_SUBST(SPANDSP_LIBS)
3269 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3270 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3271 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3272 if test "x$HAVE_SNDIO" = "xyes"; then
3273 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3274 if test "x$HAVE_SNDIO" = "xyes"; then
3276 AC_SUBST(SNDIO_LIBS)
3281 dnl *** hls-crypto ***
3282 AC_ARG_WITH([hls-crypto],
3283 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3284 which cryptographic library version to compile against for hls (default: auto)
3286 AS_CASE([$with_hls_crypto],
3290 [with_hls_crypto=auto]
3296 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3297 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3298 AS_CASE([$with_hls_crypto],
3300 PKG_CHECK_MODULES(NETTLE, nettle, [
3301 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3303 ],[AC_MSG_ERROR([Could not find nettle library])])
3306 AM_PATH_LIBGCRYPT([1.2.0], [
3307 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3309 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3312 PKG_CHECK_MODULES(OPENSSL, openssl, [
3313 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3315 ],[AC_MSG_ERROR([Could not find openssl library])])
3318 dnl Try to find a valid crypto library
3319 PKG_CHECK_MODULES(NETTLE, nettle, [
3320 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3323 AM_PATH_LIBGCRYPT([1.2.0], [
3324 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3327 PKG_CHECK_MODULES(OPENSSL, openssl, [
3328 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3339 dnl *** x265 (H.265/HEVC encoder) ***
3340 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3341 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3342 AG_GST_PKG_CHECK_MODULES(X265, x265)
3347 dnl not building plugins with external dependencies,
3348 dnl but we still need to set the conditionals
3350 AM_CONDITIONAL(USE_ASSRENDER, false)
3351 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3352 AM_CONDITIONAL(USE_VOAACENC, false)
3353 AM_CONDITIONAL(USE_APEXSINK, false)
3354 AM_CONDITIONAL(USE_BS2B, false)
3355 AM_CONDITIONAL(USE_BZ2, false)
3356 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3357 AM_CONDITIONAL(USE_CURL, false)
3358 AM_CONDITIONAL(USE_SSH2, false)
3359 AM_CONDITIONAL(USE_DASH, false)
3360 AM_CONDITIONAL(USE_DC1394, false)
3361 AM_CONDITIONAL(USE_DECKLINK, false)
3362 AM_CONDITIONAL(DECKLINK_OSX, false)
3363 AM_CONDITIONAL(USE_DIRECTFB, false)
3364 AM_CONDITIONAL(USE_WAYLAND, false)
3365 AM_CONDITIONAL(USE_DAALA, false)
3366 AM_CONDITIONAL(USE_DTS, false)
3367 AM_CONDITIONAL(USE_EXIF, false)
3368 AM_CONDITIONAL(USE_RESINDVD, false)
3369 AM_CONDITIONAL(USE_FAAC, false)
3370 AM_CONDITIONAL(USE_FAAD, false)
3371 AM_CONDITIONAL(USE_FBDEV, false)
3372 AM_CONDITIONAL(USE_FLITE, false)
3373 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3374 AM_CONDITIONAL(USE_GL, false)
3375 AM_CONDITIONAL(USE_GSM, false)
3376 AM_CONDITIONAL(USE_GTK3, false)
3377 AM_CONDITIONAL(USE_GTK3_GL, false)
3378 AM_CONDITIONAL(USE_HLS, false)
3379 AM_CONDITIONAL(USE_KATE, false)
3380 AM_CONDITIONAL(USE_KMS, false)
3381 AM_CONDITIONAL(USE_TIGER, false)
3382 AM_CONDITIONAL(USE_LADSPA, false)
3383 AM_CONDITIONAL(USE_LV2, false)
3384 AM_CONDITIONAL(USE_LIBDE265, false)
3385 AM_CONDITIONAL(USE_LIBMMS, false)
3386 AM_CONDITIONAL(USE_LINSYS, false)
3387 AM_CONDITIONAL(USE_MODPLUG, false)
3388 AM_CONDITIONAL(USE_MIMIC, false)
3389 AM_CONDITIONAL(USE_MPEG2ENC, false)
3390 AM_CONDITIONAL(USE_MPLEX, false)
3391 AM_CONDITIONAL(USE_MUSEPACK, false)
3392 AM_CONDITIONAL(USE_NAS, false)
3393 AM_CONDITIONAL(USE_NEON, false)
3394 AM_CONDITIONAL(USE_OFA, false)
3395 AM_CONDITIONAL(USE_OPENAL, false)
3396 AM_CONDITIONAL(USE_OPENCV, false)
3397 AM_CONDITIONAL(USE_OPENEXR, false)
3398 AM_CONDITIONAL(USE_OPENJPEG, false)
3399 AM_CONDITIONAL(USE_OPENNI2, false)
3400 AM_CONDITIONAL(USE_OPUS, false)
3401 AM_CONDITIONAL(USE_PVR, false)
3402 AM_CONDITIONAL(USE_QT, false)
3403 AM_CONDITIONAL(USE_LIBVISUAL, false)
3404 AM_CONDITIONAL(USE_TIMIDITY, false)
3405 AM_CONDITIONAL(USE_WILDMIDI, false)
3406 AM_CONDITIONAL(USE_SDL, false)
3407 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3408 AM_CONDITIONAL(USE_SNDFILE, false)
3409 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3410 AM_CONDITIONAL(USE_SPANDSP, false)
3411 AM_CONDITIONAL(USE_SPC, false)
3412 AM_CONDITIONAL(USE_SRTP, false)
3413 AM_CONDITIONAL(USE_GME, false)
3414 AM_CONDITIONAL(USE_XVID, false)
3415 AM_CONDITIONAL(USE_DVB, false)
3416 AM_CONDITIONAL(USE_WININET, false)
3417 AM_CONDITIONAL(USE_ACM, false)
3418 AM_CONDITIONAL(USE_VDPAU, false)
3419 AM_CONDITIONAL(USE_SBC, false)
3420 AM_CONDITIONAL(USE_SCHRO, false)
3421 AM_CONDITIONAL(USE_ZBAR, false)
3422 AM_CONDITIONAL(USE_RSVG, false)
3423 AM_CONDITIONAL(USE_RTMP, false)
3424 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3425 AM_CONDITIONAL(USE_SNDIO, false)
3426 AM_CONDITIONAL(USE_UVCH264, false)
3427 AM_CONDITIONAL(USE_WEBP, false)
3428 AM_CONDITIONAL(USE_OPENH264, false)
3429 AM_CONDITIONAL(USE_X265, false)
3430 AM_CONDITIONAL(USE_DTLS, false)
3432 fi dnl of EXT plugins
3434 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3437 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3438 dnl GST_*: flags shared by built objects to link against GStreamer
3439 dnl GST_ALL_LDFLAGS: linker flags shared by all
3440 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3441 dnl GST_LT_LDFLAGS: library versioning of our libraries
3442 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3444 dnl GST_OPTION_CFLAGS
3445 if test "x$USE_DEBUG" = xyes; then
3448 AC_SUBST(PROFILE_CFLAGS)
3450 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3451 dnl Define _only_ during CVS (not pre-releases or releases)
3452 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3454 DEPRECATED_CFLAGS=""
3456 AC_SUBST(DEPRECATED_CFLAGS)
3458 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3459 dnl at make time with e.g. make ERROR_CFLAGS=""
3460 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3461 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3462 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3463 AC_SUBST(GST_OPTION_CFLAGS)
3464 AC_SUBST(GST_OPTION_CXXFLAGS)
3465 AC_SUBST(GST_OPTION_OBJCFLAGS)
3467 dnl FIXME: do we want to rename to GST_ALL_* ?
3468 dnl prefer internal headers to already installed ones
3469 dnl also add builddir include for enumtypes and marshal
3470 dnl add GST_OPTION_CFLAGS, but overridable
3471 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3472 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3473 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3474 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3475 AC_SUBST(GST_CFLAGS)
3476 AC_SUBST(GST_CXXFLAGS)
3477 AC_SUBST(GST_OBJCFLAGS)
3479 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3480 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3481 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3482 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3483 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3484 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3486 dnl LDFLAGS really should only contain flags, not libs - they get added before
3487 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3488 GST_ALL_LDFLAGS="-no-undefined"
3489 if test "x${enable_Bsymbolic}" = "xyes"; then
3490 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3492 AC_SUBST(GST_ALL_LDFLAGS)
3495 dnl linker flags shared by all libraries
3496 dnl LDFLAGS modifier defining exported symbols from built libraries
3497 dnl (export _gst_foo but not __gst_foo)
3498 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3499 AC_SUBST(GST_LIB_LDFLAGS)
3501 dnl this really should only contain flags, not libs - they get added before
3502 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3503 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3504 AC_SUBST(GST_PLUGIN_LDFLAGS)
3506 dnl *** output files ***
3508 $MKDIR_P tests/check/orc
3516 gst-plugins-bad.spec
3518 gst/accurip/Makefile
3519 gst/adpcmdec/Makefile
3520 gst/adpcmenc/Makefile
3522 gst/videoframe_audiolevel/Makefile
3524 gst/audiofxbad/Makefile
3525 gst/audiomixer/Makefile
3526 gst/audiovisualizers/Makefile
3527 gst/autoconvert/Makefile
3529 gst/camerabin2/Makefile
3530 gst/cdxaparse/Makefile
3531 gst/coloreffects/Makefile
3532 gst/dataurisrc/Makefile
3534 gst/debugutils/Makefile
3535 gst/dvbsuboverlay/Makefile
3537 gst/faceoverlay/Makefile
3538 gst/festival/Makefile
3539 gst/fieldanalysis/Makefile
3540 gst/freeverb/Makefile
3542 gst/gaudieffects/Makefile
3543 gst/geometrictransform/Makefile
3545 gst/hdvparse/Makefile
3548 gst/interlace/Makefile
3549 gst/ivfparse/Makefile
3551 gst/jp2kdecimator/Makefile
3552 gst/jpegformat/Makefile
3555 gst/mpegdemux/Makefile
3556 gst/mpegtsdemux/Makefile
3557 gst/mpegtsmux/Makefile
3558 gst/mpegtsmux/tsmux/Makefile
3559 gst/mpegpsmux/Makefile
3563 gst/nuvdemux/Makefile
3565 gst/patchdetect/Makefile
3566 gst/pcapparse/Makefile
3568 gst/rawparse/Makefile
3569 gst/removesilence/Makefile
3572 gst/segmentclip/Makefile
3579 gst/videofilters/Makefile
3580 gst/videomeasure/Makefile
3581 gst/videoparsers/Makefile
3582 gst/videosignal/Makefile
3586 gst/compositor/Makefile
3588 gst-libs/gst/Makefile
3589 gst-libs/gst/adaptivedemux/Makefile
3590 gst-libs/gst/basecamerabinsrc/Makefile
3591 gst-libs/gst/gl/Makefile
3592 gst-libs/gst/gl/android/Makefile
3593 gst-libs/gst/gl/cocoa/Makefile
3594 gst-libs/gst/gl/dispmanx/Makefile
3595 gst-libs/gst/gl/glprototypes/Makefile
3596 gst-libs/gst/gl/eagl/Makefile
3597 gst-libs/gst/gl/egl/Makefile
3598 gst-libs/gst/gl/wayland/Makefile
3599 gst-libs/gst/gl/win32/Makefile
3600 gst-libs/gst/gl/x11/Makefile
3601 gst-libs/gst/insertbin/Makefile
3602 gst-libs/gst/interfaces/Makefile
3603 gst-libs/gst/codecparsers/Makefile
3604 gst-libs/gst/mpegts/Makefile
3605 gst-libs/gst/uridownloader/Makefile
3606 gst-libs/gst/wayland/Makefile
3607 gst-libs/gst/base/Makefile
3608 gst-libs/gst/player/Makefile
3609 gst-libs/gst/video/Makefile
3610 gst-libs/gst/audio/Makefile
3612 sys/dshowdecwrapper/Makefile
3614 sys/acmmp3dec/Makefile
3615 sys/androidmedia/Makefile
3616 sys/applemedia/Makefile
3617 sys/applemedia-nonpublic/Makefile
3620 sys/d3dvideosink/Makefile
3621 sys/decklink/Makefile
3622 sys/directsound/Makefile
3623 sys/dshowsrcwrapper/Makefile
3624 sys/dshowvideosink/Makefile
3630 sys/opensles/Makefile
3632 sys/tinyalsa/Makefile
3633 sys/uvch264/Makefile
3638 sys/wininet/Makefile
3640 sys/winscreencap/Makefile
3642 tests/check/Makefile
3643 tests/files/Makefile
3644 tests/examples/Makefile
3645 tests/examples/avsamplesink/Makefile
3646 tests/examples/camerabin2/Makefile
3647 tests/examples/codecparsers/Makefile
3648 tests/examples/directfb/Makefile
3649 tests/examples/gl/Makefile
3650 tests/examples/gl/cocoa/Makefile
3651 tests/examples/gl/clutter/Makefile
3652 tests/examples/gl/generic/Makefile
3653 tests/examples/gl/generic/cube/Makefile
3654 tests/examples/gl/generic/cubeyuv/Makefile
3655 tests/examples/gl/generic/doublecube/Makefile
3656 tests/examples/gl/generic/recordgraphic/Makefile
3657 tests/examples/gl/gtk/Makefile
3658 tests/examples/gl/gtk/3dvideo/Makefile
3659 tests/examples/gl/gtk/filternovideooverlay/Makefile
3660 tests/examples/gl/gtk/filtervideooverlay/Makefile
3661 tests/examples/gl/gtk/fxtest/Makefile
3662 tests/examples/gl/gtk/switchvideooverlay/Makefile
3663 tests/examples/gl/qt/Makefile
3664 tests/examples/gl/sdl/Makefile
3665 tests/examples/gtk/Makefile
3666 tests/examples/mpegts/Makefile
3667 tests/examples/mxf/Makefile
3668 tests/examples/opencv/Makefile
3669 tests/examples/uvch264/Makefile
3670 tests/examples/waylandsink/Makefile
3671 tests/icles/Makefile
3672 ext/voamrwbenc/Makefile
3673 ext/voaacenc/Makefile
3674 ext/assrender/Makefile
3675 ext/apexsink/Makefile
3678 ext/chromaprint/Makefile
3682 ext/directfb/Makefile
3683 ext/wayland/Makefile
3691 ext/fluidsynth/Makefile
3697 ext/libde265/Makefile
3699 ext/libvisual/Makefile
3701 ext/modplug/Makefile
3702 ext/mpeg2enc/Makefile
3705 ext/musepack/Makefile
3711 ext/openexr/Makefile
3712 ext/openh264/Makefile
3713 ext/openjpeg/Makefile
3714 ext/openni2/Makefile
3718 ext/resindvd/Makefile
3721 ext/schroedinger/Makefile
3723 ext/smoothstreaming/Makefile
3724 ext/sndfile/Makefile
3725 ext/soundtouch/Makefile
3726 ext/spandsp/Makefile
3729 ext/teletextdec/Makefile
3732 ext/timidity/Makefile
3734 ext/vulkan/xcb/Makefile
3735 ext/vulkan/wayland/Makefile
3743 docs/plugins/Makefile
3745 docs/version.entities
3747 pkgconfig/gstreamer-plugins-bad.pc
3748 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3749 pkgconfig/gstreamer-codecparsers.pc
3750 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3751 pkgconfig/gstreamer-insertbin.pc
3752 pkgconfig/gstreamer-insertbin-uninstalled.pc
3753 pkgconfig/gstreamer-gl.pc
3754 pkgconfig/gstreamer-gl-uninstalled.pc
3755 pkgconfig/gstreamer-mpegts.pc
3756 pkgconfig/gstreamer-mpegts-uninstalled.pc
3757 pkgconfig/gstreamer-player.pc
3758 pkgconfig/gstreamer-player-uninstalled.pc
3759 pkgconfig/gstreamer-wayland.pc
3760 pkgconfig/gstreamer-wayland-uninstalled.pc
3761 pkgconfig/gstreamer-bad-base.pc
3762 pkgconfig/gstreamer-bad-base-uninstalled.pc
3763 pkgconfig/gstreamer-bad-video.pc
3764 pkgconfig/gstreamer-bad-video-uninstalled.pc
3765 pkgconfig/gstreamer-bad-audio.pc
3766 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3771 dnl Create the config.h file for Visual Studio builds
3772 dnl Beware of spaces and /'s in some of the shell variable contents.
3774 -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"/' \
3775 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3776 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3777 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3778 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3779 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3780 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3781 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3782 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3783 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3784 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3785 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3786 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3787 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3788 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3789 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3790 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3791 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3792 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3793 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3794 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3795 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3796 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3797 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3798 -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/' \
3799 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3800 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3801 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3802 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3803 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3804 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3805 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3806 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3807 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3808 config.h.in >win32/common/config.h-new
3812 AG_GST_OUTPUT_PLUGINS