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.7.91],[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, 791, 0, 791)
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 lv2 sndio libvisual"
457 AC_SUBST(GST_PLUGINS_NONPORTED)
459 dnl these are all the gst plug-ins, compilable without additional libs
460 AG_GST_CHECK_PLUGIN(accurip)
461 AG_GST_CHECK_PLUGIN(adpcmdec)
462 AG_GST_CHECK_PLUGIN(adpcmenc)
463 AG_GST_CHECK_PLUGIN(aiff)
464 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
465 AG_GST_CHECK_PLUGIN(asfmux)
466 AG_GST_CHECK_PLUGIN(audiofxbad)
467 AG_GST_CHECK_PLUGIN(audiomixer)
468 AG_GST_CHECK_PLUGIN(compositor)
469 AG_GST_CHECK_PLUGIN(audiovisualizers)
470 AG_GST_CHECK_PLUGIN(autoconvert)
471 AG_GST_CHECK_PLUGIN(bayer)
472 AG_GST_CHECK_PLUGIN(camerabin2)
473 AG_GST_CHECK_PLUGIN(cdxaparse)
474 AG_GST_CHECK_PLUGIN(coloreffects)
475 AG_GST_CHECK_PLUGIN(dataurisrc)
476 AG_GST_CHECK_PLUGIN(dccp)
477 AG_GST_CHECK_PLUGIN(debugutils)
478 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
479 AG_GST_CHECK_PLUGIN(dvdspu)
480 AG_GST_CHECK_PLUGIN(faceoverlay)
481 AG_GST_CHECK_PLUGIN(festival)
482 AG_GST_CHECK_PLUGIN(fieldanalysis)
483 AG_GST_CHECK_PLUGIN(freeverb)
484 AG_GST_CHECK_PLUGIN(frei0r)
485 AG_GST_CHECK_PLUGIN(gaudieffects)
486 AG_GST_CHECK_PLUGIN(geometrictransform)
487 AG_GST_CHECK_PLUGIN(gdp)
488 AG_GST_CHECK_PLUGIN(hdvparse)
489 AG_GST_CHECK_PLUGIN(id3tag)
490 AG_GST_CHECK_PLUGIN(inter)
491 AG_GST_CHECK_PLUGIN(interlace)
492 AG_GST_CHECK_PLUGIN(ivfparse)
493 AG_GST_CHECK_PLUGIN(ivtc)
494 AG_GST_CHECK_PLUGIN(jp2kdecimator)
495 AG_GST_CHECK_PLUGIN(jpegformat)
496 AG_GST_CHECK_PLUGIN(librfb)
497 AG_GST_CHECK_PLUGIN(midi)
498 AG_GST_CHECK_PLUGIN(mpegdemux)
499 AG_GST_CHECK_PLUGIN(mpegtsdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsmux)
501 AG_GST_CHECK_PLUGIN(mpegpsmux)
502 AG_GST_CHECK_PLUGIN(mve)
503 AG_GST_CHECK_PLUGIN(mxf)
504 AG_GST_CHECK_PLUGIN(netsim)
505 AG_GST_CHECK_PLUGIN(nuvdemux)
506 AG_GST_CHECK_PLUGIN(onvif)
507 AG_GST_CHECK_PLUGIN(patchdetect)
508 AG_GST_CHECK_PLUGIN(pcapparse)
509 AG_GST_CHECK_PLUGIN(pnm)
510 AG_GST_CHECK_PLUGIN(rawparse)
511 AG_GST_CHECK_PLUGIN(removesilence)
512 AG_GST_CHECK_PLUGIN(sdi)
513 AG_GST_CHECK_PLUGIN(sdp)
514 AG_GST_CHECK_PLUGIN(segmentclip)
515 AG_GST_CHECK_PLUGIN(siren)
516 AG_GST_CHECK_PLUGIN(smooth)
517 AG_GST_CHECK_PLUGIN(speed)
518 AG_GST_CHECK_PLUGIN(subenc)
519 AG_GST_CHECK_PLUGIN(stereo)
520 AG_GST_CHECK_PLUGIN(tta)
521 AG_GST_CHECK_PLUGIN(videofilters)
522 AG_GST_CHECK_PLUGIN(videomeasure)
523 AG_GST_CHECK_PLUGIN(videoparsers)
524 AG_GST_CHECK_PLUGIN(videosignal)
525 AG_GST_CHECK_PLUGIN(vmnc)
526 AG_GST_CHECK_PLUGIN(y4m)
527 AG_GST_CHECK_PLUGIN(yadif)
529 dnl *** plug-ins to exclude ***
531 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
532 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
533 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
535 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
537 LIBS="$LIBS -framework VideoToolbox"
538 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
539 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
545 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
546 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
547 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
550 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
551 if test "x$HAVE_IOS" = "xyes"; then
552 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
555 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
556 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
557 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
560 dnl disable gst plugins we might not be able to build on this
561 dnl platform: (ugly but minimally invasive)
562 dnl FIXME: maybe move to sys, or make work with winsock2
563 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
564 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
566 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
567 WINSOCK2_LIBS="-lws2_32"
568 AC_SUBST(WINSOCK2_LIBS)
571 if test "x$HAVE_PTHREAD_H" = "xyes"; then
572 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
575 AG_GST_DISABLE_PLUGIN(dccp)
579 AC_ARG_ENABLE([opengl],
580 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
581 [case "${enableval}" in
584 auto) NEED_GL=auto ;;
585 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
586 esac],[NEED_GL=auto])
588 AC_ARG_WITH([opengl-module-name],
589 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
590 if test x$with_opengl_module_name != x; then
591 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
594 AC_ARG_ENABLE([gles2],
595 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
596 [case "${enableval}" in
597 yes) NEED_GLES2=yes ;;
599 auto) NEED_GLES2=auto ;;
600 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
601 esac],[NEED_GLES2=auto])
603 AC_ARG_WITH([gles2-module-name],
604 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
605 if test x$with_gles2_module_name != x; then
606 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
610 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
611 [case "${enableval}" in
614 auto) NEED_EGL=auto ;;
615 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
616 esac],[NEED_EGL=auto])
618 AC_ARG_WITH([egl-module-name],
619 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
620 if test x$with_egl_module_name != x; then
621 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
625 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
626 [case "${enableval}" in
629 auto) NEED_WGL=auto ;;
630 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
631 esac],[NEED_WGL=auto])
634 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
635 [case "${enableval}" in
638 auto) NEED_GLX=auto ;;
639 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
640 esac],[NEED_GLX=auto])
642 AC_ARG_ENABLE([cocoa],
643 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
644 [case "${enableval}" in
645 yes) NEED_COCOA=yes ;;
647 auto) NEED_COCOA=auto ;;
648 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
649 esac],[NEED_COCOA=auto])
652 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
653 [case "${enableval}" in
656 auto) NEED_X11=auto ;;
657 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
658 esac],[NEED_X11=auto])
660 AC_ARG_ENABLE([wayland],
661 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
662 [case "${enableval}" in
663 yes) NEED_WAYLAND_EGL=yes ;;
664 no) NEED_WAYLAND_EGL=no ;;
665 auto) NEED_WAYLAND_EGL=auto ;;
666 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
667 esac],[NEED_WAYLAND_EGL=auto])
669 AC_ARG_ENABLE([dispmanx],
670 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
671 [case "${enableval}" in
672 yes) NEED_DISPMANX=yes ;;
673 no) NEED_DISPMANX=no ;;
674 auto) NEED_DISPMANX=auto ;;
675 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
676 esac],[NEED_DISPMANX=auto])
678 AG_GST_PKG_CHECK_MODULES(X, x11)
679 save_CPPFLAGS="$CPPFLAGS"
691 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
692 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
693 if test "x$HAVE_WGLEXT" = "xyes"; then
699 if test "x$NEED_GL" != "xno"; then
700 AG_GST_PKG_CHECK_MODULES(GL, gl)
701 if test "x$HAVE_GL" != "xyes"; then
702 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
705 if test "x$NEED_GLES2" != "xno"; then
706 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
707 if test "x$HAVE_GLES2" != "xyes"; then
708 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
711 if test "x$NEED_EGL" != "xno"; then
712 AG_GST_PKG_CHECK_MODULES(EGL, egl)
713 if test "x$HAVE_EGL" != "xyes"; then
714 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
721 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
722 AC_CHECK_HEADER([EGL/fbdev_window.h],
725 AC_CHECK_LIB([Mali], [mali_image_create],
728 AC_CHECK_LIB([GLESv2], [glEnable],
730 AC_CHECK_HEADER([GLES2/gl2.h],
732 AC_CHECK_LIB([EGL], [eglGetProcAddress],
734 AC_CHECK_HEADER([EGL/egl.h],
738 EGL_LIBS="-lMali -lUMP"
740 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
748 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
749 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
750 LIBS="$LIBS -lvcos -lvchiq_arm"
751 AC_CHECK_LIB([bcm_host], [bcm_host_init],
753 LIBS="$LIBS -lbcm_host"
754 AC_CHECK_HEADER(bcm_host.h,
756 LIBS="$LIBS -lGLESv2"
757 AC_CHECK_LIB([EGL], [eglGetProcAddress],
760 AC_CHECK_HEADER([EGL/egl.h],
762 AC_CHECK_LIB([GLESv2], [glEnable],
764 AC_CHECK_HEADER([GLES2/gl2.h],
769 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
771 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
782 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)
786 CPPFLAGS="$save_CPPFLAGS"
800 dnl Check for what the user asked for and what we could find
801 if test "x$HAVE_EGL" = "xno"; then
802 if test "x$NEED_EGL" = "xyes"; then
803 AC_MSG_ERROR([Could not find the required EGL libraries])
807 if test "x$HAVE_GL" = "xno"; then
808 if test "x$NEED_GL" = "xyes"; then
809 AC_MSG_ERROR([Could not find the required OpenGL libraries])
813 if test "x$HAVE_GLES2" = "xno"; then
814 if test "x$NEED_GLES2" = "xyes"; then
815 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
819 dnl X, GLX and OpenGL
820 if test "x$HAVE_X" = "xno"; then
821 if test "x$NEED_GLX" = "xyes"; then
822 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
824 if test "x$NEED_X11" = "xyes"; then
825 AC_MSG_ERROR([Could not find X11 development libraries])
828 if test "x$NEED_GL" != "xno"; then
829 if test "x$HAVE_GL" = "xno"; then
830 if test "x$NEED_GLX" = "xyes"; then
831 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
835 if test "x$NEED_GLX" != "xno"; then
842 dnl check for DMABUF support
843 HAVE_DRM_FOURCC_HEADER=no
844 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
845 HAVE_DRM_FOURCC_HEADER=yes, )
847 HAVE_GST_ALLOCATORS=no
848 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
849 HAVE_GST_ALLOCATORS=yes, )
851 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
852 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
853 "x$HAVE_EGL" = "xyes"; then
854 AC_DEFINE(GST_GL_HAVE_DMABUF, [1] , [DMABUF available for gl plugins])
857 dnl check if we can include both GL and GLES2 at the same time
858 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
861 # pragma GCC diagnostic push
862 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
864 #ifndef GL_GLEXT_PROTOTYPES
865 #define GL_GLEXT_PROTOTYPES 1
868 # include <OpenGLES/ES2/gl.h>
869 # include <OpenGLES/ES2/glext.h>
871 # include <GLES2/gl2.h>
872 # include <GLES2/gl2ext.h>
875 # include <OpenGL/OpenGL.h>
876 # include <OpenGL/gl.h>
877 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
878 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
879 # include <OpenGL/gl3.h>
883 # if __WIN32__ || _WIN32
884 # include <GL/glext.h>
887 int main (int argc, char **argv) { return 0; }
889 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
890 save_CFLAGS="$CFLAGS"
891 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
892 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
893 #if !defined(GL_FALSE)
894 #error Failed to include GL headers
896 ]])],[ AC_MSG_RESULT(yes)
898 if test "x$NEED_GLES2" = "xyes"; then
899 if test "x$NEED_GL" = "xyes"; then
900 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
902 AC_MSG_WARN([Disabling Desktop GL support])
906 AC_MSG_WARN([Disabling GL|ES 2.0 support])
910 CFLAGS="$save_CFLAGS"
913 #dnl Check for OpenGL
917 if test "x$NEED_WGL" = "xyes"; then
918 AC_MSG_ERROR([WGL is not available on Android])
920 if test "x$NEED_GLX" = "xyes"; then
921 AC_MSG_ERROR([GLX is not available on Android])
923 if test "x$NEED_GL" = "xyes"; then
924 AC_MSG_ERROR([GL is not available on Android])
926 if test "x$NEED_X11" = "xyes"; then
927 AC_MSG_ERROR([X11 is not available on Android])
929 if test "x$NEED_COCOA" = "xyes"; then
930 AC_MSG_ERROR([Cocoa is not available on Android])
934 if test "x$HAVE_GLES2" = "xyes"; then
935 if test "x$NEED_GLES2" != "xno"; then
936 GL_LIBS="$GL_LIBS -lGLESv2"
942 if test "x$HAVE_EGL" = "xyes"; then
943 if test "x$NEED_EGL" != "xno"; then
944 GL_LIBS="$GL_LIBS -lEGL"
949 if test "x$USE_EGL" != "xyes"; then
950 AC_MSG_ERROR([Need EGL on Android])
953 if test "x$USE_GLES2" != "xyes"; then
954 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
957 HAVE_WINDOW_ANDROID=yes
959 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
960 if test "x$NEED_WGL" = "xyes"; then
961 AC_MSG_ERROR([WGL is not available on unix])
964 if test "x$HAVE_X" = "xno"; then
965 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
966 AC_MSG_WARN([X or Wayland is required for OpenGL support])
970 dnl check Desktop OpenGL
971 if test "x$HAVE_GL" = "xyes"; then
972 if test "x$NEED_GL" != "xno"; then
973 GL_LIBS="$GL_LIBS -lGL"
978 if test "x$HAVE_GLES2" = "xyes"; then
979 if test "x$NEED_GLES2" != "xno"; then
980 GL_LIBS="$GL_LIBS -lGLESv2"
985 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
986 if test "x$NEED_X11" != "xno"; then
987 GL_LIBS="$GL_LIBS $X_LIBS"
988 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
993 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
994 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
995 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
997 if test "x$NEED_WAYLAND_EGL" != "xno"; then
998 HAVE_WINDOW_WAYLAND=yes
999 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1000 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1005 if test "x$HAVE_EGL_RPI" = "xyes"; then
1006 if test "x$NEED_DISPMANX" != "xno"; then
1007 HAVE_WINDOW_DISPMANX=yes
1013 if test "x$HAVE_EGL" = "xno"; then
1014 if test "x$HAVE_GL" = "xno"; then
1015 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1018 if test "x$NEED_EGL" != "xno"; then
1019 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1020 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1021 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1028 if test "x$HAVE_IOS" = "xyes"; then
1029 if test "x$NEED_WGL" = "xyes"; then
1030 AC_MSG_ERROR([WGL is not available on iOS])
1032 if test "x$NEED_GLX" = "xyes"; then
1033 AC_MSG_ERROR([GLX is not available on iOS])
1035 if test "x$NEED_GL" = "xyes"; then
1036 AC_MSG_ERROR([GL is not available on iOS])
1038 if test "x$NEED_X11" = "xyes"; then
1039 AC_MSG_ERROR([X11 is not available on iOS])
1041 if test "x$NEED_COCOA" = "xyes"; then
1042 AC_MSG_ERROR([Cocoa is not available on iOS])
1044 if test "x$NEED_EGL" = "xyes"; then
1045 AC_MSG_ERROR([EGL is not available on iOS])
1048 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1049 GL_CFLAGS="$GL_CFLAGS"
1052 HAVE_WINDOW_EAGL=yes
1054 ac_cv_type_GLsizeiptr=yes
1055 ac_cv_type_GLintptr=yes
1056 ac_cv_type_GLchar=yes
1058 dnl Only osx supports cocoa.
1059 if test "x$NEED_WGL" = "xyes"; then
1060 AC_MSG_ERROR([WGL is not available on Mac OS X])
1063 if test "x$NEED_COCOA" != "xno"; then
1064 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1065 GL_CFLAGS="$GL_CFLAGS"
1067 HAVE_WINDOW_COCOA=yes
1071 if test "x$USE_GLX" = "xyes"; then
1072 if test "x$HAVE_X" = "xyes"; then
1073 if test "x$NEED_X11" != "xno"; then
1074 GL_LIBS="$GL_LIBS $X_LIBS"
1075 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1080 if test "x$HAVE_GL" = "xyes"; then
1081 if test "x$NEED_GL" != "xno"; then
1082 GL_LIBS="$GL_LIBS -lGL"
1088 if test "x$HAVE_EGL" = "xyes"; then
1089 if test "x$NEED_EGL" != "xno"; then
1090 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1091 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1092 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1099 if test "x$HAVE_GLES2" = "xyes"; then
1100 if test "x$NEED_GLES2" != "xno"; then
1101 GL_LIBS="$GL_LIBS -lGLESv2"
1108 if test "x$NEED_GLX" = "xyes"; then
1109 AC_MSG_ERROR([GLX is not available on Windows])
1111 if test "x$NEED_GLES2" = "xyes"; then
1112 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1115 if test "x$HAVE_GL" = "xyes"; then
1116 if test "x$NEED_GL" != "xno"; then
1117 if test "x$HAVE_WGL" = "xyes"; then
1118 if test "$NEED_WGL" != "xno"; then
1119 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1120 HAVE_WINDOW_WIN32=yes
1129 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1140 GST_GL_HAVE_OPENGL=0
1144 if test "x$USE_OPENGL" = "xyes"; then
1145 GL_APIS="gl $GL_APIS"
1146 GST_GL_HAVE_OPENGL=1
1148 if test "x$USE_GLES2" = "xyes"; then
1149 GL_APIS="gles2 $GL_APIS"
1153 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1154 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1155 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1156 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1161 GST_GL_HAVE_WINDOW_X11=0
1162 GST_GL_HAVE_WINDOW_COCOA=0
1163 GST_GL_HAVE_WINDOW_WIN32=0
1164 GST_GL_HAVE_WINDOW_WAYLAND=0
1165 GST_GL_HAVE_WINDOW_ANDROID=0
1166 GST_GL_HAVE_WINDOW_DISPMANX=0
1167 GST_GL_HAVE_WINDOW_EAGL=0
1169 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1170 GL_WINDOWS="x11 $GL_WINDOWS"
1171 GST_GL_HAVE_WINDOW_X11=1
1173 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1174 GL_WINDOWS="cocoa $GL_WINDOWS"
1175 GST_GL_HAVE_WINDOW_COCOA=1
1177 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1178 GL_WINDOWS="win32 $GL_WINDOWS"
1179 GST_GL_HAVE_WINDOW_WIN32=1
1181 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1182 GL_WINDOWS="wayland $GL_WINDOWS"
1183 GST_GL_HAVE_WINDOW_WAYLAND=1
1185 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1186 GL_WINDOWS="android $GL_WINDOWS"
1187 GST_GL_HAVE_WINDOW_ANDROID=1
1189 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1190 GL_WINDOWS="dispmanx $GL_WINDOWS"
1191 GST_GL_HAVE_WINDOW_DISPMANX=1
1193 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1194 GL_WINDOWS="eagl $GL_WINDOWS"
1195 GST_GL_HAVE_WINDOW_EAGL=1
1198 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1199 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1200 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1201 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1202 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1203 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1204 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1205 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1210 GST_GL_HAVE_PLATFORM_EGL=0
1211 GST_GL_HAVE_PLATFORM_GLX=0
1212 GST_GL_HAVE_PLATFORM_WGL=0
1213 GST_GL_HAVE_PLATFORM_CGL=0
1214 GST_GL_HAVE_PLATFORM_EAGL=0
1216 if test "x$USE_EGL" = "xyes"; then
1217 GL_PLATFORMS="egl $GL_PLATFORMS"
1218 GST_GL_HAVE_PLATFORM_EGL=1
1220 if test "x$USE_GLX" = "xyes"; then
1221 GL_PLATFORMS="glx $GL_PLATFORMS"
1222 GST_GL_HAVE_PLATFORM_GLX=1
1224 if test "x$USE_WGL" = "xyes"; then
1225 GL_PLATFORMS="wgl $GL_PLATFORMS"
1226 GST_GL_HAVE_PLATFORM_WGL=1
1228 if test "x$USE_COCOA" = "xyes"; then
1229 GL_PLATFORMS="cgl $GL_PLATFORMS"
1230 GST_GL_HAVE_PLATFORM_CGL=1
1232 if test "x$USE_EAGL" = "xyes"; then
1233 GL_PLATFORMS="eagl $GL_PLATFORMS"
1234 GST_GL_HAVE_PLATFORM_EAGL=1
1237 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1238 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1239 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1240 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1241 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1242 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1245 dnl Check for no platforms/window systems
1246 if test "x$GL_APIS" = "x"; then
1247 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1249 if test "x$GL_PLATFORMS" = "x"; then
1250 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1252 if test "x$GL_WINDOWS" = "x"; then
1253 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1256 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1271 HAVE_WINDOW_WIN32=no
1272 HAVE_WINDOW_DISPMANX=no
1273 HAVE_WINDOW_WAYLAND=no
1274 HAVE_WINDOW_ANDROID=no
1275 HAVE_WINDOW_COCOA=no
1281 AC_SUBST(GL_OBJCFLAGS)
1282 AC_SUBST(USE_OPENGL)
1285 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1286 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1287 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1288 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1289 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1290 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1291 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1293 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1294 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1295 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1296 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1297 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1298 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1299 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1300 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1301 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1303 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1305 dnl Check for some types that are not always present
1307 if test "x$USE_GLES2" = "xyes"; then
1308 GL_INCLUDES="$GL_INCLUDES
1309 #ifndef GL_GLEXT_PROTOTYPES
1310 #define GL_GLEXT_PROTOTYPES 1
1313 # include <OpenGLES/ES2/gl.h>
1314 # include <OpenGLES/ES2/glext.h>
1316 # include <GLES2/gl2.h>
1317 # include <GLES2/gl2ext.h>
1322 if test "x$USE_OPENGL" = "xyes"; then
1323 GL_INCLUDES="$GL_INCLUDES
1325 # include <OpenGL/OpenGL.h>
1326 # include <OpenGL/gl.h>
1329 # if __WIN32__ || _WIN32
1330 # include <GL/glext.h>
1336 GST_GL_HAVE_GLEGLIMAGEOES=0
1337 GST_GL_HAVE_GLCHAR=0
1338 GST_GL_HAVE_GLSIZEIPTR=0
1339 GST_GL_HAVE_GLINTPTR=0
1340 GST_GL_HAVE_GLSYNC=0
1341 GST_GL_HAVE_GLUINT64=0
1342 GST_GL_HAVE_GLINT64=0
1345 CFLAGS="$GL_CFLAGS $CFLAGS"
1347 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1348 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1349 GST_GL_HAVE_GLEGLIMAGEOES=1
1352 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1353 if test "x$ac_cv_type_GLchar" = "xyes"; then
1354 GST_GL_HAVE_GLCHAR=1
1357 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1358 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1359 GST_GL_HAVE_GLSIZEIPTR=1
1362 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1363 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1364 GST_GL_HAVE_GLINTPTR=1
1367 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1368 if test "x$ac_cv_type_GLsync" = "xyes"; then
1369 GST_GL_HAVE_GLSYNC=1
1372 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1373 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1374 GST_GL_HAVE_GLUINT64=1
1377 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1378 if test "x$ac_cv_type_GLint64" = "xyes"; then
1379 GST_GL_HAVE_GLINT64=1
1384 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1385 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1386 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1387 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1388 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1389 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1390 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1391 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1394 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1395 outfile=gstglconfig.h-tmp
1396 cat > $outfile <<\_______EOF
1399 * This is a generated file. Please modify `configure.ac'
1402 #ifndef __GST_GL_CONFIG_H__
1403 #define __GST_GL_CONFIG_H__
1405 #include <gst/gst.h>
1411 cat >>$outfile <<_______EOF
1415 cat >>$outfile <<_______EOF
1419 #endif /* __GST_GL_CONFIG_H__ */
1423 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1424 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1427 mv $outfile gst-libs/gst/gl/gstglconfig.h
1430 gl_config_defines='$GL_CONFIG_DEFINES'
1433 dnl libpng is optional
1434 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1435 if test "x$HAVE_PNG" = "xyes"; then
1436 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1439 AC_SUBST(LIBPNG_LIBS)
1440 AC_SUBST(LIBPNG_CFLAGS)
1441 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1443 dnl libjpeg is optional
1444 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1446 if test x$with_jpeg_mmx != x; then
1447 LIBS="$LIBS -L$with_jpeg_mmx"
1449 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1450 JPEG_LIBS="$LIBS -ljpeg-mmx"
1452 if test x$HAVE_JPEG != xyes; then
1454 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1457 if test x$HAVE_JPEG = xyes; then
1458 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1460 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1465 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1468 VULKAN_CONFIG_DEFINES=""
1470 PKG_CHECK_MODULES(XCB, xcb >= 1.10, HAVE_XCB=yes, HAVE_XCB=no)
1472 AM_CONDITIONAL(USE_XCB, test "x$HAVE_XCB" = "xyes")
1473 if test "x$HAVE_XCB" = "xyes"; then
1474 VULKAN_CONFIG_DEFINES="$VULKAN_CONFIG_DEFINES
1475 #define GST_VULKAN_HAVE_WINDOW_XCB 1"
1478 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1479 outfile=vkconfig.h-tmp
1480 cat > $outfile <<\_______EOF
1483 * This is a generated file. Please modify `configure.ac'
1486 #ifndef __GST_VULKAN_CONFIG_H__
1487 #define __GST_VULKAN_CONFIG_H__
1489 #include <gst/gst.h>
1495 cat >>$outfile <<_______EOF
1496 $vulkan_config_defines
1499 cat >>$outfile <<_______EOF
1503 #endif /* __GST_VULKAN_CONFIG_H__ */
1507 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1508 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1511 mv $outfile ext/vulkan/vkconfig.h
1514 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1517 dnl *** sys plug-ins ***
1520 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1521 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1522 HAVE_DIRECTSOUND="no"
1523 save_CFLAGS="$CFLAGS"
1524 save_LDFLAGS="$LDFLAGS"
1526 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1527 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1528 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1529 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1530 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1531 #include <windows.h>
1534 #include <mmsystem.h>
1536 DXGetErrorString9 (0);
1537 DirectSoundCreate(NULL, NULL, NULL);
1539 [HAVE_DIRECTSOUND="yes"],
1540 [HAVE_DIRECTSOUND="no"])
1541 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1543 LDFLAGS=$save_LDFLAGS
1546 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1547 dnl this is much more than we want
1548 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1549 AC_SUBST(DIRECTX_CFLAGS)
1550 AC_SUBST(DIRECTX_LDFLAGS)
1551 AC_SUBST(DIRECTSOUND_LIBS)
1553 AC_SUBST(HAVE_DIRECTSOUND)
1557 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1558 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1560 save_CFLAGS="$CFLAGS"
1561 save_LDFLAGS="$LDFLAGS"
1563 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1564 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1565 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1566 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1567 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1568 #include <windows.h>
1570 #include <mmsystem.h>
1571 #include <mmdeviceapi.h>
1577 hr = CoInitialize(NULL);
1579 printf("CoInitialize failed: hr = 0x%08x", hr);
1584 // result = do_everything(argc, argv);
1590 [HAVE_WASAPI="yes"],
1592 AC_MSG_RESULT($HAVE_WASAPI)
1594 LDFLAGS=$save_LDFLAGS
1597 if test "x$HAVE_WASAPI" = "xyes"; then
1598 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1599 AC_SUBST(WASAPI_LIBS)
1601 AC_SUBST(HAVE_WASAPI)
1605 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1606 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1608 save_CFLAGS="$CFLAGS"
1609 save_LDFLAGS="$LDFLAGS"
1611 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1612 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1613 LIBS="$LIBS -ld3d9 -lgdi32"
1614 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1615 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1616 #include <windows.h>
1619 Direct3DCreate9(D3D_SDK_VERSION);
1621 [HAVE_DIRECT3D="yes"],
1622 [HAVE_DIRECT3D="no"])
1623 AC_MSG_RESULT($HAVE_DIRECT3D)
1625 LDFLAGS=$save_LDFLAGS
1628 if test "x$HAVE_DIRECT3D" = "xyes"; then
1629 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1630 AC_SUBST(DIRECT3D_LIBS)
1632 AC_SUBST(HAVE_DIRECT3D)
1636 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1637 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1638 HAVE_WINSCREENCAP="no"
1639 save_CFLAGS="$CFLAGS"
1640 save_LDFLAGS="$LDFLAGS"
1642 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1643 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1644 LIBS="$LIBS -ld3d9 -lgdi32"
1645 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1646 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1647 #include <windows.h>
1650 Direct3DCreate9(D3D_SDK_VERSION);
1652 [HAVE_WINSCREENCAP="yes"],
1653 [HAVE_WINSCREENCAP="no"])
1654 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1656 LDFLAGS=$save_LDFLAGS
1659 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1660 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1661 AC_SUBST(WINSCREENCAP_LIBS)
1663 AC_SUBST(HAVE_WINSCREENCAP)
1667 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1668 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1670 save_CFLAGS="$CFLAGS"
1671 save_LDFLAGS="$LDFLAGS"
1673 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1674 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1675 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1676 AC_MSG_CHECKING(for Winks LDFLAGS)
1677 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1678 #include <windows.h>
1683 IGraphBuilder *pGraph = NULL;
1684 HRESULT hr = CoInitialize(NULL);
1685 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1686 &IID_IGraphBuilder, (void **)&pGraph);
1693 AC_MSG_RESULT($HAVE_WINKS)
1695 LDFLAGS=$save_LDFLAGS
1698 if test "x$HAVE_WINKS" = "xyes"; then
1699 dnl this is much more than we want
1700 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1701 AC_SUBST(DIRECTX_CFLAGS)
1702 AC_SUBST(DIRECTX_LDFLAGS)
1703 AC_SUBST(WINKS_LIBS)
1705 AC_SUBST(HAVE_WINKS)
1708 dnl *** Android Media ***
1709 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1710 HAVE_ANDROID_MEDIA="no"
1711 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1714 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1717 HAVE_ANDROID_MEDIA="no"
1722 dnl *** AppleMedia (OS X and iOS) ***
1723 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1724 HAVE_APPLE_MEDIA="no"
1725 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1726 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1727 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1728 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1729 if test "x$HAVE_IOS" = "xno"; then
1730 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1734 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1739 HAVE_APPLE_MEDIA="no"
1744 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1745 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1746 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1747 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1748 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1750 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1759 dnl *** OS/X AVCVideoServices ***
1760 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1762 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1764 save_CPPFLAGS="$CPPFLAGS"
1765 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1767 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1768 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1770 CPPFLAGS=$save_CPPFLAGS
1773 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1782 dnl check for shm_open (for shm plugin)
1783 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1784 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1785 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1787 *-darwin* | *-macos10*)
1788 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1792 AC_CHECK_LIB([rt], [shm_open],
1793 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1794 #include <sys/socket.h>
1797 AC_SUBST(SHM_LIBS, "-lrt")
1805 dnl check for Video CD
1806 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1807 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1808 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1811 dnl check for OpenSL ES
1812 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1813 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1814 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1817 dnl *** UVC H264 ***
1818 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1819 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1820 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1821 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1822 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1825 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1826 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1827 HAVE_LIBUSB="yes" ],
1829 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1830 test "x$HAVE_GUDEV" = "xyes" && \
1831 test "x$HAVE_LIBUSB" = "xyes"; then
1837 AC_SUBST(LIBUDEV_CFLAGS)
1838 AC_SUBST(LIBUDEV_LIBS)
1839 AC_SUBST(LIBUSB_CFLAGS)
1840 AC_SUBST(LIBUSB_LIBS)
1843 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1844 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1845 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1846 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1847 AC_ARG_WITH([cuda-prefix],
1848 AS_HELP_STRING([--with-cuda-prefix],
1849 [Use the provided prefix for detecting the cuda installation]),
1850 [AS_IF([test "x$with_cuda_prefix" != "x"],
1851 [CUDA_PREFIX="$with_cuda_prefix"])],
1855 if test "x$CUDA_PREFIX" != "x"; then
1856 dnl only override if not already set
1857 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1858 dnl this is an educated guess, user can always override these
1859 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1860 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1863 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1864 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1865 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1866 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1871 save_CPPFLAGS="$CPPFLAGS"
1872 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1873 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1874 AC_MSG_WARN([Could not find cuda.h]))
1875 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1876 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1877 CPPFLAGS=$save_CPPFLAGS
1879 dnl libcuda and libcudart libraries
1881 LIBS="$CUDA_LIBS $save_LIBS"
1882 HAVE_CUDART_LIB="no"
1883 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1884 AC_MSG_WARN([Could not find cudart library])])
1886 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1887 AC_MSG_WARN([Could not find cuda library])])
1890 dnl nvEncodeAPI.h header
1891 HAVE_NVENCODEAPI_H=no
1892 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1893 save_CPPFLAGS="$CPPFLAGS"
1894 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1895 AC_CHECK_HEADER([nvEncodeAPI.h], [
1896 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1897 #if NVENCAPI_MAJOR_VERSION < 5
1898 #error "Need nvEncodeAPI.h >= 5.0"
1901 HAVE_NVENCODEAPI_H=yes
1903 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1906 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1907 AC_SUBST(NVENCODE_CFLAGS)
1908 CPPFLAGS="$save_CPPFLAGS"
1910 dnl libnvnidia-encode library
1911 HAVE_NVENCODE_LIB=no
1912 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1914 LIBS="$NVENCODE_LIBS $saved_LIBS"
1915 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1916 AC_MSG_WARN([Could not find library nvidia-encode]))
1917 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1918 AC_SUBST(NVENCODE_LIBS)
1922 if test "x$HAVE_CUDA_H" = "xyes" \
1923 -a "x$HAVE_CUDART_H" = "xyes" \
1924 -a "x$HAVE_CUDA_LIB" = "xyes" \
1925 -a "x$HAVE_CUDART_LIB" = "xyes" \
1926 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1927 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1929 if test x"$USE_OPENGL" = x"yes"; then
1930 dnl cuda-gl interop header
1931 save_CPPFLAGS="$CPPFLAGS"
1932 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1933 AC_CHECK_HEADER([cuda_gl_interop.h], [
1934 USE_NVENC_GST_GL="yes"
1935 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1937 CPPFLAGS="$save_CPPFLAGS"
1943 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1945 dnl check for tinyalsa
1946 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1947 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1948 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1951 dnl *** ext plug-ins ***
1952 dnl keep this list sorted alphabetically !
1954 if test "x$BUILD_EXTERNAL" = "xyes"; then
1956 dnl *** assrender ***
1957 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1958 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1959 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1960 HAVE_ASSRENDER="yes" ], [
1964 AC_SUBST(ASSRENDER_CFLAGS)
1965 AC_SUBST(ASSRENDER_LIBS)
1967 dnl *** vo-amrwbenc ***
1968 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1969 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1970 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1973 dnl *** vo-aacenc ***
1974 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1975 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1976 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1979 dnl *** apexsink ***
1980 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
1981 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
1982 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
1986 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
1987 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
1988 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
1990 AC_SUBST(APEXSINK_CFLAGS)
1991 AC_SUBST(APEXSINK_LIBS)
1998 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
1999 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2000 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2003 AC_SUBST(BS2B_CFLAGS)
2008 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2009 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2012 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2013 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2014 AC_MSG_RESULT($HAVE_BZ2)
2016 if test "x$HAVE_BZ2" = "xyes"; then
2024 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2025 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2026 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2029 # AC_SUBST(CAIRO_CFLAGS)
2030 # AC_SUBST(CAIRO_LIBS)
2033 dnl *** chromaprint ***
2034 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2035 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2036 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2037 HAVE_CHROMAPRINT="no"
2039 AC_SUBST(CHROMAPRINT_CFLAGS)
2040 AC_SUBST(CHROMAPRINT_LIBS)
2044 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2045 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2046 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2048 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2049 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2051 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2052 [[#ifdef HAVE_SYS_TYPES_H
2053 # include <sys/types.h>
2055 #ifdef HAVE_NETINET_IN_H
2056 # include <netinet/in.h>
2059 AC_MSG_CHECKING([for socket support needed by curlsink])
2060 AC_MSG_RESULT($HAVE_CURL)
2064 AC_SUBST(CURL_CFLAGS)
2066 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2068 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2072 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2073 AC_SUBST(SSH2_CFLAGS)
2075 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2078 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2079 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2080 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2081 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2083 AC_SUBST(LIBXML2_CFLAGS)
2084 AC_SUBST(LIBXML2_LIBS)
2088 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2089 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2090 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2091 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2100 AC_SUBST(LIBDC1394_CFLAGS)
2101 AC_SUBST(LIBDC1394_LIBS)
2104 dnl *** decklink ***
2105 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2106 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2113 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2114 AC_CHECK_LIB(dl, dlopen,
2118 DECKLINK_LIBS="-lpthread -ldl"
2123 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2124 AC_CHECK_LIB(dl, dlopen,
2128 DECKLINK_LIBS="-lpthread -ldl"
2129 HAVE_DECKLINK_OSX=yes
2138 AC_SUBST(DECKLINK_CXXFLAGS)
2139 AC_SUBST(DECKLINK_LIBS)
2141 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2143 dnl **** DirectFB ****
2144 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2145 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2146 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2151 dnl **** Wayland ****
2152 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2153 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2154 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2155 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2156 if test "x$wayland_scanner" != "x"; then
2159 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2168 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2169 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2170 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2171 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2173 AC_SUBST(WEBP_CFLAGS)
2178 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2179 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2180 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2181 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2186 AC_SUBST(DAALA_CFLAGS)
2187 AC_SUBST(DAALA_LIBS)
2192 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2193 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2195 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2196 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2197 if test $HAVE_DTS = "no"; then
2198 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2199 [ DTS_LIBS="-ldts_pic $LIBM"
2200 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2206 dnl *** resindvd ***
2207 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2208 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2209 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2214 dnl **** Free AAC Encoder (FAAC) ****
2215 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2216 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2217 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2218 FAAC_LIBS="-lfaac $LIBM")
2222 dnl **** Free AAC Decoder (FAAD2) ****
2223 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2224 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2225 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2226 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2227 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2229 #elif !defined(LATM)
2230 #error Not faad2 >= 2.7
2236 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2246 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2247 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2248 if test "x$HAVE_FBDEV" != "xyes"; then
2249 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2254 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2255 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2256 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2257 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2259 AC_SUBST(FLITE_CFLAGS)
2260 AC_SUBST(FLITE_LIBS)
2264 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2265 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2266 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2267 if test $HAVE_GSM != "yes"; then
2268 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2269 if test $HAVE_GSM = "yes"; then
2270 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2276 dnl *** fluidSynth ***
2277 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2278 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2279 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2280 HAVE_FLUIDSYNTH="no"
2285 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2286 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2287 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2290 AC_SUBST(KATE_CFLAGS)
2292 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2295 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2301 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2302 AC_SUBST(TIGER_CFLAGS)
2303 AC_SUBST(TIGER_LIBS)
2304 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2307 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2308 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2309 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2311 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2312 if test $HAVE_LRDF = "yes"; then
2313 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2316 AC_SUBST(LRDF_CFLAGS)
2320 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2321 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2322 PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2323 AC_SUBST(SLV2_CFLAGS)
2327 dnl *** libde265 ***
2328 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2329 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2330 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2331 AC_SUBST(LIBDE265_CFLAGS)
2332 AC_SUBST(LIBDE265_LIBS)
2336 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2337 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2338 dnl check with pkg-config first
2339 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2343 AC_SUBST(LIBMMS_LIBS)
2347 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2348 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2349 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2350 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2353 AC_SUBST(SRTP_CFLAGS)
2357 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2358 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2359 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2361 AC_SUBST(DTLS_CFLAGS)
2369 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2370 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2382 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2383 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2384 if test "x$HAVE_CXX" != "xyes"; then
2385 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2388 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2390 AC_SUBST(MODPLUG_CFLAGS)
2391 AC_SUBST(MODPLUG_LIBS)
2395 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2396 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2398 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2399 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2400 AC_SUBST(MIMIC_CFLAGS)
2401 AC_SUBST(MIMIC_LIBS)
2404 dnl *** mjpegtools version info ***
2405 dnl some may prefer older version (given quirks above)
2406 dnl hm, no version info seems available within mjpegtools headers
2407 dnl and API really moves along
2409 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2410 mjpegtools_api=10601
2412 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2413 mjpegtools_api=10800
2415 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2416 mjpegtools_api=20000
2418 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2419 dnl logging API changed in release candidates
2420 OLD_CFLAGS="$CFLAGS"
2422 CFLAGS="$MJPEG_CFLAGS"
2423 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2424 AC_CHECK_FUNC(mjpeg_loglev_t, [
2425 mjpegtools_api=10903
2427 mjpegtools_api=10900
2429 CFLAGS="$OLD_CFLAGS"
2437 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2438 [mjpegtools API evolution])
2440 dnl *** mpeg2enc ***
2441 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2442 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2444 dnl we require a c++ compiler for this one
2445 if [ test x$HAVE_CXX = xyes ]; then
2446 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2447 dnl since many distros include mjpegtools specifically without mplex
2448 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2449 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2450 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2452 dnl switch over to c++ to test things
2454 OLD_CPPFLAGS="$CPPFLAGS"
2456 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2457 CPPFLAGS="$CPPFLAGS_GOOD -I."
2459 mpeg2enc_headers_ok=no
2460 AC_CHECK_HEADER([mpeg2encoder.hh], [
2461 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2463 LIBS="$LIBS $MPEG2ENC_LIBS"
2464 AC_MSG_CHECKING([for valid mpeg2enc objects])
2465 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2466 #include <mpeg2encoder.hh>
2467 #include <mpeg2encoptions.hh>
2473 MPEG2EncOptions *options = new MPEG2EncOptions ();
2474 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2479 dnl so far so good, let's check more things:
2480 dnl mjpegtools-1.8.0 does not install the required
2481 dnl mpeg2syntaxcodes.h header by default, and a new release
2482 dnl is not in sight, so check for this oversight in case
2483 dnl distros or folks have fixed this themselves
2484 if test "$mjpegtools_api" -ge "10800"; then
2485 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2486 mpeg2enc_headers_ok=yes
2488 mpeg2enc_headers_ok=no
2491 mpeg2enc_headers_ok=yes
2493 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2496 CPPFLAGS="$CPPFLAGS_GOOD"
2497 AC_SUBST(MPEG2ENC_CFLAGS)
2498 AC_SUBST(MPEG2ENC_LIBS)
2505 CPPFLAGS="$OLD_CPPFLAGS"
2514 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2515 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2517 dnl we require a c++ compiler for this one
2518 if [ test x$HAVE_CXX = xyes ]; then
2519 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2520 dnl since many distros include mjpegtools specifically without mplex
2521 dnl and mpeg2enc, we check for mplex on its own, too.
2522 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2523 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2524 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2526 dnl switch over to c++ to test things
2528 OLD_CPPFLAGS="$CPPFLAGS"
2530 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2531 CPPFLAGS="$CPPFLAGS_GOOD -I."
2532 AC_CHECK_HEADER(interact.hpp, [
2533 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2535 LIBS="$LIBS $MPLEX_LIBS"
2536 OLD_LDFLAGS="$LDFLAGS"
2537 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2538 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2539 dnl don't want this here
2540 AC_MSG_CHECKING([for valid mplex objects])
2541 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2543 #include <interact.hpp>
2544 #include <outputstrm.hpp>
2545 #include <multiplexor.hpp>
2550 class TestOutputStream : public OutputStream {
2552 TestOutputStream () : OutputStream () { }
2553 void Write (uint8_t *a, unsigned int b) { }
2554 void NextSegment () { }
2555 uint64_t SegmentSize () { }
2559 MultiplexJob *job = new MultiplexJob ();
2560 vector<IBitStream *> inputs;
2561 job->SetupInputStreams (inputs);
2562 TestOutputStream *out = new TestOutputStream ();
2563 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2568 CPPFLAGS="$CPPFLAGS_GOOD"
2569 AC_SUBST(MPLEX_CFLAGS)
2570 AC_SUBST(MPLEX_LIBS)
2571 AC_SUBST(MPLEX_LDFLAGS)
2573 ],[AC_MSG_RESULT(no)],[])
2575 LDFLAGS="$OLD_LDFLAGS"
2577 CPPFLAGS="$OLD_CPPFLAGS"
2583 dnl *** musepack ***
2584 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2585 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2586 AC_CHECK_HEADER([mpc/mpcdec.h], [
2588 MUSEPACK_LIBS="-lmpcdec"
2589 AC_SUBST(MUSEPACK_LIBS)
2590 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2592 MUSEPACK_LIBS="-lmpcdec"
2593 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2594 AC_SUBST(MUSEPACK_LIBS)
2595 ], [HAVE_MUSEPACK="no"])])
2599 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2600 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2602 if test "x$HAVE_X" = "xyes"; then
2603 save_cppflags=$CFLAGS
2604 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2605 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2606 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2607 CPPFLAGS="$save_cppflags"
2609 AC_SUBST(NAS_CFLAGS)
2614 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2615 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2616 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2619 AC_SUBST(NEON_CFLAGS)
2624 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2625 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2626 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2629 AC_SUBST(OFA_CFLAGS)
2634 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2635 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2636 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2639 AC_SUBST(OPENAL_CFLAGS)
2640 AC_SUBST(OPENAL_LIBS)
2644 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2645 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2646 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2647 dnl and don't want the build to break when a new opencv version comes out.
2648 dnl Need to adjust this upwards once we know that our code compiles fine with
2649 dnl a new version and the no-backward-compatibility define. (There doesn't
2650 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2652 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [
2655 OLD_CPPFLAGS=$CPPFLAGS
2656 CPPFLAGS=$OPENCV_CFLAGS
2657 something_not_found=no
2658 AC_CHECK_HEADERS([opencv2/contrib/contrib.hpp \
2659 opencv2/core/core_c.h \
2660 opencv2/core/types_c.h \
2661 opencv2/core/version.hpp \
2662 opencv2/highgui/highgui_c.h \
2663 opencv2/imgproc/imgproc.hpp \
2664 opencv2/imgproc/imgproc_c.h \
2665 opencv2/legacy/compat.hpp \
2666 opencv2/legacy/legacy.hpp \
2667 opencv2/objdetect/objdetect.hpp \
2668 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2669 CPPFLAGS=$OLD_CPPFLAGS
2672 if test $something_not_found = "yes"; then
2673 AC_MSG_RESULT([not all opencv2 headers were found])
2681 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2682 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2683 AC_SUBST(OPENCV_PREFIX)
2684 AC_SUBST(OPENCV_CFLAGS)
2685 AC_SUBST(OPENCV_LIBS)
2686 dnl the OpenCV prefix is used at runtime for some object properties, and also
2687 dnl used here to detect which directory is the correct one. For the second
2688 dnl case, make sure the right sysroot is used, ensuring correct behavior
2689 dnl during cross compilation.
2690 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2691 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2693 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2698 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2699 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2700 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2703 dnl *** openh264 ***
2704 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2705 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2706 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2709 dnl *** OpenJPEG ***
2710 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2711 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2715 save_CFLAGS="$CFLAGS"
2716 OPENJPEG_LIBS="-lopenjp2"
2717 LIBS="$LIBS $OPENJPEG_LIBS"
2718 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2720 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2721 [return (int) *opj_version ();])
2722 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2724 CFLAGS="$save_CFLAGS"
2726 if test x"$HAVE_OPENJPEG" = x"no"; then
2728 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2729 HAVE_OPENJPEG="yes",
2730 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2732 if test x"$HAVE_OPENJPEG" = x"yes"; then
2733 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2736 AC_SUBST(OPENJPEG_CFLAGS)
2737 AC_SUBST(OPENJPEG_LIBS)
2741 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2742 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2743 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2744 AC_SUBST(OPENNI2_CFLAGS)
2745 AC_SUBST(OPENNI2_LIBS)
2749 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2750 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2751 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2752 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2757 AC_SUBST(OPUS_CFLAGS)
2762 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2763 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2764 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2765 AC_SUBST(PVR_CFLAGS)
2769 AC_ARG_WITH([pvr-external-headers],
2770 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2771 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2772 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2773 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2776 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2777 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2778 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2782 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2783 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2786 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2793 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2794 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2795 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2796 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2801 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2803 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2804 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2805 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2806 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2808 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2810 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2811 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2812 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2813 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2815 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2817 if test "x$GDK_WINDOWING" = "xyes"; then
2818 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2825 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2828 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2829 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2830 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2831 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2832 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2833 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2834 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2835 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2836 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2837 AC_MSG_WARN([One of the required qt build programs was not found])
2841 HAVE_QT_WINDOWING="no"
2842 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2843 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2844 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2845 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2846 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2847 HAVE_QT_WINDOWING="yes"
2848 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2850 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2851 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2852 AC_DEFINE([HAVE_QT_WAYLAND], [],
2853 [Define if Qt Wayland integration is installed])
2854 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2855 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2856 HAVE_QT_WINDOWING="yes"
2857 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2859 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2860 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2861 # c++ on android requires a standard library and there are multiple
2862 # choices. cerbero provides a pkg-config file the describes a choice
2863 # so try to use that. Outside cerbero one has to pass these flags
2864 # manually for the library one is using
2865 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2866 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2867 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2869 AC_MSG_NOTICE([Could not find Standard C++ library])])
2871 AC_DEFINE([HAVE_QT_ANDROID], [],
2872 [Define if Qt Android integration is installed])
2873 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2874 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2875 HAVE_QT_WINDOWING="yes"
2876 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2878 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2879 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2880 AC_DEFINE([HAVE_QT_MAC], [],
2881 [Define if Qt Mac integration is installed])
2882 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2883 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2884 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2885 HAVE_QT_WINDOWING="yes"
2886 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2888 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2889 if test "x$HAVE_IOS" = "xyes"; then
2890 # iOS doesn't have its own extras package so if we have the core
2891 # modules we are good to go
2892 AC_DEFINE([HAVE_QT_IOS], [],
2893 [Define if Qt iOS integration is installed])
2894 HAVE_QT_WINDOWING="yes"
2897 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2898 AC_MSG_WARN([Could not find any Qt Windowing integration])
2901 AC_SUBST([QT_CFLAGS])
2910 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2911 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2913 AC_CHECK_HEADER(vulkan/vulkan.h, [
2914 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2915 VULKAN_LIBS="-lvulkan"
2916 AC_SUBST(VULKAN_LIBS)
2917 dnl TODO check platform support (x11, win32, wayland, android, etc)
2918 if test "x$HAVE_XCB" = "xyes"; then
2925 dnl *** libvisual ***
2926 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2927 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2928 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2929 if test x$HAVE_LIBVISUAL = xyes; then
2930 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2932 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2933 if test x$LIBVIS_PLUGINSDIR != x; then
2934 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2935 "$LIBVIS_PLUGINSDIR",
2936 [directory in which the detected libvisual's plugins are located])
2940 dnl *** timidity ***
2941 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2942 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2943 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2944 HAVE_TIMIDITY="yes",
2945 AC_MSG_CHECKING([for timidity.cfg])
2947 if test -r /etc/timidity.cfg; then
2948 timidity_cfg=/etc/timidity.cfg
2949 elif test -r /etc/timidity/timidity.cfg; then
2950 timidity_cfg=/etc/timidity/timidity.cfg
2951 elif test -r /usr/share/timidity/timidity.cfg; then
2952 timidity_cfg=/usr/share/timidity/timidity.cfg
2953 elif test -r /usr/local/share/timidity/timidity.cfg; then
2954 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2956 if test "x$timidity_cfg" != "x"; then
2957 AC_MSG_RESULT($timidity_cfg)
2958 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2960 AC_MSG_RESULT([not found])
2965 AC_SUBST(TIMIDITY_CFLAGS)
2966 AC_SUBST(TIMIDITY_LIBS)
2969 dnl *** teletextdec ***
2970 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2971 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2972 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2975 dnl *** wildmidi ***
2976 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2977 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2978 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2981 WILDMIDI_LIBS="-lWildMidi")
2982 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2984 if test "x$HAVE_WILDMIDI" = "xyes"; then
2986 WILDMIDI_LIBS=-lWildMidi
2987 AC_MSG_NOTICE(compiling gstWildMidi)
2991 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2993 AC_SUBST(WILDMIDI_CFLAGS)
2994 AC_SUBST(WILDMIDI_LIBS)
2998 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
2999 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3000 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3003 dnl **** Smooth Streaming ****
3004 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3005 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3006 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3008 HAVE_SMOOTHSTREAMING="yes"],
3010 HAVE_SMOOTHSTREAMING="no"])
3011 AC_SUBST(LIBXML2_CFLAGS)
3012 AC_SUBST(LIBXML2_LIBS)
3016 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3017 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3018 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3019 AC_SUBST(SNDFILE_CFLAGS)
3020 AC_SUBST(SNDFILE_LIBS)
3023 dnl *** soundtouch ***
3024 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3025 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3026 dnl We only need -lBPM on soundtouch < 1.4
3027 dnl We check for libSoundTouch since Debian used it before upstream
3028 dnl added a pkgconfig file.
3029 HAVE_SOUNDTOUCH_1_4=yes
3030 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3031 [HAVE_SOUNDTOUCH=yes],
3032 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3033 [HAVE_SOUNDTOUCH=yes],
3034 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3035 [HAVE_SOUNDTOUCH=yes
3036 HAVE_SOUNDTOUCH_1_4=no
3037 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3038 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3039 [HAVE_SOUNDTOUCH=yes],
3040 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3041 [HAVE_SOUNDTOUCH=yes
3042 HAVE_SOUNDTOUCH_1_4=no
3043 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3044 HAVE_SOUNDTOUCH=no)])])])])
3045 AC_SUBST(SOUNDTOUCH_CFLAGS)
3046 AC_SUBST(SOUNDTOUCH_LIBS)
3047 if test "x$HAVE_CXX" != "xyes"; then
3048 USE_SOUNDTOUCH=false
3049 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3051 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3052 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3053 [Defined if the available libSoundTouch is >= 1.4])
3058 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3059 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3060 AC_CHECK_HEADER(openspc.h, [
3061 AC_CHECK_LIB(openspc, OSPC_Init, [
3062 SPC_LIBS="-lopenspc"
3074 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3075 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3076 AC_CHECK_HEADER(gme/gme.h, [
3077 AC_CHECK_LIB(gme, gme_new_emu, [
3088 if test "x$HAVE_GME" = "xyes"; then
3089 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3090 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3096 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3097 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3099 AC_CHECK_HEADER(xvid.h, [
3101 LIBS="$PTHREAD_LIBS $LIBM"
3102 AC_CHECK_LIB(xvidcore, xvid_encore, [
3103 AC_CHECK_LIB(xvidcore, xvid_decore, [
3104 AC_CHECK_LIB(xvidcore, xvid_global, [
3105 AC_MSG_CHECKING([for up-to-date XviD API version])
3106 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3107 #if XVID_API_MAJOR(XVID_API) != 4
3108 #error "Incompatible XviD API version"
3110 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3111 #error "Incompatible XviD API version"
3113 ]])],[ AC_MSG_RESULT(yes)
3114 XVID_LIBS="-lxvidcore $LIBM"
3117 ],[AC_MSG_RESULT(no) ])
3126 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3127 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3128 AC_MSG_CHECKING([Checking for up to date dvb installation])
3129 AC_CHECK_HEADER(linux/dvb/version.h, [
3130 AC_MSG_CHECKING([for up-to-date dvb API])
3131 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3132 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3133 #error "Incompatible dvb API"
3135 ]])], [ AC_MSG_RESULT(yes)
3137 ], [ AC_MSG_RESULT(no)
3144 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3145 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3146 AC_MSG_CHECKING([Checking for windows internet support])
3147 AC_CHECK_HEADERS([windows.h wininet.h],
3148 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3149 [AC_INCLUDES_DEFAULT
3150 #include <windows.h>])
3154 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3155 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3156 AC_MSG_CHECKING([Checking for ACM support])
3157 AC_CHECK_HEADERS([windows.h msacm.h],
3159 AC_SUBST(ACMENC_CFLAGS)
3160 AC_SUBST(ACMMP3DEC_CFLAGS)
3162 [AC_INCLUDES_DEFAULT
3163 #include <windows.h>])
3167 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3168 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3173 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3175 if test "$HAVE_VDPAU" = "no"; then
3176 saved_CPPFLAGS="$CPPFLAGS"
3177 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3179 if test -z "$HAVE_VDPAU_H"; then
3180 dnl Didn't find VDPAU header straight away.
3181 dnl Try /usr/include/nvidia. Need to clear caching vars first
3182 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3183 unset ac_cv_header_vdpau_vdpau_h
3184 unset ac_cv_header_vdpau_vdpau_x11_h
3185 VDPAU_CFLAGS="-I/usr/include/nvidia"
3186 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3187 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3188 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3191 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3193 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3194 dnl Found the headers - look for the lib
3195 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3197 LIBS="$VDPAU_LIBS $saved_LIBS"
3198 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3204 if test "$HAVE_VDPAU" = "yes"; then
3205 AC_MSG_NOTICE([Found up to date VDPAU installation])
3206 AC_SUBST(VDPAU_CFLAGS)
3207 AC_SUBST(VDPAU_LIBS)
3212 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3213 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3214 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3217 dnl *** schroedinger ***
3218 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3219 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3220 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3224 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3225 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3226 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3230 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3231 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3232 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3236 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3237 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3238 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3239 HAVE_SPANDSP="yes" ], [
3243 AC_SUBST(SPANDSP_CFLAGS)
3244 AC_SUBST(SPANDSP_LIBS)
3247 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3248 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3249 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3250 if test "x$HAVE_SNDIO" = "xyes"; then
3251 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3252 if test "x$HAVE_SNDIO" = "xyes"; then
3254 AC_SUBST(SNDIO_LIBS)
3259 dnl *** hls-crypto ***
3260 AC_ARG_WITH([hls-crypto],
3261 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3262 which cryptographic library version to compile against for hls (default: auto)
3264 AS_CASE([$with_hls_crypto],
3268 [with_hls_crypto=auto]
3274 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3275 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3276 AS_CASE([$with_hls_crypto],
3278 PKG_CHECK_MODULES(NETTLE, nettle, [
3279 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3281 ],[AC_MSG_ERROR([Could not find nettle library])])
3284 AM_PATH_LIBGCRYPT([1.2.0], [
3285 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3287 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3290 PKG_CHECK_MODULES(OPENSSL, openssl, [
3291 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3293 ],[AC_MSG_ERROR([Could not find openssl library])])
3296 dnl Try to find a valid crypto library
3297 PKG_CHECK_MODULES(NETTLE, nettle, [
3298 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3301 AM_PATH_LIBGCRYPT([1.2.0], [
3302 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3305 PKG_CHECK_MODULES(OPENSSL, openssl, [
3306 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3317 dnl *** x265 (H.265/HEVC encoder) ***
3318 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3319 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3320 AG_GST_PKG_CHECK_MODULES(X265, x265)
3325 dnl not building plugins with external dependencies,
3326 dnl but we still need to set the conditionals
3328 AM_CONDITIONAL(USE_ASSRENDER, false)
3329 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3330 AM_CONDITIONAL(USE_VOAACENC, false)
3331 AM_CONDITIONAL(USE_APEXSINK, false)
3332 AM_CONDITIONAL(USE_BS2B, false)
3333 AM_CONDITIONAL(USE_BZ2, false)
3334 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3335 AM_CONDITIONAL(USE_CURL, false)
3336 AM_CONDITIONAL(USE_SSH2, false)
3337 AM_CONDITIONAL(USE_DASH, false)
3338 AM_CONDITIONAL(USE_DC1394, false)
3339 AM_CONDITIONAL(USE_DECKLINK, false)
3340 AM_CONDITIONAL(DECKLINK_OSX, false)
3341 AM_CONDITIONAL(USE_DIRECTFB, false)
3342 AM_CONDITIONAL(USE_WAYLAND, false)
3343 AM_CONDITIONAL(USE_DAALA, false)
3344 AM_CONDITIONAL(USE_DTS, false)
3345 AM_CONDITIONAL(USE_EXIF, false)
3346 AM_CONDITIONAL(USE_RESINDVD, false)
3347 AM_CONDITIONAL(USE_FAAC, false)
3348 AM_CONDITIONAL(USE_FAAD, false)
3349 AM_CONDITIONAL(USE_FBDEV, false)
3350 AM_CONDITIONAL(USE_FLITE, false)
3351 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3352 AM_CONDITIONAL(USE_GL, false)
3353 AM_CONDITIONAL(USE_GSM, false)
3354 AM_CONDITIONAL(USE_GTK3, false)
3355 AM_CONDITIONAL(USE_GTK3_GL, false)
3356 AM_CONDITIONAL(USE_HLS, false)
3357 AM_CONDITIONAL(USE_KATE, false)
3358 AM_CONDITIONAL(USE_TIGER, false)
3359 AM_CONDITIONAL(USE_LADSPA, false)
3360 AM_CONDITIONAL(USE_LV2, false)
3361 AM_CONDITIONAL(USE_LIBDE265, false)
3362 AM_CONDITIONAL(USE_LIBMMS, false)
3363 AM_CONDITIONAL(USE_LINSYS, false)
3364 AM_CONDITIONAL(USE_MODPLUG, false)
3365 AM_CONDITIONAL(USE_MIMIC, false)
3366 AM_CONDITIONAL(USE_MPEG2ENC, false)
3367 AM_CONDITIONAL(USE_MPLEX, false)
3368 AM_CONDITIONAL(USE_MUSEPACK, false)
3369 AM_CONDITIONAL(USE_NAS, false)
3370 AM_CONDITIONAL(USE_NEON, false)
3371 AM_CONDITIONAL(USE_OFA, false)
3372 AM_CONDITIONAL(USE_OPENAL, false)
3373 AM_CONDITIONAL(USE_OPENCV, false)
3374 AM_CONDITIONAL(USE_OPENEXR, false)
3375 AM_CONDITIONAL(USE_OPENJPEG, false)
3376 AM_CONDITIONAL(USE_OPENNI2, false)
3377 AM_CONDITIONAL(USE_OPUS, false)
3378 AM_CONDITIONAL(USE_PVR, false)
3379 AM_CONDITIONAL(USE_QT, false)
3380 AM_CONDITIONAL(USE_LIBVISUAL, false)
3381 AM_CONDITIONAL(USE_TIMIDITY, false)
3382 AM_CONDITIONAL(USE_WILDMIDI, false)
3383 AM_CONDITIONAL(USE_SDL, false)
3384 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3385 AM_CONDITIONAL(USE_SNDFILE, false)
3386 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3387 AM_CONDITIONAL(USE_SPANDSP, false)
3388 AM_CONDITIONAL(USE_SPC, false)
3389 AM_CONDITIONAL(USE_SRTP, false)
3390 AM_CONDITIONAL(USE_GME, false)
3391 AM_CONDITIONAL(USE_XVID, false)
3392 AM_CONDITIONAL(USE_DVB, false)
3393 AM_CONDITIONAL(USE_WININET, false)
3394 AM_CONDITIONAL(USE_ACM, false)
3395 AM_CONDITIONAL(USE_VDPAU, false)
3396 AM_CONDITIONAL(USE_SBC, false)
3397 AM_CONDITIONAL(USE_SCHRO, false)
3398 AM_CONDITIONAL(USE_ZBAR, false)
3399 AM_CONDITIONAL(USE_RSVG, false)
3400 AM_CONDITIONAL(USE_RTMP, false)
3401 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3402 AM_CONDITIONAL(USE_SNDIO, false)
3403 AM_CONDITIONAL(USE_UVCH264, false)
3404 AM_CONDITIONAL(USE_WEBP, false)
3405 AM_CONDITIONAL(USE_OPENH264, false)
3406 AM_CONDITIONAL(USE_X265, false)
3407 AM_CONDITIONAL(USE_DTLS, false)
3409 fi dnl of EXT plugins
3411 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3414 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3415 dnl GST_*: flags shared by built objects to link against GStreamer
3416 dnl GST_ALL_LDFLAGS: linker flags shared by all
3417 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3418 dnl GST_LT_LDFLAGS: library versioning of our libraries
3419 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3421 dnl GST_OPTION_CFLAGS
3422 if test "x$USE_DEBUG" = xyes; then
3425 AC_SUBST(PROFILE_CFLAGS)
3427 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3428 dnl Define _only_ during CVS (not pre-releases or releases)
3429 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3431 DEPRECATED_CFLAGS=""
3433 AC_SUBST(DEPRECATED_CFLAGS)
3435 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3436 dnl at make time with e.g. make ERROR_CFLAGS=""
3437 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3438 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3439 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3440 AC_SUBST(GST_OPTION_CFLAGS)
3441 AC_SUBST(GST_OPTION_CXXFLAGS)
3442 AC_SUBST(GST_OPTION_OBJCFLAGS)
3444 dnl FIXME: do we want to rename to GST_ALL_* ?
3445 dnl prefer internal headers to already installed ones
3446 dnl also add builddir include for enumtypes and marshal
3447 dnl add GST_OPTION_CFLAGS, but overridable
3448 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3449 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3450 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3451 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3452 AC_SUBST(GST_CFLAGS)
3453 AC_SUBST(GST_CXXFLAGS)
3454 AC_SUBST(GST_OBJCFLAGS)
3456 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3457 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3458 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3459 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3460 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3461 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3463 dnl LDFLAGS really should only contain flags, not libs - they get added before
3464 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3465 GST_ALL_LDFLAGS="-no-undefined"
3466 if test "x${enable_Bsymbolic}" = "xyes"; then
3467 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3469 AC_SUBST(GST_ALL_LDFLAGS)
3472 dnl linker flags shared by all libraries
3473 dnl LDFLAGS modifier defining exported symbols from built libraries
3474 dnl (export _gst_foo but not __gst_foo)
3475 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3476 AC_SUBST(GST_LIB_LDFLAGS)
3478 dnl this really should only contain flags, not libs - they get added before
3479 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3480 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3481 AC_SUBST(GST_PLUGIN_LDFLAGS)
3483 dnl *** output files ***
3485 $MKDIR_P tests/check/orc
3493 gst-plugins-bad.spec
3495 gst/accurip/Makefile
3496 gst/adpcmdec/Makefile
3497 gst/adpcmenc/Makefile
3499 gst/videoframe_audiolevel/Makefile
3501 gst/audiofxbad/Makefile
3502 gst/audiomixer/Makefile
3503 gst/audiovisualizers/Makefile
3504 gst/autoconvert/Makefile
3506 gst/camerabin2/Makefile
3507 gst/cdxaparse/Makefile
3508 gst/coloreffects/Makefile
3509 gst/dataurisrc/Makefile
3511 gst/debugutils/Makefile
3512 gst/dvbsuboverlay/Makefile
3514 gst/faceoverlay/Makefile
3515 gst/festival/Makefile
3516 gst/fieldanalysis/Makefile
3517 gst/freeverb/Makefile
3519 gst/gaudieffects/Makefile
3520 gst/geometrictransform/Makefile
3522 gst/hdvparse/Makefile
3525 gst/interlace/Makefile
3526 gst/ivfparse/Makefile
3528 gst/jp2kdecimator/Makefile
3529 gst/jpegformat/Makefile
3532 gst/mpegdemux/Makefile
3533 gst/mpegtsdemux/Makefile
3534 gst/mpegtsmux/Makefile
3535 gst/mpegtsmux/tsmux/Makefile
3536 gst/mpegpsmux/Makefile
3540 gst/nuvdemux/Makefile
3542 gst/patchdetect/Makefile
3543 gst/pcapparse/Makefile
3545 gst/rawparse/Makefile
3546 gst/removesilence/Makefile
3549 gst/segmentclip/Makefile
3556 gst/videofilters/Makefile
3557 gst/videomeasure/Makefile
3558 gst/videoparsers/Makefile
3559 gst/videosignal/Makefile
3563 gst/compositor/Makefile
3565 gst-libs/gst/Makefile
3566 gst-libs/gst/adaptivedemux/Makefile
3567 gst-libs/gst/basecamerabinsrc/Makefile
3568 gst-libs/gst/gl/Makefile
3569 gst-libs/gst/gl/android/Makefile
3570 gst-libs/gst/gl/cocoa/Makefile
3571 gst-libs/gst/gl/dispmanx/Makefile
3572 gst-libs/gst/gl/glprototypes/Makefile
3573 gst-libs/gst/gl/eagl/Makefile
3574 gst-libs/gst/gl/egl/Makefile
3575 gst-libs/gst/gl/wayland/Makefile
3576 gst-libs/gst/gl/win32/Makefile
3577 gst-libs/gst/gl/x11/Makefile
3578 gst-libs/gst/insertbin/Makefile
3579 gst-libs/gst/interfaces/Makefile
3580 gst-libs/gst/codecparsers/Makefile
3581 gst-libs/gst/mpegts/Makefile
3582 gst-libs/gst/uridownloader/Makefile
3583 gst-libs/gst/wayland/Makefile
3584 gst-libs/gst/base/Makefile
3585 gst-libs/gst/player/Makefile
3586 gst-libs/gst/video/Makefile
3587 gst-libs/gst/audio/Makefile
3589 sys/dshowdecwrapper/Makefile
3591 sys/acmmp3dec/Makefile
3592 sys/androidmedia/Makefile
3593 sys/applemedia/Makefile
3594 sys/applemedia-nonpublic/Makefile
3597 sys/d3dvideosink/Makefile
3598 sys/decklink/Makefile
3599 sys/directsound/Makefile
3600 sys/dshowsrcwrapper/Makefile
3601 sys/dshowvideosink/Makefile
3606 sys/opensles/Makefile
3608 sys/tinyalsa/Makefile
3609 sys/uvch264/Makefile
3614 sys/wininet/Makefile
3616 sys/winscreencap/Makefile
3618 tests/check/Makefile
3619 tests/files/Makefile
3620 tests/examples/Makefile
3621 tests/examples/avsamplesink/Makefile
3622 tests/examples/camerabin2/Makefile
3623 tests/examples/codecparsers/Makefile
3624 tests/examples/directfb/Makefile
3625 tests/examples/gl/Makefile
3626 tests/examples/gl/cocoa/Makefile
3627 tests/examples/gl/clutter/Makefile
3628 tests/examples/gl/generic/Makefile
3629 tests/examples/gl/generic/cube/Makefile
3630 tests/examples/gl/generic/cubeyuv/Makefile
3631 tests/examples/gl/generic/doublecube/Makefile
3632 tests/examples/gl/generic/recordgraphic/Makefile
3633 tests/examples/gl/gtk/Makefile
3634 tests/examples/gl/gtk/gtkvideooverlay/Makefile
3635 tests/examples/gl/gtk/3dvideo/Makefile
3636 tests/examples/gl/gtk/filternovideooverlay/Makefile
3637 tests/examples/gl/gtk/filtervideooverlay/Makefile
3638 tests/examples/gl/gtk/fxtest/Makefile
3639 tests/examples/gl/gtk/switchvideooverlay/Makefile
3640 tests/examples/gl/qt/Makefile
3641 tests/examples/gl/sdl/Makefile
3642 tests/examples/gtk/Makefile
3643 tests/examples/mpegts/Makefile
3644 tests/examples/mxf/Makefile
3645 tests/examples/opencv/Makefile
3646 tests/examples/uvch264/Makefile
3647 tests/examples/waylandsink/Makefile
3648 tests/icles/Makefile
3649 ext/voamrwbenc/Makefile
3650 ext/voaacenc/Makefile
3651 ext/assrender/Makefile
3652 ext/apexsink/Makefile
3655 ext/chromaprint/Makefile
3659 ext/directfb/Makefile
3660 ext/wayland/Makefile
3668 ext/fluidsynth/Makefile
3674 ext/libde265/Makefile
3676 ext/libvisual/Makefile
3678 ext/modplug/Makefile
3679 ext/mpeg2enc/Makefile
3682 ext/musepack/Makefile
3688 ext/openexr/Makefile
3689 ext/openh264/Makefile
3690 ext/openjpeg/Makefile
3691 ext/openni2/Makefile
3695 ext/resindvd/Makefile
3698 ext/schroedinger/Makefile
3700 ext/smoothstreaming/Makefile
3701 ext/sndfile/Makefile
3702 ext/soundtouch/Makefile
3703 ext/spandsp/Makefile
3706 ext/teletextdec/Makefile
3709 ext/timidity/Makefile
3711 ext/vulkan/xcb/Makefile
3719 docs/plugins/Makefile
3721 docs/version.entities
3723 pkgconfig/gstreamer-plugins-bad.pc
3724 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3725 pkgconfig/gstreamer-codecparsers.pc
3726 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3727 pkgconfig/gstreamer-insertbin.pc
3728 pkgconfig/gstreamer-insertbin-uninstalled.pc
3729 pkgconfig/gstreamer-gl.pc
3730 pkgconfig/gstreamer-gl-uninstalled.pc
3731 pkgconfig/gstreamer-mpegts.pc
3732 pkgconfig/gstreamer-mpegts-uninstalled.pc
3733 pkgconfig/gstreamer-player.pc
3734 pkgconfig/gstreamer-player-uninstalled.pc
3735 pkgconfig/gstreamer-wayland.pc
3736 pkgconfig/gstreamer-wayland-uninstalled.pc
3737 pkgconfig/gstreamer-bad-base.pc
3738 pkgconfig/gstreamer-bad-base-uninstalled.pc
3739 pkgconfig/gstreamer-bad-video.pc
3740 pkgconfig/gstreamer-bad-video-uninstalled.pc
3741 pkgconfig/gstreamer-bad-audio.pc
3742 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3747 dnl Create the config.h file for Visual Studio builds
3748 dnl Beware of spaces and /'s in some of the shell variable contents.
3750 -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"/' \
3751 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3752 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3753 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3754 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3755 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3756 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3757 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3758 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3759 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3760 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3761 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3762 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3763 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3764 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3765 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3766 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3767 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3768 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3769 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3770 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3771 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3772 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3773 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3774 -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/' \
3775 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3776 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3777 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3778 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3779 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3780 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3781 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3782 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3783 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3784 config.h.in >win32/common/config.h-new
3788 AG_GST_OUTPUT_PLUGINS