3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.11.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 1101, 0, 1101)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 dnl *** checks for types/defines ***
169 dnl *** checks for structures ***
171 dnl *** checks for compiler characteristics ***
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r])
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
179 dnl *** checks for dependency libraries ***
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
200 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
202 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
204 dnl check for uninstalled plugin directories for unit tests
205 AG_GST_CHECK_UNINSTALLED_SETUP([
206 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
207 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
208 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
211 dnl Check for documentation xrefs
212 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
213 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
214 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
215 AC_SUBST(GLIB_PREFIX)
217 AC_SUBST(GSTPB_PREFIX)
219 dnl GTK is optional and used in examples
223 if test "x$BUILD_EXAMPLES" = "xyes"; then
224 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
226 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
228 2.0) GTK_REQ=$GTK2_REQ ;;
229 3.0) GTK_REQ=$GTK3_REQ ;;
230 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
234 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
235 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
239 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
241 dnl Check for -Bsymbolic-functions linker flag used to avoid
242 dnl intra-library PLT jumps, if available.
243 AC_ARG_ENABLE(Bsymbolic,
244 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
245 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
246 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
247 LDFLAGS=-Wl,-Bsymbolic-functions
249 AC_TRY_LINK([], [return 0],
251 enable_Bsymbolic=yes,
254 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
256 dnl *** set variables based on configure arguments ***
258 dnl GTK is optional and used in examples
260 if test "x$BUILD_EXAMPLES" = "xyes"; then
261 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
262 if test "x$HAVE_GTK3" = "xyes"; then
264 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
265 AC_SUBST(GTK_VERSION)
266 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
267 AC_SUBST(GTK_BASE_DIR)
271 AC_SUBST(GTK3_CFLAGS)
273 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
275 dnl clutter is optional and used in examples
279 if test "x$BUILD_EXAMPLES" = "xyes"; then
280 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
281 AC_SUBST(CLUTTER_LIBS)
282 AC_SUBST(CLUTTER_CFLAGS)
283 AC_SUBST(HAVE_CLUTTER)
285 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
286 AC_SUBST(CLUTTER_GLX_LIBS)
287 AC_SUBST(CLUTTER_GLX_CFLAGS)
288 AC_SUBST(HAVE_CLUTTER_GLX)
290 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
291 AC_SUBST(CLUTTER_X11_LIBS)
292 AC_SUBST(CLUTTER_X11_CFLAGS)
293 AC_SUBST(HAVE_CLUTTER_X11)
295 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
296 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
297 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
299 dnl used in the gl/clutteractor example
300 if test "x$BUILD_EXAMPLES" = "xyes"; then
301 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
302 AC_SUBST(XCOMPOSITE_CFLAGS)
303 AC_SUBST(XCOMPOSITE_LIBS)
305 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
307 dnl graphene-1.0 is optional and used in gltransformation
309 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
310 if test "x$HAVE_GRAPHENE" = "xyes"; then
311 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
313 AC_SUBST(HAVE_GRAPHENE)
314 AC_SUBST(GRAPHENE_LIBS)
315 AC_SUBST(GRAPHENE_CFLAGS)
316 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
319 dnl sdl is optional and used in examples
321 if test "x$BUILD_EXAMPLES" = "xyes"; then
322 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
325 AC_SUBST(SDL_CLUTTER)
327 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
330 dnl Needed for GtkBuilder to autoconnect signals
331 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
333 dnl Needed by plugins that use g_module_*() API
334 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
336 dnl x11 is optional for librfb
338 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
342 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
343 if test "x$HAVE_X11" = "xyes"; then
344 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
347 dnl exif (used on jifmux tests) ****
348 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
350 AC_SUBST(EXIF_CFLAGS)
351 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
353 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
354 PKG_CHECK_MODULES(DSSIM, dssim, [
362 if test "x$HAVE_DSSIM" = "xyes"; then
363 AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
366 AC_SUBST(DSSIM_CFLAGS)
368 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
373 dnl set license and copyright notice
375 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
376 AC_SUBST(GST_LICENSE)
378 dnl define LIBDIR so we can inform people where we live
379 AS_AC_EXPAND(LIBDIR, $libdir)
380 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
382 dnl set location of plugin directory
385 dnl set release date/time
386 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
387 ["${srcdir}/gst-plugins-bad.doap"],
388 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
390 dnl build static plugins or not
391 AC_MSG_CHECKING([whether to build static plugins or not])
395 [--enable-static-plugins],
396 [build static plugins @<:@default=no@:>@]),
398 [$enableval], [no], [], [yes], [],
399 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
400 [enable_static_plugins=no])
401 AC_MSG_RESULT([$enable_static_plugins])
402 if test "x$enable_static_plugins" = xyes; then
403 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
404 [Define if static plugins should be built])
405 GST_PLUGIN_LIBTOOLFLAGS=""
407 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
409 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
410 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
412 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
413 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
414 if test x$enable_static = xyes -a x$enable_shared = xno; then
415 GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
418 AC_ARG_WITH([player-tests],
419 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
420 if test x$with_player_tests = xyes; then
421 AC_PATH_PROG([WGET], [wget], no)
422 if test x$WGET = xno; then
423 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
427 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
429 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
430 dnl make sure it doesn't complain about unused variables if debugging is disabled
432 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
434 dnl define an ERROR_CFLAGS Makefile variable
435 dnl -Waggregate-return - libexif returns aggregates
436 dnl -Wundef - Windows headers check _MSC_VER unconditionally
437 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
438 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
439 -Wwrite-strings -Wformat-security -Wold-style-definition
440 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
441 -Wnested-externs $NO_WARNINGS])
443 dnl define an ERROR_CXXFLAGS Makefile variable
444 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
445 -Wmissing-declarations -Wredundant-decls
446 -Wwrite-strings -Wformat-nonliteral -Wformat-security
447 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
449 dnl define an ERROR_OBJCFLAGS Makefile variable
450 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
451 -Wmissing-declarations -Wredundant-decls
452 -Wwrite-strings -Wformat-nonliteral -Wformat-security
453 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
455 dnl define correct level for debugging messages
456 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
459 AG_GST_DEFAULT_ELEMENTS
461 dnl *** plug-ins to include ***
463 dnl these are all the gst plug-ins, compilable without additional libs
464 AG_GST_CHECK_PLUGIN(accurip)
465 AG_GST_CHECK_PLUGIN(adpcmdec)
466 AG_GST_CHECK_PLUGIN(adpcmenc)
467 AG_GST_CHECK_PLUGIN(aiff)
468 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
469 AG_GST_CHECK_PLUGIN(asfmux)
470 AG_GST_CHECK_PLUGIN(audiobuffersplit)
471 AG_GST_CHECK_PLUGIN(audiofxbad)
472 AG_GST_CHECK_PLUGIN(audiomixer)
473 AG_GST_CHECK_PLUGIN(compositor)
474 AG_GST_CHECK_PLUGIN(audiovisualizers)
475 AG_GST_CHECK_PLUGIN(autoconvert)
476 AG_GST_CHECK_PLUGIN(bayer)
477 AG_GST_CHECK_PLUGIN(camerabin2)
478 AG_GST_CHECK_PLUGIN(coloreffects)
479 AG_GST_CHECK_PLUGIN(debugutils)
480 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
481 AG_GST_CHECK_PLUGIN(dvdspu)
482 AG_GST_CHECK_PLUGIN(festival)
483 AG_GST_CHECK_PLUGIN(fieldanalysis)
484 AG_GST_CHECK_PLUGIN(freeverb)
485 AG_GST_CHECK_PLUGIN(frei0r)
486 AG_GST_CHECK_PLUGIN(gaudieffects)
487 AG_GST_CHECK_PLUGIN(geometrictransform)
488 AG_GST_CHECK_PLUGIN(gdp)
489 AG_GST_CHECK_PLUGIN(id3tag)
490 AG_GST_CHECK_PLUGIN(inter)
491 AG_GST_CHECK_PLUGIN(interlace)
492 AG_GST_CHECK_PLUGIN(ivfparse)
493 AG_GST_CHECK_PLUGIN(ivtc)
494 AG_GST_CHECK_PLUGIN(jp2kdecimator)
495 AG_GST_CHECK_PLUGIN(jpegformat)
496 AG_GST_CHECK_PLUGIN(librfb)
497 AG_GST_CHECK_PLUGIN(midi)
498 AG_GST_CHECK_PLUGIN(mpegdemux)
499 AG_GST_CHECK_PLUGIN(mpegtsdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsmux)
501 AG_GST_CHECK_PLUGIN(mpegpsmux)
502 AG_GST_CHECK_PLUGIN(mxf)
503 AG_GST_CHECK_PLUGIN(netsim)
504 AG_GST_CHECK_PLUGIN(onvif)
505 AG_GST_CHECK_PLUGIN(pcapparse)
506 AG_GST_CHECK_PLUGIN(pnm)
507 AG_GST_CHECK_PLUGIN(rawparse)
508 AG_GST_CHECK_PLUGIN(removesilence)
509 AG_GST_CHECK_PLUGIN(sdp)
510 AG_GST_CHECK_PLUGIN(segmentclip)
511 AG_GST_CHECK_PLUGIN(siren)
512 AG_GST_CHECK_PLUGIN(smooth)
513 AG_GST_CHECK_PLUGIN(speed)
514 AG_GST_CHECK_PLUGIN(subenc)
515 AG_GST_CHECK_PLUGIN(stereo)
516 AG_GST_CHECK_PLUGIN(timecode)
517 AG_GST_CHECK_PLUGIN(videofilters)
518 AG_GST_CHECK_PLUGIN(videoparsers)
519 AG_GST_CHECK_PLUGIN(videosignal)
520 AG_GST_CHECK_PLUGIN(vmnc)
521 AG_GST_CHECK_PLUGIN(y4m)
522 AG_GST_CHECK_PLUGIN(yadif)
524 dnl *** plug-ins to exclude ***
526 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
527 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
528 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
529 AC_CHECK_HEADER(QTKit/QTKit.h, HAVE_QTKIT="yes", HAVE_QTKIT="no", [-])
531 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
533 LIBS="$LIBS -framework VideoToolbox"
534 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
535 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
541 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
542 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
543 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
546 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
547 if test "x$HAVE_IOS" = "xyes"; then
548 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
551 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
552 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
553 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
556 AM_CONDITIONAL(HAVE_QTKIT, test "x$HAVE_QTKIT" = "xyes")
557 if test "x$HAVE_QTKIT" = "xyes"; then
558 AC_DEFINE(HAVE_QTKIT, 1, [Define if building with QTKit])
560 dnl disable gst plugins we might not be able to build on this
561 dnl platform: (ugly but minimally invasive)
562 dnl FIXME: maybe move to sys, or make work with winsock2
563 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
564 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
566 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
567 WINSOCK2_LIBS="-lws2_32"
568 AC_SUBST(WINSOCK2_LIBS)
572 AC_ARG_ENABLE([opengl],
573 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
574 [case "${enableval}" in
577 auto) NEED_GL=auto ;;
578 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
579 esac],[NEED_GL=auto])
581 AC_ARG_WITH([opengl-module-name],
582 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
583 if test x$with_opengl_module_name != x; then
584 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
587 AC_ARG_ENABLE([gles2],
588 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
589 [case "${enableval}" in
590 yes) NEED_GLES2=yes ;;
592 auto) NEED_GLES2=auto ;;
593 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
594 esac],[NEED_GLES2=auto])
596 AC_ARG_WITH([gles2-module-name],
597 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
598 if test x$with_gles2_module_name != x; then
599 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
603 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
604 [case "${enableval}" in
607 auto) NEED_EGL=auto ;;
608 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
609 esac],[NEED_EGL=auto])
611 AC_ARG_WITH([egl-module-name],
612 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
613 if test x$with_egl_module_name != x; then
614 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
618 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
619 [case "${enableval}" in
622 auto) NEED_WGL=auto ;;
623 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
624 esac],[NEED_WGL=auto])
627 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
628 [case "${enableval}" in
631 auto) NEED_GLX=auto ;;
632 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
633 esac],[NEED_GLX=auto])
635 AC_ARG_ENABLE([cocoa],
636 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
637 [case "${enableval}" in
638 yes) NEED_COCOA=yes ;;
640 auto) NEED_COCOA=auto ;;
641 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
642 esac],[NEED_COCOA=auto])
645 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
646 [case "${enableval}" in
649 auto) NEED_X11=auto ;;
650 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
651 esac],[NEED_X11=auto])
653 AC_ARG_ENABLE([wayland],
654 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
655 [case "${enableval}" in
656 yes) NEED_WAYLAND_EGL=yes ;;
657 no) NEED_WAYLAND_EGL=no ;;
658 auto) NEED_WAYLAND_EGL=auto ;;
659 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
660 esac],[NEED_WAYLAND_EGL=auto])
662 AC_ARG_ENABLE([dispmanx],
663 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
664 [case "${enableval}" in
665 yes) NEED_DISPMANX=yes ;;
666 no) NEED_DISPMANX=no ;;
667 auto) NEED_DISPMANX=auto ;;
668 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
669 esac],[NEED_DISPMANX=auto])
671 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
672 save_CPPFLAGS="$CPPFLAGS"
685 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
686 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
687 if test "x$HAVE_WGLEXT" = "xyes"; then
693 if test "x$NEED_GL" != "xno"; then
694 AG_GST_PKG_CHECK_MODULES(GL, gl)
695 if test "x$HAVE_GL" != "xyes"; then
696 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
699 if test "x$NEED_GLES2" != "xno"; then
700 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
701 if test "x$HAVE_GLES2" != "xyes"; then
702 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
704 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
706 if test "x$NEED_EGL" != "xno"; then
707 AG_GST_PKG_CHECK_MODULES(EGL, egl)
708 if test "x$HAVE_EGL" != "xyes"; then
709 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
716 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
717 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
718 LIBS="$LIBS -lvcos -lvchiq_arm"
719 AC_CHECK_LIB([bcm_host], [bcm_host_init],
721 LIBS="$LIBS -lbcm_host"
722 AC_CHECK_HEADER(bcm_host.h,
724 LIBS="$LIBS -lGLESv2"
725 AC_CHECK_LIB([EGL], [eglGetProcAddress],
728 AC_CHECK_HEADER([EGL/egl.h],
730 AC_CHECK_LIB([GLESv2], [glEnable],
732 AC_CHECK_HEADER([GLES2/gl2.h],
737 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
739 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
750 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)
752 # OS X and iOS always have GL available
755 if test "x$HAVE_IOS" = "xyes"; then
765 CPPFLAGS="$save_CPPFLAGS"
779 dnl Check for what the user asked for and what we could find
780 if test "x$HAVE_EGL" = "xno"; then
781 if test "x$NEED_EGL" = "xyes"; then
782 AC_MSG_ERROR([Could not find the required EGL libraries])
786 if test "x$HAVE_GL" = "xno"; then
787 if test "x$NEED_GL" = "xyes"; then
788 AC_MSG_ERROR([Could not find the required OpenGL libraries])
792 if test "x$HAVE_GLES2" = "xno"; then
793 if test "x$NEED_GLES2" = "xyes"; then
794 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
798 dnl X, GLX and OpenGL
799 if test "x$HAVE_X11_XCB" = "xno"; then
800 if test "x$NEED_GLX" = "xyes"; then
801 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
803 if test "x$NEED_X11" = "xyes"; then
804 AC_MSG_ERROR([Could not find X11 development libraries])
807 if test "x$NEED_GL" != "xno"; then
808 if test "x$HAVE_GL" = "xno"; then
809 if test "x$NEED_GLX" = "xyes"; then
810 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
814 if test "x$NEED_GLX" != "xno"; then
821 dnl check for DMABUF support
822 HAVE_DRM_FOURCC_HEADER=no
823 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
824 HAVE_DRM_FOURCC_HEADER=yes, )
826 HAVE_GST_ALLOCATORS=no
827 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
828 HAVE_GST_ALLOCATORS=yes, )
831 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
832 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
833 "x$HAVE_EGL" = "xyes"; then
837 dnl check if we can include both GL and GLES2 at the same time
838 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
840 if test "x$HAVE_GLES3_H" == "xyes"; then
845 # pragma GCC diagnostic push
846 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
848 #ifndef GL_GLEXT_PROTOTYPES
849 #define GL_GLEXT_PROTOTYPES 1
852 # include <OpenGLES/ES2/gl.h>
853 # include <OpenGLES/ES2/glext.h>
856 # include <GLES3/gl3.h>
857 # include <GLES3/gl3ext.h>
859 # include <GLES2/gl2.h>
860 # include <GLES2/gl2ext.h>
864 # include <OpenGL/OpenGL.h>
865 # include <OpenGL/gl.h>
866 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
867 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
868 # include <OpenGL/gl3.h>
872 # if __WIN32__ || _WIN32
873 # include <GL/glext.h>
876 int main (int argc, char **argv) { return 0; }
878 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
879 save_CFLAGS="$CFLAGS"
880 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
881 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
882 #if !defined(GL_FALSE)
883 #error Failed to include GL headers
885 ]])],[ AC_MSG_RESULT(yes)
887 if test "x$NEED_GLES2" = "xyes"; then
888 if test "x$NEED_GL" = "xyes"; then
889 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
891 AC_MSG_WARN([Disabling Desktop GL support])
895 AC_MSG_WARN([Disabling GL|ES 2.0 support])
900 CFLAGS="$save_CFLAGS"
903 #dnl Check for OpenGL
907 if test "x$NEED_WGL" = "xyes"; then
908 AC_MSG_ERROR([WGL is not available on Android])
910 if test "x$NEED_GLX" = "xyes"; then
911 AC_MSG_ERROR([GLX is not available on Android])
913 if test "x$NEED_GL" = "xyes"; then
914 AC_MSG_ERROR([GL is not available on Android])
916 if test "x$NEED_X11" = "xyes"; then
917 AC_MSG_ERROR([X11 is not available on Android])
919 if test "x$NEED_COCOA" = "xyes"; then
920 AC_MSG_ERROR([Cocoa is not available on Android])
924 if test "x$HAVE_GLES2" = "xyes"; then
925 if test "x$NEED_GLES2" != "xno"; then
926 GL_LIBS="$GL_LIBS -lGLESv2"
932 if test "x$HAVE_EGL" = "xyes"; then
933 if test "x$NEED_EGL" != "xno"; then
934 GL_LIBS="$GL_LIBS -lEGL"
939 if test "x$USE_EGL" != "xyes"; then
940 AC_MSG_ERROR([Need EGL on Android])
943 if test "x$USE_GLES2" != "xyes"; then
944 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
947 HAVE_WINDOW_ANDROID=yes
949 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
950 if test "x$NEED_WGL" = "xyes"; then
951 AC_MSG_ERROR([WGL is not available on unix])
954 if test "x$HAVE_X11_XCB" = "xno"; then
955 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
956 AC_MSG_WARN([X or Wayland is required for OpenGL support])
960 dnl check Desktop OpenGL
961 if test "x$HAVE_GL" = "xyes"; then
962 if test "x$NEED_GL" != "xno"; then
963 GL_LIBS="$GL_LIBS -lGL"
968 if test "x$HAVE_GLES2" = "xyes"; then
969 if test "x$NEED_GLES2" != "xno"; then
970 GL_LIBS="$GL_LIBS -lGLESv2"
975 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
976 if test "x$NEED_X11" != "xno"; then
977 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
978 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
983 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
984 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
985 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
987 if test "x$NEED_WAYLAND_EGL" != "xno"; then
988 HAVE_WINDOW_WAYLAND=yes
989 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
990 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
995 if test "x$HAVE_EGL_RPI" = "xyes"; then
996 if test "x$NEED_DISPMANX" != "xno"; then
997 HAVE_WINDOW_DISPMANX=yes
1003 if test "x$HAVE_EGL" = "xno"; then
1004 if test "x$HAVE_GL" = "xno"; then
1005 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1008 if test "x$NEED_EGL" != "xno"; then
1009 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1010 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1011 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1018 if test "x$HAVE_IOS" = "xyes"; then
1019 if test "x$NEED_WGL" = "xyes"; then
1020 AC_MSG_ERROR([WGL is not available on iOS])
1022 if test "x$NEED_GLX" = "xyes"; then
1023 AC_MSG_ERROR([GLX is not available on iOS])
1025 if test "x$NEED_GL" = "xyes"; then
1026 AC_MSG_ERROR([GL is not available on iOS])
1028 if test "x$NEED_X11" = "xyes"; then
1029 AC_MSG_ERROR([X11 is not available on iOS])
1031 if test "x$NEED_COCOA" = "xyes"; then
1032 AC_MSG_ERROR([Cocoa is not available on iOS])
1034 if test "x$NEED_EGL" = "xyes"; then
1035 AC_MSG_ERROR([EGL is not available on iOS])
1038 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1039 GL_CFLAGS="$GL_CFLAGS"
1042 HAVE_WINDOW_EAGL=yes
1044 ac_cv_type_GLsizeiptr=yes
1045 ac_cv_type_GLintptr=yes
1046 ac_cv_type_GLchar=yes
1048 dnl Only osx supports cocoa.
1049 if test "x$NEED_WGL" = "xyes"; then
1050 AC_MSG_ERROR([WGL is not available on Mac OS X])
1053 if test "x$NEED_COCOA" != "xno"; then
1054 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1055 GL_CFLAGS="$GL_CFLAGS"
1057 HAVE_WINDOW_COCOA=yes
1061 if test "x$USE_GLX" = "xyes"; then
1062 if test "x$HAVE_X11_XCB" = "xyes"; then
1063 if test "x$NEED_X11" != "xno"; then
1064 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1065 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1070 if test "x$HAVE_GL" = "xyes"; then
1071 if test "x$NEED_GL" != "xno"; then
1072 GL_LIBS="$GL_LIBS -lGL"
1078 if test "x$HAVE_EGL" = "xyes"; then
1079 if test "x$NEED_EGL" != "xno"; then
1080 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1081 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1082 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1089 if test "x$HAVE_GLES2" = "xyes"; then
1090 if test "x$NEED_GLES2" != "xno"; then
1091 GL_LIBS="$GL_LIBS -lGLESv2"
1098 if test "x$NEED_GLX" = "xyes"; then
1099 AC_MSG_ERROR([GLX is not available on Windows])
1101 if test "x$NEED_GLES2" = "xyes"; then
1102 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1105 if test "x$HAVE_GL" = "xyes"; then
1106 if test "x$NEED_GL" != "xno"; then
1107 if test "x$HAVE_WGL" = "xyes"; then
1108 if test "$NEED_WGL" != "xno"; then
1109 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1110 HAVE_WINDOW_WIN32=yes
1119 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1130 GST_GL_HAVE_OPENGL=0
1134 if test "x$USE_OPENGL" = "xyes"; then
1135 GL_APIS="gl $GL_APIS"
1136 GST_GL_HAVE_OPENGL=1
1138 if test "x$USE_GLES2" = "xyes"; then
1139 GL_APIS="gles2 $GL_APIS"
1141 if test "x$HAVE_GLES3_H" = "xyes"; then
1146 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1147 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1148 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1149 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1154 GST_GL_HAVE_WINDOW_X11=0
1155 GST_GL_HAVE_WINDOW_COCOA=0
1156 GST_GL_HAVE_WINDOW_WIN32=0
1157 GST_GL_HAVE_WINDOW_WAYLAND=0
1158 GST_GL_HAVE_WINDOW_ANDROID=0
1159 GST_GL_HAVE_WINDOW_DISPMANX=0
1160 GST_GL_HAVE_WINDOW_EAGL=0
1162 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1163 GL_WINDOWS="x11 $GL_WINDOWS"
1164 GST_GL_HAVE_WINDOW_X11=1
1166 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1167 GL_WINDOWS="cocoa $GL_WINDOWS"
1168 GST_GL_HAVE_WINDOW_COCOA=1
1170 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1171 GL_WINDOWS="win32 $GL_WINDOWS"
1172 GST_GL_HAVE_WINDOW_WIN32=1
1174 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1175 GL_WINDOWS="wayland $GL_WINDOWS"
1176 GST_GL_HAVE_WINDOW_WAYLAND=1
1178 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1179 GL_WINDOWS="android $GL_WINDOWS"
1180 GST_GL_HAVE_WINDOW_ANDROID=1
1182 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1183 GL_WINDOWS="dispmanx $GL_WINDOWS"
1184 GST_GL_HAVE_WINDOW_DISPMANX=1
1186 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1187 GL_WINDOWS="eagl $GL_WINDOWS"
1188 GST_GL_HAVE_WINDOW_EAGL=1
1191 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1192 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1193 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1194 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1195 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1196 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1197 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1198 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1203 GST_GL_HAVE_PLATFORM_EGL=0
1204 GST_GL_HAVE_PLATFORM_GLX=0
1205 GST_GL_HAVE_PLATFORM_WGL=0
1206 GST_GL_HAVE_PLATFORM_CGL=0
1207 GST_GL_HAVE_PLATFORM_EAGL=0
1209 if test "x$USE_EGL" = "xyes"; then
1210 GL_PLATFORMS="egl $GL_PLATFORMS"
1211 GST_GL_HAVE_PLATFORM_EGL=1
1213 if test "x$USE_GLX" = "xyes"; then
1214 GL_PLATFORMS="glx $GL_PLATFORMS"
1215 GST_GL_HAVE_PLATFORM_GLX=1
1217 if test "x$USE_WGL" = "xyes"; then
1218 GL_PLATFORMS="wgl $GL_PLATFORMS"
1219 GST_GL_HAVE_PLATFORM_WGL=1
1221 if test "x$USE_COCOA" = "xyes"; then
1222 GL_PLATFORMS="cgl $GL_PLATFORMS"
1223 GST_GL_HAVE_PLATFORM_CGL=1
1225 if test "x$USE_EAGL" = "xyes"; then
1226 GL_PLATFORMS="eagl $GL_PLATFORMS"
1227 GST_GL_HAVE_PLATFORM_EAGL=1
1230 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1231 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1232 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1233 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1234 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1235 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1238 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1239 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1242 dnl Check for no platforms/window systems
1243 if test "x$GL_APIS" = "x"; then
1244 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1246 if test "x$GL_PLATFORMS" = "x"; then
1247 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1249 if test "x$GL_WINDOWS" = "x"; then
1250 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1253 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1268 HAVE_WINDOW_WIN32=no
1269 HAVE_WINDOW_DISPMANX=no
1270 HAVE_WINDOW_WAYLAND=no
1271 HAVE_WINDOW_ANDROID=no
1272 HAVE_WINDOW_COCOA=no
1277 AC_SUBST(GL_PLATFORMS)
1278 AC_SUBST(GL_WINDOWS)
1281 AC_SUBST(GL_OBJCFLAGS)
1282 AC_SUBST(USE_OPENGL)
1285 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1286 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1287 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1288 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1289 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1290 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1291 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1293 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1294 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1295 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1296 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1297 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1298 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1299 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1300 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1301 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1303 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1305 dnl Check for some types that are not always present
1307 if test "x$USE_GLES2" = "xyes"; then
1308 GL_INCLUDES="$GL_INCLUDES
1309 #ifndef GL_GLEXT_PROTOTYPES
1310 #define GL_GLEXT_PROTOTYPES 1
1313 # include <OpenGLES/ES2/gl.h>
1314 # include <OpenGLES/ES2/glext.h>
1316 # if $GST_GL_HAVE_GLES3
1317 # include <GLES3/gl3.h>
1318 # include <GLES3/gl3ext.h>
1320 # include <GLES2/gl2.h>
1321 # include <GLES2/gl2ext.h>
1327 if test "x$USE_OPENGL" = "xyes"; then
1328 GL_INCLUDES="$GL_INCLUDES
1330 # include <OpenGL/OpenGL.h>
1331 # include <OpenGL/gl.h>
1334 # if __WIN32__ || _WIN32
1335 # include <GL/glext.h>
1341 GST_GL_HAVE_GLEGLIMAGEOES=0
1342 GST_GL_HAVE_GLCHAR=0
1343 GST_GL_HAVE_GLSIZEIPTR=0
1344 GST_GL_HAVE_GLINTPTR=0
1345 GST_GL_HAVE_GLSYNC=0
1346 GST_GL_HAVE_GLUINT64=0
1347 GST_GL_HAVE_GLINT64=0
1348 GST_GL_HAVE_EGLATTRIB=0
1351 CFLAGS="$GL_CFLAGS $CFLAGS"
1353 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1354 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1355 GST_GL_HAVE_GLEGLIMAGEOES=1
1358 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1359 if test "x$ac_cv_type_GLchar" = "xyes"; then
1360 GST_GL_HAVE_GLCHAR=1
1363 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1364 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1365 GST_GL_HAVE_GLSIZEIPTR=1
1368 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1369 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1370 GST_GL_HAVE_GLINTPTR=1
1373 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1374 if test "x$ac_cv_type_GLsync" = "xyes"; then
1375 GST_GL_HAVE_GLSYNC=1
1378 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1379 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1380 GST_GL_HAVE_GLUINT64=1
1383 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1384 if test "x$ac_cv_type_GLint64" = "xyes"; then
1385 GST_GL_HAVE_GLINT64=1
1388 if test "x$USE_EGL" = "xyes"; then
1389 EGL_INCLUDES="$GL_INCLUDES
1390 #include <EGL/egl.h>
1391 #include <EGL/eglext.h>
1393 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1394 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1395 GST_GL_HAVE_EGLATTRIB=1
1401 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1402 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1403 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1404 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1405 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1406 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1407 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1408 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1409 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1412 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1413 outfile=gstglconfig.h-tmp
1414 cat > $outfile <<\_______EOF
1417 * This is a generated file. Please modify `configure.ac'
1420 #ifndef __GST_GL_CONFIG_H__
1421 #define __GST_GL_CONFIG_H__
1423 #include <gst/gst.h>
1429 cat >>$outfile <<_______EOF
1433 cat >>$outfile <<_______EOF
1437 #endif /* __GST_GL_CONFIG_H__ */
1441 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1442 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1445 mv $outfile gst-libs/gst/gl/gstglconfig.h
1448 gl_config_defines='$GL_CONFIG_DEFINES'
1451 dnl libpng is optional
1452 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1453 if test "x$HAVE_PNG" = "xyes"; then
1454 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1457 AC_SUBST(LIBPNG_LIBS)
1458 AC_SUBST(LIBPNG_CFLAGS)
1459 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1461 dnl libjpeg is optional
1462 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1464 if test x$with_jpeg_mmx != x; then
1465 LIBS="$LIBS -L$with_jpeg_mmx"
1467 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1468 JPEG_LIBS="$LIBS -ljpeg-mmx"
1470 if test x$HAVE_JPEG != xyes; then
1472 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1475 if test x$HAVE_JPEG = xyes; then
1476 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1478 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1483 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1486 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1487 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1489 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1490 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1491 VULKAN_CONFIG_DEFINES="
1492 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1493 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1495 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1496 outfile=vkconfig.h-tmp
1497 cat > $outfile <<\_______EOF
1500 * This is a generated file. Please modify `configure.ac'
1503 #ifndef __GST_VULKAN_CONFIG_H__
1504 #define __GST_VULKAN_CONFIG_H__
1506 #include <gst/gst.h>
1512 cat >>$outfile <<_______EOF
1513 $vulkan_config_defines
1516 cat >>$outfile <<_______EOF
1520 #endif /* __GST_VULKAN_CONFIG_H__ */
1524 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1525 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1528 mv $outfile ext/vulkan/vkconfig.h
1531 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1534 dnl *** sys plug-ins ***
1537 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1538 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1539 HAVE_DIRECTSOUND="no"
1540 save_CFLAGS="$CFLAGS"
1541 save_LDFLAGS="$LDFLAGS"
1543 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1544 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1545 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1546 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1547 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1548 #include <windows.h>
1551 #include <mmsystem.h>
1553 DXGetErrorString9 (0);
1554 DirectSoundCreate(NULL, NULL, NULL);
1556 [HAVE_DIRECTSOUND="yes"],
1557 [HAVE_DIRECTSOUND="no"])
1558 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1560 LDFLAGS=$save_LDFLAGS
1563 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1564 dnl this is much more than we want
1565 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1566 AC_SUBST(DIRECTX_CFLAGS)
1567 AC_SUBST(DIRECTX_LDFLAGS)
1568 AC_SUBST(DIRECTSOUND_LIBS)
1570 AC_SUBST(HAVE_DIRECTSOUND)
1574 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1575 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1577 save_CFLAGS="$CFLAGS"
1578 save_LDFLAGS="$LDFLAGS"
1580 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1581 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1582 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1583 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1584 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1585 #include <windows.h>
1587 #include <mmsystem.h>
1588 #include <mmdeviceapi.h>
1594 hr = CoInitialize(NULL);
1596 printf("CoInitialize failed: hr = 0x%08x", hr);
1601 // result = do_everything(argc, argv);
1607 [HAVE_WASAPI="yes"],
1609 AC_MSG_RESULT($HAVE_WASAPI)
1611 LDFLAGS=$save_LDFLAGS
1614 if test "x$HAVE_WASAPI" = "xyes"; then
1615 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1616 AC_SUBST(WASAPI_LIBS)
1618 AC_SUBST(HAVE_WASAPI)
1622 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1623 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1625 save_CFLAGS="$CFLAGS"
1626 save_LDFLAGS="$LDFLAGS"
1628 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1629 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1630 LIBS="$LIBS -ld3d9 -lgdi32"
1631 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1632 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1633 #include <windows.h>
1636 Direct3DCreate9(D3D_SDK_VERSION);
1638 [HAVE_DIRECT3D="yes"],
1639 [HAVE_DIRECT3D="no"])
1640 AC_MSG_RESULT($HAVE_DIRECT3D)
1642 LDFLAGS=$save_LDFLAGS
1645 if test "x$HAVE_DIRECT3D" = "xyes"; then
1646 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1647 AC_SUBST(DIRECT3D_LIBS)
1649 AC_SUBST(HAVE_DIRECT3D)
1653 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1654 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1655 HAVE_WINSCREENCAP="no"
1656 save_CFLAGS="$CFLAGS"
1657 save_LDFLAGS="$LDFLAGS"
1659 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1660 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1661 LIBS="$LIBS -ld3d9 -lgdi32"
1662 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1663 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1664 #include <windows.h>
1667 Direct3DCreate9(D3D_SDK_VERSION);
1669 [HAVE_WINSCREENCAP="yes"],
1670 [HAVE_WINSCREENCAP="no"])
1671 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1673 LDFLAGS=$save_LDFLAGS
1676 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1677 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1678 AC_SUBST(WINSCREENCAP_LIBS)
1680 AC_SUBST(HAVE_WINSCREENCAP)
1684 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1685 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1687 save_CFLAGS="$CFLAGS"
1688 save_LDFLAGS="$LDFLAGS"
1690 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1691 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1692 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1693 AC_MSG_CHECKING(for Winks LDFLAGS)
1694 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1695 #include <windows.h>
1700 IGraphBuilder *pGraph = NULL;
1701 HRESULT hr = CoInitialize(NULL);
1702 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1703 &IID_IGraphBuilder, (void **)&pGraph);
1710 AC_MSG_RESULT($HAVE_WINKS)
1712 LDFLAGS=$save_LDFLAGS
1715 if test "x$HAVE_WINKS" = "xyes"; then
1716 dnl this is much more than we want
1717 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1718 AC_SUBST(DIRECTX_CFLAGS)
1719 AC_SUBST(DIRECTX_LDFLAGS)
1720 AC_SUBST(WINKS_LIBS)
1722 AC_SUBST(HAVE_WINKS)
1725 dnl *** Android Media ***
1726 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1727 HAVE_ANDROID_MEDIA="no"
1728 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1731 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1734 HAVE_ANDROID_MEDIA="no"
1739 dnl *** AppleMedia (OS X and iOS) ***
1740 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1741 HAVE_APPLE_MEDIA="no"
1742 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1743 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1744 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1745 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1746 if test "x$HAVE_IOS" = "xno"; then
1747 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1751 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1756 HAVE_APPLE_MEDIA="no"
1761 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1762 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1763 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1764 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1765 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1767 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1776 dnl *** OS/X AVCVideoServices ***
1777 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1779 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1781 save_CPPFLAGS="$CPPFLAGS"
1782 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1784 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1785 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1787 CPPFLAGS=$save_CPPFLAGS
1790 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1799 dnl check for shm_open (for shm plugin)
1800 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1801 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1802 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1804 *-darwin* | *-macos10*)
1805 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1812 AC_CHECK_LIB([rt], [shm_open],
1813 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1814 #include <sys/socket.h>
1817 AC_SUBST(SHM_LIBS, "-lrt")
1825 dnl check for Video CD
1826 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1827 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1828 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1831 dnl check for OpenSL ES
1832 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1833 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1834 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1837 dnl *** UVC H264 ***
1838 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1839 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1840 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1841 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1842 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1845 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1846 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1847 HAVE_LIBUSB="yes" ],
1849 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1850 test "x$HAVE_GUDEV" = "xyes" && \
1851 test "x$HAVE_LIBUSB" = "xyes"; then
1857 AC_SUBST(LIBUDEV_CFLAGS)
1858 AC_SUBST(LIBUDEV_LIBS)
1859 AC_SUBST(LIBUSB_CFLAGS)
1860 AC_SUBST(LIBUSB_LIBS)
1863 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1864 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1865 AC_ARG_WITH([cuda-prefix],
1866 AS_HELP_STRING([--with-cuda-prefix],
1867 [Use the provided prefix for detecting the cuda installation]),
1868 [AS_IF([test "x$with_cuda_prefix" != "x"],
1869 [CUDA_PREFIX="$with_cuda_prefix"])],
1873 if test "x$CUDA_PREFIX" != "x"; then
1874 dnl only override if not already set
1875 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1876 dnl this is an educated guess, user can always override these
1877 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1878 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1881 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1882 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1883 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1884 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1889 save_CPPFLAGS="$CPPFLAGS"
1890 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1891 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1892 AC_MSG_WARN([Could not find cuda.h]))
1893 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1894 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1895 CPPFLAGS=$save_CPPFLAGS
1897 dnl libcuda and libcudart libraries
1899 LIBS="$CUDA_LIBS $save_LIBS"
1900 HAVE_CUDART_LIB="no"
1901 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1902 AC_MSG_WARN([Could not find cudart library])])
1904 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1905 AC_MSG_WARN([Could not find cuda library])])
1908 dnl nvEncodeAPI.h header
1909 HAVE_NVENCODEAPI_H=no
1910 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1911 save_CPPFLAGS="$CPPFLAGS"
1912 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1913 AC_CHECK_HEADER([nvEncodeAPI.h], [
1914 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1915 #if NVENCAPI_MAJOR_VERSION < 5
1916 #error "Need nvEncodeAPI.h >= 5.0"
1919 HAVE_NVENCODEAPI_H=yes
1921 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1924 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1925 AC_SUBST(NVENCODE_CFLAGS)
1926 CPPFLAGS="$save_CPPFLAGS"
1928 dnl libnvnidia-encode library
1929 HAVE_NVENCODE_LIB=no
1930 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1932 LIBS="$NVENCODE_LIBS $saved_LIBS"
1933 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1934 AC_MSG_WARN([Could not find library nvidia-encode]))
1935 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1936 AC_SUBST(NVENCODE_LIBS)
1940 if test "x$HAVE_CUDA_H" = "xyes" \
1941 -a "x$HAVE_CUDART_H" = "xyes" \
1942 -a "x$HAVE_CUDA_LIB" = "xyes" \
1943 -a "x$HAVE_CUDART_LIB" = "xyes" \
1944 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1945 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1947 if test x"$USE_OPENGL" = x"yes"; then
1948 dnl cuda-gl interop header
1949 save_CPPFLAGS="$CPPFLAGS"
1950 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1951 AC_CHECK_HEADER([cuda_gl_interop.h], [
1952 USE_NVENC_GST_GL="yes"
1953 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1955 CPPFLAGS="$save_CPPFLAGS"
1961 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1963 dnl check for tinyalsa
1964 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1965 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1966 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1969 dnl check for intel mediasdk
1970 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1971 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1972 AC_ARG_WITH([msdk-prefix],
1973 AS_HELP_STRING([--with-msdk-prefix],
1974 [Use the provided prefix for detecting the Intel MediaSDK]),
1975 [AS_IF([test "x$with_msdk_prefix" != "x"],
1976 [MSDK_PREFIX="$with_msdk_prefix"])],
1977 [AS_IF([test "x$MFX_HOME" != "x"],
1978 [MSDK_PREFIX="$MFX_HOME"],
1979 [MSDK_PREFIX="/opt/intel/media"])])
1980 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1981 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1982 AC_SUBST(MSDK_CFLAGS)
1985 save_CPPFLAGS="$CPPFLAGS"
1986 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1987 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1988 CPPFLAGS="$save_CPPFLAGS"
1991 LIBS="$MSDK_LIBS $LIBS"
1993 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1997 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
1999 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2000 -a "x$HAVE_MFX_LIB" = "xyes" \
2001 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2007 AM_CONDITIONAL(USE_MSDK_LIBVA,
2008 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2010 dnl *** ext plug-ins ***
2011 dnl keep this list sorted alphabetically !
2013 if test "x$BUILD_EXTERNAL" = "xyes"; then
2015 dnl *** assrender ***
2016 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2017 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2018 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2019 HAVE_ASSRENDER="yes" ], [
2023 AC_SUBST(ASSRENDER_CFLAGS)
2024 AC_SUBST(ASSRENDER_LIBS)
2026 dnl *** vo-amrwbenc ***
2027 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2028 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2029 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2032 dnl *** vo-aacenc ***
2033 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2034 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2035 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2040 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2041 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2044 AC_SUBST(BS2B_CFLAGS)
2049 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2050 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2053 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2054 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2055 AC_MSG_RESULT($HAVE_BZ2)
2057 if test "x$HAVE_BZ2" = "xyes"; then
2065 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2066 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2067 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2070 # AC_SUBST(CAIRO_CFLAGS)
2071 # AC_SUBST(CAIRO_LIBS)
2074 dnl *** chromaprint ***
2075 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2076 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2077 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2078 HAVE_CHROMAPRINT="no"
2080 AC_SUBST(CHROMAPRINT_CFLAGS)
2081 AC_SUBST(CHROMAPRINT_LIBS)
2085 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2086 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2087 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2089 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2090 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2092 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2093 [[#ifdef HAVE_SYS_TYPES_H
2094 # include <sys/types.h>
2096 #ifdef HAVE_NETINET_IN_H
2097 # include <netinet/in.h>
2100 AC_MSG_CHECKING([for socket support needed by curlsink])
2101 AC_MSG_RESULT($HAVE_CURL)
2105 AC_SUBST(CURL_CFLAGS)
2107 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2109 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2113 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2114 AC_SUBST(SSH2_CFLAGS)
2116 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2119 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2120 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2121 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2122 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2124 AC_SUBST(LIBXML2_CFLAGS)
2125 AC_SUBST(LIBXML2_LIBS)
2129 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2130 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2131 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2132 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2141 AC_SUBST(LIBDC1394_CFLAGS)
2142 AC_SUBST(LIBDC1394_LIBS)
2145 dnl *** decklink ***
2146 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2147 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2154 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2155 AC_CHECK_LIB(dl, dlopen,
2159 DECKLINK_LIBS="-lpthread -ldl"
2164 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2165 AC_CHECK_LIB(dl, dlopen,
2169 DECKLINK_LIBS="-lpthread -ldl"
2170 HAVE_DECKLINK_OSX=yes
2179 AC_SUBST(DECKLINK_CXXFLAGS)
2180 AC_SUBST(DECKLINK_LIBS)
2182 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2184 dnl **** DirectFB ****
2185 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2186 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2187 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2192 dnl **** Wayland ****
2193 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2194 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2195 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2196 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2197 if test "x$wayland_scanner" != "x"; then
2199 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2201 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2210 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2211 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2212 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2213 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2215 AC_SUBST(WEBP_CFLAGS)
2220 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2221 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2222 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2223 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2228 AC_SUBST(DAALA_CFLAGS)
2229 AC_SUBST(DAALA_LIBS)
2234 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2235 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2237 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2238 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2239 if test $HAVE_DTS = "no"; then
2240 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2241 [ DTS_LIBS="-ldts_pic $LIBM"
2242 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2248 dnl *** resindvd ***
2249 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2250 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2251 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2256 dnl **** Free AAC Encoder (FAAC) ****
2257 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2258 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2259 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2260 FAAC_LIBS="-lfaac $LIBM")
2264 dnl **** Free AAC Decoder (FAAD2) ****
2265 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2266 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2267 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2268 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2269 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2271 #elif !defined(LATM)
2272 #error Not faad2 >= 2.7
2278 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2288 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2289 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2290 if test "x$HAVE_FBDEV" != "xyes"; then
2291 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2296 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2297 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2298 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2300 HAVE_FDK_AAC_0_1_4="yes"
2301 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2303 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2308 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2309 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2310 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2311 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2313 AC_SUBST(FLITE_CFLAGS)
2314 AC_SUBST(FLITE_LIBS)
2318 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2319 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2320 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2321 if test $HAVE_GSM != "yes"; then
2322 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2323 if test $HAVE_GSM = "yes"; then
2324 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2330 dnl *** fluidSynth ***
2331 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2332 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2333 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2334 HAVE_FLUIDSYNTH="no"
2339 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2340 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2341 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2344 AC_SUBST(KATE_CFLAGS)
2346 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2349 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2355 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2356 AC_SUBST(TIGER_CFLAGS)
2357 AC_SUBST(TIGER_LIBS)
2358 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2361 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2362 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2363 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2364 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2368 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2369 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2370 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2372 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2373 if test $HAVE_LRDF = "yes"; then
2374 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2377 AC_SUBST(LRDF_CFLAGS)
2381 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2382 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2383 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2385 HAVE_LILV_0_22="yes"
2386 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2388 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2390 AC_SUBST(LILV_CFLAGS)
2394 dnl *** libde265 ***
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2396 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2397 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2398 AC_SUBST(LIBDE265_CFLAGS)
2399 AC_SUBST(LIBDE265_LIBS)
2403 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2404 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2405 dnl check with pkg-config first
2406 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2410 AC_SUBST(LIBMMS_LIBS)
2414 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2415 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2416 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2417 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2420 AC_SUBST(SRTP_CFLAGS)
2424 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2425 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2426 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2428 AC_SUBST(DTLS_CFLAGS)
2436 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2437 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2438 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2439 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2448 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2449 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2450 if test "x$HAVE_CXX" != "xyes"; then
2451 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2454 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2456 AC_SUBST(MODPLUG_CFLAGS)
2457 AC_SUBST(MODPLUG_LIBS)
2460 dnl *** mjpegtools version info ***
2461 dnl some may prefer older version (given quirks above)
2462 dnl hm, no version info seems available within mjpegtools headers
2463 dnl and API really moves along
2465 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2466 mjpegtools_api=10601
2468 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2469 mjpegtools_api=10800
2471 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2472 mjpegtools_api=20000
2474 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2475 dnl logging API changed in release candidates
2476 OLD_CFLAGS="$CFLAGS"
2478 CFLAGS="$MJPEG_CFLAGS"
2479 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2480 AC_CHECK_FUNC(mjpeg_loglev_t, [
2481 mjpegtools_api=10903
2483 mjpegtools_api=10900
2485 CFLAGS="$OLD_CFLAGS"
2493 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2494 [mjpegtools API evolution])
2496 dnl *** mpeg2enc ***
2497 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2498 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2500 dnl we require a c++ compiler for this one
2501 if [ test x$HAVE_CXX = xyes ]; then
2502 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2503 dnl since many distros include mjpegtools specifically without mplex
2504 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2505 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2506 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2508 dnl switch over to c++ to test things
2510 OLD_CPPFLAGS="$CPPFLAGS"
2512 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2513 CPPFLAGS="$CPPFLAGS_GOOD -I."
2515 mpeg2enc_headers_ok=no
2516 AC_CHECK_HEADER([mpeg2encoder.hh], [
2517 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2519 LIBS="$LIBS $MPEG2ENC_LIBS"
2520 AC_MSG_CHECKING([for valid mpeg2enc objects])
2521 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2522 #include <mpeg2encoder.hh>
2523 #include <mpeg2encoptions.hh>
2529 MPEG2EncOptions *options = new MPEG2EncOptions ();
2530 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2535 dnl so far so good, let's check more things:
2536 dnl mjpegtools-1.8.0 does not install the required
2537 dnl mpeg2syntaxcodes.h header by default, and a new release
2538 dnl is not in sight, so check for this oversight in case
2539 dnl distros or folks have fixed this themselves
2540 if test "$mjpegtools_api" -ge "10800"; then
2541 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2542 mpeg2enc_headers_ok=yes
2544 mpeg2enc_headers_ok=no
2547 mpeg2enc_headers_ok=yes
2549 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2552 CPPFLAGS="$CPPFLAGS_GOOD"
2553 AC_SUBST(MPEG2ENC_CFLAGS)
2554 AC_SUBST(MPEG2ENC_LIBS)
2561 CPPFLAGS="$OLD_CPPFLAGS"
2570 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2571 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2573 dnl we require a c++ compiler for this one
2574 if [ test x$HAVE_CXX = xyes ]; then
2575 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2576 dnl since many distros include mjpegtools specifically without mplex
2577 dnl and mpeg2enc, we check for mplex on its own, too.
2578 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2579 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2580 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2582 dnl switch over to c++ to test things
2584 OLD_CPPFLAGS="$CPPFLAGS"
2586 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2587 CPPFLAGS="$CPPFLAGS_GOOD -I."
2588 AC_CHECK_HEADER(interact.hpp, [
2589 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2591 LIBS="$LIBS $MPLEX_LIBS"
2592 OLD_LDFLAGS="$LDFLAGS"
2593 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2594 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2595 dnl don't want this here
2596 AC_MSG_CHECKING([for valid mplex objects])
2597 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2599 #include <interact.hpp>
2600 #include <outputstrm.hpp>
2601 #include <multiplexor.hpp>
2606 class TestOutputStream : public OutputStream {
2608 TestOutputStream () : OutputStream () { }
2609 void Write (uint8_t *a, unsigned int b) { }
2610 void NextSegment () { }
2611 uint64_t SegmentSize () { }
2615 MultiplexJob *job = new MultiplexJob ();
2616 vector<IBitStream *> inputs;
2617 job->SetupInputStreams (inputs);
2618 TestOutputStream *out = new TestOutputStream ();
2619 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2624 CPPFLAGS="$CPPFLAGS_GOOD"
2625 AC_SUBST(MPLEX_CFLAGS)
2626 AC_SUBST(MPLEX_LIBS)
2627 AC_SUBST(MPLEX_LDFLAGS)
2629 ],[AC_MSG_RESULT(no)],[])
2631 LDFLAGS="$OLD_LDFLAGS"
2633 CPPFLAGS="$OLD_CPPFLAGS"
2639 dnl *** musepack ***
2640 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2641 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2642 AC_CHECK_HEADER([mpc/mpcdec.h], [
2644 MUSEPACK_LIBS="-lmpcdec"
2645 AC_SUBST(MUSEPACK_LIBS)
2646 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2648 MUSEPACK_LIBS="-lmpcdec"
2649 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2650 AC_SUBST(MUSEPACK_LIBS)
2651 ], [HAVE_MUSEPACK="no"])])
2655 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2656 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2657 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2660 AC_SUBST(NEON_CFLAGS)
2665 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2666 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2667 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2670 AC_SUBST(OFA_CFLAGS)
2675 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2676 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2677 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2680 AC_SUBST(OPENAL_CFLAGS)
2681 AC_SUBST(OPENAL_LIBS)
2685 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2686 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2687 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2688 dnl and don't want the build to break when a new opencv version comes out.
2689 dnl Need to adjust this upwards once we know that our code compiles fine with
2690 dnl a new version and the no-backward-compatibility define. (There doesn't
2691 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2693 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2696 OLD_CPPFLAGS=$CPPFLAGS
2697 CPPFLAGS=$OPENCV_CFLAGS
2698 something_not_found=no
2699 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2700 opencv2/core/version.hpp \
2701 opencv2/highgui/highgui_c.h \
2702 opencv2/imgproc/imgproc.hpp \
2703 opencv2/imgproc/imgproc_c.h \
2704 opencv2/objdetect/objdetect.hpp \
2705 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2707 dnl Only required for OpenCV >= 3, we have compat code for older versions
2708 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2709 dnl check opencv_contrib headers (not always present in opencv distributions)
2710 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2711 [NOT_A_PROBLEM=yes])
2713 CPPFLAGS=$OLD_CPPFLAGS
2716 if test $something_not_found = "yes"; then
2717 AC_MSG_RESULT([not all opencv2 headers were found])
2725 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2726 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2727 AC_SUBST(OPENCV_PREFIX)
2728 AC_SUBST(OPENCV_CFLAGS)
2729 AC_SUBST(OPENCV_LIBS)
2730 dnl the OpenCV prefix is used at runtime for some object properties, and also
2731 dnl used here to detect which directory is the correct one. For the second
2732 dnl case, make sure the right sysroot is used, ensuring correct behavior
2733 dnl during cross compilation.
2734 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2735 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2737 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2742 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2743 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2744 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2747 dnl *** openh264 ***
2748 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2749 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2750 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2753 dnl *** OpenJPEG ***
2754 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2755 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2757 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2758 if test x"$HAVE_OPENJPEG" = x"yes"; then
2759 dnl minor API changes in v2.1
2760 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2761 if test x"$HAVE_OPENJPEG" = x"yes"; then
2762 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2767 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2768 HAVE_OPENJPEG="yes",
2769 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2771 if test x"$HAVE_OPENJPEG" = x"yes"; then
2772 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2775 AC_SUBST(OPENJPEG_CFLAGS)
2776 AC_SUBST(OPENJPEG_LIBS)
2780 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2781 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2782 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2783 AC_SUBST(OPENNI2_CFLAGS)
2784 AC_SUBST(OPENNI2_LIBS)
2788 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2789 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2790 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2791 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2796 AC_SUBST(OPUS_CFLAGS)
2801 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2802 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2803 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2807 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2808 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2811 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2818 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2819 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2820 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2821 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2826 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2828 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2829 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2830 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2831 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2833 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2835 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2836 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2837 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2838 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2840 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2842 if test "x$GDK_WINDOWING" = "xyes"; then
2843 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2850 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2853 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2854 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2855 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2856 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2857 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2858 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2859 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2860 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2861 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2862 AC_MSG_WARN([One of the required qt build programs was not found])
2866 HAVE_QT_WINDOWING="no"
2867 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2868 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2869 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2870 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2871 HAVE_QT_QPA_HEADER="yes"
2872 ], [AC_MSG_NOTICE([Cannot find QPA])])
2873 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2874 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2875 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2876 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2877 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2878 HAVE_QT_WINDOWING="yes"
2879 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2881 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
2882 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2883 AC_DEFINE([HAVE_QT_WAYLAND], [],
2884 [Define if Qt Wayland integration is installed])
2885 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2886 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2887 HAVE_QT_WINDOWING="yes"
2888 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2890 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2891 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2892 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2893 # c++ on android requires a standard library and there are multiple
2894 # choices. cerbero provides a pkg-config file the describes a choice
2895 # so try to use that. Outside cerbero one has to pass these flags
2896 # manually for the library one is using
2897 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2898 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2899 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2901 AC_MSG_NOTICE([Could not find Standard C++ library])])
2902 AC_DEFINE([HAVE_QT_EGLFS], [],
2903 [Define if Qt eglfs integration is installed])
2904 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2905 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2906 HAVE_QT_WINDOWING="yes"
2907 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2909 AC_DEFINE([HAVE_QT_EGLFS], [],
2910 [Define if Qt eglfs integration is installed])
2911 HAVE_QT_WINDOWING="yes"
2914 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2915 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2916 AC_DEFINE([HAVE_QT_MAC], [],
2917 [Define if Qt Mac integration is installed])
2918 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2919 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2920 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2921 HAVE_QT_WINDOWING="yes"
2922 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2924 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2925 if test "x$HAVE_IOS" = "xyes"; then
2926 # iOS doesn't have its own extras package so if we have the core
2927 # modules we are good to go
2928 AC_DEFINE([HAVE_QT_IOS], [],
2929 [Define if Qt iOS integration is installed])
2930 HAVE_QT_WINDOWING="yes"
2933 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2934 AC_MSG_WARN([Could not find any Qt Windowing integration])
2937 AC_SUBST([QT_CFLAGS])
2946 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2947 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2948 AC_CHECK_HEADER(vulkan/vulkan.h, [
2949 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2950 VULKAN_LIBS="-lvulkan"
2951 AC_SUBST(VULKAN_LIBS)
2952 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2955 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2962 dnl *** teletextdec ***
2963 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2964 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2965 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2968 dnl *** wildmidi ***
2969 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2970 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2971 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2974 WILDMIDI_LIBS="-lWildMidi")
2975 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2977 if test "x$HAVE_WILDMIDI" = "xyes"; then
2979 WILDMIDI_LIBS=-lWildMidi
2980 AC_MSG_NOTICE(compiling gstWildMidi)
2984 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2986 AC_SUBST(WILDMIDI_CFLAGS)
2987 AC_SUBST(WILDMIDI_LIBS)
2990 dnl **** Smooth Streaming ****
2991 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2992 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2993 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2995 HAVE_SMOOTHSTREAMING="yes"],
2997 HAVE_SMOOTHSTREAMING="no"])
2998 AC_SUBST(LIBXML2_CFLAGS)
2999 AC_SUBST(LIBXML2_LIBS)
3003 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3004 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3005 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3006 AC_SUBST(SNDFILE_CFLAGS)
3007 AC_SUBST(SNDFILE_LIBS)
3010 dnl *** soundtouch ***
3011 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3012 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3013 dnl We only need -lBPM on soundtouch < 1.4
3014 dnl We check for libSoundTouch since Debian used it before upstream
3015 dnl added a pkgconfig file.
3016 HAVE_SOUNDTOUCH_1_4=yes
3017 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3018 [HAVE_SOUNDTOUCH=yes],
3019 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3020 [HAVE_SOUNDTOUCH=yes],
3021 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3022 [HAVE_SOUNDTOUCH=yes
3023 HAVE_SOUNDTOUCH_1_4=no
3024 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3025 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3026 [HAVE_SOUNDTOUCH=yes],
3027 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3028 [HAVE_SOUNDTOUCH=yes
3029 HAVE_SOUNDTOUCH_1_4=no
3030 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3031 HAVE_SOUNDTOUCH=no)])])])])
3032 AC_SUBST(SOUNDTOUCH_CFLAGS)
3033 AC_SUBST(SOUNDTOUCH_LIBS)
3034 if test "x$HAVE_CXX" != "xyes"; then
3035 USE_SOUNDTOUCH=false
3036 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3038 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3039 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3040 [Defined if the available libSoundTouch is >= 1.4])
3045 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3046 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3047 AC_CHECK_HEADER(openspc.h, [
3048 AC_CHECK_LIB(openspc, OSPC_Init, [
3049 SPC_LIBS="-lopenspc"
3061 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3062 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3063 AC_CHECK_HEADER(gme/gme.h, [
3064 AC_CHECK_LIB(gme, gme_new_emu, [
3075 if test "x$HAVE_GME" = "xyes"; then
3076 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3077 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3083 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3084 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3085 AC_MSG_CHECKING([Checking for up to date dvb installation])
3086 AC_CHECK_HEADER(linux/dvb/version.h, [
3087 AC_MSG_CHECKING([for up-to-date dvb API])
3088 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3089 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3090 #error "Incompatible dvb API"
3092 ]])], [ AC_MSG_RESULT(yes)
3094 ], [ AC_MSG_RESULT(no)
3101 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3102 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3103 AC_MSG_CHECKING([Checking for ACM support])
3104 AC_CHECK_HEADERS([windows.h msacm.h],
3106 AC_SUBST(ACMENC_CFLAGS)
3107 AC_SUBST(ACMMP3DEC_CFLAGS)
3109 [AC_INCLUDES_DEFAULT
3110 #include <windows.h>])
3114 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3115 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3120 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3122 if test "$HAVE_VDPAU" = "no"; then
3123 saved_CPPFLAGS="$CPPFLAGS"
3124 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3126 if test -z "$HAVE_VDPAU_H"; then
3127 dnl Didn't find VDPAU header straight away.
3128 dnl Try /usr/include/nvidia. Need to clear caching vars first
3129 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3130 unset ac_cv_header_vdpau_vdpau_h
3131 unset ac_cv_header_vdpau_vdpau_x11_h
3132 VDPAU_CFLAGS="-I/usr/include/nvidia"
3133 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3134 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3135 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3138 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3140 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3141 dnl Found the headers - look for the lib
3142 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3144 LIBS="$VDPAU_LIBS $saved_LIBS"
3145 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3151 if test "$HAVE_VDPAU" = "yes"; then
3152 AC_MSG_NOTICE([Found up to date VDPAU installation])
3153 AC_SUBST(VDPAU_CFLAGS)
3154 AC_SUBST(VDPAU_LIBS)
3159 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3160 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3161 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3164 dnl *** schroedinger ***
3165 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3166 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3167 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3171 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3172 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3173 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3177 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3178 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3179 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3183 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3184 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3185 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3186 HAVE_SPANDSP="yes" ], [
3190 AC_SUBST(SPANDSP_CFLAGS)
3191 AC_SUBST(SPANDSP_LIBS)
3193 dnl *** hls-crypto ***
3194 AC_ARG_WITH([hls-crypto],
3195 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3196 which cryptographic library version to compile against for hls (default: auto)
3198 AS_CASE([$with_hls_crypto],
3202 [with_hls_crypto=auto]
3208 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3209 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3210 AS_CASE([$with_hls_crypto],
3212 PKG_CHECK_MODULES(NETTLE, nettle, [
3213 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3215 ],[AC_MSG_ERROR([Could not find nettle library])])
3218 AM_PATH_LIBGCRYPT([1.2.0], [
3219 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3221 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3224 PKG_CHECK_MODULES(OPENSSL, openssl, [
3225 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3227 ],[AC_MSG_ERROR([Could not find openssl library])])
3230 dnl Try to find a valid crypto library
3231 PKG_CHECK_MODULES(NETTLE, nettle, [
3232 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3235 AM_PATH_LIBGCRYPT([1.2.0], [
3236 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3239 PKG_CHECK_MODULES(OPENSSL, openssl, [
3240 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3251 dnl *** x265 (H.265/HEVC encoder) ***
3252 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3253 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3254 AG_GST_PKG_CHECK_MODULES(X265, x265)
3257 dnl *** WebRTC Audio Processing ***
3258 dnl Note: We test for a specific version as there is no API stability
3259 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3260 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3262 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3264 # On Android, C++ headers comes with the STL implementation
3265 AS_CASE(["${host}"],
3268 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3269 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3270 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3272 AC_SUBST([WEBRTCDSP_CFLAGS])
3273 AC_SUBST([WEBRTCDSP_LIBS])
3276 old_CPPFLAGS=$CPPFLAGS
3277 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3278 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3279 CPPFLAGS=$old_CPPFLAGS
3285 dnl not building plugins with external dependencies,
3286 dnl but we still need to set the conditionals
3288 AM_CONDITIONAL(USE_ASSRENDER, false)
3289 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3290 AM_CONDITIONAL(USE_VOAACENC, false)
3291 AM_CONDITIONAL(USE_BS2B, false)
3292 AM_CONDITIONAL(USE_BZ2, false)
3293 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3294 AM_CONDITIONAL(USE_CURL, false)
3295 AM_CONDITIONAL(USE_SSH2, false)
3296 AM_CONDITIONAL(USE_DASH, false)
3297 AM_CONDITIONAL(USE_DC1394, false)
3298 AM_CONDITIONAL(USE_DECKLINK, false)
3299 AM_CONDITIONAL(DECKLINK_OSX, false)
3300 AM_CONDITIONAL(USE_DIRECTFB, false)
3301 AM_CONDITIONAL(USE_WAYLAND, false)
3302 AM_CONDITIONAL(USE_DAALA, false)
3303 AM_CONDITIONAL(USE_DTS, false)
3304 AM_CONDITIONAL(USE_EXIF, false)
3305 AM_CONDITIONAL(USE_RESINDVD, false)
3306 AM_CONDITIONAL(USE_FAAC, false)
3307 AM_CONDITIONAL(USE_FAAD, false)
3308 AM_CONDITIONAL(USE_FBDEV, false)
3309 AM_CONDITIONAL(USE_FDK_AAC, false)
3310 AM_CONDITIONAL(USE_FLITE, false)
3311 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3312 AM_CONDITIONAL(USE_GL, false)
3313 AM_CONDITIONAL(USE_GSM, false)
3314 AM_CONDITIONAL(USE_GTK3, false)
3315 AM_CONDITIONAL(USE_GTK3_GL, false)
3316 AM_CONDITIONAL(USE_HLS, false)
3317 AM_CONDITIONAL(USE_IQA, false)
3318 AM_CONDITIONAL(USE_KATE, false)
3319 AM_CONDITIONAL(USE_KMS, false)
3320 AM_CONDITIONAL(USE_TIGER, false)
3321 AM_CONDITIONAL(USE_LADSPA, false)
3322 AM_CONDITIONAL(USE_LV2, false)
3323 AM_CONDITIONAL(USE_LIBDE265, false)
3324 AM_CONDITIONAL(USE_LIBMMS, false)
3325 AM_CONDITIONAL(USE_MODPLUG, false)
3326 AM_CONDITIONAL(USE_MPEG2ENC, false)
3327 AM_CONDITIONAL(USE_MPLEX, false)
3328 AM_CONDITIONAL(USE_MUSEPACK, false)
3329 AM_CONDITIONAL(USE_NEON, false)
3330 AM_CONDITIONAL(USE_OFA, false)
3331 AM_CONDITIONAL(USE_OPENAL, false)
3332 AM_CONDITIONAL(USE_OPENCV, false)
3333 AM_CONDITIONAL(USE_OPENEXR, false)
3334 AM_CONDITIONAL(USE_OPENJPEG, false)
3335 AM_CONDITIONAL(USE_OPENNI2, false)
3336 AM_CONDITIONAL(USE_OPUS, false)
3337 AM_CONDITIONAL(USE_QT, false)
3338 AM_CONDITIONAL(USE_WILDMIDI, false)
3339 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3340 AM_CONDITIONAL(USE_SNDFILE, false)
3341 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3342 AM_CONDITIONAL(USE_SPANDSP, false)
3343 AM_CONDITIONAL(USE_SPC, false)
3344 AM_CONDITIONAL(USE_SRTP, false)
3345 AM_CONDITIONAL(USE_GME, false)
3346 AM_CONDITIONAL(USE_DVB, false)
3347 AM_CONDITIONAL(USE_ACM, false)
3348 AM_CONDITIONAL(USE_VDPAU, false)
3349 AM_CONDITIONAL(USE_SBC, false)
3350 AM_CONDITIONAL(USE_SCHRO, false)
3351 AM_CONDITIONAL(USE_ZBAR, false)
3352 AM_CONDITIONAL(USE_RSVG, false)
3353 AM_CONDITIONAL(USE_RTMP, false)
3354 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3355 AM_CONDITIONAL(USE_UVCH264, false)
3356 AM_CONDITIONAL(USE_WEBP, false)
3357 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3358 AM_CONDITIONAL(USE_OPENH264, false)
3359 AM_CONDITIONAL(USE_X265, false)
3360 AM_CONDITIONAL(USE_DTLS, false)
3361 AM_CONDITIONAL(USE_VULKAN, false)
3362 AM_CONDITIONAL(USE_TTML, false)
3364 fi dnl of EXT plugins
3366 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3369 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3370 dnl GST_*: flags shared by built objects to link against GStreamer
3371 dnl GST_ALL_LDFLAGS: linker flags shared by all
3372 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3373 dnl GST_LT_LDFLAGS: library versioning of our libraries
3374 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3376 dnl GST_OPTION_CFLAGS
3377 if test "x$USE_DEBUG" = xyes; then
3380 AC_SUBST(PROFILE_CFLAGS)
3382 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3383 dnl Define _only_ during CVS (not pre-releases or releases)
3384 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3386 DEPRECATED_CFLAGS=""
3388 AC_SUBST(DEPRECATED_CFLAGS)
3390 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3391 dnl at make time with e.g. make ERROR_CFLAGS=""
3392 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3393 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3394 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3395 AC_SUBST(GST_OPTION_CFLAGS)
3396 AC_SUBST(GST_OPTION_CXXFLAGS)
3397 AC_SUBST(GST_OPTION_OBJCFLAGS)
3399 dnl FIXME: do we want to rename to GST_ALL_* ?
3400 dnl prefer internal headers to already installed ones
3401 dnl also add builddir include for enumtypes and marshal
3402 dnl add GST_OPTION_CFLAGS, but overridable
3403 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3404 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3405 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3406 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3407 AC_SUBST(GST_CFLAGS)
3408 AC_SUBST(GST_CXXFLAGS)
3409 AC_SUBST(GST_OBJCFLAGS)
3411 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3412 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3413 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3414 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3415 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3416 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3418 dnl LDFLAGS really should only contain flags, not libs - they get added before
3419 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3420 GST_ALL_LDFLAGS="-no-undefined"
3421 if test "x${enable_Bsymbolic}" = "xyes"; then
3422 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3424 AC_SUBST(GST_ALL_LDFLAGS)
3427 dnl linker flags shared by all libraries
3428 dnl LDFLAGS modifier defining exported symbols from built libraries
3429 dnl (export _gst_foo but not __gst_foo)
3430 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3431 AC_SUBST(GST_LIB_LDFLAGS)
3433 dnl this really should only contain flags, not libs - they get added before
3434 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3435 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3436 AC_SUBST(GST_PLUGIN_LDFLAGS)
3438 dnl *** output files ***
3440 $MKDIR_P tests/check/orc
3449 gst/accurip/Makefile
3450 gst/adpcmdec/Makefile
3451 gst/adpcmenc/Makefile
3453 gst/videoframe_audiolevel/Makefile
3455 gst/audiobuffersplit/Makefile
3456 gst/audiofxbad/Makefile
3457 gst/audiomixer/Makefile
3458 gst/audiovisualizers/Makefile
3459 gst/autoconvert/Makefile
3461 gst/camerabin2/Makefile
3462 gst/coloreffects/Makefile
3463 gst/debugutils/Makefile
3464 gst/dvbsuboverlay/Makefile
3466 gst/festival/Makefile
3467 gst/fieldanalysis/Makefile
3468 gst/freeverb/Makefile
3470 gst/gaudieffects/Makefile
3471 gst/geometrictransform/Makefile
3475 gst/interlace/Makefile
3476 gst/ivfparse/Makefile
3478 gst/jp2kdecimator/Makefile
3479 gst/jpegformat/Makefile
3482 gst/mpegdemux/Makefile
3483 gst/mpegtsdemux/Makefile
3484 gst/mpegtsmux/Makefile
3485 gst/mpegtsmux/tsmux/Makefile
3486 gst/mpegpsmux/Makefile
3490 gst/pcapparse/Makefile
3492 gst/rawparse/Makefile
3493 gst/removesilence/Makefile
3495 gst/segmentclip/Makefile
3501 gst/timecode/Makefile
3502 gst/videofilters/Makefile
3503 gst/videoparsers/Makefile
3504 gst/videosignal/Makefile
3508 gst/compositor/Makefile
3510 gst-libs/gst/Makefile
3511 gst-libs/gst/adaptivedemux/Makefile
3512 gst-libs/gst/basecamerabinsrc/Makefile
3513 gst-libs/gst/gl/Makefile
3514 gst-libs/gst/gl/android/Makefile
3515 gst-libs/gst/gl/cocoa/Makefile
3516 gst-libs/gst/gl/dispmanx/Makefile
3517 gst-libs/gst/gl/glprototypes/Makefile
3518 gst-libs/gst/gl/eagl/Makefile
3519 gst-libs/gst/gl/egl/Makefile
3520 gst-libs/gst/gl/wayland/Makefile
3521 gst-libs/gst/gl/win32/Makefile
3522 gst-libs/gst/gl/x11/Makefile
3523 gst-libs/gst/insertbin/Makefile
3524 gst-libs/gst/interfaces/Makefile
3525 gst-libs/gst/codecparsers/Makefile
3526 gst-libs/gst/mpegts/Makefile
3527 gst-libs/gst/uridownloader/Makefile
3528 gst-libs/gst/wayland/Makefile
3529 gst-libs/gst/base/Makefile
3530 gst-libs/gst/player/Makefile
3531 gst-libs/gst/video/Makefile
3532 gst-libs/gst/audio/Makefile
3533 gst-libs/gst/opencv/Makefile
3535 sys/dshowdecwrapper/Makefile
3537 sys/acmmp3dec/Makefile
3538 sys/androidmedia/Makefile
3539 sys/applemedia/Makefile
3541 sys/d3dvideosink/Makefile
3542 sys/decklink/Makefile
3543 sys/directsound/Makefile
3544 sys/dshowsrcwrapper/Makefile
3545 sys/dshowvideosink/Makefile
3551 sys/opensles/Makefile
3553 sys/tinyalsa/Makefile
3554 sys/uvch264/Makefile
3559 sys/winscreencap/Makefile
3561 tests/check/Makefile
3562 tests/files/Makefile
3563 tests/examples/Makefile
3564 tests/examples/avsamplesink/Makefile
3565 tests/examples/camerabin2/Makefile
3566 tests/examples/codecparsers/Makefile
3567 tests/examples/directfb/Makefile
3568 tests/examples/gl/Makefile
3569 tests/examples/gl/cocoa/Makefile
3570 tests/examples/gl/clutter/Makefile
3571 tests/examples/gl/generic/Makefile
3572 tests/examples/gl/generic/cube/Makefile
3573 tests/examples/gl/generic/cubeyuv/Makefile
3574 tests/examples/gl/generic/doublecube/Makefile
3575 tests/examples/gl/generic/recordgraphic/Makefile
3576 tests/examples/gl/gtk/Makefile
3577 tests/examples/gl/gtk/3dvideo/Makefile
3578 tests/examples/gl/gtk/filternovideooverlay/Makefile
3579 tests/examples/gl/gtk/filtervideooverlay/Makefile
3580 tests/examples/gl/gtk/fxtest/Makefile
3581 tests/examples/gl/gtk/switchvideooverlay/Makefile
3582 tests/examples/gl/qt/Makefile
3583 tests/examples/gl/sdl/Makefile
3584 tests/examples/gtk/Makefile
3585 tests/examples/mpegts/Makefile
3586 tests/examples/mxf/Makefile
3587 tests/examples/opencv/Makefile
3588 tests/examples/uvch264/Makefile
3589 tests/examples/waylandsink/Makefile
3590 tests/icles/Makefile
3591 ext/voamrwbenc/Makefile
3592 ext/voaacenc/Makefile
3593 ext/assrender/Makefile
3596 ext/chromaprint/Makefile
3600 ext/directfb/Makefile
3601 ext/wayland/Makefile
3610 ext/fluidsynth/Makefile
3617 ext/libde265/Makefile
3620 ext/modplug/Makefile
3621 ext/mpeg2enc/Makefile
3623 ext/musepack/Makefile
3628 ext/openexr/Makefile
3629 ext/openh264/Makefile
3630 ext/openjpeg/Makefile
3631 ext/openni2/Makefile
3635 ext/resindvd/Makefile
3638 ext/schroedinger/Makefile
3639 ext/smoothstreaming/Makefile
3640 ext/sndfile/Makefile
3641 ext/soundtouch/Makefile
3642 ext/spandsp/Makefile
3644 ext/teletextdec/Makefile
3647 ext/wildmidi/Makefile
3649 ext/vulkan/xcb/Makefile
3650 ext/vulkan/wayland/Makefile
3655 ext/webrtcdsp/Makefile
3659 docs/plugins/Makefile
3661 docs/version.entities
3663 pkgconfig/gstreamer-plugins-bad.pc
3664 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3665 pkgconfig/gstreamer-codecparsers.pc
3666 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3667 pkgconfig/gstreamer-insertbin.pc
3668 pkgconfig/gstreamer-insertbin-uninstalled.pc
3669 pkgconfig/gstreamer-gl.pc
3670 pkgconfig/gstreamer-gl-uninstalled.pc
3671 pkgconfig/gstreamer-mpegts.pc
3672 pkgconfig/gstreamer-mpegts-uninstalled.pc
3673 pkgconfig/gstreamer-player.pc
3674 pkgconfig/gstreamer-player-uninstalled.pc
3675 pkgconfig/gstreamer-wayland.pc
3676 pkgconfig/gstreamer-wayland-uninstalled.pc
3677 pkgconfig/gstreamer-bad-base.pc
3678 pkgconfig/gstreamer-bad-base-uninstalled.pc
3679 pkgconfig/gstreamer-bad-video.pc
3680 pkgconfig/gstreamer-bad-video-uninstalled.pc
3681 pkgconfig/gstreamer-bad-audio.pc
3682 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3689 AG_GST_OUTPUT_PLUGINS