3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.9.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 900, 0, 900)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 if test "x$HAVE_PTHREAD_H" != "xyes"; then
168 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
171 dnl *** checks for types/defines ***
173 dnl Check for FIONREAD ioctl declaration
177 dnl *** checks for structures ***
179 dnl *** checks for compiler characteristics ***
181 dnl *** checks for library functions ***
182 AC_CHECK_FUNCS([gmtime_r])
184 dnl *** checks for headers ***
185 AC_CHECK_HEADERS([sys/utsname.h])
187 dnl *** checks for dependency libraries ***
189 dnl *** checks for socket and nsl libraries ***
190 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
191 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
195 AG_GST_GLIB_CHECK([$GLIB_REQ])
197 dnl checks for gstreamer
198 dnl uninstalled is selected preferentially -- see pkg-config(1)
199 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
202 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
203 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
204 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
206 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
208 dnl check for uninstalled plugin directories for unit tests
209 AG_GST_CHECK_UNINSTALLED_SETUP([
210 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
211 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
212 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
215 dnl Check for documentation xrefs
216 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
217 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
218 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
219 AC_SUBST(GLIB_PREFIX)
221 AC_SUBST(GSTPB_PREFIX)
223 dnl GTK is optional and used in examples
227 if test "x$BUILD_EXAMPLES" = "xyes"; then
228 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
230 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
232 2.0) GTK_REQ=$GTK2_REQ ;;
233 3.0) GTK_REQ=$GTK3_REQ ;;
234 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
238 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
239 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
243 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
245 dnl Check for -Bsymbolic-functions linker flag used to avoid
246 dnl intra-library PLT jumps, if available.
247 AC_ARG_ENABLE(Bsymbolic,
248 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
249 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
250 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
251 LDFLAGS=-Wl,-Bsymbolic-functions
253 AC_TRY_LINK([], [return 0],
255 enable_Bsymbolic=yes,
258 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
260 dnl *** set variables based on configure arguments ***
262 dnl GTK is optional and used in examples
264 if test "x$BUILD_EXAMPLES" = "xyes"; then
265 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
266 if test "x$HAVE_GTK3" = "xyes"; then
268 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
269 AC_SUBST(GTK_VERSION)
270 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
271 AC_SUBST(GTK_BASE_DIR)
275 AC_SUBST(GTK3_CFLAGS)
277 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
279 dnl clutter is optional and used in examples
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
285 AC_SUBST(CLUTTER_LIBS)
286 AC_SUBST(CLUTTER_CFLAGS)
287 AC_SUBST(HAVE_CLUTTER)
289 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
290 AC_SUBST(CLUTTER_GLX_LIBS)
291 AC_SUBST(CLUTTER_GLX_CFLAGS)
292 AC_SUBST(HAVE_CLUTTER_GLX)
294 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
295 AC_SUBST(CLUTTER_X11_LIBS)
296 AC_SUBST(CLUTTER_X11_CFLAGS)
297 AC_SUBST(HAVE_CLUTTER_X11)
299 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
300 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
301 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
303 dnl used in the gl/clutteractor example
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
306 AC_SUBST(XCOMPOSITE_CFLAGS)
307 AC_SUBST(XCOMPOSITE_LIBS)
309 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
311 dnl graphene-1.0 is optional and used in gltransformation
313 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
314 if test "x$HAVE_GRAPHENE" = "xyes"; then
315 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
317 AC_SUBST(HAVE_GRAPHENE)
318 AC_SUBST(GRAPHENE_LIBS)
319 AC_SUBST(GRAPHENE_CFLAGS)
320 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
323 dnl sdl is optional and used in examples
325 if test "x$BUILD_EXAMPLES" = "xyes"; then
326 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
329 AC_SUBST(SDL_CLUTTER)
331 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
334 dnl Needed for GtkBuilder to autoconnect signals
335 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
337 dnl Needed by plugins that use g_module_*() API
338 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
340 dnl x11 is optional for librfb
342 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
346 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
347 if test "x$HAVE_X11" = "xyes"; then
348 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
351 dnl exif (used on jifmux tests) ****
352 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
354 AC_SUBST(EXIF_CFLAGS)
355 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
360 dnl set license and copyright notice
362 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
363 AC_SUBST(GST_LICENSE)
365 dnl define LIBDIR so we can inform people where we live
366 AS_AC_EXPAND(LIBDIR, $libdir)
367 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
369 dnl set location of plugin directory
372 dnl set release date/time
373 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
374 ["${srcdir}/gst-plugins-bad.doap"],
375 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
377 dnl build static plugins or not
378 AC_MSG_CHECKING([whether to build static plugins or not])
382 [--enable-static-plugins],
383 [build static plugins @<:@default=no@:>@]),
385 [$enableval], [no], [], [yes], [],
386 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
387 [enable_static_plugins=no])
388 AC_MSG_RESULT([$enable_static_plugins])
389 if test "x$enable_static_plugins" = xyes; then
390 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
391 [Define if static plugins should be built])
392 GST_PLUGIN_LIBTOOLFLAGS=""
394 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
396 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
397 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
399 AC_ARG_WITH([player-tests],
400 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
401 if test x$with_player_tests = xyes; then
402 AC_PATH_PROG([WGET], [wget], no)
403 if test x$WGET = xno; then
404 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
408 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
410 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
411 dnl make sure it doesn't complain about unused variables if debugging is disabled
413 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
415 dnl define an ERROR_CFLAGS Makefile variable
416 dnl -Waggregate-return - libexif returns aggregates
417 dnl -Wundef - Windows headers check _MSC_VER unconditionally
418 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
419 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
420 -Wwrite-strings -Wformat-security -Wold-style-definition
421 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
422 -Wnested-externs $NO_WARNINGS])
424 dnl define an ERROR_CXXFLAGS Makefile variable
425 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
426 -Wmissing-declarations -Wredundant-decls
427 -Wwrite-strings -Wformat-nonliteral -Wformat-security
428 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
430 dnl define an ERROR_OBJCFLAGS Makefile variable
431 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
432 -Wmissing-declarations -Wredundant-decls
433 -Wwrite-strings -Wformat-nonliteral -Wformat-security
434 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
436 dnl define correct level for debugging messages
437 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
440 AG_GST_DEFAULT_ELEMENTS
442 dnl *** plug-ins to include ***
443 dnl Non ported plugins (non-dependant, then dependant)
444 dnl Make sure you have a space before and after all plugins
445 GST_PLUGINS_NONPORTED=" cdxaparse \
454 musepack nas sdl timidity \
456 xvid sndio libvisual"
458 AC_SUBST(GST_PLUGINS_NONPORTED)
460 dnl these are all the gst plug-ins, compilable without additional libs
461 AG_GST_CHECK_PLUGIN(accurip)
462 AG_GST_CHECK_PLUGIN(adpcmdec)
463 AG_GST_CHECK_PLUGIN(adpcmenc)
464 AG_GST_CHECK_PLUGIN(aiff)
465 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
466 AG_GST_CHECK_PLUGIN(asfmux)
467 AG_GST_CHECK_PLUGIN(audiofxbad)
468 AG_GST_CHECK_PLUGIN(audiomixer)
469 AG_GST_CHECK_PLUGIN(compositor)
470 AG_GST_CHECK_PLUGIN(audiovisualizers)
471 AG_GST_CHECK_PLUGIN(autoconvert)
472 AG_GST_CHECK_PLUGIN(bayer)
473 AG_GST_CHECK_PLUGIN(camerabin2)
474 AG_GST_CHECK_PLUGIN(cdxaparse)
475 AG_GST_CHECK_PLUGIN(coloreffects)
476 AG_GST_CHECK_PLUGIN(dataurisrc)
477 AG_GST_CHECK_PLUGIN(dccp)
478 AG_GST_CHECK_PLUGIN(debugutils)
479 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
480 AG_GST_CHECK_PLUGIN(dvdspu)
481 AG_GST_CHECK_PLUGIN(faceoverlay)
482 AG_GST_CHECK_PLUGIN(festival)
483 AG_GST_CHECK_PLUGIN(fieldanalysis)
484 AG_GST_CHECK_PLUGIN(freeverb)
485 AG_GST_CHECK_PLUGIN(frei0r)
486 AG_GST_CHECK_PLUGIN(gaudieffects)
487 AG_GST_CHECK_PLUGIN(geometrictransform)
488 AG_GST_CHECK_PLUGIN(gdp)
489 AG_GST_CHECK_PLUGIN(hdvparse)
490 AG_GST_CHECK_PLUGIN(id3tag)
491 AG_GST_CHECK_PLUGIN(inter)
492 AG_GST_CHECK_PLUGIN(interlace)
493 AG_GST_CHECK_PLUGIN(ivfparse)
494 AG_GST_CHECK_PLUGIN(ivtc)
495 AG_GST_CHECK_PLUGIN(jp2kdecimator)
496 AG_GST_CHECK_PLUGIN(jpegformat)
497 AG_GST_CHECK_PLUGIN(librfb)
498 AG_GST_CHECK_PLUGIN(midi)
499 AG_GST_CHECK_PLUGIN(mpegdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsmux)
502 AG_GST_CHECK_PLUGIN(mpegpsmux)
503 AG_GST_CHECK_PLUGIN(mve)
504 AG_GST_CHECK_PLUGIN(mxf)
505 AG_GST_CHECK_PLUGIN(netsim)
506 AG_GST_CHECK_PLUGIN(nuvdemux)
507 AG_GST_CHECK_PLUGIN(onvif)
508 AG_GST_CHECK_PLUGIN(patchdetect)
509 AG_GST_CHECK_PLUGIN(pcapparse)
510 AG_GST_CHECK_PLUGIN(pnm)
511 AG_GST_CHECK_PLUGIN(rawparse)
512 AG_GST_CHECK_PLUGIN(removesilence)
513 AG_GST_CHECK_PLUGIN(sdi)
514 AG_GST_CHECK_PLUGIN(sdp)
515 AG_GST_CHECK_PLUGIN(segmentclip)
516 AG_GST_CHECK_PLUGIN(siren)
517 AG_GST_CHECK_PLUGIN(smooth)
518 AG_GST_CHECK_PLUGIN(speed)
519 AG_GST_CHECK_PLUGIN(subenc)
520 AG_GST_CHECK_PLUGIN(stereo)
521 AG_GST_CHECK_PLUGIN(tta)
522 AG_GST_CHECK_PLUGIN(videofilters)
523 AG_GST_CHECK_PLUGIN(videomeasure)
524 AG_GST_CHECK_PLUGIN(videoparsers)
525 AG_GST_CHECK_PLUGIN(videosignal)
526 AG_GST_CHECK_PLUGIN(vmnc)
527 AG_GST_CHECK_PLUGIN(y4m)
528 AG_GST_CHECK_PLUGIN(yadif)
530 dnl *** plug-ins to exclude ***
532 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
533 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
534 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
536 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
538 LIBS="$LIBS -framework VideoToolbox"
539 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
540 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
546 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
547 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
548 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
551 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
552 if test "x$HAVE_IOS" = "xyes"; then
553 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
556 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
557 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
558 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
561 dnl disable gst plugins we might not be able to build on this
562 dnl platform: (ugly but minimally invasive)
563 dnl FIXME: maybe move to sys, or make work with winsock2
564 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
565 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
567 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
568 WINSOCK2_LIBS="-lws2_32"
569 AC_SUBST(WINSOCK2_LIBS)
572 if test "x$HAVE_PTHREAD_H" = "xyes"; then
573 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
576 AG_GST_DISABLE_PLUGIN(dccp)
580 AC_ARG_ENABLE([opengl],
581 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
582 [case "${enableval}" in
585 auto) NEED_GL=auto ;;
586 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
587 esac],[NEED_GL=auto])
589 AC_ARG_WITH([opengl-module-name],
590 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
591 if test x$with_opengl_module_name != x; then
592 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
595 AC_ARG_ENABLE([gles2],
596 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
597 [case "${enableval}" in
598 yes) NEED_GLES2=yes ;;
600 auto) NEED_GLES2=auto ;;
601 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
602 esac],[NEED_GLES2=auto])
604 AC_ARG_WITH([gles2-module-name],
605 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
606 if test x$with_gles2_module_name != x; then
607 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
611 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
612 [case "${enableval}" in
615 auto) NEED_EGL=auto ;;
616 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
617 esac],[NEED_EGL=auto])
619 AC_ARG_WITH([egl-module-name],
620 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
621 if test x$with_egl_module_name != x; then
622 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
626 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
627 [case "${enableval}" in
630 auto) NEED_WGL=auto ;;
631 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
632 esac],[NEED_WGL=auto])
635 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
636 [case "${enableval}" in
639 auto) NEED_GLX=auto ;;
640 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
641 esac],[NEED_GLX=auto])
643 AC_ARG_ENABLE([cocoa],
644 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
645 [case "${enableval}" in
646 yes) NEED_COCOA=yes ;;
648 auto) NEED_COCOA=auto ;;
649 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
650 esac],[NEED_COCOA=auto])
653 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
654 [case "${enableval}" in
657 auto) NEED_X11=auto ;;
658 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
659 esac],[NEED_X11=auto])
661 AC_ARG_ENABLE([wayland],
662 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
663 [case "${enableval}" in
664 yes) NEED_WAYLAND_EGL=yes ;;
665 no) NEED_WAYLAND_EGL=no ;;
666 auto) NEED_WAYLAND_EGL=auto ;;
667 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
668 esac],[NEED_WAYLAND_EGL=auto])
670 AC_ARG_ENABLE([dispmanx],
671 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
672 [case "${enableval}" in
673 yes) NEED_DISPMANX=yes ;;
674 no) NEED_DISPMANX=no ;;
675 auto) NEED_DISPMANX=auto ;;
676 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
677 esac],[NEED_DISPMANX=auto])
679 AG_GST_PKG_CHECK_MODULES(X, x11)
680 save_CPPFLAGS="$CPPFLAGS"
693 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
694 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
695 if test "x$HAVE_WGLEXT" = "xyes"; then
701 if test "x$NEED_GL" != "xno"; then
702 AG_GST_PKG_CHECK_MODULES(GL, gl)
703 if test "x$HAVE_GL" != "xyes"; then
704 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
707 if test "x$NEED_GLES2" != "xno"; then
708 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
709 if test "x$HAVE_GLES2" != "xyes"; then
710 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
712 AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
714 if test "x$NEED_EGL" != "xno"; then
715 AG_GST_PKG_CHECK_MODULES(EGL, egl)
716 if test "x$HAVE_EGL" != "xyes"; then
717 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
724 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
725 AC_CHECK_HEADER([EGL/fbdev_window.h],
728 AC_CHECK_LIB([Mali], [mali_image_create],
731 AC_CHECK_LIB([GLESv2], [glEnable],
733 AC_CHECK_HEADER([GLES2/gl2.h],
735 AC_CHECK_LIB([EGL], [eglGetProcAddress],
737 AC_CHECK_HEADER([EGL/egl.h],
741 EGL_LIBS="-lMali -lUMP"
743 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
751 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
752 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
753 LIBS="$LIBS -lvcos -lvchiq_arm"
754 AC_CHECK_LIB([bcm_host], [bcm_host_init],
756 LIBS="$LIBS -lbcm_host"
757 AC_CHECK_HEADER(bcm_host.h,
759 LIBS="$LIBS -lGLESv2"
760 AC_CHECK_LIB([EGL], [eglGetProcAddress],
763 AC_CHECK_HEADER([EGL/egl.h],
765 AC_CHECK_LIB([GLESv2], [glEnable],
767 AC_CHECK_HEADER([GLES2/gl2.h],
772 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
774 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
785 PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
789 CPPFLAGS="$save_CPPFLAGS"
803 dnl Check for what the user asked for and what we could find
804 if test "x$HAVE_EGL" = "xno"; then
805 if test "x$NEED_EGL" = "xyes"; then
806 AC_MSG_ERROR([Could not find the required EGL libraries])
810 if test "x$HAVE_GL" = "xno"; then
811 if test "x$NEED_GL" = "xyes"; then
812 AC_MSG_ERROR([Could not find the required OpenGL libraries])
816 if test "x$HAVE_GLES2" = "xno"; then
817 if test "x$NEED_GLES2" = "xyes"; then
818 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
822 dnl X, GLX and OpenGL
823 if test "x$HAVE_X" = "xno"; then
824 if test "x$NEED_GLX" = "xyes"; then
825 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
827 if test "x$NEED_X11" = "xyes"; then
828 AC_MSG_ERROR([Could not find X11 development libraries])
831 if test "x$NEED_GL" != "xno"; then
832 if test "x$HAVE_GL" = "xno"; then
833 if test "x$NEED_GLX" = "xyes"; then
834 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
838 if test "x$NEED_GLX" != "xno"; then
845 dnl check for DMABUF support
846 HAVE_DRM_FOURCC_HEADER=no
847 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
848 HAVE_DRM_FOURCC_HEADER=yes, )
850 HAVE_GST_ALLOCATORS=no
851 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
852 HAVE_GST_ALLOCATORS=yes, )
855 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
856 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
857 "x$HAVE_EGL" = "xyes"; then
861 dnl check if we can include both GL and GLES2 at the same time
862 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
865 # pragma GCC diagnostic push
866 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
868 #ifndef GL_GLEXT_PROTOTYPES
869 #define GL_GLEXT_PROTOTYPES 1
872 # include <OpenGLES/ES2/gl.h>
873 # include <OpenGLES/ES2/glext.h>
875 # include <GLES2/gl2.h>
876 # include <GLES2/gl2ext.h>
878 # include <GLES3/gl3.h>
879 # include <GLES3/gl3ext.h>
883 # include <OpenGL/OpenGL.h>
884 # include <OpenGL/gl.h>
885 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
886 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
887 # include <OpenGL/gl3.h>
891 # if __WIN32__ || _WIN32
892 # include <GL/glext.h>
895 int main (int argc, char **argv) { return 0; }
897 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
898 save_CFLAGS="$CFLAGS"
899 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
900 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
901 #if !defined(GL_FALSE)
902 #error Failed to include GL headers
904 ]])],[ AC_MSG_RESULT(yes)
906 if test "x$NEED_GLES2" = "xyes"; then
907 if test "x$NEED_GL" = "xyes"; then
908 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
910 AC_MSG_WARN([Disabling Desktop GL support])
914 AC_MSG_WARN([Disabling GL|ES 2.0 support])
919 CFLAGS="$save_CFLAGS"
922 #dnl Check for OpenGL
926 if test "x$NEED_WGL" = "xyes"; then
927 AC_MSG_ERROR([WGL is not available on Android])
929 if test "x$NEED_GLX" = "xyes"; then
930 AC_MSG_ERROR([GLX is not available on Android])
932 if test "x$NEED_GL" = "xyes"; then
933 AC_MSG_ERROR([GL is not available on Android])
935 if test "x$NEED_X11" = "xyes"; then
936 AC_MSG_ERROR([X11 is not available on Android])
938 if test "x$NEED_COCOA" = "xyes"; then
939 AC_MSG_ERROR([Cocoa is not available on Android])
943 if test "x$HAVE_GLES2" = "xyes"; then
944 if test "x$NEED_GLES2" != "xno"; then
945 GL_LIBS="$GL_LIBS -lGLESv2"
951 if test "x$HAVE_EGL" = "xyes"; then
952 if test "x$NEED_EGL" != "xno"; then
953 GL_LIBS="$GL_LIBS -lEGL"
958 if test "x$USE_EGL" != "xyes"; then
959 AC_MSG_ERROR([Need EGL on Android])
962 if test "x$USE_GLES2" != "xyes"; then
963 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
966 HAVE_WINDOW_ANDROID=yes
968 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
969 if test "x$NEED_WGL" = "xyes"; then
970 AC_MSG_ERROR([WGL is not available on unix])
973 if test "x$HAVE_X" = "xno"; then
974 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
975 AC_MSG_WARN([X or Wayland is required for OpenGL support])
979 dnl check Desktop OpenGL
980 if test "x$HAVE_GL" = "xyes"; then
981 if test "x$NEED_GL" != "xno"; then
982 GL_LIBS="$GL_LIBS -lGL"
987 if test "x$HAVE_GLES2" = "xyes"; then
988 if test "x$NEED_GLES2" != "xno"; then
989 GL_LIBS="$GL_LIBS -lGLESv2"
994 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
995 if test "x$NEED_X11" != "xno"; then
996 GL_LIBS="$GL_LIBS $X_LIBS"
997 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1002 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1003 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1004 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1006 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1007 HAVE_WINDOW_WAYLAND=yes
1008 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1009 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1014 if test "x$HAVE_EGL_RPI" = "xyes"; then
1015 if test "x$NEED_DISPMANX" != "xno"; then
1016 HAVE_WINDOW_DISPMANX=yes
1022 if test "x$HAVE_EGL" = "xno"; then
1023 if test "x$HAVE_GL" = "xno"; then
1024 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1027 if test "x$NEED_EGL" != "xno"; then
1028 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1029 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1030 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1037 if test "x$HAVE_IOS" = "xyes"; then
1038 if test "x$NEED_WGL" = "xyes"; then
1039 AC_MSG_ERROR([WGL is not available on iOS])
1041 if test "x$NEED_GLX" = "xyes"; then
1042 AC_MSG_ERROR([GLX is not available on iOS])
1044 if test "x$NEED_GL" = "xyes"; then
1045 AC_MSG_ERROR([GL is not available on iOS])
1047 if test "x$NEED_X11" = "xyes"; then
1048 AC_MSG_ERROR([X11 is not available on iOS])
1050 if test "x$NEED_COCOA" = "xyes"; then
1051 AC_MSG_ERROR([Cocoa is not available on iOS])
1053 if test "x$NEED_EGL" = "xyes"; then
1054 AC_MSG_ERROR([EGL is not available on iOS])
1057 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1058 GL_CFLAGS="$GL_CFLAGS"
1061 HAVE_WINDOW_EAGL=yes
1063 ac_cv_type_GLsizeiptr=yes
1064 ac_cv_type_GLintptr=yes
1065 ac_cv_type_GLchar=yes
1067 dnl Only osx supports cocoa.
1068 if test "x$NEED_WGL" = "xyes"; then
1069 AC_MSG_ERROR([WGL is not available on Mac OS X])
1072 if test "x$NEED_COCOA" != "xno"; then
1073 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1074 GL_CFLAGS="$GL_CFLAGS"
1076 HAVE_WINDOW_COCOA=yes
1080 if test "x$USE_GLX" = "xyes"; then
1081 if test "x$HAVE_X" = "xyes"; then
1082 if test "x$NEED_X11" != "xno"; then
1083 GL_LIBS="$GL_LIBS $X_LIBS"
1084 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1089 if test "x$HAVE_GL" = "xyes"; then
1090 if test "x$NEED_GL" != "xno"; then
1091 GL_LIBS="$GL_LIBS -lGL"
1097 if test "x$HAVE_EGL" = "xyes"; then
1098 if test "x$NEED_EGL" != "xno"; then
1099 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1100 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1101 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1108 if test "x$HAVE_GLES2" = "xyes"; then
1109 if test "x$NEED_GLES2" != "xno"; then
1110 GL_LIBS="$GL_LIBS -lGLESv2"
1117 if test "x$NEED_GLX" = "xyes"; then
1118 AC_MSG_ERROR([GLX is not available on Windows])
1120 if test "x$NEED_GLES2" = "xyes"; then
1121 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1124 if test "x$HAVE_GL" = "xyes"; then
1125 if test "x$NEED_GL" != "xno"; then
1126 if test "x$HAVE_WGL" = "xyes"; then
1127 if test "$NEED_WGL" != "xno"; then
1128 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1129 HAVE_WINDOW_WIN32=yes
1138 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1149 GST_GL_HAVE_OPENGL=0
1153 if test "x$USE_OPENGL" = "xyes"; then
1154 GL_APIS="gl $GL_APIS"
1155 GST_GL_HAVE_OPENGL=1
1157 if test "x$USE_GLES2" = "xyes"; then
1158 GL_APIS="gles2 $GL_APIS"
1160 if test "x$HAVE_GLES3_H" = "xyes"; then
1165 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1166 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1167 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1168 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1173 GST_GL_HAVE_WINDOW_X11=0
1174 GST_GL_HAVE_WINDOW_COCOA=0
1175 GST_GL_HAVE_WINDOW_WIN32=0
1176 GST_GL_HAVE_WINDOW_WAYLAND=0
1177 GST_GL_HAVE_WINDOW_ANDROID=0
1178 GST_GL_HAVE_WINDOW_DISPMANX=0
1179 GST_GL_HAVE_WINDOW_EAGL=0
1181 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1182 GL_WINDOWS="x11 $GL_WINDOWS"
1183 GST_GL_HAVE_WINDOW_X11=1
1185 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1186 GL_WINDOWS="cocoa $GL_WINDOWS"
1187 GST_GL_HAVE_WINDOW_COCOA=1
1189 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1190 GL_WINDOWS="win32 $GL_WINDOWS"
1191 GST_GL_HAVE_WINDOW_WIN32=1
1193 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1194 GL_WINDOWS="wayland $GL_WINDOWS"
1195 GST_GL_HAVE_WINDOW_WAYLAND=1
1197 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1198 GL_WINDOWS="android $GL_WINDOWS"
1199 GST_GL_HAVE_WINDOW_ANDROID=1
1201 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1202 GL_WINDOWS="dispmanx $GL_WINDOWS"
1203 GST_GL_HAVE_WINDOW_DISPMANX=1
1205 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1206 GL_WINDOWS="eagl $GL_WINDOWS"
1207 GST_GL_HAVE_WINDOW_EAGL=1
1210 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1211 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1212 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1213 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1214 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1215 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1216 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1217 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1222 GST_GL_HAVE_PLATFORM_EGL=0
1223 GST_GL_HAVE_PLATFORM_GLX=0
1224 GST_GL_HAVE_PLATFORM_WGL=0
1225 GST_GL_HAVE_PLATFORM_CGL=0
1226 GST_GL_HAVE_PLATFORM_EAGL=0
1228 if test "x$USE_EGL" = "xyes"; then
1229 GL_PLATFORMS="egl $GL_PLATFORMS"
1230 GST_GL_HAVE_PLATFORM_EGL=1
1232 if test "x$USE_GLX" = "xyes"; then
1233 GL_PLATFORMS="glx $GL_PLATFORMS"
1234 GST_GL_HAVE_PLATFORM_GLX=1
1236 if test "x$USE_WGL" = "xyes"; then
1237 GL_PLATFORMS="wgl $GL_PLATFORMS"
1238 GST_GL_HAVE_PLATFORM_WGL=1
1240 if test "x$USE_COCOA" = "xyes"; then
1241 GL_PLATFORMS="cgl $GL_PLATFORMS"
1242 GST_GL_HAVE_PLATFORM_CGL=1
1244 if test "x$USE_EAGL" = "xyes"; then
1245 GL_PLATFORMS="eagl $GL_PLATFORMS"
1246 GST_GL_HAVE_PLATFORM_EAGL=1
1249 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1250 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1251 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1252 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1253 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1254 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1257 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1258 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1261 dnl Check for no platforms/window systems
1262 if test "x$GL_APIS" = "x"; then
1263 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1265 if test "x$GL_PLATFORMS" = "x"; then
1266 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1268 if test "x$GL_WINDOWS" = "x"; then
1269 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1272 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1287 HAVE_WINDOW_WIN32=no
1288 HAVE_WINDOW_DISPMANX=no
1289 HAVE_WINDOW_WAYLAND=no
1290 HAVE_WINDOW_ANDROID=no
1291 HAVE_WINDOW_COCOA=no
1297 AC_SUBST(GL_OBJCFLAGS)
1298 AC_SUBST(USE_OPENGL)
1301 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1302 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1303 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1304 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1305 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1306 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1307 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1309 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1310 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1311 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1312 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1313 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1314 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1315 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1316 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1317 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1319 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1321 dnl Check for some types that are not always present
1323 if test "x$USE_GLES2" = "xyes"; then
1324 GL_INCLUDES="$GL_INCLUDES
1325 #ifndef GL_GLEXT_PROTOTYPES
1326 #define GL_GLEXT_PROTOTYPES 1
1329 # include <OpenGLES/ES2/gl.h>
1330 # include <OpenGLES/ES2/glext.h>
1332 # include <GLES2/gl2.h>
1333 # include <GLES2/gl2ext.h>
1334 # if GST_GL_HAVE_GLES3
1335 # include <GLES3/gl3.h>
1336 # include <GLES3/gl3ext.h>
1342 if test "x$USE_OPENGL" = "xyes"; then
1343 GL_INCLUDES="$GL_INCLUDES
1345 # include <OpenGL/OpenGL.h>
1346 # include <OpenGL/gl.h>
1349 # if __WIN32__ || _WIN32
1350 # include <GL/glext.h>
1356 GST_GL_HAVE_GLEGLIMAGEOES=0
1357 GST_GL_HAVE_GLCHAR=0
1358 GST_GL_HAVE_GLSIZEIPTR=0
1359 GST_GL_HAVE_GLINTPTR=0
1360 GST_GL_HAVE_GLSYNC=0
1361 GST_GL_HAVE_GLUINT64=0
1362 GST_GL_HAVE_GLINT64=0
1365 CFLAGS="$GL_CFLAGS $CFLAGS"
1367 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1368 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1369 GST_GL_HAVE_GLEGLIMAGEOES=1
1372 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1373 if test "x$ac_cv_type_GLchar" = "xyes"; then
1374 GST_GL_HAVE_GLCHAR=1
1377 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1378 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1379 GST_GL_HAVE_GLSIZEIPTR=1
1382 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1383 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1384 GST_GL_HAVE_GLINTPTR=1
1387 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1388 if test "x$ac_cv_type_GLsync" = "xyes"; then
1389 GST_GL_HAVE_GLSYNC=1
1392 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1393 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1394 GST_GL_HAVE_GLUINT64=1
1397 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1398 if test "x$ac_cv_type_GLint64" = "xyes"; then
1399 GST_GL_HAVE_GLINT64=1
1404 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1405 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1406 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1407 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1408 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1409 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1410 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1411 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1414 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1415 outfile=gstglconfig.h-tmp
1416 cat > $outfile <<\_______EOF
1419 * This is a generated file. Please modify `configure.ac'
1422 #ifndef __GST_GL_CONFIG_H__
1423 #define __GST_GL_CONFIG_H__
1425 #include <gst/gst.h>
1431 cat >>$outfile <<_______EOF
1435 cat >>$outfile <<_______EOF
1439 #endif /* __GST_GL_CONFIG_H__ */
1443 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1444 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1447 mv $outfile gst-libs/gst/gl/gstglconfig.h
1450 gl_config_defines='$GL_CONFIG_DEFINES'
1453 dnl libpng is optional
1454 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1455 if test "x$HAVE_PNG" = "xyes"; then
1456 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1459 AC_SUBST(LIBPNG_LIBS)
1460 AC_SUBST(LIBPNG_CFLAGS)
1461 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1463 dnl libjpeg is optional
1464 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1466 if test x$with_jpeg_mmx != x; then
1467 LIBS="$LIBS -L$with_jpeg_mmx"
1469 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1470 JPEG_LIBS="$LIBS -ljpeg-mmx"
1472 if test x$HAVE_JPEG != xyes; then
1474 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1477 if test x$HAVE_JPEG = xyes; then
1478 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1480 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1485 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1488 VULKAN_CONFIG_DEFINES=""
1490 PKG_CHECK_MODULES(XCB, xcb >= 1.10, HAVE_XCB=yes, HAVE_XCB=no)
1492 AM_CONDITIONAL(USE_XCB, test "x$HAVE_XCB" = "xyes")
1493 if test "x$HAVE_XCB" = "xyes"; then
1494 VULKAN_CONFIG_DEFINES="$VULKAN_CONFIG_DEFINES
1495 #define GST_VULKAN_HAVE_WINDOW_XCB 1"
1498 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1499 outfile=vkconfig.h-tmp
1500 cat > $outfile <<\_______EOF
1503 * This is a generated file. Please modify `configure.ac'
1506 #ifndef __GST_VULKAN_CONFIG_H__
1507 #define __GST_VULKAN_CONFIG_H__
1509 #include <gst/gst.h>
1515 cat >>$outfile <<_______EOF
1516 $vulkan_config_defines
1519 cat >>$outfile <<_______EOF
1523 #endif /* __GST_VULKAN_CONFIG_H__ */
1527 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1528 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1531 mv $outfile ext/vulkan/vkconfig.h
1534 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1537 dnl *** sys plug-ins ***
1540 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1541 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1542 HAVE_DIRECTSOUND="no"
1543 save_CFLAGS="$CFLAGS"
1544 save_LDFLAGS="$LDFLAGS"
1546 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1547 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1548 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1549 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1550 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1551 #include <windows.h>
1554 #include <mmsystem.h>
1556 DXGetErrorString9 (0);
1557 DirectSoundCreate(NULL, NULL, NULL);
1559 [HAVE_DIRECTSOUND="yes"],
1560 [HAVE_DIRECTSOUND="no"])
1561 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1563 LDFLAGS=$save_LDFLAGS
1566 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1567 dnl this is much more than we want
1568 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1569 AC_SUBST(DIRECTX_CFLAGS)
1570 AC_SUBST(DIRECTX_LDFLAGS)
1571 AC_SUBST(DIRECTSOUND_LIBS)
1573 AC_SUBST(HAVE_DIRECTSOUND)
1577 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1578 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1580 save_CFLAGS="$CFLAGS"
1581 save_LDFLAGS="$LDFLAGS"
1583 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1584 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1585 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1586 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1587 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1588 #include <windows.h>
1590 #include <mmsystem.h>
1591 #include <mmdeviceapi.h>
1597 hr = CoInitialize(NULL);
1599 printf("CoInitialize failed: hr = 0x%08x", hr);
1604 // result = do_everything(argc, argv);
1610 [HAVE_WASAPI="yes"],
1612 AC_MSG_RESULT($HAVE_WASAPI)
1614 LDFLAGS=$save_LDFLAGS
1617 if test "x$HAVE_WASAPI" = "xyes"; then
1618 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1619 AC_SUBST(WASAPI_LIBS)
1621 AC_SUBST(HAVE_WASAPI)
1625 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1626 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1628 save_CFLAGS="$CFLAGS"
1629 save_LDFLAGS="$LDFLAGS"
1631 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1632 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1633 LIBS="$LIBS -ld3d9 -lgdi32"
1634 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1635 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1636 #include <windows.h>
1639 Direct3DCreate9(D3D_SDK_VERSION);
1641 [HAVE_DIRECT3D="yes"],
1642 [HAVE_DIRECT3D="no"])
1643 AC_MSG_RESULT($HAVE_DIRECT3D)
1645 LDFLAGS=$save_LDFLAGS
1648 if test "x$HAVE_DIRECT3D" = "xyes"; then
1649 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1650 AC_SUBST(DIRECT3D_LIBS)
1652 AC_SUBST(HAVE_DIRECT3D)
1656 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1657 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1658 HAVE_WINSCREENCAP="no"
1659 save_CFLAGS="$CFLAGS"
1660 save_LDFLAGS="$LDFLAGS"
1662 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1663 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1664 LIBS="$LIBS -ld3d9 -lgdi32"
1665 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1666 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1667 #include <windows.h>
1670 Direct3DCreate9(D3D_SDK_VERSION);
1672 [HAVE_WINSCREENCAP="yes"],
1673 [HAVE_WINSCREENCAP="no"])
1674 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1676 LDFLAGS=$save_LDFLAGS
1679 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1680 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1681 AC_SUBST(WINSCREENCAP_LIBS)
1683 AC_SUBST(HAVE_WINSCREENCAP)
1687 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1688 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1690 save_CFLAGS="$CFLAGS"
1691 save_LDFLAGS="$LDFLAGS"
1693 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1694 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1695 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1696 AC_MSG_CHECKING(for Winks LDFLAGS)
1697 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1698 #include <windows.h>
1703 IGraphBuilder *pGraph = NULL;
1704 HRESULT hr = CoInitialize(NULL);
1705 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1706 &IID_IGraphBuilder, (void **)&pGraph);
1713 AC_MSG_RESULT($HAVE_WINKS)
1715 LDFLAGS=$save_LDFLAGS
1718 if test "x$HAVE_WINKS" = "xyes"; then
1719 dnl this is much more than we want
1720 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1721 AC_SUBST(DIRECTX_CFLAGS)
1722 AC_SUBST(DIRECTX_LDFLAGS)
1723 AC_SUBST(WINKS_LIBS)
1725 AC_SUBST(HAVE_WINKS)
1728 dnl *** Android Media ***
1729 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1730 HAVE_ANDROID_MEDIA="no"
1731 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1734 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1737 HAVE_ANDROID_MEDIA="no"
1742 dnl *** AppleMedia (OS X and iOS) ***
1743 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1744 HAVE_APPLE_MEDIA="no"
1745 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1746 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1747 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1748 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1749 if test "x$HAVE_IOS" = "xno"; then
1750 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1754 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1759 HAVE_APPLE_MEDIA="no"
1764 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1765 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1766 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1767 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1768 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1770 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1779 dnl *** OS/X AVCVideoServices ***
1780 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1782 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1784 save_CPPFLAGS="$CPPFLAGS"
1785 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1787 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1788 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1790 CPPFLAGS=$save_CPPFLAGS
1793 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1802 dnl check for shm_open (for shm plugin)
1803 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1804 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1805 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1807 *-darwin* | *-macos10*)
1808 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1812 AC_CHECK_LIB([rt], [shm_open],
1813 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1814 #include <sys/socket.h>
1817 AC_SUBST(SHM_LIBS, "-lrt")
1825 dnl check for Video CD
1826 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1827 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1828 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1831 dnl check for OpenSL ES
1832 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1833 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1834 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1837 dnl *** UVC H264 ***
1838 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1839 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1840 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1841 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1842 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1845 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1846 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1847 HAVE_LIBUSB="yes" ],
1849 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1850 test "x$HAVE_GUDEV" = "xyes" && \
1851 test "x$HAVE_LIBUSB" = "xyes"; then
1857 AC_SUBST(LIBUDEV_CFLAGS)
1858 AC_SUBST(LIBUDEV_LIBS)
1859 AC_SUBST(LIBUSB_CFLAGS)
1860 AC_SUBST(LIBUSB_LIBS)
1863 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1864 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1865 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1866 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1867 AC_ARG_WITH([cuda-prefix],
1868 AS_HELP_STRING([--with-cuda-prefix],
1869 [Use the provided prefix for detecting the cuda installation]),
1870 [AS_IF([test "x$with_cuda_prefix" != "x"],
1871 [CUDA_PREFIX="$with_cuda_prefix"])],
1875 if test "x$CUDA_PREFIX" != "x"; then
1876 dnl only override if not already set
1877 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1878 dnl this is an educated guess, user can always override these
1879 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1880 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1883 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1884 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1885 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1886 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1891 save_CPPFLAGS="$CPPFLAGS"
1892 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1893 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1894 AC_MSG_WARN([Could not find cuda.h]))
1895 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1896 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1897 CPPFLAGS=$save_CPPFLAGS
1899 dnl libcuda and libcudart libraries
1901 LIBS="$CUDA_LIBS $save_LIBS"
1902 HAVE_CUDART_LIB="no"
1903 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1904 AC_MSG_WARN([Could not find cudart library])])
1906 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1907 AC_MSG_WARN([Could not find cuda library])])
1910 dnl nvEncodeAPI.h header
1911 HAVE_NVENCODEAPI_H=no
1912 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1913 save_CPPFLAGS="$CPPFLAGS"
1914 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1915 AC_CHECK_HEADER([nvEncodeAPI.h], [
1916 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1917 #if NVENCAPI_MAJOR_VERSION < 5
1918 #error "Need nvEncodeAPI.h >= 5.0"
1921 HAVE_NVENCODEAPI_H=yes
1923 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1926 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1927 AC_SUBST(NVENCODE_CFLAGS)
1928 CPPFLAGS="$save_CPPFLAGS"
1930 dnl libnvnidia-encode library
1931 HAVE_NVENCODE_LIB=no
1932 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1934 LIBS="$NVENCODE_LIBS $saved_LIBS"
1935 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1936 AC_MSG_WARN([Could not find library nvidia-encode]))
1937 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1938 AC_SUBST(NVENCODE_LIBS)
1942 if test "x$HAVE_CUDA_H" = "xyes" \
1943 -a "x$HAVE_CUDART_H" = "xyes" \
1944 -a "x$HAVE_CUDA_LIB" = "xyes" \
1945 -a "x$HAVE_CUDART_LIB" = "xyes" \
1946 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1947 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1949 if test x"$USE_OPENGL" = x"yes"; then
1950 dnl cuda-gl interop header
1951 save_CPPFLAGS="$CPPFLAGS"
1952 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1953 AC_CHECK_HEADER([cuda_gl_interop.h], [
1954 USE_NVENC_GST_GL="yes"
1955 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1957 CPPFLAGS="$save_CPPFLAGS"
1963 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1965 dnl check for tinyalsa
1966 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1967 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1968 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1971 dnl *** ext plug-ins ***
1972 dnl keep this list sorted alphabetically !
1974 if test "x$BUILD_EXTERNAL" = "xyes"; then
1976 dnl *** assrender ***
1977 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1978 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1979 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1980 HAVE_ASSRENDER="yes" ], [
1984 AC_SUBST(ASSRENDER_CFLAGS)
1985 AC_SUBST(ASSRENDER_LIBS)
1987 dnl *** vo-amrwbenc ***
1988 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1989 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1990 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1993 dnl *** vo-aacenc ***
1994 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1995 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1996 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1999 dnl *** apexsink ***
2000 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
2001 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
2002 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
2006 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
2007 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
2008 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
2010 AC_SUBST(APEXSINK_CFLAGS)
2011 AC_SUBST(APEXSINK_LIBS)
2018 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2019 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2020 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2023 AC_SUBST(BS2B_CFLAGS)
2028 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2029 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2032 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2033 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2034 AC_MSG_RESULT($HAVE_BZ2)
2036 if test "x$HAVE_BZ2" = "xyes"; then
2044 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2045 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2046 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2049 # AC_SUBST(CAIRO_CFLAGS)
2050 # AC_SUBST(CAIRO_LIBS)
2053 dnl *** chromaprint ***
2054 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2055 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2056 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2057 HAVE_CHROMAPRINT="no"
2059 AC_SUBST(CHROMAPRINT_CFLAGS)
2060 AC_SUBST(CHROMAPRINT_LIBS)
2064 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2065 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2066 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2068 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2069 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2071 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2072 [[#ifdef HAVE_SYS_TYPES_H
2073 # include <sys/types.h>
2075 #ifdef HAVE_NETINET_IN_H
2076 # include <netinet/in.h>
2079 AC_MSG_CHECKING([for socket support needed by curlsink])
2080 AC_MSG_RESULT($HAVE_CURL)
2084 AC_SUBST(CURL_CFLAGS)
2086 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2088 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2092 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2093 AC_SUBST(SSH2_CFLAGS)
2095 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2098 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2099 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2100 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2101 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2103 AC_SUBST(LIBXML2_CFLAGS)
2104 AC_SUBST(LIBXML2_LIBS)
2108 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2109 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2110 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2111 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2120 AC_SUBST(LIBDC1394_CFLAGS)
2121 AC_SUBST(LIBDC1394_LIBS)
2124 dnl *** decklink ***
2125 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2126 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2133 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2134 AC_CHECK_LIB(dl, dlopen,
2138 DECKLINK_LIBS="-lpthread -ldl"
2143 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2144 AC_CHECK_LIB(dl, dlopen,
2148 DECKLINK_LIBS="-lpthread -ldl"
2149 HAVE_DECKLINK_OSX=yes
2158 AC_SUBST(DECKLINK_CXXFLAGS)
2159 AC_SUBST(DECKLINK_LIBS)
2161 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2163 dnl **** DirectFB ****
2164 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2165 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2166 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2171 dnl **** Wayland ****
2172 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2173 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2174 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2175 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2176 if test "x$wayland_scanner" != "x"; then
2179 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2188 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2189 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2190 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2191 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2193 AC_SUBST(WEBP_CFLAGS)
2198 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2199 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2200 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2201 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2206 AC_SUBST(DAALA_CFLAGS)
2207 AC_SUBST(DAALA_LIBS)
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2213 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2215 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2216 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2217 if test $HAVE_DTS = "no"; then
2218 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2219 [ DTS_LIBS="-ldts_pic $LIBM"
2220 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2226 dnl *** resindvd ***
2227 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2228 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2229 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2234 dnl **** Free AAC Encoder (FAAC) ****
2235 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2236 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2237 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2238 FAAC_LIBS="-lfaac $LIBM")
2242 dnl **** Free AAC Decoder (FAAD2) ****
2243 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2244 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2245 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2246 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2247 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2249 #elif !defined(LATM)
2250 #error Not faad2 >= 2.7
2256 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2266 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2267 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2268 if test "x$HAVE_FBDEV" != "xyes"; then
2269 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2274 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2275 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2276 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2277 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2279 AC_SUBST(FLITE_CFLAGS)
2280 AC_SUBST(FLITE_LIBS)
2284 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2285 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2286 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2287 if test $HAVE_GSM != "yes"; then
2288 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2289 if test $HAVE_GSM = "yes"; then
2290 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2296 dnl *** fluidSynth ***
2297 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2298 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2299 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2300 HAVE_FLUIDSYNTH="no"
2305 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2306 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2307 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2310 AC_SUBST(KATE_CFLAGS)
2312 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2315 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2321 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2322 AC_SUBST(TIGER_CFLAGS)
2323 AC_SUBST(TIGER_LIBS)
2324 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2327 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2328 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2329 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2331 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2332 if test $HAVE_LRDF = "yes"; then
2333 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2336 AC_SUBST(LRDF_CFLAGS)
2340 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2341 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2342 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2343 AC_SUBST(LILV_CFLAGS)
2347 dnl *** libde265 ***
2348 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2349 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2350 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2351 AC_SUBST(LIBDE265_CFLAGS)
2352 AC_SUBST(LIBDE265_LIBS)
2356 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2357 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2358 dnl check with pkg-config first
2359 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2363 AC_SUBST(LIBMMS_LIBS)
2367 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2368 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2369 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2370 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2373 AC_SUBST(SRTP_CFLAGS)
2377 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2378 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2379 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2381 AC_SUBST(DTLS_CFLAGS)
2389 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2390 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2402 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2403 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2404 if test "x$HAVE_CXX" != "xyes"; then
2405 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2408 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2410 AC_SUBST(MODPLUG_CFLAGS)
2411 AC_SUBST(MODPLUG_LIBS)
2415 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2416 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2418 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2419 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2420 AC_SUBST(MIMIC_CFLAGS)
2421 AC_SUBST(MIMIC_LIBS)
2424 dnl *** mjpegtools version info ***
2425 dnl some may prefer older version (given quirks above)
2426 dnl hm, no version info seems available within mjpegtools headers
2427 dnl and API really moves along
2429 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2430 mjpegtools_api=10601
2432 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2433 mjpegtools_api=10800
2435 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2436 mjpegtools_api=20000
2438 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2439 dnl logging API changed in release candidates
2440 OLD_CFLAGS="$CFLAGS"
2442 CFLAGS="$MJPEG_CFLAGS"
2443 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2444 AC_CHECK_FUNC(mjpeg_loglev_t, [
2445 mjpegtools_api=10903
2447 mjpegtools_api=10900
2449 CFLAGS="$OLD_CFLAGS"
2457 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2458 [mjpegtools API evolution])
2460 dnl *** mpeg2enc ***
2461 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2462 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2464 dnl we require a c++ compiler for this one
2465 if [ test x$HAVE_CXX = xyes ]; then
2466 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2467 dnl since many distros include mjpegtools specifically without mplex
2468 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2469 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2470 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2472 dnl switch over to c++ to test things
2474 OLD_CPPFLAGS="$CPPFLAGS"
2476 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2477 CPPFLAGS="$CPPFLAGS_GOOD -I."
2479 mpeg2enc_headers_ok=no
2480 AC_CHECK_HEADER([mpeg2encoder.hh], [
2481 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2483 LIBS="$LIBS $MPEG2ENC_LIBS"
2484 AC_MSG_CHECKING([for valid mpeg2enc objects])
2485 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2486 #include <mpeg2encoder.hh>
2487 #include <mpeg2encoptions.hh>
2493 MPEG2EncOptions *options = new MPEG2EncOptions ();
2494 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2499 dnl so far so good, let's check more things:
2500 dnl mjpegtools-1.8.0 does not install the required
2501 dnl mpeg2syntaxcodes.h header by default, and a new release
2502 dnl is not in sight, so check for this oversight in case
2503 dnl distros or folks have fixed this themselves
2504 if test "$mjpegtools_api" -ge "10800"; then
2505 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2506 mpeg2enc_headers_ok=yes
2508 mpeg2enc_headers_ok=no
2511 mpeg2enc_headers_ok=yes
2513 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2516 CPPFLAGS="$CPPFLAGS_GOOD"
2517 AC_SUBST(MPEG2ENC_CFLAGS)
2518 AC_SUBST(MPEG2ENC_LIBS)
2525 CPPFLAGS="$OLD_CPPFLAGS"
2534 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2535 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2537 dnl we require a c++ compiler for this one
2538 if [ test x$HAVE_CXX = xyes ]; then
2539 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2540 dnl since many distros include mjpegtools specifically without mplex
2541 dnl and mpeg2enc, we check for mplex on its own, too.
2542 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2543 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2544 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2546 dnl switch over to c++ to test things
2548 OLD_CPPFLAGS="$CPPFLAGS"
2550 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2551 CPPFLAGS="$CPPFLAGS_GOOD -I."
2552 AC_CHECK_HEADER(interact.hpp, [
2553 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2555 LIBS="$LIBS $MPLEX_LIBS"
2556 OLD_LDFLAGS="$LDFLAGS"
2557 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2558 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2559 dnl don't want this here
2560 AC_MSG_CHECKING([for valid mplex objects])
2561 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2563 #include <interact.hpp>
2564 #include <outputstrm.hpp>
2565 #include <multiplexor.hpp>
2570 class TestOutputStream : public OutputStream {
2572 TestOutputStream () : OutputStream () { }
2573 void Write (uint8_t *a, unsigned int b) { }
2574 void NextSegment () { }
2575 uint64_t SegmentSize () { }
2579 MultiplexJob *job = new MultiplexJob ();
2580 vector<IBitStream *> inputs;
2581 job->SetupInputStreams (inputs);
2582 TestOutputStream *out = new TestOutputStream ();
2583 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2588 CPPFLAGS="$CPPFLAGS_GOOD"
2589 AC_SUBST(MPLEX_CFLAGS)
2590 AC_SUBST(MPLEX_LIBS)
2591 AC_SUBST(MPLEX_LDFLAGS)
2593 ],[AC_MSG_RESULT(no)],[])
2595 LDFLAGS="$OLD_LDFLAGS"
2597 CPPFLAGS="$OLD_CPPFLAGS"
2603 dnl *** musepack ***
2604 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2605 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2606 AC_CHECK_HEADER([mpc/mpcdec.h], [
2608 MUSEPACK_LIBS="-lmpcdec"
2609 AC_SUBST(MUSEPACK_LIBS)
2610 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2612 MUSEPACK_LIBS="-lmpcdec"
2613 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2614 AC_SUBST(MUSEPACK_LIBS)
2615 ], [HAVE_MUSEPACK="no"])])
2619 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2620 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2622 if test "x$HAVE_X" = "xyes"; then
2623 save_cppflags=$CFLAGS
2624 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2625 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2626 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2627 CPPFLAGS="$save_cppflags"
2629 AC_SUBST(NAS_CFLAGS)
2634 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2635 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2636 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2639 AC_SUBST(NEON_CFLAGS)
2644 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2645 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2646 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2649 AC_SUBST(OFA_CFLAGS)
2654 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2655 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2656 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2659 AC_SUBST(OPENAL_CFLAGS)
2660 AC_SUBST(OPENAL_LIBS)
2664 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2665 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2666 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2667 dnl and don't want the build to break when a new opencv version comes out.
2668 dnl Need to adjust this upwards once we know that our code compiles fine with
2669 dnl a new version and the no-backward-compatibility define. (There doesn't
2670 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2672 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.1.0 , [
2675 OLD_CPPFLAGS=$CPPFLAGS
2676 CPPFLAGS=$OPENCV_CFLAGS
2677 something_not_found=no
2678 AC_CHECK_HEADERS([opencv2/core/core_c.h \
2679 opencv2/core/version.hpp \
2680 opencv2/highgui/highgui_c.h \
2681 opencv2/imgproc/imgproc.hpp \
2682 opencv2/imgproc/imgproc_c.h \
2683 opencv2/objdetect/objdetect.hpp \
2684 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2685 CPPFLAGS=$OLD_CPPFLAGS
2688 if test $something_not_found = "yes"; then
2689 AC_MSG_RESULT([not all opencv2 headers were found])
2697 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2698 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2699 AC_SUBST(OPENCV_PREFIX)
2700 AC_SUBST(OPENCV_CFLAGS)
2701 AC_SUBST(OPENCV_LIBS)
2702 dnl the OpenCV prefix is used at runtime for some object properties, and also
2703 dnl used here to detect which directory is the correct one. For the second
2704 dnl case, make sure the right sysroot is used, ensuring correct behavior
2705 dnl during cross compilation.
2706 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2707 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2709 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2714 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2715 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2716 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2719 dnl *** openh264 ***
2720 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2721 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2722 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2725 dnl *** OpenJPEG ***
2726 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2727 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2731 save_CFLAGS="$CFLAGS"
2732 OPENJPEG_LIBS="-lopenjp2"
2733 LIBS="$LIBS $OPENJPEG_LIBS"
2734 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2736 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2737 [return (int) *opj_version ();])
2738 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2740 CFLAGS="$save_CFLAGS"
2742 if test x"$HAVE_OPENJPEG" = x"no"; then
2744 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2745 HAVE_OPENJPEG="yes",
2746 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2748 if test x"$HAVE_OPENJPEG" = x"yes"; then
2749 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2752 AC_SUBST(OPENJPEG_CFLAGS)
2753 AC_SUBST(OPENJPEG_LIBS)
2757 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2758 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2759 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2760 AC_SUBST(OPENNI2_CFLAGS)
2761 AC_SUBST(OPENNI2_LIBS)
2765 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2766 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2767 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2768 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2773 AC_SUBST(OPUS_CFLAGS)
2778 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2779 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2780 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2781 AC_SUBST(PVR_CFLAGS)
2785 AC_ARG_WITH([pvr-external-headers],
2786 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2787 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2788 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2789 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2792 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2793 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2794 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2798 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2799 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2802 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2809 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2810 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2811 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2812 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2817 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2819 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2820 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2821 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2822 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2824 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2826 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2827 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2828 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2829 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2831 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2833 if test "x$GDK_WINDOWING" = "xyes"; then
2834 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2841 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2844 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2845 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2846 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2847 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2848 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2849 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2850 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2851 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2852 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2853 AC_MSG_WARN([One of the required qt build programs was not found])
2857 HAVE_QT_WINDOWING="no"
2858 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2859 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2860 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2861 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2862 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2863 HAVE_QT_WINDOWING="yes"
2864 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2866 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2867 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2868 AC_DEFINE([HAVE_QT_WAYLAND], [],
2869 [Define if Qt Wayland integration is installed])
2870 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2871 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2872 HAVE_QT_WINDOWING="yes"
2873 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2875 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2876 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2877 # c++ on android requires a standard library and there are multiple
2878 # choices. cerbero provides a pkg-config file the describes a choice
2879 # so try to use that. Outside cerbero one has to pass these flags
2880 # manually for the library one is using
2881 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2882 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2883 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2885 AC_MSG_NOTICE([Could not find Standard C++ library])])
2887 AC_DEFINE([HAVE_QT_ANDROID], [],
2888 [Define if Qt Android integration is installed])
2889 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2890 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2891 HAVE_QT_WINDOWING="yes"
2892 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2894 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2895 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2896 AC_DEFINE([HAVE_QT_MAC], [],
2897 [Define if Qt Mac integration is installed])
2898 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2899 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2900 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2901 HAVE_QT_WINDOWING="yes"
2902 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2904 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2905 if test "x$HAVE_IOS" = "xyes"; then
2906 # iOS doesn't have its own extras package so if we have the core
2907 # modules we are good to go
2908 AC_DEFINE([HAVE_QT_IOS], [],
2909 [Define if Qt iOS integration is installed])
2910 HAVE_QT_WINDOWING="yes"
2913 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2914 AC_MSG_WARN([Could not find any Qt Windowing integration])
2917 AC_SUBST([QT_CFLAGS])
2926 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2927 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2929 AC_CHECK_HEADER(vulkan/vulkan.h, [
2930 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2931 VULKAN_LIBS="-lvulkan"
2932 AC_SUBST(VULKAN_LIBS)
2933 dnl TODO check platform support (x11, win32, wayland, android, etc)
2934 if test "x$HAVE_XCB" = "xyes"; then
2941 dnl *** libvisual ***
2942 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2943 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2944 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2945 if test x$HAVE_LIBVISUAL = xyes; then
2946 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2948 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2949 if test x$LIBVIS_PLUGINSDIR != x; then
2950 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2951 "$LIBVIS_PLUGINSDIR",
2952 [directory in which the detected libvisual's plugins are located])
2956 dnl *** timidity ***
2957 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2958 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2959 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2960 HAVE_TIMIDITY="yes",
2961 AC_MSG_CHECKING([for timidity.cfg])
2963 if test -r /etc/timidity.cfg; then
2964 timidity_cfg=/etc/timidity.cfg
2965 elif test -r /etc/timidity/timidity.cfg; then
2966 timidity_cfg=/etc/timidity/timidity.cfg
2967 elif test -r /usr/share/timidity/timidity.cfg; then
2968 timidity_cfg=/usr/share/timidity/timidity.cfg
2969 elif test -r /usr/local/share/timidity/timidity.cfg; then
2970 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2972 if test "x$timidity_cfg" != "x"; then
2973 AC_MSG_RESULT($timidity_cfg)
2974 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2976 AC_MSG_RESULT([not found])
2981 AC_SUBST(TIMIDITY_CFLAGS)
2982 AC_SUBST(TIMIDITY_LIBS)
2985 dnl *** teletextdec ***
2986 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2987 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2988 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2991 dnl *** wildmidi ***
2992 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2993 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2994 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2997 WILDMIDI_LIBS="-lWildMidi")
2998 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3000 if test "x$HAVE_WILDMIDI" = "xyes"; then
3002 WILDMIDI_LIBS=-lWildMidi
3003 AC_MSG_NOTICE(compiling gstWildMidi)
3007 AC_MSG_WARN(no WildMidi library found (libWildMidi))
3009 AC_SUBST(WILDMIDI_CFLAGS)
3010 AC_SUBST(WILDMIDI_LIBS)
3014 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3015 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3016 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3019 dnl **** Smooth Streaming ****
3020 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3021 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3022 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3024 HAVE_SMOOTHSTREAMING="yes"],
3026 HAVE_SMOOTHSTREAMING="no"])
3027 AC_SUBST(LIBXML2_CFLAGS)
3028 AC_SUBST(LIBXML2_LIBS)
3032 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3033 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3034 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3035 AC_SUBST(SNDFILE_CFLAGS)
3036 AC_SUBST(SNDFILE_LIBS)
3039 dnl *** soundtouch ***
3040 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3041 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3042 dnl We only need -lBPM on soundtouch < 1.4
3043 dnl We check for libSoundTouch since Debian used it before upstream
3044 dnl added a pkgconfig file.
3045 HAVE_SOUNDTOUCH_1_4=yes
3046 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3047 [HAVE_SOUNDTOUCH=yes],
3048 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3049 [HAVE_SOUNDTOUCH=yes],
3050 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3051 [HAVE_SOUNDTOUCH=yes
3052 HAVE_SOUNDTOUCH_1_4=no
3053 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3054 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3055 [HAVE_SOUNDTOUCH=yes],
3056 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3057 [HAVE_SOUNDTOUCH=yes
3058 HAVE_SOUNDTOUCH_1_4=no
3059 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3060 HAVE_SOUNDTOUCH=no)])])])])
3061 AC_SUBST(SOUNDTOUCH_CFLAGS)
3062 AC_SUBST(SOUNDTOUCH_LIBS)
3063 if test "x$HAVE_CXX" != "xyes"; then
3064 USE_SOUNDTOUCH=false
3065 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3067 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3068 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3069 [Defined if the available libSoundTouch is >= 1.4])
3074 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3075 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3076 AC_CHECK_HEADER(openspc.h, [
3077 AC_CHECK_LIB(openspc, OSPC_Init, [
3078 SPC_LIBS="-lopenspc"
3090 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3091 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3092 AC_CHECK_HEADER(gme/gme.h, [
3093 AC_CHECK_LIB(gme, gme_new_emu, [
3104 if test "x$HAVE_GME" = "xyes"; then
3105 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3106 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3112 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3113 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3115 AC_CHECK_HEADER(xvid.h, [
3117 LIBS="$PTHREAD_LIBS $LIBM"
3118 AC_CHECK_LIB(xvidcore, xvid_encore, [
3119 AC_CHECK_LIB(xvidcore, xvid_decore, [
3120 AC_CHECK_LIB(xvidcore, xvid_global, [
3121 AC_MSG_CHECKING([for up-to-date XviD API version])
3122 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3123 #if XVID_API_MAJOR(XVID_API) != 4
3124 #error "Incompatible XviD API version"
3126 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3127 #error "Incompatible XviD API version"
3129 ]])],[ AC_MSG_RESULT(yes)
3130 XVID_LIBS="-lxvidcore $LIBM"
3133 ],[AC_MSG_RESULT(no) ])
3142 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3143 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3144 AC_MSG_CHECKING([Checking for up to date dvb installation])
3145 AC_CHECK_HEADER(linux/dvb/version.h, [
3146 AC_MSG_CHECKING([for up-to-date dvb API])
3147 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3148 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3149 #error "Incompatible dvb API"
3151 ]])], [ AC_MSG_RESULT(yes)
3153 ], [ AC_MSG_RESULT(no)
3160 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3161 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3162 AC_MSG_CHECKING([Checking for windows internet support])
3163 AC_CHECK_HEADERS([windows.h wininet.h],
3164 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3165 [AC_INCLUDES_DEFAULT
3166 #include <windows.h>])
3170 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3171 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3172 AC_MSG_CHECKING([Checking for ACM support])
3173 AC_CHECK_HEADERS([windows.h msacm.h],
3175 AC_SUBST(ACMENC_CFLAGS)
3176 AC_SUBST(ACMMP3DEC_CFLAGS)
3178 [AC_INCLUDES_DEFAULT
3179 #include <windows.h>])
3183 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3184 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3189 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3191 if test "$HAVE_VDPAU" = "no"; then
3192 saved_CPPFLAGS="$CPPFLAGS"
3193 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3195 if test -z "$HAVE_VDPAU_H"; then
3196 dnl Didn't find VDPAU header straight away.
3197 dnl Try /usr/include/nvidia. Need to clear caching vars first
3198 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3199 unset ac_cv_header_vdpau_vdpau_h
3200 unset ac_cv_header_vdpau_vdpau_x11_h
3201 VDPAU_CFLAGS="-I/usr/include/nvidia"
3202 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3203 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3204 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3207 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3209 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3210 dnl Found the headers - look for the lib
3211 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3213 LIBS="$VDPAU_LIBS $saved_LIBS"
3214 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3220 if test "$HAVE_VDPAU" = "yes"; then
3221 AC_MSG_NOTICE([Found up to date VDPAU installation])
3222 AC_SUBST(VDPAU_CFLAGS)
3223 AC_SUBST(VDPAU_LIBS)
3228 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3229 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3230 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3233 dnl *** schroedinger ***
3234 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3235 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3236 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3240 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3241 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3242 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3246 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3247 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3248 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3252 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3253 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3254 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3255 HAVE_SPANDSP="yes" ], [
3259 AC_SUBST(SPANDSP_CFLAGS)
3260 AC_SUBST(SPANDSP_LIBS)
3263 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3264 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3265 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3266 if test "x$HAVE_SNDIO" = "xyes"; then
3267 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3268 if test "x$HAVE_SNDIO" = "xyes"; then
3270 AC_SUBST(SNDIO_LIBS)
3275 dnl *** hls-crypto ***
3276 AC_ARG_WITH([hls-crypto],
3277 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3278 which cryptographic library version to compile against for hls (default: auto)
3280 AS_CASE([$with_hls_crypto],
3284 [with_hls_crypto=auto]
3290 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3291 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3292 AS_CASE([$with_hls_crypto],
3294 PKG_CHECK_MODULES(NETTLE, nettle, [
3295 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3297 ],[AC_MSG_ERROR([Could not find nettle library])])
3300 AM_PATH_LIBGCRYPT([1.2.0], [
3301 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3303 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3306 PKG_CHECK_MODULES(OPENSSL, openssl, [
3307 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3309 ],[AC_MSG_ERROR([Could not find openssl library])])
3312 dnl Try to find a valid crypto library
3313 PKG_CHECK_MODULES(NETTLE, nettle, [
3314 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3317 AM_PATH_LIBGCRYPT([1.2.0], [
3318 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3321 PKG_CHECK_MODULES(OPENSSL, openssl, [
3322 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3333 dnl *** x265 (H.265/HEVC encoder) ***
3334 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3335 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3336 AG_GST_PKG_CHECK_MODULES(X265, x265)
3341 dnl not building plugins with external dependencies,
3342 dnl but we still need to set the conditionals
3344 AM_CONDITIONAL(USE_ASSRENDER, false)
3345 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3346 AM_CONDITIONAL(USE_VOAACENC, false)
3347 AM_CONDITIONAL(USE_APEXSINK, false)
3348 AM_CONDITIONAL(USE_BS2B, false)
3349 AM_CONDITIONAL(USE_BZ2, false)
3350 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3351 AM_CONDITIONAL(USE_CURL, false)
3352 AM_CONDITIONAL(USE_SSH2, false)
3353 AM_CONDITIONAL(USE_DASH, false)
3354 AM_CONDITIONAL(USE_DC1394, false)
3355 AM_CONDITIONAL(USE_DECKLINK, false)
3356 AM_CONDITIONAL(DECKLINK_OSX, false)
3357 AM_CONDITIONAL(USE_DIRECTFB, false)
3358 AM_CONDITIONAL(USE_WAYLAND, false)
3359 AM_CONDITIONAL(USE_DAALA, false)
3360 AM_CONDITIONAL(USE_DTS, false)
3361 AM_CONDITIONAL(USE_EXIF, false)
3362 AM_CONDITIONAL(USE_RESINDVD, false)
3363 AM_CONDITIONAL(USE_FAAC, false)
3364 AM_CONDITIONAL(USE_FAAD, false)
3365 AM_CONDITIONAL(USE_FBDEV, false)
3366 AM_CONDITIONAL(USE_FLITE, false)
3367 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3368 AM_CONDITIONAL(USE_GL, false)
3369 AM_CONDITIONAL(USE_GSM, false)
3370 AM_CONDITIONAL(USE_GTK3, false)
3371 AM_CONDITIONAL(USE_GTK3_GL, false)
3372 AM_CONDITIONAL(USE_HLS, false)
3373 AM_CONDITIONAL(USE_KATE, false)
3374 AM_CONDITIONAL(USE_TIGER, false)
3375 AM_CONDITIONAL(USE_LADSPA, false)
3376 AM_CONDITIONAL(USE_LV2, false)
3377 AM_CONDITIONAL(USE_LIBDE265, false)
3378 AM_CONDITIONAL(USE_LIBMMS, false)
3379 AM_CONDITIONAL(USE_LINSYS, false)
3380 AM_CONDITIONAL(USE_MODPLUG, false)
3381 AM_CONDITIONAL(USE_MIMIC, false)
3382 AM_CONDITIONAL(USE_MPEG2ENC, false)
3383 AM_CONDITIONAL(USE_MPLEX, false)
3384 AM_CONDITIONAL(USE_MUSEPACK, false)
3385 AM_CONDITIONAL(USE_NAS, false)
3386 AM_CONDITIONAL(USE_NEON, false)
3387 AM_CONDITIONAL(USE_OFA, false)
3388 AM_CONDITIONAL(USE_OPENAL, false)
3389 AM_CONDITIONAL(USE_OPENCV, false)
3390 AM_CONDITIONAL(USE_OPENEXR, false)
3391 AM_CONDITIONAL(USE_OPENJPEG, false)
3392 AM_CONDITIONAL(USE_OPENNI2, false)
3393 AM_CONDITIONAL(USE_OPUS, false)
3394 AM_CONDITIONAL(USE_PVR, false)
3395 AM_CONDITIONAL(USE_QT, false)
3396 AM_CONDITIONAL(USE_LIBVISUAL, false)
3397 AM_CONDITIONAL(USE_TIMIDITY, false)
3398 AM_CONDITIONAL(USE_WILDMIDI, false)
3399 AM_CONDITIONAL(USE_SDL, false)
3400 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3401 AM_CONDITIONAL(USE_SNDFILE, false)
3402 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3403 AM_CONDITIONAL(USE_SPANDSP, false)
3404 AM_CONDITIONAL(USE_SPC, false)
3405 AM_CONDITIONAL(USE_SRTP, false)
3406 AM_CONDITIONAL(USE_GME, false)
3407 AM_CONDITIONAL(USE_XVID, false)
3408 AM_CONDITIONAL(USE_DVB, false)
3409 AM_CONDITIONAL(USE_WININET, false)
3410 AM_CONDITIONAL(USE_ACM, false)
3411 AM_CONDITIONAL(USE_VDPAU, false)
3412 AM_CONDITIONAL(USE_SBC, false)
3413 AM_CONDITIONAL(USE_SCHRO, false)
3414 AM_CONDITIONAL(USE_ZBAR, false)
3415 AM_CONDITIONAL(USE_RSVG, false)
3416 AM_CONDITIONAL(USE_RTMP, false)
3417 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3418 AM_CONDITIONAL(USE_SNDIO, false)
3419 AM_CONDITIONAL(USE_UVCH264, false)
3420 AM_CONDITIONAL(USE_WEBP, false)
3421 AM_CONDITIONAL(USE_OPENH264, false)
3422 AM_CONDITIONAL(USE_X265, false)
3423 AM_CONDITIONAL(USE_DTLS, false)
3425 fi dnl of EXT plugins
3427 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3430 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3431 dnl GST_*: flags shared by built objects to link against GStreamer
3432 dnl GST_ALL_LDFLAGS: linker flags shared by all
3433 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3434 dnl GST_LT_LDFLAGS: library versioning of our libraries
3435 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3437 dnl GST_OPTION_CFLAGS
3438 if test "x$USE_DEBUG" = xyes; then
3441 AC_SUBST(PROFILE_CFLAGS)
3443 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3444 dnl Define _only_ during CVS (not pre-releases or releases)
3445 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3447 DEPRECATED_CFLAGS=""
3449 AC_SUBST(DEPRECATED_CFLAGS)
3451 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3452 dnl at make time with e.g. make ERROR_CFLAGS=""
3453 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3454 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3455 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3456 AC_SUBST(GST_OPTION_CFLAGS)
3457 AC_SUBST(GST_OPTION_CXXFLAGS)
3458 AC_SUBST(GST_OPTION_OBJCFLAGS)
3460 dnl FIXME: do we want to rename to GST_ALL_* ?
3461 dnl prefer internal headers to already installed ones
3462 dnl also add builddir include for enumtypes and marshal
3463 dnl add GST_OPTION_CFLAGS, but overridable
3464 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3465 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3466 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3467 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3468 AC_SUBST(GST_CFLAGS)
3469 AC_SUBST(GST_CXXFLAGS)
3470 AC_SUBST(GST_OBJCFLAGS)
3472 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3473 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3474 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3475 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3476 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3477 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3479 dnl LDFLAGS really should only contain flags, not libs - they get added before
3480 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3481 GST_ALL_LDFLAGS="-no-undefined"
3482 if test "x${enable_Bsymbolic}" = "xyes"; then
3483 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3485 AC_SUBST(GST_ALL_LDFLAGS)
3488 dnl linker flags shared by all libraries
3489 dnl LDFLAGS modifier defining exported symbols from built libraries
3490 dnl (export _gst_foo but not __gst_foo)
3491 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3492 AC_SUBST(GST_LIB_LDFLAGS)
3494 dnl this really should only contain flags, not libs - they get added before
3495 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3496 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3497 AC_SUBST(GST_PLUGIN_LDFLAGS)
3499 dnl *** output files ***
3501 $MKDIR_P tests/check/orc
3509 gst-plugins-bad.spec
3511 gst/accurip/Makefile
3512 gst/adpcmdec/Makefile
3513 gst/adpcmenc/Makefile
3515 gst/videoframe_audiolevel/Makefile
3517 gst/audiofxbad/Makefile
3518 gst/audiomixer/Makefile
3519 gst/audiovisualizers/Makefile
3520 gst/autoconvert/Makefile
3522 gst/camerabin2/Makefile
3523 gst/cdxaparse/Makefile
3524 gst/coloreffects/Makefile
3525 gst/dataurisrc/Makefile
3527 gst/debugutils/Makefile
3528 gst/dvbsuboverlay/Makefile
3530 gst/faceoverlay/Makefile
3531 gst/festival/Makefile
3532 gst/fieldanalysis/Makefile
3533 gst/freeverb/Makefile
3535 gst/gaudieffects/Makefile
3536 gst/geometrictransform/Makefile
3538 gst/hdvparse/Makefile
3541 gst/interlace/Makefile
3542 gst/ivfparse/Makefile
3544 gst/jp2kdecimator/Makefile
3545 gst/jpegformat/Makefile
3548 gst/mpegdemux/Makefile
3549 gst/mpegtsdemux/Makefile
3550 gst/mpegtsmux/Makefile
3551 gst/mpegtsmux/tsmux/Makefile
3552 gst/mpegpsmux/Makefile
3556 gst/nuvdemux/Makefile
3558 gst/patchdetect/Makefile
3559 gst/pcapparse/Makefile
3561 gst/rawparse/Makefile
3562 gst/removesilence/Makefile
3565 gst/segmentclip/Makefile
3572 gst/videofilters/Makefile
3573 gst/videomeasure/Makefile
3574 gst/videoparsers/Makefile
3575 gst/videosignal/Makefile
3579 gst/compositor/Makefile
3581 gst-libs/gst/Makefile
3582 gst-libs/gst/adaptivedemux/Makefile
3583 gst-libs/gst/basecamerabinsrc/Makefile
3584 gst-libs/gst/gl/Makefile
3585 gst-libs/gst/gl/android/Makefile
3586 gst-libs/gst/gl/cocoa/Makefile
3587 gst-libs/gst/gl/dispmanx/Makefile
3588 gst-libs/gst/gl/glprototypes/Makefile
3589 gst-libs/gst/gl/eagl/Makefile
3590 gst-libs/gst/gl/egl/Makefile
3591 gst-libs/gst/gl/wayland/Makefile
3592 gst-libs/gst/gl/win32/Makefile
3593 gst-libs/gst/gl/x11/Makefile
3594 gst-libs/gst/insertbin/Makefile
3595 gst-libs/gst/interfaces/Makefile
3596 gst-libs/gst/codecparsers/Makefile
3597 gst-libs/gst/mpegts/Makefile
3598 gst-libs/gst/uridownloader/Makefile
3599 gst-libs/gst/wayland/Makefile
3600 gst-libs/gst/base/Makefile
3601 gst-libs/gst/player/Makefile
3602 gst-libs/gst/video/Makefile
3603 gst-libs/gst/audio/Makefile
3605 sys/dshowdecwrapper/Makefile
3607 sys/acmmp3dec/Makefile
3608 sys/androidmedia/Makefile
3609 sys/applemedia/Makefile
3610 sys/applemedia-nonpublic/Makefile
3613 sys/d3dvideosink/Makefile
3614 sys/decklink/Makefile
3615 sys/directsound/Makefile
3616 sys/dshowsrcwrapper/Makefile
3617 sys/dshowvideosink/Makefile
3622 sys/opensles/Makefile
3624 sys/tinyalsa/Makefile
3625 sys/uvch264/Makefile
3630 sys/wininet/Makefile
3632 sys/winscreencap/Makefile
3634 tests/check/Makefile
3635 tests/files/Makefile
3636 tests/examples/Makefile
3637 tests/examples/avsamplesink/Makefile
3638 tests/examples/camerabin2/Makefile
3639 tests/examples/codecparsers/Makefile
3640 tests/examples/directfb/Makefile
3641 tests/examples/gl/Makefile
3642 tests/examples/gl/cocoa/Makefile
3643 tests/examples/gl/clutter/Makefile
3644 tests/examples/gl/generic/Makefile
3645 tests/examples/gl/generic/cube/Makefile
3646 tests/examples/gl/generic/cubeyuv/Makefile
3647 tests/examples/gl/generic/doublecube/Makefile
3648 tests/examples/gl/generic/recordgraphic/Makefile
3649 tests/examples/gl/gtk/Makefile
3650 tests/examples/gl/gtk/3dvideo/Makefile
3651 tests/examples/gl/gtk/filternovideooverlay/Makefile
3652 tests/examples/gl/gtk/filtervideooverlay/Makefile
3653 tests/examples/gl/gtk/fxtest/Makefile
3654 tests/examples/gl/gtk/switchvideooverlay/Makefile
3655 tests/examples/gl/qt/Makefile
3656 tests/examples/gl/sdl/Makefile
3657 tests/examples/gtk/Makefile
3658 tests/examples/mpegts/Makefile
3659 tests/examples/mxf/Makefile
3660 tests/examples/opencv/Makefile
3661 tests/examples/uvch264/Makefile
3662 tests/examples/waylandsink/Makefile
3663 tests/icles/Makefile
3664 ext/voamrwbenc/Makefile
3665 ext/voaacenc/Makefile
3666 ext/assrender/Makefile
3667 ext/apexsink/Makefile
3670 ext/chromaprint/Makefile
3674 ext/directfb/Makefile
3675 ext/wayland/Makefile
3683 ext/fluidsynth/Makefile
3689 ext/libde265/Makefile
3691 ext/libvisual/Makefile
3693 ext/modplug/Makefile
3694 ext/mpeg2enc/Makefile
3697 ext/musepack/Makefile
3703 ext/openexr/Makefile
3704 ext/openh264/Makefile
3705 ext/openjpeg/Makefile
3706 ext/openni2/Makefile
3710 ext/resindvd/Makefile
3713 ext/schroedinger/Makefile
3715 ext/smoothstreaming/Makefile
3716 ext/sndfile/Makefile
3717 ext/soundtouch/Makefile
3718 ext/spandsp/Makefile
3721 ext/teletextdec/Makefile
3724 ext/timidity/Makefile
3726 ext/vulkan/xcb/Makefile
3734 docs/plugins/Makefile
3736 docs/version.entities
3738 pkgconfig/gstreamer-plugins-bad.pc
3739 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3740 pkgconfig/gstreamer-codecparsers.pc
3741 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3742 pkgconfig/gstreamer-insertbin.pc
3743 pkgconfig/gstreamer-insertbin-uninstalled.pc
3744 pkgconfig/gstreamer-gl.pc
3745 pkgconfig/gstreamer-gl-uninstalled.pc
3746 pkgconfig/gstreamer-mpegts.pc
3747 pkgconfig/gstreamer-mpegts-uninstalled.pc
3748 pkgconfig/gstreamer-player.pc
3749 pkgconfig/gstreamer-player-uninstalled.pc
3750 pkgconfig/gstreamer-wayland.pc
3751 pkgconfig/gstreamer-wayland-uninstalled.pc
3752 pkgconfig/gstreamer-bad-base.pc
3753 pkgconfig/gstreamer-bad-base-uninstalled.pc
3754 pkgconfig/gstreamer-bad-video.pc
3755 pkgconfig/gstreamer-bad-video-uninstalled.pc
3756 pkgconfig/gstreamer-bad-audio.pc
3757 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3762 dnl Create the config.h file for Visual Studio builds
3763 dnl Beware of spaces and /'s in some of the shell variable contents.
3765 -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"/' \
3766 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3767 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3768 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3769 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3770 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3771 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3772 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3773 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3774 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3775 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3776 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3777 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3778 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3779 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3780 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3781 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3782 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3783 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3784 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3785 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3786 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3787 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3788 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3789 -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n# define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-0.11"\n#else\n# define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-0.11"\n#endif/' \
3790 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3791 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3792 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3793 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3794 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3795 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3796 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3797 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3798 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3799 config.h.in >win32/common/config.h-new
3803 AG_GST_OUTPUT_PLUGINS