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"
692 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
693 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
694 if test "x$HAVE_WGLEXT" = "xyes"; then
700 if test "x$NEED_GL" != "xno"; then
701 AG_GST_PKG_CHECK_MODULES(GL, gl)
702 if test "x$HAVE_GL" != "xyes"; then
703 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
706 if test "x$NEED_GLES2" != "xno"; then
707 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
708 if test "x$HAVE_GLES2" != "xyes"; then
709 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
712 if test "x$NEED_EGL" != "xno"; then
713 AG_GST_PKG_CHECK_MODULES(EGL, egl)
714 if test "x$HAVE_EGL" != "xyes"; then
715 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
722 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
723 AC_CHECK_HEADER([EGL/fbdev_window.h],
726 AC_CHECK_LIB([Mali], [mali_image_create],
729 AC_CHECK_LIB([GLESv2], [glEnable],
731 AC_CHECK_HEADER([GLES2/gl2.h],
733 AC_CHECK_LIB([EGL], [eglGetProcAddress],
735 AC_CHECK_HEADER([EGL/egl.h],
739 EGL_LIBS="-lMali -lUMP"
741 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
749 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
750 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
751 LIBS="$LIBS -lvcos -lvchiq_arm"
752 AC_CHECK_LIB([bcm_host], [bcm_host_init],
754 LIBS="$LIBS -lbcm_host"
755 AC_CHECK_HEADER(bcm_host.h,
757 LIBS="$LIBS -lGLESv2"
758 AC_CHECK_LIB([EGL], [eglGetProcAddress],
761 AC_CHECK_HEADER([EGL/egl.h],
763 AC_CHECK_LIB([GLESv2], [glEnable],
765 AC_CHECK_HEADER([GLES2/gl2.h],
770 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
772 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
783 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)
787 CPPFLAGS="$save_CPPFLAGS"
801 dnl Check for what the user asked for and what we could find
802 if test "x$HAVE_EGL" = "xno"; then
803 if test "x$NEED_EGL" = "xyes"; then
804 AC_MSG_ERROR([Could not find the required EGL libraries])
808 if test "x$HAVE_GL" = "xno"; then
809 if test "x$NEED_GL" = "xyes"; then
810 AC_MSG_ERROR([Could not find the required OpenGL libraries])
814 if test "x$HAVE_GLES2" = "xno"; then
815 if test "x$NEED_GLES2" = "xyes"; then
816 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
820 dnl X, GLX and OpenGL
821 if test "x$HAVE_X" = "xno"; then
822 if test "x$NEED_GLX" = "xyes"; then
823 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
825 if test "x$NEED_X11" = "xyes"; then
826 AC_MSG_ERROR([Could not find X11 development libraries])
829 if test "x$NEED_GL" != "xno"; then
830 if test "x$HAVE_GL" = "xno"; then
831 if test "x$NEED_GLX" = "xyes"; then
832 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
836 if test "x$NEED_GLX" != "xno"; then
843 dnl check for DMABUF support
844 HAVE_DRM_FOURCC_HEADER=no
845 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
846 HAVE_DRM_FOURCC_HEADER=yes, )
848 HAVE_GST_ALLOCATORS=no
849 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
850 HAVE_GST_ALLOCATORS=yes, )
853 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
854 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
855 "x$HAVE_EGL" = "xyes"; then
859 dnl check if we can include both GL and GLES2 at the same time
860 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
863 # pragma GCC diagnostic push
864 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
866 #ifndef GL_GLEXT_PROTOTYPES
867 #define GL_GLEXT_PROTOTYPES 1
870 # include <OpenGLES/ES2/gl.h>
871 # include <OpenGLES/ES2/glext.h>
873 # include <GLES2/gl2.h>
874 # include <GLES2/gl2ext.h>
877 # include <OpenGL/OpenGL.h>
878 # include <OpenGL/gl.h>
879 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
880 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
881 # include <OpenGL/gl3.h>
885 # if __WIN32__ || _WIN32
886 # include <GL/glext.h>
889 int main (int argc, char **argv) { return 0; }
891 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
892 save_CFLAGS="$CFLAGS"
893 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
894 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
895 #if !defined(GL_FALSE)
896 #error Failed to include GL headers
898 ]])],[ AC_MSG_RESULT(yes)
900 if test "x$NEED_GLES2" = "xyes"; then
901 if test "x$NEED_GL" = "xyes"; then
902 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
904 AC_MSG_WARN([Disabling Desktop GL support])
908 AC_MSG_WARN([Disabling GL|ES 2.0 support])
912 CFLAGS="$save_CFLAGS"
915 #dnl Check for OpenGL
919 if test "x$NEED_WGL" = "xyes"; then
920 AC_MSG_ERROR([WGL is not available on Android])
922 if test "x$NEED_GLX" = "xyes"; then
923 AC_MSG_ERROR([GLX is not available on Android])
925 if test "x$NEED_GL" = "xyes"; then
926 AC_MSG_ERROR([GL is not available on Android])
928 if test "x$NEED_X11" = "xyes"; then
929 AC_MSG_ERROR([X11 is not available on Android])
931 if test "x$NEED_COCOA" = "xyes"; then
932 AC_MSG_ERROR([Cocoa is not available on Android])
936 if test "x$HAVE_GLES2" = "xyes"; then
937 if test "x$NEED_GLES2" != "xno"; then
938 GL_LIBS="$GL_LIBS -lGLESv2"
944 if test "x$HAVE_EGL" = "xyes"; then
945 if test "x$NEED_EGL" != "xno"; then
946 GL_LIBS="$GL_LIBS -lEGL"
951 if test "x$USE_EGL" != "xyes"; then
952 AC_MSG_ERROR([Need EGL on Android])
955 if test "x$USE_GLES2" != "xyes"; then
956 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
959 HAVE_WINDOW_ANDROID=yes
961 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
962 if test "x$NEED_WGL" = "xyes"; then
963 AC_MSG_ERROR([WGL is not available on unix])
966 if test "x$HAVE_X" = "xno"; then
967 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
968 AC_MSG_WARN([X or Wayland is required for OpenGL support])
972 dnl check Desktop OpenGL
973 if test "x$HAVE_GL" = "xyes"; then
974 if test "x$NEED_GL" != "xno"; then
975 GL_LIBS="$GL_LIBS -lGL"
980 if test "x$HAVE_GLES2" = "xyes"; then
981 if test "x$NEED_GLES2" != "xno"; then
982 GL_LIBS="$GL_LIBS -lGLESv2"
987 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
988 if test "x$NEED_X11" != "xno"; then
989 GL_LIBS="$GL_LIBS $X_LIBS"
990 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
995 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
996 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
997 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
999 if test "x$NEED_WAYLAND_EGL" != "xno"; then
1000 HAVE_WINDOW_WAYLAND=yes
1001 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1002 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1007 if test "x$HAVE_EGL_RPI" = "xyes"; then
1008 if test "x$NEED_DISPMANX" != "xno"; then
1009 HAVE_WINDOW_DISPMANX=yes
1015 if test "x$HAVE_EGL" = "xno"; then
1016 if test "x$HAVE_GL" = "xno"; then
1017 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1020 if test "x$NEED_EGL" != "xno"; then
1021 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1022 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1023 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1030 if test "x$HAVE_IOS" = "xyes"; then
1031 if test "x$NEED_WGL" = "xyes"; then
1032 AC_MSG_ERROR([WGL is not available on iOS])
1034 if test "x$NEED_GLX" = "xyes"; then
1035 AC_MSG_ERROR([GLX is not available on iOS])
1037 if test "x$NEED_GL" = "xyes"; then
1038 AC_MSG_ERROR([GL is not available on iOS])
1040 if test "x$NEED_X11" = "xyes"; then
1041 AC_MSG_ERROR([X11 is not available on iOS])
1043 if test "x$NEED_COCOA" = "xyes"; then
1044 AC_MSG_ERROR([Cocoa is not available on iOS])
1046 if test "x$NEED_EGL" = "xyes"; then
1047 AC_MSG_ERROR([EGL is not available on iOS])
1050 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1051 GL_CFLAGS="$GL_CFLAGS"
1054 HAVE_WINDOW_EAGL=yes
1056 ac_cv_type_GLsizeiptr=yes
1057 ac_cv_type_GLintptr=yes
1058 ac_cv_type_GLchar=yes
1060 dnl Only osx supports cocoa.
1061 if test "x$NEED_WGL" = "xyes"; then
1062 AC_MSG_ERROR([WGL is not available on Mac OS X])
1065 if test "x$NEED_COCOA" != "xno"; then
1066 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1067 GL_CFLAGS="$GL_CFLAGS"
1069 HAVE_WINDOW_COCOA=yes
1073 if test "x$USE_GLX" = "xyes"; then
1074 if test "x$HAVE_X" = "xyes"; then
1075 if test "x$NEED_X11" != "xno"; then
1076 GL_LIBS="$GL_LIBS $X_LIBS"
1077 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1082 if test "x$HAVE_GL" = "xyes"; then
1083 if test "x$NEED_GL" != "xno"; then
1084 GL_LIBS="$GL_LIBS -lGL"
1090 if test "x$HAVE_EGL" = "xyes"; then
1091 if test "x$NEED_EGL" != "xno"; then
1092 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1093 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1094 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1101 if test "x$HAVE_GLES2" = "xyes"; then
1102 if test "x$NEED_GLES2" != "xno"; then
1103 GL_LIBS="$GL_LIBS -lGLESv2"
1110 if test "x$NEED_GLX" = "xyes"; then
1111 AC_MSG_ERROR([GLX is not available on Windows])
1113 if test "x$NEED_GLES2" = "xyes"; then
1114 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1117 if test "x$HAVE_GL" = "xyes"; then
1118 if test "x$NEED_GL" != "xno"; then
1119 if test "x$HAVE_WGL" = "xyes"; then
1120 if test "$NEED_WGL" != "xno"; then
1121 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1122 HAVE_WINDOW_WIN32=yes
1131 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1142 GST_GL_HAVE_OPENGL=0
1146 if test "x$USE_OPENGL" = "xyes"; then
1147 GL_APIS="gl $GL_APIS"
1148 GST_GL_HAVE_OPENGL=1
1150 if test "x$USE_GLES2" = "xyes"; then
1151 GL_APIS="gles2 $GL_APIS"
1155 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1156 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1157 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1158 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1163 GST_GL_HAVE_WINDOW_X11=0
1164 GST_GL_HAVE_WINDOW_COCOA=0
1165 GST_GL_HAVE_WINDOW_WIN32=0
1166 GST_GL_HAVE_WINDOW_WAYLAND=0
1167 GST_GL_HAVE_WINDOW_ANDROID=0
1168 GST_GL_HAVE_WINDOW_DISPMANX=0
1169 GST_GL_HAVE_WINDOW_EAGL=0
1171 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1172 GL_WINDOWS="x11 $GL_WINDOWS"
1173 GST_GL_HAVE_WINDOW_X11=1
1175 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1176 GL_WINDOWS="cocoa $GL_WINDOWS"
1177 GST_GL_HAVE_WINDOW_COCOA=1
1179 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1180 GL_WINDOWS="win32 $GL_WINDOWS"
1181 GST_GL_HAVE_WINDOW_WIN32=1
1183 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1184 GL_WINDOWS="wayland $GL_WINDOWS"
1185 GST_GL_HAVE_WINDOW_WAYLAND=1
1187 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1188 GL_WINDOWS="android $GL_WINDOWS"
1189 GST_GL_HAVE_WINDOW_ANDROID=1
1191 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1192 GL_WINDOWS="dispmanx $GL_WINDOWS"
1193 GST_GL_HAVE_WINDOW_DISPMANX=1
1195 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1196 GL_WINDOWS="eagl $GL_WINDOWS"
1197 GST_GL_HAVE_WINDOW_EAGL=1
1200 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1201 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1202 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1203 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1204 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1205 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1206 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1207 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1212 GST_GL_HAVE_PLATFORM_EGL=0
1213 GST_GL_HAVE_PLATFORM_GLX=0
1214 GST_GL_HAVE_PLATFORM_WGL=0
1215 GST_GL_HAVE_PLATFORM_CGL=0
1216 GST_GL_HAVE_PLATFORM_EAGL=0
1218 if test "x$USE_EGL" = "xyes"; then
1219 GL_PLATFORMS="egl $GL_PLATFORMS"
1220 GST_GL_HAVE_PLATFORM_EGL=1
1222 if test "x$USE_GLX" = "xyes"; then
1223 GL_PLATFORMS="glx $GL_PLATFORMS"
1224 GST_GL_HAVE_PLATFORM_GLX=1
1226 if test "x$USE_WGL" = "xyes"; then
1227 GL_PLATFORMS="wgl $GL_PLATFORMS"
1228 GST_GL_HAVE_PLATFORM_WGL=1
1230 if test "x$USE_COCOA" = "xyes"; then
1231 GL_PLATFORMS="cgl $GL_PLATFORMS"
1232 GST_GL_HAVE_PLATFORM_CGL=1
1234 if test "x$USE_EAGL" = "xyes"; then
1235 GL_PLATFORMS="eagl $GL_PLATFORMS"
1236 GST_GL_HAVE_PLATFORM_EAGL=1
1239 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1240 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1241 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1242 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1243 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1244 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1247 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1248 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1251 dnl Check for no platforms/window systems
1252 if test "x$GL_APIS" = "x"; then
1253 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1255 if test "x$GL_PLATFORMS" = "x"; then
1256 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1258 if test "x$GL_WINDOWS" = "x"; then
1259 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1262 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1277 HAVE_WINDOW_WIN32=no
1278 HAVE_WINDOW_DISPMANX=no
1279 HAVE_WINDOW_WAYLAND=no
1280 HAVE_WINDOW_ANDROID=no
1281 HAVE_WINDOW_COCOA=no
1287 AC_SUBST(GL_OBJCFLAGS)
1288 AC_SUBST(USE_OPENGL)
1291 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1292 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1293 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1294 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1295 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1296 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1297 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1299 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1300 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1301 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1302 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1303 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1304 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1305 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1306 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1307 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1309 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1311 dnl Check for some types that are not always present
1313 if test "x$USE_GLES2" = "xyes"; then
1314 GL_INCLUDES="$GL_INCLUDES
1315 #ifndef GL_GLEXT_PROTOTYPES
1316 #define GL_GLEXT_PROTOTYPES 1
1319 # include <OpenGLES/ES2/gl.h>
1320 # include <OpenGLES/ES2/glext.h>
1322 # include <GLES2/gl2.h>
1323 # include <GLES2/gl2ext.h>
1328 if test "x$USE_OPENGL" = "xyes"; then
1329 GL_INCLUDES="$GL_INCLUDES
1331 # include <OpenGL/OpenGL.h>
1332 # include <OpenGL/gl.h>
1335 # if __WIN32__ || _WIN32
1336 # include <GL/glext.h>
1342 GST_GL_HAVE_GLEGLIMAGEOES=0
1343 GST_GL_HAVE_GLCHAR=0
1344 GST_GL_HAVE_GLSIZEIPTR=0
1345 GST_GL_HAVE_GLINTPTR=0
1346 GST_GL_HAVE_GLSYNC=0
1347 GST_GL_HAVE_GLUINT64=0
1348 GST_GL_HAVE_GLINT64=0
1351 CFLAGS="$GL_CFLAGS $CFLAGS"
1353 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1354 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1355 GST_GL_HAVE_GLEGLIMAGEOES=1
1358 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1359 if test "x$ac_cv_type_GLchar" = "xyes"; then
1360 GST_GL_HAVE_GLCHAR=1
1363 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1364 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1365 GST_GL_HAVE_GLSIZEIPTR=1
1368 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1369 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1370 GST_GL_HAVE_GLINTPTR=1
1373 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1374 if test "x$ac_cv_type_GLsync" = "xyes"; then
1375 GST_GL_HAVE_GLSYNC=1
1378 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1379 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1380 GST_GL_HAVE_GLUINT64=1
1383 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1384 if test "x$ac_cv_type_GLint64" = "xyes"; then
1385 GST_GL_HAVE_GLINT64=1
1390 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1391 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1392 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1393 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1394 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1395 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1396 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1397 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1400 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1401 outfile=gstglconfig.h-tmp
1402 cat > $outfile <<\_______EOF
1405 * This is a generated file. Please modify `configure.ac'
1408 #ifndef __GST_GL_CONFIG_H__
1409 #define __GST_GL_CONFIG_H__
1411 #include <gst/gst.h>
1417 cat >>$outfile <<_______EOF
1421 cat >>$outfile <<_______EOF
1425 #endif /* __GST_GL_CONFIG_H__ */
1429 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1430 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1433 mv $outfile gst-libs/gst/gl/gstglconfig.h
1436 gl_config_defines='$GL_CONFIG_DEFINES'
1439 dnl libpng is optional
1440 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1441 if test "x$HAVE_PNG" = "xyes"; then
1442 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1445 AC_SUBST(LIBPNG_LIBS)
1446 AC_SUBST(LIBPNG_CFLAGS)
1447 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1449 dnl libjpeg is optional
1450 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1452 if test x$with_jpeg_mmx != x; then
1453 LIBS="$LIBS -L$with_jpeg_mmx"
1455 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1456 JPEG_LIBS="$LIBS -ljpeg-mmx"
1458 if test x$HAVE_JPEG != xyes; then
1460 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1463 if test x$HAVE_JPEG = xyes; then
1464 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1466 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1471 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1474 VULKAN_CONFIG_DEFINES=""
1476 PKG_CHECK_MODULES(XCB, xcb >= 1.10, HAVE_XCB=yes, HAVE_XCB=no)
1478 AM_CONDITIONAL(USE_XCB, test "x$HAVE_XCB" = "xyes")
1479 if test "x$HAVE_XCB" = "xyes"; then
1480 VULKAN_CONFIG_DEFINES="$VULKAN_CONFIG_DEFINES
1481 #define GST_VULKAN_HAVE_WINDOW_XCB 1"
1484 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1485 outfile=vkconfig.h-tmp
1486 cat > $outfile <<\_______EOF
1489 * This is a generated file. Please modify `configure.ac'
1492 #ifndef __GST_VULKAN_CONFIG_H__
1493 #define __GST_VULKAN_CONFIG_H__
1495 #include <gst/gst.h>
1501 cat >>$outfile <<_______EOF
1502 $vulkan_config_defines
1505 cat >>$outfile <<_______EOF
1509 #endif /* __GST_VULKAN_CONFIG_H__ */
1513 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1514 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1517 mv $outfile ext/vulkan/vkconfig.h
1520 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1523 dnl *** sys plug-ins ***
1526 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1527 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1528 HAVE_DIRECTSOUND="no"
1529 save_CFLAGS="$CFLAGS"
1530 save_LDFLAGS="$LDFLAGS"
1532 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1533 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1534 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1535 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1536 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1537 #include <windows.h>
1540 #include <mmsystem.h>
1542 DXGetErrorString9 (0);
1543 DirectSoundCreate(NULL, NULL, NULL);
1545 [HAVE_DIRECTSOUND="yes"],
1546 [HAVE_DIRECTSOUND="no"])
1547 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1549 LDFLAGS=$save_LDFLAGS
1552 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1553 dnl this is much more than we want
1554 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1555 AC_SUBST(DIRECTX_CFLAGS)
1556 AC_SUBST(DIRECTX_LDFLAGS)
1557 AC_SUBST(DIRECTSOUND_LIBS)
1559 AC_SUBST(HAVE_DIRECTSOUND)
1563 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1564 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1566 save_CFLAGS="$CFLAGS"
1567 save_LDFLAGS="$LDFLAGS"
1569 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1570 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1571 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1572 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1573 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1574 #include <windows.h>
1576 #include <mmsystem.h>
1577 #include <mmdeviceapi.h>
1583 hr = CoInitialize(NULL);
1585 printf("CoInitialize failed: hr = 0x%08x", hr);
1590 // result = do_everything(argc, argv);
1596 [HAVE_WASAPI="yes"],
1598 AC_MSG_RESULT($HAVE_WASAPI)
1600 LDFLAGS=$save_LDFLAGS
1603 if test "x$HAVE_WASAPI" = "xyes"; then
1604 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1605 AC_SUBST(WASAPI_LIBS)
1607 AC_SUBST(HAVE_WASAPI)
1611 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1612 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1614 save_CFLAGS="$CFLAGS"
1615 save_LDFLAGS="$LDFLAGS"
1617 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1618 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1619 LIBS="$LIBS -ld3d9 -lgdi32"
1620 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1621 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1622 #include <windows.h>
1625 Direct3DCreate9(D3D_SDK_VERSION);
1627 [HAVE_DIRECT3D="yes"],
1628 [HAVE_DIRECT3D="no"])
1629 AC_MSG_RESULT($HAVE_DIRECT3D)
1631 LDFLAGS=$save_LDFLAGS
1634 if test "x$HAVE_DIRECT3D" = "xyes"; then
1635 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1636 AC_SUBST(DIRECT3D_LIBS)
1638 AC_SUBST(HAVE_DIRECT3D)
1642 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1643 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1644 HAVE_WINSCREENCAP="no"
1645 save_CFLAGS="$CFLAGS"
1646 save_LDFLAGS="$LDFLAGS"
1648 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1649 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1650 LIBS="$LIBS -ld3d9 -lgdi32"
1651 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1652 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1653 #include <windows.h>
1656 Direct3DCreate9(D3D_SDK_VERSION);
1658 [HAVE_WINSCREENCAP="yes"],
1659 [HAVE_WINSCREENCAP="no"])
1660 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1662 LDFLAGS=$save_LDFLAGS
1665 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1666 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1667 AC_SUBST(WINSCREENCAP_LIBS)
1669 AC_SUBST(HAVE_WINSCREENCAP)
1673 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1674 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1676 save_CFLAGS="$CFLAGS"
1677 save_LDFLAGS="$LDFLAGS"
1679 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1680 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1681 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1682 AC_MSG_CHECKING(for Winks LDFLAGS)
1683 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1684 #include <windows.h>
1689 IGraphBuilder *pGraph = NULL;
1690 HRESULT hr = CoInitialize(NULL);
1691 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1692 &IID_IGraphBuilder, (void **)&pGraph);
1699 AC_MSG_RESULT($HAVE_WINKS)
1701 LDFLAGS=$save_LDFLAGS
1704 if test "x$HAVE_WINKS" = "xyes"; then
1705 dnl this is much more than we want
1706 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1707 AC_SUBST(DIRECTX_CFLAGS)
1708 AC_SUBST(DIRECTX_LDFLAGS)
1709 AC_SUBST(WINKS_LIBS)
1711 AC_SUBST(HAVE_WINKS)
1714 dnl *** Android Media ***
1715 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1716 HAVE_ANDROID_MEDIA="no"
1717 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1720 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1723 HAVE_ANDROID_MEDIA="no"
1728 dnl *** AppleMedia (OS X and iOS) ***
1729 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1730 HAVE_APPLE_MEDIA="no"
1731 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1732 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1733 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1734 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1735 if test "x$HAVE_IOS" = "xno"; then
1736 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1740 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1745 HAVE_APPLE_MEDIA="no"
1750 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1751 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1752 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1753 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1754 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1756 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1765 dnl *** OS/X AVCVideoServices ***
1766 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1768 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1770 save_CPPFLAGS="$CPPFLAGS"
1771 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1773 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1774 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1776 CPPFLAGS=$save_CPPFLAGS
1779 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1788 dnl check for shm_open (for shm plugin)
1789 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1790 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1791 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1793 *-darwin* | *-macos10*)
1794 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1798 AC_CHECK_LIB([rt], [shm_open],
1799 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1800 #include <sys/socket.h>
1803 AC_SUBST(SHM_LIBS, "-lrt")
1811 dnl check for Video CD
1812 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1813 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1814 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1817 dnl check for OpenSL ES
1818 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1819 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1820 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1823 dnl *** UVC H264 ***
1824 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1825 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1826 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1827 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1828 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1831 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1832 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1833 HAVE_LIBUSB="yes" ],
1835 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1836 test "x$HAVE_GUDEV" = "xyes" && \
1837 test "x$HAVE_LIBUSB" = "xyes"; then
1843 AC_SUBST(LIBUDEV_CFLAGS)
1844 AC_SUBST(LIBUDEV_LIBS)
1845 AC_SUBST(LIBUSB_CFLAGS)
1846 AC_SUBST(LIBUSB_LIBS)
1849 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1850 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1851 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1852 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1853 AC_ARG_WITH([cuda-prefix],
1854 AS_HELP_STRING([--with-cuda-prefix],
1855 [Use the provided prefix for detecting the cuda installation]),
1856 [AS_IF([test "x$with_cuda_prefix" != "x"],
1857 [CUDA_PREFIX="$with_cuda_prefix"])],
1861 if test "x$CUDA_PREFIX" != "x"; then
1862 dnl only override if not already set
1863 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1864 dnl this is an educated guess, user can always override these
1865 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1866 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1869 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1870 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1871 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1872 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1877 save_CPPFLAGS="$CPPFLAGS"
1878 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1879 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1880 AC_MSG_WARN([Could not find cuda.h]))
1881 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1882 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1883 CPPFLAGS=$save_CPPFLAGS
1885 dnl libcuda and libcudart libraries
1887 LIBS="$CUDA_LIBS $save_LIBS"
1888 HAVE_CUDART_LIB="no"
1889 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1890 AC_MSG_WARN([Could not find cudart library])])
1892 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1893 AC_MSG_WARN([Could not find cuda library])])
1896 dnl nvEncodeAPI.h header
1897 HAVE_NVENCODEAPI_H=no
1898 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1899 save_CPPFLAGS="$CPPFLAGS"
1900 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1901 AC_CHECK_HEADER([nvEncodeAPI.h], [
1902 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1903 #if NVENCAPI_MAJOR_VERSION < 5
1904 #error "Need nvEncodeAPI.h >= 5.0"
1907 HAVE_NVENCODEAPI_H=yes
1909 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1912 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1913 AC_SUBST(NVENCODE_CFLAGS)
1914 CPPFLAGS="$save_CPPFLAGS"
1916 dnl libnvnidia-encode library
1917 HAVE_NVENCODE_LIB=no
1918 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1920 LIBS="$NVENCODE_LIBS $saved_LIBS"
1921 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1922 AC_MSG_WARN([Could not find library nvidia-encode]))
1923 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1924 AC_SUBST(NVENCODE_LIBS)
1928 if test "x$HAVE_CUDA_H" = "xyes" \
1929 -a "x$HAVE_CUDART_H" = "xyes" \
1930 -a "x$HAVE_CUDA_LIB" = "xyes" \
1931 -a "x$HAVE_CUDART_LIB" = "xyes" \
1932 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1933 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1935 if test x"$USE_OPENGL" = x"yes"; then
1936 dnl cuda-gl interop header
1937 save_CPPFLAGS="$CPPFLAGS"
1938 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1939 AC_CHECK_HEADER([cuda_gl_interop.h], [
1940 USE_NVENC_GST_GL="yes"
1941 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1943 CPPFLAGS="$save_CPPFLAGS"
1949 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1951 dnl check for tinyalsa
1952 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1953 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1954 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1957 dnl *** ext plug-ins ***
1958 dnl keep this list sorted alphabetically !
1960 if test "x$BUILD_EXTERNAL" = "xyes"; then
1962 dnl *** assrender ***
1963 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1964 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1965 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1966 HAVE_ASSRENDER="yes" ], [
1970 AC_SUBST(ASSRENDER_CFLAGS)
1971 AC_SUBST(ASSRENDER_LIBS)
1973 dnl *** vo-amrwbenc ***
1974 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1975 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1976 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1979 dnl *** vo-aacenc ***
1980 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1981 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1982 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1985 dnl *** apexsink ***
1986 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
1987 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
1988 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
1992 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
1993 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
1994 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
1996 AC_SUBST(APEXSINK_CFLAGS)
1997 AC_SUBST(APEXSINK_LIBS)
2004 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2005 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2006 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2009 AC_SUBST(BS2B_CFLAGS)
2014 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2015 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2018 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2019 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2020 AC_MSG_RESULT($HAVE_BZ2)
2022 if test "x$HAVE_BZ2" = "xyes"; then
2030 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2031 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2032 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2035 # AC_SUBST(CAIRO_CFLAGS)
2036 # AC_SUBST(CAIRO_LIBS)
2039 dnl *** chromaprint ***
2040 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2041 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2042 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2043 HAVE_CHROMAPRINT="no"
2045 AC_SUBST(CHROMAPRINT_CFLAGS)
2046 AC_SUBST(CHROMAPRINT_LIBS)
2050 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2051 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2052 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2054 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2055 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2057 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2058 [[#ifdef HAVE_SYS_TYPES_H
2059 # include <sys/types.h>
2061 #ifdef HAVE_NETINET_IN_H
2062 # include <netinet/in.h>
2065 AC_MSG_CHECKING([for socket support needed by curlsink])
2066 AC_MSG_RESULT($HAVE_CURL)
2070 AC_SUBST(CURL_CFLAGS)
2072 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2074 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2078 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2079 AC_SUBST(SSH2_CFLAGS)
2081 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2084 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2085 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2086 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2087 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2089 AC_SUBST(LIBXML2_CFLAGS)
2090 AC_SUBST(LIBXML2_LIBS)
2094 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2095 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2096 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2097 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2106 AC_SUBST(LIBDC1394_CFLAGS)
2107 AC_SUBST(LIBDC1394_LIBS)
2110 dnl *** decklink ***
2111 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2112 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2119 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2120 AC_CHECK_LIB(dl, dlopen,
2124 DECKLINK_LIBS="-lpthread -ldl"
2129 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2130 AC_CHECK_LIB(dl, dlopen,
2134 DECKLINK_LIBS="-lpthread -ldl"
2135 HAVE_DECKLINK_OSX=yes
2144 AC_SUBST(DECKLINK_CXXFLAGS)
2145 AC_SUBST(DECKLINK_LIBS)
2147 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2149 dnl **** DirectFB ****
2150 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2151 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2152 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2157 dnl **** Wayland ****
2158 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2159 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2160 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2161 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2162 if test "x$wayland_scanner" != "x"; then
2165 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2174 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2175 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2176 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2177 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2179 AC_SUBST(WEBP_CFLAGS)
2184 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2185 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2186 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2187 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2192 AC_SUBST(DAALA_CFLAGS)
2193 AC_SUBST(DAALA_LIBS)
2198 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2199 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2201 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2202 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2203 if test $HAVE_DTS = "no"; then
2204 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2205 [ DTS_LIBS="-ldts_pic $LIBM"
2206 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2212 dnl *** resindvd ***
2213 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2214 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2215 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2220 dnl **** Free AAC Encoder (FAAC) ****
2221 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2222 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2223 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2224 FAAC_LIBS="-lfaac $LIBM")
2228 dnl **** Free AAC Decoder (FAAD2) ****
2229 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2230 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2231 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2232 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2233 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2235 #elif !defined(LATM)
2236 #error Not faad2 >= 2.7
2242 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2252 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2253 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2254 if test "x$HAVE_FBDEV" != "xyes"; then
2255 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2260 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2261 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2262 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2263 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2265 AC_SUBST(FLITE_CFLAGS)
2266 AC_SUBST(FLITE_LIBS)
2270 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2271 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2272 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2273 if test $HAVE_GSM != "yes"; then
2274 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2275 if test $HAVE_GSM = "yes"; then
2276 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2282 dnl *** fluidSynth ***
2283 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2284 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2285 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2286 HAVE_FLUIDSYNTH="no"
2291 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2292 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2293 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2296 AC_SUBST(KATE_CFLAGS)
2298 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2301 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2307 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2308 AC_SUBST(TIGER_CFLAGS)
2309 AC_SUBST(TIGER_LIBS)
2310 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2313 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2314 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2315 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2317 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2318 if test $HAVE_LRDF = "yes"; then
2319 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2322 AC_SUBST(LRDF_CFLAGS)
2326 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2327 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2328 PKG_CHECK_MODULES(LILV, lilv-0 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2329 AC_SUBST(LILV_CFLAGS)
2333 dnl *** libde265 ***
2334 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2335 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2336 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2337 AC_SUBST(LIBDE265_CFLAGS)
2338 AC_SUBST(LIBDE265_LIBS)
2342 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2343 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2344 dnl check with pkg-config first
2345 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2349 AC_SUBST(LIBMMS_LIBS)
2353 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2354 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2355 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2356 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2359 AC_SUBST(SRTP_CFLAGS)
2363 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2364 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2365 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2367 AC_SUBST(DTLS_CFLAGS)
2375 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2376 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2388 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2389 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2390 if test "x$HAVE_CXX" != "xyes"; then
2391 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2394 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2396 AC_SUBST(MODPLUG_CFLAGS)
2397 AC_SUBST(MODPLUG_LIBS)
2401 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2402 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2404 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2405 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2406 AC_SUBST(MIMIC_CFLAGS)
2407 AC_SUBST(MIMIC_LIBS)
2410 dnl *** mjpegtools version info ***
2411 dnl some may prefer older version (given quirks above)
2412 dnl hm, no version info seems available within mjpegtools headers
2413 dnl and API really moves along
2415 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2416 mjpegtools_api=10601
2418 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2419 mjpegtools_api=10800
2421 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2422 mjpegtools_api=20000
2424 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2425 dnl logging API changed in release candidates
2426 OLD_CFLAGS="$CFLAGS"
2428 CFLAGS="$MJPEG_CFLAGS"
2429 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2430 AC_CHECK_FUNC(mjpeg_loglev_t, [
2431 mjpegtools_api=10903
2433 mjpegtools_api=10900
2435 CFLAGS="$OLD_CFLAGS"
2443 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2444 [mjpegtools API evolution])
2446 dnl *** mpeg2enc ***
2447 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2448 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2450 dnl we require a c++ compiler for this one
2451 if [ test x$HAVE_CXX = xyes ]; then
2452 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2453 dnl since many distros include mjpegtools specifically without mplex
2454 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2455 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2456 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2458 dnl switch over to c++ to test things
2460 OLD_CPPFLAGS="$CPPFLAGS"
2462 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2463 CPPFLAGS="$CPPFLAGS_GOOD -I."
2465 mpeg2enc_headers_ok=no
2466 AC_CHECK_HEADER([mpeg2encoder.hh], [
2467 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2469 LIBS="$LIBS $MPEG2ENC_LIBS"
2470 AC_MSG_CHECKING([for valid mpeg2enc objects])
2471 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2472 #include <mpeg2encoder.hh>
2473 #include <mpeg2encoptions.hh>
2479 MPEG2EncOptions *options = new MPEG2EncOptions ();
2480 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2485 dnl so far so good, let's check more things:
2486 dnl mjpegtools-1.8.0 does not install the required
2487 dnl mpeg2syntaxcodes.h header by default, and a new release
2488 dnl is not in sight, so check for this oversight in case
2489 dnl distros or folks have fixed this themselves
2490 if test "$mjpegtools_api" -ge "10800"; then
2491 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2492 mpeg2enc_headers_ok=yes
2494 mpeg2enc_headers_ok=no
2497 mpeg2enc_headers_ok=yes
2499 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2502 CPPFLAGS="$CPPFLAGS_GOOD"
2503 AC_SUBST(MPEG2ENC_CFLAGS)
2504 AC_SUBST(MPEG2ENC_LIBS)
2511 CPPFLAGS="$OLD_CPPFLAGS"
2520 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2521 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2523 dnl we require a c++ compiler for this one
2524 if [ test x$HAVE_CXX = xyes ]; then
2525 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2526 dnl since many distros include mjpegtools specifically without mplex
2527 dnl and mpeg2enc, we check for mplex on its own, too.
2528 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2529 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2530 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2532 dnl switch over to c++ to test things
2534 OLD_CPPFLAGS="$CPPFLAGS"
2536 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2537 CPPFLAGS="$CPPFLAGS_GOOD -I."
2538 AC_CHECK_HEADER(interact.hpp, [
2539 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2541 LIBS="$LIBS $MPLEX_LIBS"
2542 OLD_LDFLAGS="$LDFLAGS"
2543 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2544 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2545 dnl don't want this here
2546 AC_MSG_CHECKING([for valid mplex objects])
2547 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2549 #include <interact.hpp>
2550 #include <outputstrm.hpp>
2551 #include <multiplexor.hpp>
2556 class TestOutputStream : public OutputStream {
2558 TestOutputStream () : OutputStream () { }
2559 void Write (uint8_t *a, unsigned int b) { }
2560 void NextSegment () { }
2561 uint64_t SegmentSize () { }
2565 MultiplexJob *job = new MultiplexJob ();
2566 vector<IBitStream *> inputs;
2567 job->SetupInputStreams (inputs);
2568 TestOutputStream *out = new TestOutputStream ();
2569 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2574 CPPFLAGS="$CPPFLAGS_GOOD"
2575 AC_SUBST(MPLEX_CFLAGS)
2576 AC_SUBST(MPLEX_LIBS)
2577 AC_SUBST(MPLEX_LDFLAGS)
2579 ],[AC_MSG_RESULT(no)],[])
2581 LDFLAGS="$OLD_LDFLAGS"
2583 CPPFLAGS="$OLD_CPPFLAGS"
2589 dnl *** musepack ***
2590 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2591 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2592 AC_CHECK_HEADER([mpc/mpcdec.h], [
2594 MUSEPACK_LIBS="-lmpcdec"
2595 AC_SUBST(MUSEPACK_LIBS)
2596 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2598 MUSEPACK_LIBS="-lmpcdec"
2599 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2600 AC_SUBST(MUSEPACK_LIBS)
2601 ], [HAVE_MUSEPACK="no"])])
2605 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2606 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2608 if test "x$HAVE_X" = "xyes"; then
2609 save_cppflags=$CFLAGS
2610 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2611 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2612 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2613 CPPFLAGS="$save_cppflags"
2615 AC_SUBST(NAS_CFLAGS)
2620 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2621 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2622 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2625 AC_SUBST(NEON_CFLAGS)
2630 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2631 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2632 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2635 AC_SUBST(OFA_CFLAGS)
2640 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2641 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2642 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2645 AC_SUBST(OPENAL_CFLAGS)
2646 AC_SUBST(OPENAL_LIBS)
2650 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2651 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2652 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2653 dnl and don't want the build to break when a new opencv version comes out.
2654 dnl Need to adjust this upwards once we know that our code compiles fine with
2655 dnl a new version and the no-backward-compatibility define. (There doesn't
2656 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2658 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [
2661 OLD_CPPFLAGS=$CPPFLAGS
2662 CPPFLAGS=$OPENCV_CFLAGS
2663 something_not_found=no
2664 AC_CHECK_HEADERS([opencv2/contrib/contrib.hpp \
2665 opencv2/core/core_c.h \
2666 opencv2/core/types_c.h \
2667 opencv2/core/version.hpp \
2668 opencv2/highgui/highgui_c.h \
2669 opencv2/imgproc/imgproc.hpp \
2670 opencv2/imgproc/imgproc_c.h \
2671 opencv2/legacy/compat.hpp \
2672 opencv2/legacy/legacy.hpp \
2673 opencv2/objdetect/objdetect.hpp \
2674 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2675 CPPFLAGS=$OLD_CPPFLAGS
2678 if test $something_not_found = "yes"; then
2679 AC_MSG_RESULT([not all opencv2 headers were found])
2687 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2688 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2689 AC_SUBST(OPENCV_PREFIX)
2690 AC_SUBST(OPENCV_CFLAGS)
2691 AC_SUBST(OPENCV_LIBS)
2692 dnl the OpenCV prefix is used at runtime for some object properties, and also
2693 dnl used here to detect which directory is the correct one. For the second
2694 dnl case, make sure the right sysroot is used, ensuring correct behavior
2695 dnl during cross compilation.
2696 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2697 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2699 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2704 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2705 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2706 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2709 dnl *** openh264 ***
2710 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2711 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2712 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2715 dnl *** OpenJPEG ***
2716 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2717 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2721 save_CFLAGS="$CFLAGS"
2722 OPENJPEG_LIBS="-lopenjp2"
2723 LIBS="$LIBS $OPENJPEG_LIBS"
2724 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2726 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2727 [return (int) *opj_version ();])
2728 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2730 CFLAGS="$save_CFLAGS"
2732 if test x"$HAVE_OPENJPEG" = x"no"; then
2734 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2735 HAVE_OPENJPEG="yes",
2736 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2738 if test x"$HAVE_OPENJPEG" = x"yes"; then
2739 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2742 AC_SUBST(OPENJPEG_CFLAGS)
2743 AC_SUBST(OPENJPEG_LIBS)
2747 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2748 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2749 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2750 AC_SUBST(OPENNI2_CFLAGS)
2751 AC_SUBST(OPENNI2_LIBS)
2755 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2756 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2757 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2758 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2763 AC_SUBST(OPUS_CFLAGS)
2768 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2769 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2770 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2771 AC_SUBST(PVR_CFLAGS)
2775 AC_ARG_WITH([pvr-external-headers],
2776 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2777 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2778 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2779 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2782 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2783 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2784 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2788 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2789 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2792 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2799 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2800 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2801 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2802 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2807 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2809 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2810 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2811 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2812 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2814 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2816 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2817 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2818 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2819 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2821 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2823 if test "x$GDK_WINDOWING" = "xyes"; then
2824 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2831 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2834 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2835 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2836 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2837 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2838 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2839 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2840 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2841 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2842 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2843 AC_MSG_WARN([One of the required qt build programs was not found])
2847 HAVE_QT_WINDOWING="no"
2848 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2849 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2850 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2851 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2852 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2853 HAVE_QT_WINDOWING="yes"
2854 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2856 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2857 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2858 AC_DEFINE([HAVE_QT_WAYLAND], [],
2859 [Define if Qt Wayland integration is installed])
2860 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2861 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2862 HAVE_QT_WINDOWING="yes"
2863 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2865 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2866 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2867 # c++ on android requires a standard library and there are multiple
2868 # choices. cerbero provides a pkg-config file the describes a choice
2869 # so try to use that. Outside cerbero one has to pass these flags
2870 # manually for the library one is using
2871 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2872 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2873 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2875 AC_MSG_NOTICE([Could not find Standard C++ library])])
2877 AC_DEFINE([HAVE_QT_ANDROID], [],
2878 [Define if Qt Android integration is installed])
2879 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2880 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2881 HAVE_QT_WINDOWING="yes"
2882 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2884 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2885 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2886 AC_DEFINE([HAVE_QT_MAC], [],
2887 [Define if Qt Mac integration is installed])
2888 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2889 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2890 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2891 HAVE_QT_WINDOWING="yes"
2892 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2894 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2895 if test "x$HAVE_IOS" = "xyes"; then
2896 # iOS doesn't have its own extras package so if we have the core
2897 # modules we are good to go
2898 AC_DEFINE([HAVE_QT_IOS], [],
2899 [Define if Qt iOS integration is installed])
2900 HAVE_QT_WINDOWING="yes"
2903 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2904 AC_MSG_WARN([Could not find any Qt Windowing integration])
2907 AC_SUBST([QT_CFLAGS])
2916 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2917 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2919 AC_CHECK_HEADER(vulkan/vulkan.h, [
2920 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2921 VULKAN_LIBS="-lvulkan"
2922 AC_SUBST(VULKAN_LIBS)
2923 dnl TODO check platform support (x11, win32, wayland, android, etc)
2924 if test "x$HAVE_XCB" = "xyes"; then
2931 dnl *** libvisual ***
2932 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2933 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2934 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2935 if test x$HAVE_LIBVISUAL = xyes; then
2936 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2938 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2939 if test x$LIBVIS_PLUGINSDIR != x; then
2940 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2941 "$LIBVIS_PLUGINSDIR",
2942 [directory in which the detected libvisual's plugins are located])
2946 dnl *** timidity ***
2947 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2948 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2949 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2950 HAVE_TIMIDITY="yes",
2951 AC_MSG_CHECKING([for timidity.cfg])
2953 if test -r /etc/timidity.cfg; then
2954 timidity_cfg=/etc/timidity.cfg
2955 elif test -r /etc/timidity/timidity.cfg; then
2956 timidity_cfg=/etc/timidity/timidity.cfg
2957 elif test -r /usr/share/timidity/timidity.cfg; then
2958 timidity_cfg=/usr/share/timidity/timidity.cfg
2959 elif test -r /usr/local/share/timidity/timidity.cfg; then
2960 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2962 if test "x$timidity_cfg" != "x"; then
2963 AC_MSG_RESULT($timidity_cfg)
2964 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2966 AC_MSG_RESULT([not found])
2971 AC_SUBST(TIMIDITY_CFLAGS)
2972 AC_SUBST(TIMIDITY_LIBS)
2975 dnl *** teletextdec ***
2976 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2977 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2978 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2981 dnl *** wildmidi ***
2982 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2983 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2984 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2987 WILDMIDI_LIBS="-lWildMidi")
2988 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2990 if test "x$HAVE_WILDMIDI" = "xyes"; then
2992 WILDMIDI_LIBS=-lWildMidi
2993 AC_MSG_NOTICE(compiling gstWildMidi)
2997 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2999 AC_SUBST(WILDMIDI_CFLAGS)
3000 AC_SUBST(WILDMIDI_LIBS)
3004 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3005 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3006 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3009 dnl **** Smooth Streaming ****
3010 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3011 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3012 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3014 HAVE_SMOOTHSTREAMING="yes"],
3016 HAVE_SMOOTHSTREAMING="no"])
3017 AC_SUBST(LIBXML2_CFLAGS)
3018 AC_SUBST(LIBXML2_LIBS)
3022 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3023 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3024 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3025 AC_SUBST(SNDFILE_CFLAGS)
3026 AC_SUBST(SNDFILE_LIBS)
3029 dnl *** soundtouch ***
3030 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3031 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3032 dnl We only need -lBPM on soundtouch < 1.4
3033 dnl We check for libSoundTouch since Debian used it before upstream
3034 dnl added a pkgconfig file.
3035 HAVE_SOUNDTOUCH_1_4=yes
3036 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3037 [HAVE_SOUNDTOUCH=yes],
3038 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3039 [HAVE_SOUNDTOUCH=yes],
3040 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3041 [HAVE_SOUNDTOUCH=yes
3042 HAVE_SOUNDTOUCH_1_4=no
3043 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3044 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3045 [HAVE_SOUNDTOUCH=yes],
3046 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3047 [HAVE_SOUNDTOUCH=yes
3048 HAVE_SOUNDTOUCH_1_4=no
3049 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3050 HAVE_SOUNDTOUCH=no)])])])])
3051 AC_SUBST(SOUNDTOUCH_CFLAGS)
3052 AC_SUBST(SOUNDTOUCH_LIBS)
3053 if test "x$HAVE_CXX" != "xyes"; then
3054 USE_SOUNDTOUCH=false
3055 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3057 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3058 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3059 [Defined if the available libSoundTouch is >= 1.4])
3064 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3065 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3066 AC_CHECK_HEADER(openspc.h, [
3067 AC_CHECK_LIB(openspc, OSPC_Init, [
3068 SPC_LIBS="-lopenspc"
3080 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3081 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3082 AC_CHECK_HEADER(gme/gme.h, [
3083 AC_CHECK_LIB(gme, gme_new_emu, [
3094 if test "x$HAVE_GME" = "xyes"; then
3095 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3096 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3102 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3103 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3105 AC_CHECK_HEADER(xvid.h, [
3107 LIBS="$PTHREAD_LIBS $LIBM"
3108 AC_CHECK_LIB(xvidcore, xvid_encore, [
3109 AC_CHECK_LIB(xvidcore, xvid_decore, [
3110 AC_CHECK_LIB(xvidcore, xvid_global, [
3111 AC_MSG_CHECKING([for up-to-date XviD API version])
3112 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3113 #if XVID_API_MAJOR(XVID_API) != 4
3114 #error "Incompatible XviD API version"
3116 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3117 #error "Incompatible XviD API version"
3119 ]])],[ AC_MSG_RESULT(yes)
3120 XVID_LIBS="-lxvidcore $LIBM"
3123 ],[AC_MSG_RESULT(no) ])
3132 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3133 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3134 AC_MSG_CHECKING([Checking for up to date dvb installation])
3135 AC_CHECK_HEADER(linux/dvb/version.h, [
3136 AC_MSG_CHECKING([for up-to-date dvb API])
3137 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3138 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3139 #error "Incompatible dvb API"
3141 ]])], [ AC_MSG_RESULT(yes)
3143 ], [ AC_MSG_RESULT(no)
3150 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3151 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3152 AC_MSG_CHECKING([Checking for windows internet support])
3153 AC_CHECK_HEADERS([windows.h wininet.h],
3154 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3155 [AC_INCLUDES_DEFAULT
3156 #include <windows.h>])
3160 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3161 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3162 AC_MSG_CHECKING([Checking for ACM support])
3163 AC_CHECK_HEADERS([windows.h msacm.h],
3165 AC_SUBST(ACMENC_CFLAGS)
3166 AC_SUBST(ACMMP3DEC_CFLAGS)
3168 [AC_INCLUDES_DEFAULT
3169 #include <windows.h>])
3173 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3174 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3179 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3181 if test "$HAVE_VDPAU" = "no"; then
3182 saved_CPPFLAGS="$CPPFLAGS"
3183 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3185 if test -z "$HAVE_VDPAU_H"; then
3186 dnl Didn't find VDPAU header straight away.
3187 dnl Try /usr/include/nvidia. Need to clear caching vars first
3188 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3189 unset ac_cv_header_vdpau_vdpau_h
3190 unset ac_cv_header_vdpau_vdpau_x11_h
3191 VDPAU_CFLAGS="-I/usr/include/nvidia"
3192 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3193 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3194 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3197 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3199 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3200 dnl Found the headers - look for the lib
3201 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3203 LIBS="$VDPAU_LIBS $saved_LIBS"
3204 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3210 if test "$HAVE_VDPAU" = "yes"; then
3211 AC_MSG_NOTICE([Found up to date VDPAU installation])
3212 AC_SUBST(VDPAU_CFLAGS)
3213 AC_SUBST(VDPAU_LIBS)
3218 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3219 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3220 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3223 dnl *** schroedinger ***
3224 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3225 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3226 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3230 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3231 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3232 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3236 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3237 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3238 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3242 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3243 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3244 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3245 HAVE_SPANDSP="yes" ], [
3249 AC_SUBST(SPANDSP_CFLAGS)
3250 AC_SUBST(SPANDSP_LIBS)
3253 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3254 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3255 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3256 if test "x$HAVE_SNDIO" = "xyes"; then
3257 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3258 if test "x$HAVE_SNDIO" = "xyes"; then
3260 AC_SUBST(SNDIO_LIBS)
3265 dnl *** hls-crypto ***
3266 AC_ARG_WITH([hls-crypto],
3267 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3268 which cryptographic library version to compile against for hls (default: auto)
3270 AS_CASE([$with_hls_crypto],
3274 [with_hls_crypto=auto]
3280 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3281 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3282 AS_CASE([$with_hls_crypto],
3284 PKG_CHECK_MODULES(NETTLE, nettle, [
3285 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3287 ],[AC_MSG_ERROR([Could not find nettle library])])
3290 AM_PATH_LIBGCRYPT([1.2.0], [
3291 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3293 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3296 PKG_CHECK_MODULES(OPENSSL, openssl, [
3297 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3299 ],[AC_MSG_ERROR([Could not find openssl library])])
3302 dnl Try to find a valid crypto library
3303 PKG_CHECK_MODULES(NETTLE, nettle, [
3304 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3307 AM_PATH_LIBGCRYPT([1.2.0], [
3308 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3311 PKG_CHECK_MODULES(OPENSSL, openssl, [
3312 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3323 dnl *** x265 (H.265/HEVC encoder) ***
3324 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3325 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3326 AG_GST_PKG_CHECK_MODULES(X265, x265)
3331 dnl not building plugins with external dependencies,
3332 dnl but we still need to set the conditionals
3334 AM_CONDITIONAL(USE_ASSRENDER, false)
3335 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3336 AM_CONDITIONAL(USE_VOAACENC, false)
3337 AM_CONDITIONAL(USE_APEXSINK, false)
3338 AM_CONDITIONAL(USE_BS2B, false)
3339 AM_CONDITIONAL(USE_BZ2, false)
3340 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3341 AM_CONDITIONAL(USE_CURL, false)
3342 AM_CONDITIONAL(USE_SSH2, false)
3343 AM_CONDITIONAL(USE_DASH, false)
3344 AM_CONDITIONAL(USE_DC1394, false)
3345 AM_CONDITIONAL(USE_DECKLINK, false)
3346 AM_CONDITIONAL(DECKLINK_OSX, false)
3347 AM_CONDITIONAL(USE_DIRECTFB, false)
3348 AM_CONDITIONAL(USE_WAYLAND, false)
3349 AM_CONDITIONAL(USE_DAALA, false)
3350 AM_CONDITIONAL(USE_DTS, false)
3351 AM_CONDITIONAL(USE_EXIF, false)
3352 AM_CONDITIONAL(USE_RESINDVD, false)
3353 AM_CONDITIONAL(USE_FAAC, false)
3354 AM_CONDITIONAL(USE_FAAD, false)
3355 AM_CONDITIONAL(USE_FBDEV, false)
3356 AM_CONDITIONAL(USE_FLITE, false)
3357 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3358 AM_CONDITIONAL(USE_GL, false)
3359 AM_CONDITIONAL(USE_GSM, false)
3360 AM_CONDITIONAL(USE_GTK3, false)
3361 AM_CONDITIONAL(USE_GTK3_GL, false)
3362 AM_CONDITIONAL(USE_HLS, false)
3363 AM_CONDITIONAL(USE_KATE, false)
3364 AM_CONDITIONAL(USE_TIGER, false)
3365 AM_CONDITIONAL(USE_LADSPA, false)
3366 AM_CONDITIONAL(USE_LV2, false)
3367 AM_CONDITIONAL(USE_LIBDE265, false)
3368 AM_CONDITIONAL(USE_LIBMMS, false)
3369 AM_CONDITIONAL(USE_LINSYS, false)
3370 AM_CONDITIONAL(USE_MODPLUG, false)
3371 AM_CONDITIONAL(USE_MIMIC, false)
3372 AM_CONDITIONAL(USE_MPEG2ENC, false)
3373 AM_CONDITIONAL(USE_MPLEX, false)
3374 AM_CONDITIONAL(USE_MUSEPACK, false)
3375 AM_CONDITIONAL(USE_NAS, false)
3376 AM_CONDITIONAL(USE_NEON, false)
3377 AM_CONDITIONAL(USE_OFA, false)
3378 AM_CONDITIONAL(USE_OPENAL, false)
3379 AM_CONDITIONAL(USE_OPENCV, false)
3380 AM_CONDITIONAL(USE_OPENEXR, false)
3381 AM_CONDITIONAL(USE_OPENJPEG, false)
3382 AM_CONDITIONAL(USE_OPENNI2, false)
3383 AM_CONDITIONAL(USE_OPUS, false)
3384 AM_CONDITIONAL(USE_PVR, false)
3385 AM_CONDITIONAL(USE_QT, false)
3386 AM_CONDITIONAL(USE_LIBVISUAL, false)
3387 AM_CONDITIONAL(USE_TIMIDITY, false)
3388 AM_CONDITIONAL(USE_WILDMIDI, false)
3389 AM_CONDITIONAL(USE_SDL, false)
3390 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3391 AM_CONDITIONAL(USE_SNDFILE, false)
3392 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3393 AM_CONDITIONAL(USE_SPANDSP, false)
3394 AM_CONDITIONAL(USE_SPC, false)
3395 AM_CONDITIONAL(USE_SRTP, false)
3396 AM_CONDITIONAL(USE_GME, false)
3397 AM_CONDITIONAL(USE_XVID, false)
3398 AM_CONDITIONAL(USE_DVB, false)
3399 AM_CONDITIONAL(USE_WININET, false)
3400 AM_CONDITIONAL(USE_ACM, false)
3401 AM_CONDITIONAL(USE_VDPAU, false)
3402 AM_CONDITIONAL(USE_SBC, false)
3403 AM_CONDITIONAL(USE_SCHRO, false)
3404 AM_CONDITIONAL(USE_ZBAR, false)
3405 AM_CONDITIONAL(USE_RSVG, false)
3406 AM_CONDITIONAL(USE_RTMP, false)
3407 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3408 AM_CONDITIONAL(USE_SNDIO, false)
3409 AM_CONDITIONAL(USE_UVCH264, false)
3410 AM_CONDITIONAL(USE_WEBP, false)
3411 AM_CONDITIONAL(USE_OPENH264, false)
3412 AM_CONDITIONAL(USE_X265, false)
3413 AM_CONDITIONAL(USE_DTLS, false)
3415 fi dnl of EXT plugins
3417 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3420 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3421 dnl GST_*: flags shared by built objects to link against GStreamer
3422 dnl GST_ALL_LDFLAGS: linker flags shared by all
3423 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3424 dnl GST_LT_LDFLAGS: library versioning of our libraries
3425 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3427 dnl GST_OPTION_CFLAGS
3428 if test "x$USE_DEBUG" = xyes; then
3431 AC_SUBST(PROFILE_CFLAGS)
3433 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3434 dnl Define _only_ during CVS (not pre-releases or releases)
3435 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3437 DEPRECATED_CFLAGS=""
3439 AC_SUBST(DEPRECATED_CFLAGS)
3441 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3442 dnl at make time with e.g. make ERROR_CFLAGS=""
3443 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3444 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3445 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3446 AC_SUBST(GST_OPTION_CFLAGS)
3447 AC_SUBST(GST_OPTION_CXXFLAGS)
3448 AC_SUBST(GST_OPTION_OBJCFLAGS)
3450 dnl FIXME: do we want to rename to GST_ALL_* ?
3451 dnl prefer internal headers to already installed ones
3452 dnl also add builddir include for enumtypes and marshal
3453 dnl add GST_OPTION_CFLAGS, but overridable
3454 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3455 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3456 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3457 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3458 AC_SUBST(GST_CFLAGS)
3459 AC_SUBST(GST_CXXFLAGS)
3460 AC_SUBST(GST_OBJCFLAGS)
3462 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3463 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3464 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3465 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3466 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3467 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3469 dnl LDFLAGS really should only contain flags, not libs - they get added before
3470 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3471 GST_ALL_LDFLAGS="-no-undefined"
3472 if test "x${enable_Bsymbolic}" = "xyes"; then
3473 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3475 AC_SUBST(GST_ALL_LDFLAGS)
3478 dnl linker flags shared by all libraries
3479 dnl LDFLAGS modifier defining exported symbols from built libraries
3480 dnl (export _gst_foo but not __gst_foo)
3481 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3482 AC_SUBST(GST_LIB_LDFLAGS)
3484 dnl this really should only contain flags, not libs - they get added before
3485 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3486 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3487 AC_SUBST(GST_PLUGIN_LDFLAGS)
3489 dnl *** output files ***
3491 $MKDIR_P tests/check/orc
3499 gst-plugins-bad.spec
3501 gst/accurip/Makefile
3502 gst/adpcmdec/Makefile
3503 gst/adpcmenc/Makefile
3505 gst/videoframe_audiolevel/Makefile
3507 gst/audiofxbad/Makefile
3508 gst/audiomixer/Makefile
3509 gst/audiovisualizers/Makefile
3510 gst/autoconvert/Makefile
3512 gst/camerabin2/Makefile
3513 gst/cdxaparse/Makefile
3514 gst/coloreffects/Makefile
3515 gst/dataurisrc/Makefile
3517 gst/debugutils/Makefile
3518 gst/dvbsuboverlay/Makefile
3520 gst/faceoverlay/Makefile
3521 gst/festival/Makefile
3522 gst/fieldanalysis/Makefile
3523 gst/freeverb/Makefile
3525 gst/gaudieffects/Makefile
3526 gst/geometrictransform/Makefile
3528 gst/hdvparse/Makefile
3531 gst/interlace/Makefile
3532 gst/ivfparse/Makefile
3534 gst/jp2kdecimator/Makefile
3535 gst/jpegformat/Makefile
3538 gst/mpegdemux/Makefile
3539 gst/mpegtsdemux/Makefile
3540 gst/mpegtsmux/Makefile
3541 gst/mpegtsmux/tsmux/Makefile
3542 gst/mpegpsmux/Makefile
3546 gst/nuvdemux/Makefile
3548 gst/patchdetect/Makefile
3549 gst/pcapparse/Makefile
3551 gst/rawparse/Makefile
3552 gst/removesilence/Makefile
3555 gst/segmentclip/Makefile
3562 gst/videofilters/Makefile
3563 gst/videomeasure/Makefile
3564 gst/videoparsers/Makefile
3565 gst/videosignal/Makefile
3569 gst/compositor/Makefile
3571 gst-libs/gst/Makefile
3572 gst-libs/gst/adaptivedemux/Makefile
3573 gst-libs/gst/basecamerabinsrc/Makefile
3574 gst-libs/gst/gl/Makefile
3575 gst-libs/gst/gl/android/Makefile
3576 gst-libs/gst/gl/cocoa/Makefile
3577 gst-libs/gst/gl/dispmanx/Makefile
3578 gst-libs/gst/gl/glprototypes/Makefile
3579 gst-libs/gst/gl/eagl/Makefile
3580 gst-libs/gst/gl/egl/Makefile
3581 gst-libs/gst/gl/wayland/Makefile
3582 gst-libs/gst/gl/win32/Makefile
3583 gst-libs/gst/gl/x11/Makefile
3584 gst-libs/gst/insertbin/Makefile
3585 gst-libs/gst/interfaces/Makefile
3586 gst-libs/gst/codecparsers/Makefile
3587 gst-libs/gst/mpegts/Makefile
3588 gst-libs/gst/uridownloader/Makefile
3589 gst-libs/gst/wayland/Makefile
3590 gst-libs/gst/base/Makefile
3591 gst-libs/gst/player/Makefile
3592 gst-libs/gst/video/Makefile
3593 gst-libs/gst/audio/Makefile
3595 sys/dshowdecwrapper/Makefile
3597 sys/acmmp3dec/Makefile
3598 sys/androidmedia/Makefile
3599 sys/applemedia/Makefile
3600 sys/applemedia-nonpublic/Makefile
3603 sys/d3dvideosink/Makefile
3604 sys/decklink/Makefile
3605 sys/directsound/Makefile
3606 sys/dshowsrcwrapper/Makefile
3607 sys/dshowvideosink/Makefile
3612 sys/opensles/Makefile
3614 sys/tinyalsa/Makefile
3615 sys/uvch264/Makefile
3620 sys/wininet/Makefile
3622 sys/winscreencap/Makefile
3624 tests/check/Makefile
3625 tests/files/Makefile
3626 tests/examples/Makefile
3627 tests/examples/avsamplesink/Makefile
3628 tests/examples/camerabin2/Makefile
3629 tests/examples/codecparsers/Makefile
3630 tests/examples/directfb/Makefile
3631 tests/examples/gl/Makefile
3632 tests/examples/gl/cocoa/Makefile
3633 tests/examples/gl/clutter/Makefile
3634 tests/examples/gl/generic/Makefile
3635 tests/examples/gl/generic/cube/Makefile
3636 tests/examples/gl/generic/cubeyuv/Makefile
3637 tests/examples/gl/generic/doublecube/Makefile
3638 tests/examples/gl/generic/recordgraphic/Makefile
3639 tests/examples/gl/gtk/Makefile
3640 tests/examples/gl/gtk/gtkvideooverlay/Makefile
3641 tests/examples/gl/gtk/3dvideo/Makefile
3642 tests/examples/gl/gtk/filternovideooverlay/Makefile
3643 tests/examples/gl/gtk/filtervideooverlay/Makefile
3644 tests/examples/gl/gtk/fxtest/Makefile
3645 tests/examples/gl/gtk/switchvideooverlay/Makefile
3646 tests/examples/gl/qt/Makefile
3647 tests/examples/gl/sdl/Makefile
3648 tests/examples/gtk/Makefile
3649 tests/examples/mpegts/Makefile
3650 tests/examples/mxf/Makefile
3651 tests/examples/opencv/Makefile
3652 tests/examples/uvch264/Makefile
3653 tests/examples/waylandsink/Makefile
3654 tests/icles/Makefile
3655 ext/voamrwbenc/Makefile
3656 ext/voaacenc/Makefile
3657 ext/assrender/Makefile
3658 ext/apexsink/Makefile
3661 ext/chromaprint/Makefile
3665 ext/directfb/Makefile
3666 ext/wayland/Makefile
3674 ext/fluidsynth/Makefile
3680 ext/libde265/Makefile
3682 ext/libvisual/Makefile
3684 ext/modplug/Makefile
3685 ext/mpeg2enc/Makefile
3688 ext/musepack/Makefile
3694 ext/openexr/Makefile
3695 ext/openh264/Makefile
3696 ext/openjpeg/Makefile
3697 ext/openni2/Makefile
3701 ext/resindvd/Makefile
3704 ext/schroedinger/Makefile
3706 ext/smoothstreaming/Makefile
3707 ext/sndfile/Makefile
3708 ext/soundtouch/Makefile
3709 ext/spandsp/Makefile
3712 ext/teletextdec/Makefile
3715 ext/timidity/Makefile
3717 ext/vulkan/xcb/Makefile
3725 docs/plugins/Makefile
3727 docs/version.entities
3729 pkgconfig/gstreamer-plugins-bad.pc
3730 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3731 pkgconfig/gstreamer-codecparsers.pc
3732 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3733 pkgconfig/gstreamer-insertbin.pc
3734 pkgconfig/gstreamer-insertbin-uninstalled.pc
3735 pkgconfig/gstreamer-gl.pc
3736 pkgconfig/gstreamer-gl-uninstalled.pc
3737 pkgconfig/gstreamer-mpegts.pc
3738 pkgconfig/gstreamer-mpegts-uninstalled.pc
3739 pkgconfig/gstreamer-player.pc
3740 pkgconfig/gstreamer-player-uninstalled.pc
3741 pkgconfig/gstreamer-wayland.pc
3742 pkgconfig/gstreamer-wayland-uninstalled.pc
3743 pkgconfig/gstreamer-bad-base.pc
3744 pkgconfig/gstreamer-bad-base-uninstalled.pc
3745 pkgconfig/gstreamer-bad-video.pc
3746 pkgconfig/gstreamer-bad-video-uninstalled.pc
3747 pkgconfig/gstreamer-bad-audio.pc
3748 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3753 dnl Create the config.h file for Visual Studio builds
3754 dnl Beware of spaces and /'s in some of the shell variable contents.
3756 -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"/' \
3757 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3758 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3759 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3760 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3761 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3762 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3763 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3764 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3765 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3766 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3767 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3768 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3769 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3770 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3771 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3772 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3773 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3774 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3775 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3776 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3777 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3778 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3779 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3780 -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/' \
3781 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3782 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3783 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3784 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3785 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3786 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3787 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3788 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3789 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3790 config.h.in >win32/common/config.h-new
3794 AG_GST_OUTPUT_PLUGINS