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