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.2.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, 1102, 0, 1102)
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(audiomixmatrix)
474 AG_GST_CHECK_PLUGIN(compositor)
475 AG_GST_CHECK_PLUGIN(audiovisualizers)
476 AG_GST_CHECK_PLUGIN(autoconvert)
477 AG_GST_CHECK_PLUGIN(bayer)
478 AG_GST_CHECK_PLUGIN(camerabin2)
479 AG_GST_CHECK_PLUGIN(coloreffects)
480 AG_GST_CHECK_PLUGIN(debugutils)
481 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
482 AG_GST_CHECK_PLUGIN(dvdspu)
483 AG_GST_CHECK_PLUGIN(festival)
484 AG_GST_CHECK_PLUGIN(fieldanalysis)
485 AG_GST_CHECK_PLUGIN(freeverb)
486 AG_GST_CHECK_PLUGIN(frei0r)
487 AG_GST_CHECK_PLUGIN(gaudieffects)
488 AG_GST_CHECK_PLUGIN(geometrictransform)
489 AG_GST_CHECK_PLUGIN(gdp)
490 AG_GST_CHECK_PLUGIN(id3tag)
491 AG_GST_CHECK_PLUGIN(inter)
492 AG_GST_CHECK_PLUGIN(interlace)
493 AG_GST_CHECK_PLUGIN(ivfparse)
494 AG_GST_CHECK_PLUGIN(ivtc)
495 AG_GST_CHECK_PLUGIN(jp2kdecimator)
496 AG_GST_CHECK_PLUGIN(jpegformat)
497 AG_GST_CHECK_PLUGIN(librfb)
498 AG_GST_CHECK_PLUGIN(midi)
499 AG_GST_CHECK_PLUGIN(mpegdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsmux)
502 AG_GST_CHECK_PLUGIN(mpegpsmux)
503 AG_GST_CHECK_PLUGIN(mxf)
504 AG_GST_CHECK_PLUGIN(netsim)
505 AG_GST_CHECK_PLUGIN(onvif)
506 AG_GST_CHECK_PLUGIN(pcapparse)
507 AG_GST_CHECK_PLUGIN(pnm)
508 AG_GST_CHECK_PLUGIN(rawparse)
509 AG_GST_CHECK_PLUGIN(removesilence)
510 AG_GST_CHECK_PLUGIN(sdp)
511 AG_GST_CHECK_PLUGIN(segmentclip)
512 AG_GST_CHECK_PLUGIN(siren)
513 AG_GST_CHECK_PLUGIN(smooth)
514 AG_GST_CHECK_PLUGIN(speed)
515 AG_GST_CHECK_PLUGIN(subenc)
516 AG_GST_CHECK_PLUGIN(stereo)
517 AG_GST_CHECK_PLUGIN(timecode)
518 AG_GST_CHECK_PLUGIN(videofilters)
519 AG_GST_CHECK_PLUGIN(videoparsers)
520 AG_GST_CHECK_PLUGIN(videosignal)
521 AG_GST_CHECK_PLUGIN(vmnc)
522 AG_GST_CHECK_PLUGIN(y4m)
523 AG_GST_CHECK_PLUGIN(yadif)
525 dnl *** plug-ins to exclude ***
527 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
528 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
529 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
530 AC_CHECK_HEADER(QTKit/QTKit.h, HAVE_QTKIT="yes", HAVE_QTKIT="no", [-])
532 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
534 LIBS="$LIBS -framework VideoToolbox"
535 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
536 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
542 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
543 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
544 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
547 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
548 if test "x$HAVE_IOS" = "xyes"; then
549 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
552 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
553 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
554 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
557 AM_CONDITIONAL(HAVE_QTKIT, test "x$HAVE_QTKIT" = "xyes")
558 if test "x$HAVE_QTKIT" = "xyes"; then
559 AC_DEFINE(HAVE_QTKIT, 1, [Define if building with QTKit])
561 dnl disable gst plugins we might not be able to build on this
562 dnl platform: (ugly but minimally invasive)
563 dnl FIXME: maybe move to sys, or make work with winsock2
564 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
565 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
567 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
568 WINSOCK2_LIBS="-lws2_32"
569 AC_SUBST(WINSOCK2_LIBS)
573 AC_ARG_ENABLE([opengl],
574 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
575 [case "${enableval}" in
578 auto) NEED_GL=auto ;;
579 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
580 esac],[NEED_GL=auto])
582 AC_ARG_WITH([opengl-module-name],
583 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
584 if test x$with_opengl_module_name != x; then
585 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
588 AC_ARG_ENABLE([gles2],
589 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
590 [case "${enableval}" in
591 yes) NEED_GLES2=yes ;;
593 auto) NEED_GLES2=auto ;;
594 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
595 esac],[NEED_GLES2=auto])
597 AC_ARG_WITH([gles2-module-name],
598 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
599 if test x$with_gles2_module_name != x; then
600 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
604 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
605 [case "${enableval}" in
608 auto) NEED_EGL=auto ;;
609 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
610 esac],[NEED_EGL=auto])
612 AC_ARG_WITH([egl-module-name],
613 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
614 if test x$with_egl_module_name != x; then
615 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
619 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
620 [case "${enableval}" in
623 auto) NEED_WGL=auto ;;
624 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
625 esac],[NEED_WGL=auto])
628 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
629 [case "${enableval}" in
632 auto) NEED_GLX=auto ;;
633 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
634 esac],[NEED_GLX=auto])
636 AC_ARG_ENABLE([cocoa],
637 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
638 [case "${enableval}" in
639 yes) NEED_COCOA=yes ;;
641 auto) NEED_COCOA=auto ;;
642 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
643 esac],[NEED_COCOA=auto])
646 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
647 [case "${enableval}" in
650 auto) NEED_X11=auto ;;
651 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
652 esac],[NEED_X11=auto])
654 AC_ARG_ENABLE([wayland],
655 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
656 [case "${enableval}" in
657 yes) NEED_WAYLAND_EGL=yes ;;
658 no) NEED_WAYLAND_EGL=no ;;
659 auto) NEED_WAYLAND_EGL=auto ;;
660 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
661 esac],[NEED_WAYLAND_EGL=auto])
663 AC_ARG_ENABLE([dispmanx],
664 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
665 [case "${enableval}" in
666 yes) NEED_DISPMANX=yes ;;
667 no) NEED_DISPMANX=no ;;
668 auto) NEED_DISPMANX=auto ;;
669 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
670 esac],[NEED_DISPMANX=auto])
672 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
673 save_CPPFLAGS="$CPPFLAGS"
686 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
687 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
688 if test "x$HAVE_WGLEXT" = "xyes"; then
694 if test "x$NEED_GL" != "xno"; then
695 AG_GST_PKG_CHECK_MODULES(GL, gl)
696 if test "x$HAVE_GL" != "xyes"; then
697 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
700 if test "x$NEED_GLES2" != "xno"; then
701 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
702 if test "x$HAVE_GLES2" != "xyes"; then
703 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
705 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
707 if test "x$NEED_EGL" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(EGL, egl)
709 if test "x$HAVE_EGL" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
717 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
718 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
719 LIBS="$LIBS -lvcos -lvchiq_arm"
720 AC_CHECK_LIB([bcm_host], [bcm_host_init],
722 LIBS="$LIBS -lbcm_host"
723 AC_CHECK_HEADER(bcm_host.h,
725 LIBS="$LIBS -lGLESv2"
726 AC_CHECK_LIB([EGL], [eglGetProcAddress],
729 AC_CHECK_HEADER([EGL/egl.h],
731 AC_CHECK_LIB([GLESv2], [glEnable],
733 AC_CHECK_HEADER([GLES2/gl2.h],
738 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
740 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
751 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)
753 # OS X and iOS always have GL available
756 if test "x$HAVE_IOS" = "xyes"; then
766 CPPFLAGS="$save_CPPFLAGS"
780 dnl Check for what the user asked for and what we could find
781 if test "x$HAVE_EGL" = "xno"; then
782 if test "x$NEED_EGL" = "xyes"; then
783 AC_MSG_ERROR([Could not find the required EGL libraries])
787 if test "x$HAVE_GL" = "xno"; then
788 if test "x$NEED_GL" = "xyes"; then
789 AC_MSG_ERROR([Could not find the required OpenGL libraries])
793 if test "x$HAVE_GLES2" = "xno"; then
794 if test "x$NEED_GLES2" = "xyes"; then
795 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
799 dnl X, GLX and OpenGL
800 if test "x$HAVE_X11_XCB" = "xno"; then
801 if test "x$NEED_GLX" = "xyes"; then
802 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
804 if test "x$NEED_X11" = "xyes"; then
805 AC_MSG_ERROR([Could not find X11 development libraries])
808 if test "x$NEED_GL" != "xno"; then
809 if test "x$HAVE_GL" = "xno"; then
810 if test "x$NEED_GLX" = "xyes"; then
811 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
815 if test "x$NEED_GLX" != "xno"; then
822 dnl check for DMABUF support
823 HAVE_DRM_FOURCC_HEADER=no
824 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
825 HAVE_DRM_FOURCC_HEADER=yes, )
827 HAVE_GST_ALLOCATORS=no
828 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
829 HAVE_GST_ALLOCATORS=yes, )
832 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
833 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
834 "x$HAVE_EGL" = "xyes"; then
838 dnl check if we can include both GL and GLES2 at the same time
839 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
841 if test "x$HAVE_GLES3_H" == "xyes"; then
846 # pragma GCC diagnostic push
847 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
849 #ifndef GL_GLEXT_PROTOTYPES
850 #define GL_GLEXT_PROTOTYPES 1
853 # include <OpenGLES/ES2/gl.h>
854 # include <OpenGLES/ES2/glext.h>
857 # include <GLES3/gl3.h>
858 # include <GLES3/gl3ext.h>
860 # include <GLES2/gl2.h>
861 # include <GLES2/gl2ext.h>
865 # include <OpenGL/OpenGL.h>
866 # include <OpenGL/gl.h>
867 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
868 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
869 # include <OpenGL/gl3.h>
873 # if __WIN32__ || _WIN32
874 # include <GL/glext.h>
877 int main (int argc, char **argv) { return 0; }
879 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
880 save_CFLAGS="$CFLAGS"
881 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
882 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
883 #if !defined(GL_FALSE)
884 #error Failed to include GL headers
886 ]])],[ AC_MSG_RESULT(yes)
888 if test "x$NEED_GLES2" = "xyes"; then
889 if test "x$NEED_GL" = "xyes"; then
890 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
892 AC_MSG_WARN([Disabling Desktop GL support])
896 AC_MSG_WARN([Disabling GL|ES 2.0 support])
901 CFLAGS="$save_CFLAGS"
904 #dnl Check for OpenGL
908 if test "x$NEED_WGL" = "xyes"; then
909 AC_MSG_ERROR([WGL is not available on Android])
911 if test "x$NEED_GLX" = "xyes"; then
912 AC_MSG_ERROR([GLX is not available on Android])
914 if test "x$NEED_GL" = "xyes"; then
915 AC_MSG_ERROR([GL is not available on Android])
917 if test "x$NEED_X11" = "xyes"; then
918 AC_MSG_ERROR([X11 is not available on Android])
920 if test "x$NEED_COCOA" = "xyes"; then
921 AC_MSG_ERROR([Cocoa is not available on Android])
925 if test "x$HAVE_GLES2" = "xyes"; then
926 if test "x$NEED_GLES2" != "xno"; then
927 GL_LIBS="$GL_LIBS -lGLESv2"
933 if test "x$HAVE_EGL" = "xyes"; then
934 if test "x$NEED_EGL" != "xno"; then
935 GL_LIBS="$GL_LIBS -lEGL"
940 if test "x$USE_EGL" != "xyes"; then
941 AC_MSG_ERROR([Need EGL on Android])
944 if test "x$USE_GLES2" != "xyes"; then
945 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
948 HAVE_WINDOW_ANDROID=yes
950 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
951 if test "x$NEED_WGL" = "xyes"; then
952 AC_MSG_ERROR([WGL is not available on unix])
955 if test "x$HAVE_X11_XCB" = "xno"; then
956 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
957 AC_MSG_WARN([X or Wayland is required for OpenGL support])
961 dnl check Desktop OpenGL
962 if test "x$HAVE_GL" = "xyes"; then
963 if test "x$NEED_GL" != "xno"; then
964 GL_LIBS="$GL_LIBS -lGL"
969 if test "x$HAVE_GLES2" = "xyes"; then
970 if test "x$NEED_GLES2" != "xno"; then
971 GL_LIBS="$GL_LIBS -lGLESv2"
976 if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
977 if test "x$NEED_X11" != "xno"; then
978 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
979 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
984 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
985 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
986 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
988 if test "x$NEED_WAYLAND_EGL" != "xno"; then
989 HAVE_WINDOW_WAYLAND=yes
990 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
991 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
996 if test "x$HAVE_EGL_RPI" = "xyes"; then
997 if test "x$NEED_DISPMANX" != "xno"; then
998 HAVE_WINDOW_DISPMANX=yes
1004 if test "x$HAVE_EGL" = "xno"; then
1005 if test "x$HAVE_GL" = "xno"; then
1006 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1009 if test "x$NEED_EGL" != "xno"; then
1010 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1011 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1012 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1019 if test "x$HAVE_IOS" = "xyes"; then
1020 if test "x$NEED_WGL" = "xyes"; then
1021 AC_MSG_ERROR([WGL is not available on iOS])
1023 if test "x$NEED_GLX" = "xyes"; then
1024 AC_MSG_ERROR([GLX is not available on iOS])
1026 if test "x$NEED_GL" = "xyes"; then
1027 AC_MSG_ERROR([GL is not available on iOS])
1029 if test "x$NEED_X11" = "xyes"; then
1030 AC_MSG_ERROR([X11 is not available on iOS])
1032 if test "x$NEED_COCOA" = "xyes"; then
1033 AC_MSG_ERROR([Cocoa is not available on iOS])
1035 if test "x$NEED_EGL" = "xyes"; then
1036 AC_MSG_ERROR([EGL is not available on iOS])
1039 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1040 GL_CFLAGS="$GL_CFLAGS"
1043 HAVE_WINDOW_EAGL=yes
1045 ac_cv_type_GLsizeiptr=yes
1046 ac_cv_type_GLintptr=yes
1047 ac_cv_type_GLchar=yes
1049 dnl Only osx supports cocoa.
1050 if test "x$NEED_WGL" = "xyes"; then
1051 AC_MSG_ERROR([WGL is not available on Mac OS X])
1054 if test "x$NEED_COCOA" != "xno"; then
1055 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1056 GL_CFLAGS="$GL_CFLAGS"
1058 HAVE_WINDOW_COCOA=yes
1062 if test "x$USE_GLX" = "xyes"; then
1063 if test "x$HAVE_X11_XCB" = "xyes"; then
1064 if test "x$NEED_X11" != "xno"; then
1065 GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1066 GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1071 if test "x$HAVE_GL" = "xyes"; then
1072 if test "x$NEED_GL" != "xno"; then
1073 GL_LIBS="$GL_LIBS -lGL"
1079 if test "x$HAVE_EGL" = "xyes"; then
1080 if test "x$NEED_EGL" != "xno"; then
1081 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1082 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1083 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1090 if test "x$HAVE_GLES2" = "xyes"; then
1091 if test "x$NEED_GLES2" != "xno"; then
1092 GL_LIBS="$GL_LIBS -lGLESv2"
1099 if test "x$NEED_GLX" = "xyes"; then
1100 AC_MSG_ERROR([GLX is not available on Windows])
1102 if test "x$NEED_GLES2" = "xyes"; then
1103 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1106 if test "x$HAVE_GL" = "xyes"; then
1107 if test "x$NEED_GL" != "xno"; then
1108 if test "x$HAVE_WGL" = "xyes"; then
1109 if test "$NEED_WGL" != "xno"; then
1110 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1111 HAVE_WINDOW_WIN32=yes
1120 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1131 GST_GL_HAVE_OPENGL=0
1135 if test "x$USE_OPENGL" = "xyes"; then
1136 GL_APIS="gl $GL_APIS"
1137 GST_GL_HAVE_OPENGL=1
1139 if test "x$USE_GLES2" = "xyes"; then
1140 GL_APIS="gles2 $GL_APIS"
1142 if test "x$HAVE_GLES3_H" = "xyes"; then
1147 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1148 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1149 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1150 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1155 GST_GL_HAVE_WINDOW_X11=0
1156 GST_GL_HAVE_WINDOW_COCOA=0
1157 GST_GL_HAVE_WINDOW_WIN32=0
1158 GST_GL_HAVE_WINDOW_WAYLAND=0
1159 GST_GL_HAVE_WINDOW_ANDROID=0
1160 GST_GL_HAVE_WINDOW_DISPMANX=0
1161 GST_GL_HAVE_WINDOW_EAGL=0
1163 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1164 GL_WINDOWS="x11 $GL_WINDOWS"
1165 GST_GL_HAVE_WINDOW_X11=1
1167 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1168 GL_WINDOWS="cocoa $GL_WINDOWS"
1169 GST_GL_HAVE_WINDOW_COCOA=1
1171 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1172 GL_WINDOWS="win32 $GL_WINDOWS"
1173 GST_GL_HAVE_WINDOW_WIN32=1
1175 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1176 GL_WINDOWS="wayland $GL_WINDOWS"
1177 GST_GL_HAVE_WINDOW_WAYLAND=1
1179 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1180 GL_WINDOWS="android $GL_WINDOWS"
1181 GST_GL_HAVE_WINDOW_ANDROID=1
1183 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1184 GL_WINDOWS="dispmanx $GL_WINDOWS"
1185 GST_GL_HAVE_WINDOW_DISPMANX=1
1187 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1188 GL_WINDOWS="eagl $GL_WINDOWS"
1189 GST_GL_HAVE_WINDOW_EAGL=1
1192 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1193 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1194 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1195 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1196 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1197 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1198 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1199 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1204 GST_GL_HAVE_PLATFORM_EGL=0
1205 GST_GL_HAVE_PLATFORM_GLX=0
1206 GST_GL_HAVE_PLATFORM_WGL=0
1207 GST_GL_HAVE_PLATFORM_CGL=0
1208 GST_GL_HAVE_PLATFORM_EAGL=0
1210 if test "x$USE_EGL" = "xyes"; then
1211 GL_PLATFORMS="egl $GL_PLATFORMS"
1212 GST_GL_HAVE_PLATFORM_EGL=1
1214 if test "x$USE_GLX" = "xyes"; then
1215 GL_PLATFORMS="glx $GL_PLATFORMS"
1216 GST_GL_HAVE_PLATFORM_GLX=1
1218 if test "x$USE_WGL" = "xyes"; then
1219 GL_PLATFORMS="wgl $GL_PLATFORMS"
1220 GST_GL_HAVE_PLATFORM_WGL=1
1222 if test "x$USE_COCOA" = "xyes"; then
1223 GL_PLATFORMS="cgl $GL_PLATFORMS"
1224 GST_GL_HAVE_PLATFORM_CGL=1
1226 if test "x$USE_EAGL" = "xyes"; then
1227 GL_PLATFORMS="eagl $GL_PLATFORMS"
1228 GST_GL_HAVE_PLATFORM_EAGL=1
1231 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1232 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1233 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1234 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1235 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1236 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1239 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1240 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1243 dnl Check for no platforms/window systems
1244 if test "x$GL_APIS" = "x"; then
1245 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1247 if test "x$GL_PLATFORMS" = "x"; then
1248 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1250 if test "x$GL_WINDOWS" = "x"; then
1251 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1254 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1269 HAVE_WINDOW_WIN32=no
1270 HAVE_WINDOW_DISPMANX=no
1271 HAVE_WINDOW_WAYLAND=no
1272 HAVE_WINDOW_ANDROID=no
1273 HAVE_WINDOW_COCOA=no
1278 AC_SUBST(GL_PLATFORMS)
1279 AC_SUBST(GL_WINDOWS)
1282 AC_SUBST(GL_OBJCFLAGS)
1283 AC_SUBST(USE_OPENGL)
1286 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1287 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1288 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1289 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1290 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1291 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1292 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1294 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1295 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1296 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1297 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1298 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1299 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1300 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1301 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1302 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1304 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1306 dnl Check for some types that are not always present
1308 if test "x$USE_GLES2" = "xyes"; then
1309 GL_INCLUDES="$GL_INCLUDES
1310 #ifndef GL_GLEXT_PROTOTYPES
1311 #define GL_GLEXT_PROTOTYPES 1
1314 # include <OpenGLES/ES2/gl.h>
1315 # include <OpenGLES/ES2/glext.h>
1317 # if $GST_GL_HAVE_GLES3
1318 # include <GLES3/gl3.h>
1319 # include <GLES3/gl3ext.h>
1321 # include <GLES2/gl2.h>
1322 # include <GLES2/gl2ext.h>
1328 if test "x$USE_OPENGL" = "xyes"; then
1329 GL_INCLUDES="$GL_INCLUDES
1331 # include <OpenGL/OpenGL.h>
1332 # include <OpenGL/gl.h>
1335 # if __WIN32__ || _WIN32
1336 # include <GL/glext.h>
1342 GST_GL_HAVE_GLEGLIMAGEOES=0
1343 GST_GL_HAVE_GLCHAR=0
1344 GST_GL_HAVE_GLSIZEIPTR=0
1345 GST_GL_HAVE_GLINTPTR=0
1346 GST_GL_HAVE_GLSYNC=0
1347 GST_GL_HAVE_GLUINT64=0
1348 GST_GL_HAVE_GLINT64=0
1349 GST_GL_HAVE_EGLATTRIB=0
1352 CFLAGS="$GL_CFLAGS $CFLAGS"
1354 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1355 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1356 GST_GL_HAVE_GLEGLIMAGEOES=1
1359 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1360 if test "x$ac_cv_type_GLchar" = "xyes"; then
1361 GST_GL_HAVE_GLCHAR=1
1364 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1365 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1366 GST_GL_HAVE_GLSIZEIPTR=1
1369 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1370 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1371 GST_GL_HAVE_GLINTPTR=1
1374 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1375 if test "x$ac_cv_type_GLsync" = "xyes"; then
1376 GST_GL_HAVE_GLSYNC=1
1379 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1380 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1381 GST_GL_HAVE_GLUINT64=1
1384 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1385 if test "x$ac_cv_type_GLint64" = "xyes"; then
1386 GST_GL_HAVE_GLINT64=1
1389 if test "x$USE_EGL" = "xyes"; then
1390 EGL_INCLUDES="$GL_INCLUDES
1391 #include <EGL/egl.h>
1392 #include <EGL/eglext.h>
1394 AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1395 if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1396 GST_GL_HAVE_EGLATTRIB=1
1402 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1403 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1404 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1405 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1406 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1407 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1408 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1409 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1410 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1413 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1414 outfile=gstglconfig.h-tmp
1415 cat > $outfile <<\_______EOF
1418 * This is a generated file. Please modify `configure.ac'
1421 #ifndef __GST_GL_CONFIG_H__
1422 #define __GST_GL_CONFIG_H__
1424 #include <gst/gst.h>
1430 cat >>$outfile <<_______EOF
1434 cat >>$outfile <<_______EOF
1438 #endif /* __GST_GL_CONFIG_H__ */
1442 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1443 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1446 mv $outfile gst-libs/gst/gl/gstglconfig.h
1449 gl_config_defines='$GL_CONFIG_DEFINES'
1452 dnl libpng is optional
1453 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1454 if test "x$HAVE_PNG" = "xyes"; then
1455 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1458 AC_SUBST(LIBPNG_LIBS)
1459 AC_SUBST(LIBPNG_CFLAGS)
1460 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1462 dnl libjpeg is optional
1463 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1465 if test x$with_jpeg_mmx != x; then
1466 LIBS="$LIBS -L$with_jpeg_mmx"
1468 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1469 JPEG_LIBS="$LIBS -ljpeg-mmx"
1471 if test x$HAVE_JPEG != xyes; then
1473 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1476 if test x$HAVE_JPEG = xyes; then
1477 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1479 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1484 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1487 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1488 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1490 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1491 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1492 VULKAN_CONFIG_DEFINES="
1493 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1494 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1496 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1497 outfile=vkconfig.h-tmp
1498 cat > $outfile <<\_______EOF
1501 * This is a generated file. Please modify `configure.ac'
1504 #ifndef __GST_VULKAN_CONFIG_H__
1505 #define __GST_VULKAN_CONFIG_H__
1507 #include <gst/gst.h>
1513 cat >>$outfile <<_______EOF
1514 $vulkan_config_defines
1517 cat >>$outfile <<_______EOF
1521 #endif /* __GST_VULKAN_CONFIG_H__ */
1525 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1526 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1529 mv $outfile ext/vulkan/vkconfig.h
1532 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1535 dnl *** sys plug-ins ***
1538 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1539 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1540 HAVE_DIRECTSOUND="no"
1541 save_CFLAGS="$CFLAGS"
1542 save_LDFLAGS="$LDFLAGS"
1544 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1545 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1546 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1547 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1548 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1549 #include <windows.h>
1552 #include <mmsystem.h>
1554 DXGetErrorString9 (0);
1555 DirectSoundCreate(NULL, NULL, NULL);
1557 [HAVE_DIRECTSOUND="yes"],
1558 [HAVE_DIRECTSOUND="no"])
1559 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1561 LDFLAGS=$save_LDFLAGS
1564 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1565 dnl this is much more than we want
1566 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1567 AC_SUBST(DIRECTX_CFLAGS)
1568 AC_SUBST(DIRECTX_LDFLAGS)
1569 AC_SUBST(DIRECTSOUND_LIBS)
1571 AC_SUBST(HAVE_DIRECTSOUND)
1575 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1576 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1578 save_CFLAGS="$CFLAGS"
1579 save_LDFLAGS="$LDFLAGS"
1581 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1582 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1583 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1584 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1585 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1586 #include <windows.h>
1588 #include <mmsystem.h>
1589 #include <mmdeviceapi.h>
1595 hr = CoInitialize(NULL);
1597 printf("CoInitialize failed: hr = 0x%08x", hr);
1602 // result = do_everything(argc, argv);
1608 [HAVE_WASAPI="yes"],
1610 AC_MSG_RESULT($HAVE_WASAPI)
1612 LDFLAGS=$save_LDFLAGS
1615 if test "x$HAVE_WASAPI" = "xyes"; then
1616 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1617 AC_SUBST(WASAPI_LIBS)
1619 AC_SUBST(HAVE_WASAPI)
1623 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1624 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1626 save_CFLAGS="$CFLAGS"
1627 save_LDFLAGS="$LDFLAGS"
1629 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1630 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1631 LIBS="$LIBS -ld3d9 -lgdi32"
1632 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1633 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1634 #include <windows.h>
1637 Direct3DCreate9(D3D_SDK_VERSION);
1639 [HAVE_DIRECT3D="yes"],
1640 [HAVE_DIRECT3D="no"])
1641 AC_MSG_RESULT($HAVE_DIRECT3D)
1643 LDFLAGS=$save_LDFLAGS
1646 if test "x$HAVE_DIRECT3D" = "xyes"; then
1647 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1648 AC_SUBST(DIRECT3D_LIBS)
1650 AC_SUBST(HAVE_DIRECT3D)
1654 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1655 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1656 HAVE_WINSCREENCAP="no"
1657 save_CFLAGS="$CFLAGS"
1658 save_LDFLAGS="$LDFLAGS"
1660 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1661 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1662 LIBS="$LIBS -ld3d9 -lgdi32"
1663 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1664 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1665 #include <windows.h>
1668 Direct3DCreate9(D3D_SDK_VERSION);
1670 [HAVE_WINSCREENCAP="yes"],
1671 [HAVE_WINSCREENCAP="no"])
1672 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1674 LDFLAGS=$save_LDFLAGS
1677 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1678 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1679 AC_SUBST(WINSCREENCAP_LIBS)
1681 AC_SUBST(HAVE_WINSCREENCAP)
1685 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1686 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1688 save_CFLAGS="$CFLAGS"
1689 save_LDFLAGS="$LDFLAGS"
1691 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1692 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1693 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1694 AC_MSG_CHECKING(for Winks LDFLAGS)
1695 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1696 #include <windows.h>
1701 IGraphBuilder *pGraph = NULL;
1702 HRESULT hr = CoInitialize(NULL);
1703 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1704 &IID_IGraphBuilder, (void **)&pGraph);
1711 AC_MSG_RESULT($HAVE_WINKS)
1713 LDFLAGS=$save_LDFLAGS
1716 if test "x$HAVE_WINKS" = "xyes"; then
1717 dnl this is much more than we want
1718 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1719 AC_SUBST(DIRECTX_CFLAGS)
1720 AC_SUBST(DIRECTX_LDFLAGS)
1721 AC_SUBST(WINKS_LIBS)
1723 AC_SUBST(HAVE_WINKS)
1726 dnl *** Android Media ***
1727 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1728 HAVE_ANDROID_MEDIA="no"
1729 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1732 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1735 HAVE_ANDROID_MEDIA="no"
1740 dnl *** AppleMedia (OS X and iOS) ***
1741 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1742 HAVE_APPLE_MEDIA="no"
1743 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1744 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1745 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1746 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1747 if test "x$HAVE_IOS" = "xno"; then
1748 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1752 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1757 HAVE_APPLE_MEDIA="no"
1762 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1763 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1764 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1765 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1766 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1768 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1777 dnl *** OS/X AVCVideoServices ***
1778 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1780 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1782 save_CPPFLAGS="$CPPFLAGS"
1783 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1785 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1786 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1788 CPPFLAGS=$save_CPPFLAGS
1791 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1800 dnl check for shm_open (for shm plugin)
1801 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1802 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1803 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1805 *-darwin* | *-macos10*)
1806 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1813 AC_CHECK_LIB([rt], [shm_open],
1814 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1815 #include <sys/socket.h>
1818 AC_SUBST(SHM_LIBS, "-lrt")
1826 dnl check for Video CD
1827 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1828 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1829 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1832 dnl check for OpenSL ES
1833 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1834 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1835 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1838 dnl *** UVC H264 ***
1839 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1840 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1841 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1842 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1843 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1846 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1847 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1848 HAVE_LIBUSB="yes" ],
1850 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1851 test "x$HAVE_GUDEV" = "xyes" && \
1852 test "x$HAVE_LIBUSB" = "xyes"; then
1858 AC_SUBST(LIBUDEV_CFLAGS)
1859 AC_SUBST(LIBUDEV_LIBS)
1860 AC_SUBST(LIBUSB_CFLAGS)
1861 AC_SUBST(LIBUSB_LIBS)
1864 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1865 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1866 AC_ARG_WITH([cuda-prefix],
1867 AS_HELP_STRING([--with-cuda-prefix],
1868 [Use the provided prefix for detecting the cuda installation]),
1869 [AS_IF([test "x$with_cuda_prefix" != "x"],
1870 [CUDA_PREFIX="$with_cuda_prefix"])],
1874 if test "x$CUDA_PREFIX" != "x"; then
1875 dnl only override if not already set
1876 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1877 dnl this is an educated guess, user can always override these
1878 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1879 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1882 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1883 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1884 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1885 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1890 save_CPPFLAGS="$CPPFLAGS"
1891 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1892 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1893 AC_MSG_WARN([Could not find cuda.h]))
1894 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1895 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1896 CPPFLAGS=$save_CPPFLAGS
1898 dnl libcuda and libcudart libraries
1900 LIBS="$CUDA_LIBS $save_LIBS"
1901 HAVE_CUDART_LIB="no"
1902 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1903 AC_MSG_WARN([Could not find cudart library])])
1905 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1906 AC_MSG_WARN([Could not find cuda library])])
1909 dnl nvEncodeAPI.h header
1910 HAVE_NVENCODEAPI_H=no
1911 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1912 save_CPPFLAGS="$CPPFLAGS"
1913 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1914 AC_CHECK_HEADER([nvEncodeAPI.h], [
1915 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1916 #if NVENCAPI_MAJOR_VERSION < 5
1917 #error "Need nvEncodeAPI.h >= 5.0"
1920 HAVE_NVENCODEAPI_H=yes
1922 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1925 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1926 AC_SUBST(NVENCODE_CFLAGS)
1927 CPPFLAGS="$save_CPPFLAGS"
1929 dnl libnvnidia-encode library
1930 HAVE_NVENCODE_LIB=no
1931 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1933 LIBS="$NVENCODE_LIBS $saved_LIBS"
1934 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1935 AC_MSG_WARN([Could not find library nvidia-encode]))
1936 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1937 AC_SUBST(NVENCODE_LIBS)
1941 if test "x$HAVE_CUDA_H" = "xyes" \
1942 -a "x$HAVE_CUDART_H" = "xyes" \
1943 -a "x$HAVE_CUDA_LIB" = "xyes" \
1944 -a "x$HAVE_CUDART_LIB" = "xyes" \
1945 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1946 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1948 if test x"$USE_OPENGL" = x"yes"; then
1949 dnl cuda-gl interop header
1950 save_CPPFLAGS="$CPPFLAGS"
1951 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1952 AC_CHECK_HEADER([cuda_gl_interop.h], [
1953 USE_NVENC_GST_GL="yes"
1954 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1956 CPPFLAGS="$save_CPPFLAGS"
1962 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1964 dnl check for tinyalsa
1965 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1966 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1967 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1970 dnl check for intel mediasdk
1971 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
1972 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
1973 AC_ARG_WITH([msdk-prefix],
1974 AS_HELP_STRING([--with-msdk-prefix],
1975 [Use the provided prefix for detecting the Intel MediaSDK]),
1976 [AS_IF([test "x$with_msdk_prefix" != "x"],
1977 [MSDK_PREFIX="$with_msdk_prefix"])],
1978 [AS_IF([test "x$MFX_HOME" != "x"],
1979 [MSDK_PREFIX="$MFX_HOME"],
1980 [MSDK_PREFIX="/opt/intel/media"])])
1981 MSDK_CFLAGS="-I$MSDK_PREFIX/include"
1982 MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
1983 AC_SUBST(MSDK_CFLAGS)
1986 save_CPPFLAGS="$CPPFLAGS"
1987 CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
1988 AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
1989 CPPFLAGS="$save_CPPFLAGS"
1992 LIBS="$MSDK_LIBS $LIBS"
1994 AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
1998 PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2000 if test "x$HAVE_MFXDEFS_H" = "xyes" \
2001 -a "x$HAVE_MFX_LIB" = "xyes" \
2002 -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2008 AM_CONDITIONAL(USE_MSDK_LIBVA,
2009 test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2011 dnl *** ext plug-ins ***
2012 dnl keep this list sorted alphabetically !
2014 if test "x$BUILD_EXTERNAL" = "xyes"; then
2016 dnl *** assrender ***
2017 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2018 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2019 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2020 HAVE_ASSRENDER="yes" ], [
2024 AC_SUBST(ASSRENDER_CFLAGS)
2025 AC_SUBST(ASSRENDER_LIBS)
2027 dnl *** vo-amrwbenc ***
2028 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2029 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2030 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2033 dnl *** vo-aacenc ***
2034 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2035 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2036 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2040 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2041 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2042 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2045 AC_SUBST(BS2B_CFLAGS)
2050 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2051 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2054 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2055 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2056 AC_MSG_RESULT($HAVE_BZ2)
2058 if test "x$HAVE_BZ2" = "xyes"; then
2066 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2067 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2068 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2071 # AC_SUBST(CAIRO_CFLAGS)
2072 # AC_SUBST(CAIRO_LIBS)
2075 dnl *** chromaprint ***
2076 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2077 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2078 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2079 HAVE_CHROMAPRINT="no"
2081 AC_SUBST(CHROMAPRINT_CFLAGS)
2082 AC_SUBST(CHROMAPRINT_LIBS)
2086 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2087 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2088 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2090 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2091 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2093 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2094 [[#ifdef HAVE_SYS_TYPES_H
2095 # include <sys/types.h>
2097 #ifdef HAVE_NETINET_IN_H
2098 # include <netinet/in.h>
2101 AC_MSG_CHECKING([for socket support needed by curlsink])
2102 AC_MSG_RESULT($HAVE_CURL)
2106 AC_SUBST(CURL_CFLAGS)
2108 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2110 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2114 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2115 AC_SUBST(SSH2_CFLAGS)
2117 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2120 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2121 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2122 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2123 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2125 AC_SUBST(LIBXML2_CFLAGS)
2126 AC_SUBST(LIBXML2_LIBS)
2130 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2131 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2132 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2133 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2142 AC_SUBST(LIBDC1394_CFLAGS)
2143 AC_SUBST(LIBDC1394_LIBS)
2146 dnl *** decklink ***
2147 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2148 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2155 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2156 AC_CHECK_LIB(dl, dlopen,
2160 DECKLINK_LIBS="-lpthread -ldl"
2165 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2166 AC_CHECK_LIB(dl, dlopen,
2170 DECKLINK_LIBS="-lpthread -ldl"
2171 HAVE_DECKLINK_OSX=yes
2180 AC_SUBST(DECKLINK_CXXFLAGS)
2181 AC_SUBST(DECKLINK_LIBS)
2183 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2185 dnl **** DirectFB ****
2186 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2187 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2188 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2193 dnl **** Wayland ****
2194 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2195 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2196 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2197 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2198 if test "x$wayland_scanner" != "x"; then
2200 AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2202 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2211 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2212 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2213 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2214 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2216 AC_SUBST(WEBP_CFLAGS)
2221 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2222 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2223 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2224 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2229 AC_SUBST(DAALA_CFLAGS)
2230 AC_SUBST(DAALA_LIBS)
2235 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2236 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2238 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2239 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2240 if test $HAVE_DTS = "no"; then
2241 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2242 [ DTS_LIBS="-ldts_pic $LIBM"
2243 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2249 dnl *** resindvd ***
2250 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2251 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2252 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2257 dnl **** Free AAC Encoder (FAAC) ****
2258 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2259 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2260 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2261 FAAC_LIBS="-lfaac $LIBM")
2265 dnl **** Free AAC Decoder (FAAD2) ****
2266 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2267 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2268 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2269 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2270 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2272 #elif !defined(LATM)
2273 #error Not faad2 >= 2.7
2279 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2289 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2290 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2291 if test "x$HAVE_FBDEV" != "xyes"; then
2292 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2297 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2298 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2299 PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2301 HAVE_FDK_AAC_0_1_4="yes"
2302 AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2304 PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2309 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2310 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2311 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2312 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2314 AC_SUBST(FLITE_CFLAGS)
2315 AC_SUBST(FLITE_LIBS)
2319 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2320 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2321 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2322 if test $HAVE_GSM != "yes"; then
2323 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2324 if test $HAVE_GSM = "yes"; then
2325 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2331 dnl *** fluidSynth ***
2332 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2333 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2334 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2335 HAVE_FLUIDSYNTH="no"
2340 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2341 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2342 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2345 AC_SUBST(KATE_CFLAGS)
2347 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2350 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2356 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2357 AC_SUBST(TIGER_CFLAGS)
2358 AC_SUBST(TIGER_LIBS)
2359 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2362 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2363 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2364 AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2365 PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2369 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2370 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2371 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2373 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2374 if test $HAVE_LRDF = "yes"; then
2375 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2378 AC_SUBST(LRDF_CFLAGS)
2382 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2383 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2384 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2386 HAVE_LILV_0_22="yes"
2387 AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2389 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2391 AC_SUBST(LILV_CFLAGS)
2395 dnl *** libde265 ***
2396 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2397 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2398 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2399 AC_SUBST(LIBDE265_CFLAGS)
2400 AC_SUBST(LIBDE265_LIBS)
2404 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2405 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2406 dnl check with pkg-config first
2407 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2411 AC_SUBST(LIBMMS_LIBS)
2415 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2416 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2417 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2418 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2421 AC_SUBST(SRTP_CFLAGS)
2425 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2426 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2427 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2429 AC_SUBST(DTLS_CFLAGS)
2437 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2438 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2439 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2440 PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2449 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2450 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2451 if test "x$HAVE_CXX" != "xyes"; then
2452 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2455 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2457 AC_SUBST(MODPLUG_CFLAGS)
2458 AC_SUBST(MODPLUG_LIBS)
2461 dnl *** mjpegtools version info ***
2462 dnl some may prefer older version (given quirks above)
2463 dnl hm, no version info seems available within mjpegtools headers
2464 dnl and API really moves along
2466 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2467 mjpegtools_api=10601
2469 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2470 mjpegtools_api=10800
2472 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2473 mjpegtools_api=20000
2475 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2476 dnl logging API changed in release candidates
2477 OLD_CFLAGS="$CFLAGS"
2479 CFLAGS="$MJPEG_CFLAGS"
2480 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2481 AC_CHECK_FUNC(mjpeg_loglev_t, [
2482 mjpegtools_api=10903
2484 mjpegtools_api=10900
2486 CFLAGS="$OLD_CFLAGS"
2494 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2495 [mjpegtools API evolution])
2497 dnl *** mpeg2enc ***
2498 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2499 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2501 dnl we require a c++ compiler for this one
2502 if [ test x$HAVE_CXX = xyes ]; then
2503 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2504 dnl since many distros include mjpegtools specifically without mplex
2505 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2506 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2507 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2509 dnl switch over to c++ to test things
2511 OLD_CPPFLAGS="$CPPFLAGS"
2513 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2514 CPPFLAGS="$CPPFLAGS_GOOD -I."
2516 mpeg2enc_headers_ok=no
2517 AC_CHECK_HEADER([mpeg2encoder.hh], [
2518 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2520 LIBS="$LIBS $MPEG2ENC_LIBS"
2521 AC_MSG_CHECKING([for valid mpeg2enc objects])
2522 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2523 #include <mpeg2encoder.hh>
2524 #include <mpeg2encoptions.hh>
2530 MPEG2EncOptions *options = new MPEG2EncOptions ();
2531 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2536 dnl so far so good, let's check more things:
2537 dnl mjpegtools-1.8.0 does not install the required
2538 dnl mpeg2syntaxcodes.h header by default, and a new release
2539 dnl is not in sight, so check for this oversight in case
2540 dnl distros or folks have fixed this themselves
2541 if test "$mjpegtools_api" -ge "10800"; then
2542 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2543 mpeg2enc_headers_ok=yes
2545 mpeg2enc_headers_ok=no
2548 mpeg2enc_headers_ok=yes
2550 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2553 CPPFLAGS="$CPPFLAGS_GOOD"
2554 AC_SUBST(MPEG2ENC_CFLAGS)
2555 AC_SUBST(MPEG2ENC_LIBS)
2562 CPPFLAGS="$OLD_CPPFLAGS"
2571 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2572 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2574 dnl we require a c++ compiler for this one
2575 if [ test x$HAVE_CXX = xyes ]; then
2576 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2577 dnl since many distros include mjpegtools specifically without mplex
2578 dnl and mpeg2enc, we check for mplex on its own, too.
2579 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2580 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2581 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2583 dnl switch over to c++ to test things
2585 OLD_CPPFLAGS="$CPPFLAGS"
2587 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2588 CPPFLAGS="$CPPFLAGS_GOOD -I."
2589 AC_CHECK_HEADER(interact.hpp, [
2590 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2592 LIBS="$LIBS $MPLEX_LIBS"
2593 OLD_LDFLAGS="$LDFLAGS"
2594 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2595 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2596 dnl don't want this here
2597 AC_MSG_CHECKING([for valid mplex objects])
2598 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2600 #include <interact.hpp>
2601 #include <outputstrm.hpp>
2602 #include <multiplexor.hpp>
2607 class TestOutputStream : public OutputStream {
2609 TestOutputStream () : OutputStream () { }
2610 void Write (uint8_t *a, unsigned int b) { }
2611 void NextSegment () { }
2612 uint64_t SegmentSize () { }
2616 MultiplexJob *job = new MultiplexJob ();
2617 vector<IBitStream *> inputs;
2618 job->SetupInputStreams (inputs);
2619 TestOutputStream *out = new TestOutputStream ();
2620 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2625 CPPFLAGS="$CPPFLAGS_GOOD"
2626 AC_SUBST(MPLEX_CFLAGS)
2627 AC_SUBST(MPLEX_LIBS)
2628 AC_SUBST(MPLEX_LDFLAGS)
2630 ],[AC_MSG_RESULT(no)],[])
2632 LDFLAGS="$OLD_LDFLAGS"
2634 CPPFLAGS="$OLD_CPPFLAGS"
2640 dnl *** musepack ***
2641 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2642 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2643 AC_CHECK_HEADER([mpc/mpcdec.h], [
2645 MUSEPACK_LIBS="-lmpcdec"
2646 AC_SUBST(MUSEPACK_LIBS)
2647 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2649 MUSEPACK_LIBS="-lmpcdec"
2650 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2651 AC_SUBST(MUSEPACK_LIBS)
2652 ], [HAVE_MUSEPACK="no"])])
2656 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2657 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2658 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2661 AC_SUBST(NEON_CFLAGS)
2666 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2667 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2668 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2671 AC_SUBST(OFA_CFLAGS)
2676 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2677 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2678 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2681 AC_SUBST(OPENAL_CFLAGS)
2682 AC_SUBST(OPENAL_LIBS)
2686 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2687 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2688 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2689 dnl and don't want the build to break when a new opencv version comes out.
2690 dnl Need to adjust this upwards once we know that our code compiles fine with
2691 dnl a new version and the no-backward-compatibility define. (There doesn't
2692 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2694 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2697 OLD_CPPFLAGS=$CPPFLAGS
2698 CPPFLAGS=$OPENCV_CFLAGS
2699 something_not_found=no
2700 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2701 opencv2/core/version.hpp \
2702 opencv2/highgui/highgui_c.h \
2703 opencv2/imgproc/imgproc.hpp \
2704 opencv2/imgproc/imgproc_c.h \
2705 opencv2/objdetect/objdetect.hpp \
2706 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2708 dnl Only required for OpenCV >= 3, we have compat code for older versions
2709 PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2710 dnl check opencv_contrib headers (not always present in opencv distributions)
2711 AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2712 [NOT_A_PROBLEM=yes])
2714 CPPFLAGS=$OLD_CPPFLAGS
2717 if test $something_not_found = "yes"; then
2718 AC_MSG_RESULT([not all opencv2 headers were found])
2726 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2727 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2728 AC_SUBST(OPENCV_PREFIX)
2729 AC_SUBST(OPENCV_CFLAGS)
2730 AC_SUBST(OPENCV_LIBS)
2731 dnl the OpenCV prefix is used at runtime for some object properties, and also
2732 dnl used here to detect which directory is the correct one. For the second
2733 dnl case, make sure the right sysroot is used, ensuring correct behavior
2734 dnl during cross compilation.
2735 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2736 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2738 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2743 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2744 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2745 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2748 dnl *** openh264 ***
2749 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2750 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2751 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2754 dnl *** OpenJPEG ***
2755 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2756 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2758 AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2759 if test x"$HAVE_OPENJPEG" = x"yes"; then
2760 dnl minor API changes in v2.1
2761 AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2762 if test x"$HAVE_OPENJPEG" = x"yes"; then
2763 AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2768 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2769 HAVE_OPENJPEG="yes",
2770 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2772 if test x"$HAVE_OPENJPEG" = x"yes"; then
2773 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2776 AC_SUBST(OPENJPEG_CFLAGS)
2777 AC_SUBST(OPENJPEG_LIBS)
2781 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2782 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2783 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2784 AC_SUBST(OPENNI2_CFLAGS)
2785 AC_SUBST(OPENNI2_LIBS)
2789 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2790 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2791 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2792 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2797 AC_SUBST(OPUS_CFLAGS)
2802 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2803 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2804 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2808 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2809 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2812 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2819 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2820 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2821 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2822 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2827 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2829 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2830 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2831 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2832 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2834 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2836 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2837 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2838 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2839 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2841 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2843 if test "x$GDK_WINDOWING" = "xyes"; then
2844 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2851 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2854 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2855 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2856 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2857 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2858 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2859 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2860 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2861 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2862 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2863 AC_MSG_WARN([One of the required qt build programs was not found])
2867 HAVE_QT_WINDOWING="no"
2868 QT_VERSION="`$PKG_CONFIG --modversion Qt5Core`"
2869 QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2870 AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2871 QT_CFLAGS="$QT_CFLAGS -I$QPA_INCLUDE_PATH"
2872 HAVE_QT_QPA_HEADER="yes"
2873 ], [AC_MSG_NOTICE([Cannot find QPA])])
2874 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2875 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2876 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2877 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2878 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2879 HAVE_QT_WINDOWING="yes"
2880 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2882 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
2883 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2884 AC_DEFINE([HAVE_QT_WAYLAND], [],
2885 [Define if Qt Wayland integration is installed])
2886 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2887 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2888 HAVE_QT_WINDOWING="yes"
2889 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2891 if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2892 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2893 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2894 # c++ on android requires a standard library and there are multiple
2895 # choices. cerbero provides a pkg-config file the describes a choice
2896 # so try to use that. Outside cerbero one has to pass these flags
2897 # manually for the library one is using
2898 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2899 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2900 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2902 AC_MSG_NOTICE([Could not find Standard C++ library])])
2903 AC_DEFINE([HAVE_QT_EGLFS], [],
2904 [Define if Qt eglfs integration is installed])
2905 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2906 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2907 HAVE_QT_WINDOWING="yes"
2908 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2910 AC_DEFINE([HAVE_QT_EGLFS], [],
2911 [Define if Qt eglfs integration is installed])
2912 HAVE_QT_WINDOWING="yes"
2915 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2916 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2917 AC_DEFINE([HAVE_QT_MAC], [],
2918 [Define if Qt Mac integration is installed])
2919 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2920 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2921 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2922 HAVE_QT_WINDOWING="yes"
2923 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2925 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2926 if test "x$HAVE_IOS" = "xyes"; then
2927 # iOS doesn't have its own extras package so if we have the core
2928 # modules we are good to go
2929 AC_DEFINE([HAVE_QT_IOS], [],
2930 [Define if Qt iOS integration is installed])
2931 HAVE_QT_WINDOWING="yes"
2934 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2935 AC_MSG_WARN([Could not find any Qt Windowing integration])
2938 AC_SUBST([QT_CFLAGS])
2947 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2948 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2949 AC_CHECK_HEADER(vulkan/vulkan.h, [
2950 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2951 VULKAN_LIBS="-lvulkan"
2952 AC_SUBST(VULKAN_LIBS)
2953 if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
2956 if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
2963 dnl *** teletextdec ***
2964 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2965 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2966 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2969 dnl *** wildmidi ***
2970 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2971 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2972 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2975 WILDMIDI_LIBS="-lWildMidi")
2976 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2978 if test "x$HAVE_WILDMIDI" = "xyes"; then
2980 WILDMIDI_LIBS=-lWildMidi
2981 AC_MSG_NOTICE(compiling gstWildMidi)
2985 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2987 AC_SUBST(WILDMIDI_CFLAGS)
2988 AC_SUBST(WILDMIDI_LIBS)
2991 dnl **** Smooth Streaming ****
2992 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2993 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
2994 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
2996 HAVE_SMOOTHSTREAMING="yes"],
2998 HAVE_SMOOTHSTREAMING="no"])
2999 AC_SUBST(LIBXML2_CFLAGS)
3000 AC_SUBST(LIBXML2_LIBS)
3004 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3005 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3006 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3007 AC_SUBST(SNDFILE_CFLAGS)
3008 AC_SUBST(SNDFILE_LIBS)
3011 dnl *** soundtouch ***
3012 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3013 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3014 dnl We only need -lBPM on soundtouch < 1.4
3015 dnl We check for libSoundTouch since Debian used it before upstream
3016 dnl added a pkgconfig file.
3017 HAVE_SOUNDTOUCH_1_4=yes
3018 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3019 [HAVE_SOUNDTOUCH=yes],
3020 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3021 [HAVE_SOUNDTOUCH=yes],
3022 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3023 [HAVE_SOUNDTOUCH=yes
3024 HAVE_SOUNDTOUCH_1_4=no
3025 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3026 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3027 [HAVE_SOUNDTOUCH=yes],
3028 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3029 [HAVE_SOUNDTOUCH=yes
3030 HAVE_SOUNDTOUCH_1_4=no
3031 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3032 HAVE_SOUNDTOUCH=no)])])])])
3033 AC_SUBST(SOUNDTOUCH_CFLAGS)
3034 AC_SUBST(SOUNDTOUCH_LIBS)
3035 if test "x$HAVE_CXX" != "xyes"; then
3036 USE_SOUNDTOUCH=false
3037 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3039 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3040 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3041 [Defined if the available libSoundTouch is >= 1.4])
3046 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3047 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3048 AC_CHECK_HEADER(openspc.h, [
3049 AC_CHECK_LIB(openspc, OSPC_Init, [
3050 SPC_LIBS="-lopenspc"
3062 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3063 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3064 AC_CHECK_HEADER(gme/gme.h, [
3065 AC_CHECK_LIB(gme, gme_new_emu, [
3076 if test "x$HAVE_GME" = "xyes"; then
3077 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3078 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3084 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3085 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3086 AC_MSG_CHECKING([Checking for up to date dvb installation])
3087 AC_CHECK_HEADER(linux/dvb/version.h, [
3088 AC_MSG_CHECKING([for up-to-date dvb API])
3089 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3090 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3091 #error "Incompatible dvb API"
3093 ]])], [ AC_MSG_RESULT(yes)
3095 ], [ AC_MSG_RESULT(no)
3102 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3103 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3104 AC_MSG_CHECKING([Checking for ACM support])
3105 AC_CHECK_HEADERS([windows.h msacm.h],
3107 AC_SUBST(ACMENC_CFLAGS)
3108 AC_SUBST(ACMMP3DEC_CFLAGS)
3110 [AC_INCLUDES_DEFAULT
3111 #include <windows.h>])
3115 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3116 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3121 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3123 if test "$HAVE_VDPAU" = "no"; then
3124 saved_CPPFLAGS="$CPPFLAGS"
3125 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3127 if test -z "$HAVE_VDPAU_H"; then
3128 dnl Didn't find VDPAU header straight away.
3129 dnl Try /usr/include/nvidia. Need to clear caching vars first
3130 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3131 unset ac_cv_header_vdpau_vdpau_h
3132 unset ac_cv_header_vdpau_vdpau_x11_h
3133 VDPAU_CFLAGS="-I/usr/include/nvidia"
3134 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3135 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3136 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3139 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3141 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3142 dnl Found the headers - look for the lib
3143 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3145 LIBS="$VDPAU_LIBS $saved_LIBS"
3146 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3152 if test "$HAVE_VDPAU" = "yes"; then
3153 AC_MSG_NOTICE([Found up to date VDPAU installation])
3154 AC_SUBST(VDPAU_CFLAGS)
3155 AC_SUBST(VDPAU_LIBS)
3160 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3161 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3162 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3165 dnl *** schroedinger ***
3166 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3167 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3168 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3172 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3173 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3174 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3178 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3179 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3180 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3184 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3185 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3186 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3187 HAVE_SPANDSP="yes" ], [
3191 AC_SUBST(SPANDSP_CFLAGS)
3192 AC_SUBST(SPANDSP_LIBS)
3194 dnl *** hls-crypto ***
3195 AC_ARG_WITH([hls-crypto],
3196 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3197 which cryptographic library version to compile against for hls (default: auto)
3199 AS_CASE([$with_hls_crypto],
3203 [with_hls_crypto=auto]
3209 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3210 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3211 AS_CASE([$with_hls_crypto],
3213 PKG_CHECK_MODULES(NETTLE, nettle, [
3214 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3216 ],[AC_MSG_ERROR([Could not find nettle library])])
3219 AM_PATH_LIBGCRYPT([1.2.0], [
3220 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3222 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3225 PKG_CHECK_MODULES(OPENSSL, openssl, [
3226 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3228 ],[AC_MSG_ERROR([Could not find openssl library])])
3231 dnl Try to find a valid crypto library
3232 PKG_CHECK_MODULES(NETTLE, nettle, [
3233 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3236 AM_PATH_LIBGCRYPT([1.2.0], [
3237 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3240 PKG_CHECK_MODULES(OPENSSL, openssl, [
3241 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3252 dnl *** x265 (H.265/HEVC encoder) ***
3253 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3254 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3255 AG_GST_PKG_CHECK_MODULES(X265, x265)
3258 dnl *** WebRTC Audio Processing ***
3259 dnl Note: We test for a specific version as there is no API stability
3260 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3261 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3263 AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3265 # On Android, C++ headers comes with the STL implementation
3266 AS_CASE(["${host}"],
3269 PKG_CHECK_MODULES(GNUSTL, gnustl, [
3270 WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3271 WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3273 AC_SUBST([WEBRTCDSP_CFLAGS])
3274 AC_SUBST([WEBRTCDSP_LIBS])
3277 old_CPPFLAGS=$CPPFLAGS
3278 CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3279 AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3280 CPPFLAGS=$old_CPPFLAGS
3286 dnl not building plugins with external dependencies,
3287 dnl but we still need to set the conditionals
3289 AM_CONDITIONAL(USE_ASSRENDER, false)
3290 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3291 AM_CONDITIONAL(USE_VOAACENC, false)
3292 AM_CONDITIONAL(USE_BS2B, false)
3293 AM_CONDITIONAL(USE_BZ2, false)
3294 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3295 AM_CONDITIONAL(USE_CURL, false)
3296 AM_CONDITIONAL(USE_SSH2, false)
3297 AM_CONDITIONAL(USE_DASH, false)
3298 AM_CONDITIONAL(USE_DC1394, false)
3299 AM_CONDITIONAL(USE_DECKLINK, false)
3300 AM_CONDITIONAL(DECKLINK_OSX, false)
3301 AM_CONDITIONAL(USE_DIRECTFB, false)
3302 AM_CONDITIONAL(USE_WAYLAND, false)
3303 AM_CONDITIONAL(USE_DAALA, false)
3304 AM_CONDITIONAL(USE_DTS, false)
3305 AM_CONDITIONAL(USE_EXIF, false)
3306 AM_CONDITIONAL(USE_RESINDVD, false)
3307 AM_CONDITIONAL(USE_FAAC, false)
3308 AM_CONDITIONAL(USE_FAAD, false)
3309 AM_CONDITIONAL(USE_FBDEV, false)
3310 AM_CONDITIONAL(USE_FDK_AAC, false)
3311 AM_CONDITIONAL(USE_FLITE, false)
3312 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3313 AM_CONDITIONAL(USE_GL, false)
3314 AM_CONDITIONAL(USE_GSM, false)
3315 AM_CONDITIONAL(USE_GTK3, false)
3316 AM_CONDITIONAL(USE_GTK3_GL, false)
3317 AM_CONDITIONAL(USE_HLS, false)
3318 AM_CONDITIONAL(USE_IQA, false)
3319 AM_CONDITIONAL(USE_KATE, false)
3320 AM_CONDITIONAL(USE_KMS, false)
3321 AM_CONDITIONAL(USE_TIGER, false)
3322 AM_CONDITIONAL(USE_LADSPA, false)
3323 AM_CONDITIONAL(USE_LV2, false)
3324 AM_CONDITIONAL(USE_LIBDE265, false)
3325 AM_CONDITIONAL(USE_LIBMMS, false)
3326 AM_CONDITIONAL(USE_MODPLUG, false)
3327 AM_CONDITIONAL(USE_MPEG2ENC, false)
3328 AM_CONDITIONAL(USE_MPLEX, false)
3329 AM_CONDITIONAL(USE_MUSEPACK, false)
3330 AM_CONDITIONAL(USE_NEON, false)
3331 AM_CONDITIONAL(USE_OFA, false)
3332 AM_CONDITIONAL(USE_OPENAL, false)
3333 AM_CONDITIONAL(USE_OPENCV, false)
3334 AM_CONDITIONAL(USE_OPENEXR, false)
3335 AM_CONDITIONAL(USE_OPENJPEG, false)
3336 AM_CONDITIONAL(USE_OPENNI2, false)
3337 AM_CONDITIONAL(USE_OPUS, false)
3338 AM_CONDITIONAL(USE_QT, false)
3339 AM_CONDITIONAL(USE_WILDMIDI, false)
3340 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3341 AM_CONDITIONAL(USE_SNDFILE, false)
3342 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3343 AM_CONDITIONAL(USE_SPANDSP, false)
3344 AM_CONDITIONAL(USE_SPC, false)
3345 AM_CONDITIONAL(USE_SRTP, false)
3346 AM_CONDITIONAL(USE_GME, false)
3347 AM_CONDITIONAL(USE_DVB, false)
3348 AM_CONDITIONAL(USE_ACM, false)
3349 AM_CONDITIONAL(USE_VDPAU, false)
3350 AM_CONDITIONAL(USE_SBC, false)
3351 AM_CONDITIONAL(USE_SCHRO, false)
3352 AM_CONDITIONAL(USE_ZBAR, false)
3353 AM_CONDITIONAL(USE_RSVG, false)
3354 AM_CONDITIONAL(USE_RTMP, false)
3355 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3356 AM_CONDITIONAL(USE_UVCH264, false)
3357 AM_CONDITIONAL(USE_WEBP, false)
3358 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3359 AM_CONDITIONAL(USE_OPENH264, false)
3360 AM_CONDITIONAL(USE_X265, false)
3361 AM_CONDITIONAL(USE_DTLS, false)
3362 AM_CONDITIONAL(USE_VULKAN, false)
3363 AM_CONDITIONAL(USE_TTML, false)
3365 fi dnl of EXT plugins
3367 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3370 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3371 dnl GST_*: flags shared by built objects to link against GStreamer
3372 dnl GST_ALL_LDFLAGS: linker flags shared by all
3373 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3374 dnl GST_LT_LDFLAGS: library versioning of our libraries
3375 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3377 dnl GST_OPTION_CFLAGS
3378 if test "x$USE_DEBUG" = xyes; then
3381 AC_SUBST(PROFILE_CFLAGS)
3383 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3384 dnl Define _only_ during CVS (not pre-releases or releases)
3385 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3387 DEPRECATED_CFLAGS=""
3389 AC_SUBST(DEPRECATED_CFLAGS)
3391 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3392 dnl at make time with e.g. make ERROR_CFLAGS=""
3393 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3394 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3395 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3396 AC_SUBST(GST_OPTION_CFLAGS)
3397 AC_SUBST(GST_OPTION_CXXFLAGS)
3398 AC_SUBST(GST_OPTION_OBJCFLAGS)
3400 dnl FIXME: do we want to rename to GST_ALL_* ?
3401 dnl prefer internal headers to already installed ones
3402 dnl also add builddir include for enumtypes and marshal
3403 dnl add GST_OPTION_CFLAGS, but overridable
3404 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3405 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3406 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3407 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3408 AC_SUBST(GST_CFLAGS)
3409 AC_SUBST(GST_CXXFLAGS)
3410 AC_SUBST(GST_OBJCFLAGS)
3412 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3413 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3414 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3415 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3416 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3417 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3419 dnl LDFLAGS really should only contain flags, not libs - they get added before
3420 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3421 GST_ALL_LDFLAGS="-no-undefined"
3422 if test "x${enable_Bsymbolic}" = "xyes"; then
3423 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3425 AC_SUBST(GST_ALL_LDFLAGS)
3428 dnl linker flags shared by all libraries
3429 dnl LDFLAGS modifier defining exported symbols from built libraries
3430 dnl (export _gst_foo but not __gst_foo)
3431 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3432 AC_SUBST(GST_LIB_LDFLAGS)
3434 dnl this really should only contain flags, not libs - they get added before
3435 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3436 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3437 AC_SUBST(GST_PLUGIN_LDFLAGS)
3439 dnl *** output files ***
3441 $MKDIR_P tests/check/orc
3450 gst/accurip/Makefile
3451 gst/adpcmdec/Makefile
3452 gst/adpcmenc/Makefile
3454 gst/videoframe_audiolevel/Makefile
3456 gst/audiobuffersplit/Makefile
3457 gst/audiofxbad/Makefile
3458 gst/audiomixer/Makefile
3459 gst/audiomixmatrix/Makefile
3460 gst/audiovisualizers/Makefile
3461 gst/autoconvert/Makefile
3463 gst/camerabin2/Makefile
3464 gst/coloreffects/Makefile
3465 gst/debugutils/Makefile
3466 gst/dvbsuboverlay/Makefile
3468 gst/festival/Makefile
3469 gst/fieldanalysis/Makefile
3470 gst/freeverb/Makefile
3472 gst/gaudieffects/Makefile
3473 gst/geometrictransform/Makefile
3477 gst/interlace/Makefile
3478 gst/ivfparse/Makefile
3480 gst/jp2kdecimator/Makefile
3481 gst/jpegformat/Makefile
3484 gst/mpegdemux/Makefile
3485 gst/mpegtsdemux/Makefile
3486 gst/mpegtsmux/Makefile
3487 gst/mpegtsmux/tsmux/Makefile
3488 gst/mpegpsmux/Makefile
3492 gst/pcapparse/Makefile
3494 gst/rawparse/Makefile
3495 gst/removesilence/Makefile
3497 gst/segmentclip/Makefile
3503 gst/timecode/Makefile
3504 gst/videofilters/Makefile
3505 gst/videoparsers/Makefile
3506 gst/videosignal/Makefile
3510 gst/compositor/Makefile
3512 gst-libs/gst/Makefile
3513 gst-libs/gst/adaptivedemux/Makefile
3514 gst-libs/gst/basecamerabinsrc/Makefile
3515 gst-libs/gst/gl/Makefile
3516 gst-libs/gst/gl/android/Makefile
3517 gst-libs/gst/gl/cocoa/Makefile
3518 gst-libs/gst/gl/dispmanx/Makefile
3519 gst-libs/gst/gl/glprototypes/Makefile
3520 gst-libs/gst/gl/eagl/Makefile
3521 gst-libs/gst/gl/egl/Makefile
3522 gst-libs/gst/gl/wayland/Makefile
3523 gst-libs/gst/gl/win32/Makefile
3524 gst-libs/gst/gl/x11/Makefile
3525 gst-libs/gst/insertbin/Makefile
3526 gst-libs/gst/interfaces/Makefile
3527 gst-libs/gst/codecparsers/Makefile
3528 gst-libs/gst/mpegts/Makefile
3529 gst-libs/gst/uridownloader/Makefile
3530 gst-libs/gst/wayland/Makefile
3531 gst-libs/gst/base/Makefile
3532 gst-libs/gst/player/Makefile
3533 gst-libs/gst/video/Makefile
3534 gst-libs/gst/audio/Makefile
3535 gst-libs/gst/opencv/Makefile
3537 sys/dshowdecwrapper/Makefile
3539 sys/acmmp3dec/Makefile
3540 sys/androidmedia/Makefile
3541 sys/applemedia/Makefile
3543 sys/d3dvideosink/Makefile
3544 sys/decklink/Makefile
3545 sys/directsound/Makefile
3546 sys/dshowsrcwrapper/Makefile
3547 sys/dshowvideosink/Makefile
3553 sys/opensles/Makefile
3555 sys/tinyalsa/Makefile
3556 sys/uvch264/Makefile
3561 sys/winscreencap/Makefile
3563 tests/check/Makefile
3564 tests/files/Makefile
3565 tests/examples/Makefile
3566 tests/examples/avsamplesink/Makefile
3567 tests/examples/camerabin2/Makefile
3568 tests/examples/codecparsers/Makefile
3569 tests/examples/directfb/Makefile
3570 tests/examples/audiomixmatrix/Makefile
3571 tests/examples/gl/Makefile
3572 tests/examples/gl/cocoa/Makefile
3573 tests/examples/gl/clutter/Makefile
3574 tests/examples/gl/generic/Makefile
3575 tests/examples/gl/generic/cube/Makefile
3576 tests/examples/gl/generic/cubeyuv/Makefile
3577 tests/examples/gl/generic/doublecube/Makefile
3578 tests/examples/gl/generic/recordgraphic/Makefile
3579 tests/examples/gl/gtk/Makefile
3580 tests/examples/gl/gtk/3dvideo/Makefile
3581 tests/examples/gl/gtk/filternovideooverlay/Makefile
3582 tests/examples/gl/gtk/filtervideooverlay/Makefile
3583 tests/examples/gl/gtk/fxtest/Makefile
3584 tests/examples/gl/gtk/switchvideooverlay/Makefile
3585 tests/examples/gl/qt/Makefile
3586 tests/examples/gl/sdl/Makefile
3587 tests/examples/gtk/Makefile
3588 tests/examples/mpegts/Makefile
3589 tests/examples/mxf/Makefile
3590 tests/examples/opencv/Makefile
3591 tests/examples/uvch264/Makefile
3592 tests/examples/waylandsink/Makefile
3593 tests/icles/Makefile
3594 ext/voamrwbenc/Makefile
3595 ext/voaacenc/Makefile
3596 ext/assrender/Makefile
3599 ext/chromaprint/Makefile
3603 ext/directfb/Makefile
3604 ext/wayland/Makefile
3613 ext/fluidsynth/Makefile
3620 ext/libde265/Makefile
3623 ext/modplug/Makefile
3624 ext/mpeg2enc/Makefile
3626 ext/musepack/Makefile
3631 ext/openexr/Makefile
3632 ext/openh264/Makefile
3633 ext/openjpeg/Makefile
3634 ext/openni2/Makefile
3638 ext/resindvd/Makefile
3641 ext/schroedinger/Makefile
3642 ext/smoothstreaming/Makefile
3643 ext/sndfile/Makefile
3644 ext/soundtouch/Makefile
3645 ext/spandsp/Makefile
3647 ext/teletextdec/Makefile
3650 ext/wildmidi/Makefile
3652 ext/vulkan/xcb/Makefile
3653 ext/vulkan/wayland/Makefile
3658 ext/webrtcdsp/Makefile
3662 docs/plugins/Makefile
3664 docs/version.entities
3666 pkgconfig/gstreamer-plugins-bad.pc
3667 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3668 pkgconfig/gstreamer-codecparsers.pc
3669 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3670 pkgconfig/gstreamer-insertbin.pc
3671 pkgconfig/gstreamer-insertbin-uninstalled.pc
3672 pkgconfig/gstreamer-gl.pc
3673 pkgconfig/gstreamer-gl-uninstalled.pc
3674 pkgconfig/gstreamer-mpegts.pc
3675 pkgconfig/gstreamer-mpegts-uninstalled.pc
3676 pkgconfig/gstreamer-player.pc
3677 pkgconfig/gstreamer-player-uninstalled.pc
3678 pkgconfig/gstreamer-wayland.pc
3679 pkgconfig/gstreamer-wayland-uninstalled.pc
3680 pkgconfig/gstreamer-bad-base.pc
3681 pkgconfig/gstreamer-bad-base-uninstalled.pc
3682 pkgconfig/gstreamer-bad-video.pc
3683 pkgconfig/gstreamer-bad-video-uninstalled.pc
3684 pkgconfig/gstreamer-bad-audio.pc
3685 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3692 AG_GST_OUTPUT_PLUGINS