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.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 701, 0, 701)
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 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2154 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 wayland-scanner, [
2155 HAVE_WAYLAND="yes" ], [ HAVE_WAYLAND="no"
2159 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2162 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2163 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2164 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2165 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2167 AC_SUBST(WEBP_CFLAGS)
2172 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2173 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2174 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2175 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2180 AC_SUBST(DAALA_CFLAGS)
2181 AC_SUBST(DAALA_LIBS)
2186 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2187 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2189 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2190 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2191 if test $HAVE_DTS = "no"; then
2192 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2193 [ DTS_LIBS="-ldts_pic $LIBM"
2194 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2200 dnl *** resindvd ***
2201 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2202 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2203 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2208 dnl **** Free AAC Encoder (FAAC) ****
2209 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2210 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2211 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2212 FAAC_LIBS="-lfaac $LIBM")
2216 dnl **** Free AAC Decoder (FAAD2) ****
2217 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2218 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2219 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2220 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2221 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2223 #elif !defined(LATM)
2224 #error Not faad2 >= 2.7
2230 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2240 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2241 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2242 if test "x$HAVE_FBDEV" != "xyes"; then
2243 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2248 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2249 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2250 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2251 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2253 AC_SUBST(FLITE_CFLAGS)
2254 AC_SUBST(FLITE_LIBS)
2258 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2259 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2260 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2261 if test $HAVE_GSM != "yes"; then
2262 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2263 if test $HAVE_GSM = "yes"; then
2264 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2270 dnl *** fluidSynth ***
2271 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2272 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2273 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2274 HAVE_FLUIDSYNTH="no"
2279 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2280 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2281 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2284 AC_SUBST(KATE_CFLAGS)
2286 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2289 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2295 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2296 AC_SUBST(TIGER_CFLAGS)
2297 AC_SUBST(TIGER_LIBS)
2298 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2301 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2302 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2303 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2305 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2306 if test $HAVE_LRDF = "yes"; then
2307 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2310 AC_SUBST(LRDF_CFLAGS)
2314 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2315 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2316 PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2317 AC_SUBST(SLV2_CFLAGS)
2321 dnl *** libde265 ***
2322 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2323 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2324 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2325 AC_SUBST(LIBDE265_CFLAGS)
2326 AC_SUBST(LIBDE265_LIBS)
2330 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2331 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2332 dnl check with pkg-config first
2333 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2337 AC_SUBST(LIBMMS_LIBS)
2341 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2342 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2343 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2344 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2347 AC_SUBST(SRTP_CFLAGS)
2351 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2352 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2353 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2355 AC_SUBST(DTLS_CFLAGS)
2363 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2364 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2376 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2377 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2378 if test "x$HAVE_CXX" != "xyes"; then
2379 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2382 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2384 AC_SUBST(MODPLUG_CFLAGS)
2385 AC_SUBST(MODPLUG_LIBS)
2389 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2390 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2392 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2393 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2394 AC_SUBST(MIMIC_CFLAGS)
2395 AC_SUBST(MIMIC_LIBS)
2398 dnl *** mjpegtools version info ***
2399 dnl some may prefer older version (given quirks above)
2400 dnl hm, no version info seems available within mjpegtools headers
2401 dnl and API really moves along
2403 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2404 mjpegtools_api=10601
2406 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2407 mjpegtools_api=10800
2409 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2410 mjpegtools_api=20000
2412 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2413 dnl logging API changed in release candidates
2414 OLD_CFLAGS="$CFLAGS"
2416 CFLAGS="$MJPEG_CFLAGS"
2417 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2418 AC_CHECK_FUNC(mjpeg_loglev_t, [
2419 mjpegtools_api=10903
2421 mjpegtools_api=10900
2423 CFLAGS="$OLD_CFLAGS"
2431 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2432 [mjpegtools API evolution])
2434 dnl *** mpeg2enc ***
2435 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2436 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2438 dnl we require a c++ compiler for this one
2439 if [ test x$HAVE_CXX = xyes ]; then
2440 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2441 dnl since many distros include mjpegtools specifically without mplex
2442 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2443 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2444 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2446 dnl switch over to c++ to test things
2448 OLD_CPPFLAGS="$CPPFLAGS"
2450 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2451 CPPFLAGS="$CPPFLAGS_GOOD -I."
2453 mpeg2enc_headers_ok=no
2454 AC_CHECK_HEADER([mpeg2encoder.hh], [
2455 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2457 LIBS="$LIBS $MPEG2ENC_LIBS"
2458 AC_MSG_CHECKING([for valid mpeg2enc objects])
2459 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2460 #include <mpeg2encoder.hh>
2461 #include <mpeg2encoptions.hh>
2467 MPEG2EncOptions *options = new MPEG2EncOptions ();
2468 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2473 dnl so far so good, let's check more things:
2474 dnl mjpegtools-1.8.0 does not install the required
2475 dnl mpeg2syntaxcodes.h header by default, and a new release
2476 dnl is not in sight, so check for this oversight in case
2477 dnl distros or folks have fixed this themselves
2478 if test "$mjpegtools_api" -ge "10800"; then
2479 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2480 mpeg2enc_headers_ok=yes
2482 mpeg2enc_headers_ok=no
2485 mpeg2enc_headers_ok=yes
2487 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2490 CPPFLAGS="$CPPFLAGS_GOOD"
2491 AC_SUBST(MPEG2ENC_CFLAGS)
2492 AC_SUBST(MPEG2ENC_LIBS)
2499 CPPFLAGS="$OLD_CPPFLAGS"
2508 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2509 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2511 dnl we require a c++ compiler for this one
2512 if [ test x$HAVE_CXX = xyes ]; then
2513 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2514 dnl since many distros include mjpegtools specifically without mplex
2515 dnl and mpeg2enc, we check for mplex on its own, too.
2516 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2517 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2518 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2520 dnl switch over to c++ to test things
2522 OLD_CPPFLAGS="$CPPFLAGS"
2524 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2525 CPPFLAGS="$CPPFLAGS_GOOD -I."
2526 AC_CHECK_HEADER(interact.hpp, [
2527 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2529 LIBS="$LIBS $MPLEX_LIBS"
2530 OLD_LDFLAGS="$LDFLAGS"
2531 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2532 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2533 dnl don't want this here
2534 AC_MSG_CHECKING([for valid mplex objects])
2535 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2537 #include <interact.hpp>
2538 #include <outputstrm.hpp>
2539 #include <multiplexor.hpp>
2544 class TestOutputStream : public OutputStream {
2546 TestOutputStream () : OutputStream () { }
2547 void Write (uint8_t *a, unsigned int b) { }
2548 void NextSegment () { }
2549 uint64_t SegmentSize () { }
2553 MultiplexJob *job = new MultiplexJob ();
2554 vector<IBitStream *> inputs;
2555 job->SetupInputStreams (inputs);
2556 TestOutputStream *out = new TestOutputStream ();
2557 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2562 CPPFLAGS="$CPPFLAGS_GOOD"
2563 AC_SUBST(MPLEX_CFLAGS)
2564 AC_SUBST(MPLEX_LIBS)
2565 AC_SUBST(MPLEX_LDFLAGS)
2567 ],[AC_MSG_RESULT(no)],[])
2569 LDFLAGS="$OLD_LDFLAGS"
2571 CPPFLAGS="$OLD_CPPFLAGS"
2577 dnl *** musepack ***
2578 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2579 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2580 AC_CHECK_HEADER([mpc/mpcdec.h], [
2582 MUSEPACK_LIBS="-lmpcdec"
2583 AC_SUBST(MUSEPACK_LIBS)
2584 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2586 MUSEPACK_LIBS="-lmpcdec"
2587 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2588 AC_SUBST(MUSEPACK_LIBS)
2589 ], [HAVE_MUSEPACK="no"])])
2593 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2594 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2596 if test "x$HAVE_X" = "xyes"; then
2597 save_cppflags=$CFLAGS
2598 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2599 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2600 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2601 CPPFLAGS="$save_cppflags"
2603 AC_SUBST(NAS_CFLAGS)
2608 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2609 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2610 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2613 AC_SUBST(NEON_CFLAGS)
2618 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2619 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2620 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2623 AC_SUBST(OFA_CFLAGS)
2628 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2629 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2630 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2633 AC_SUBST(OPENAL_CFLAGS)
2634 AC_SUBST(OPENAL_LIBS)
2638 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2639 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2640 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2641 dnl and don't want the build to break when a new opencv version comes out.
2642 dnl Need to adjust this upwards once we know that our code compiles fine with
2643 dnl a new version and the no-backward-compatibility define. (There doesn't
2644 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2646 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [
2649 OLD_CPPFLAGS=$CPPFLAGS
2650 CPPFLAGS=$OPENCV_CFLAGS
2651 something_not_found=no
2652 AC_CHECK_HEADERS([opencv2/contrib/contrib.hpp \
2653 opencv2/core/core_c.h \
2654 opencv2/core/types_c.h \
2655 opencv2/core/version.hpp \
2656 opencv2/highgui/highgui_c.h \
2657 opencv2/imgproc/imgproc.hpp \
2658 opencv2/imgproc/imgproc_c.h \
2659 opencv2/legacy/compat.hpp \
2660 opencv2/legacy/legacy.hpp \
2661 opencv2/objdetect/objdetect.hpp \
2662 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2663 CPPFLAGS=$OLD_CPPFLAGS
2666 if test $something_not_found = "yes"; then
2667 AC_MSG_RESULT([not all opencv2 headers were found])
2675 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2676 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2677 AC_SUBST(OPENCV_PREFIX)
2678 AC_SUBST(OPENCV_CFLAGS)
2679 AC_SUBST(OPENCV_LIBS)
2680 dnl the OpenCV prefix is used at runtime for some object properties, and also
2681 dnl used here to detect which directory is the correct one. For the second
2682 dnl case, make sure the right sysroot is used, ensuring correct behavior
2683 dnl during cross compilation.
2684 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2685 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2687 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2692 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2693 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2694 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2697 dnl *** openh264 ***
2698 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2699 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2700 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2703 dnl *** OpenJPEG ***
2704 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2705 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2709 save_CFLAGS="$CFLAGS"
2710 OPENJPEG_LIBS="-lopenjp2"
2711 LIBS="$LIBS $OPENJPEG_LIBS"
2712 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2714 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2715 [return (int) *opj_version ();])
2716 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2718 CFLAGS="$save_CFLAGS"
2720 if test x"$HAVE_OPENJPEG" = x"no"; then
2722 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2723 HAVE_OPENJPEG="yes",
2724 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2726 if test x"$HAVE_OPENJPEG" = x"yes"; then
2727 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2730 AC_SUBST(OPENJPEG_CFLAGS)
2731 AC_SUBST(OPENJPEG_LIBS)
2735 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2736 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2737 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2738 AC_SUBST(OPENNI2_CFLAGS)
2739 AC_SUBST(OPENNI2_LIBS)
2743 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2744 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2745 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2746 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2751 AC_SUBST(OPUS_CFLAGS)
2756 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2757 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2758 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2759 AC_SUBST(PVR_CFLAGS)
2763 AC_ARG_WITH([pvr-external-headers],
2764 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2765 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2766 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2767 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2770 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2771 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2772 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2776 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2777 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2780 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2787 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2788 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2789 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2790 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2795 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2797 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2798 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2799 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2800 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2802 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2804 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2805 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2806 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2807 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2809 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2811 if test "x$GDK_WINDOWING" = "xyes"; then
2812 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2819 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2822 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2823 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2824 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2825 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2826 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2827 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2828 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2829 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2830 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2831 AC_MSG_WARN([One of the required qt build programs was not found])
2835 HAVE_QT_WINDOWING="no"
2836 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2837 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2838 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2839 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2840 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2841 HAVE_QT_WINDOWING="yes"
2842 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2844 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2845 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2846 AC_DEFINE([HAVE_QT_WAYLAND], [],
2847 [Define if Qt Wayland integration is installed])
2848 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2849 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2850 HAVE_QT_WINDOWING="yes"
2851 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2853 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2854 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2855 # c++ on android requires a standard library and there are multiple
2856 # choices. cerbero provides a pkg-config file the describes a choice
2857 # so try to use that. Outside cerbero one has to pass these flags
2858 # manually for the library one is using
2859 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2860 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2861 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2863 AC_MSG_NOTICE([Could not find Standard C++ library])])
2865 AC_DEFINE([HAVE_QT_ANDROID], [],
2866 [Define if Qt Android integration is installed])
2867 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2868 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2869 HAVE_QT_WINDOWING="yes"
2870 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2872 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2873 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2874 AC_DEFINE([HAVE_QT_MAC], [],
2875 [Define if Qt Mac integration is installed])
2876 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2877 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2878 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2879 HAVE_QT_WINDOWING="yes"
2880 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2882 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2883 if test "x$HAVE_IOS" = "xyes"; then
2884 # iOS doesn't have its own extras package so if we have the core
2885 # modules we are good to go
2886 AC_DEFINE([HAVE_QT_IOS], [],
2887 [Define if Qt iOS integration is installed])
2888 HAVE_QT_WINDOWING="yes"
2891 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2892 AC_MSG_WARN([Could not find any Qt Windowing integration])
2895 AC_SUBST([QT_CFLAGS])
2904 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2905 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2907 AC_CHECK_HEADER(vulkan/vulkan.h, [
2908 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2909 VULKAN_LIBS="-lvulkan"
2910 AC_SUBST(VULKAN_LIBS)
2911 dnl TODO check platform support (x11, win32, wayland, android, etc)
2912 if test "x$HAVE_XCB" = "xyes"; then
2919 dnl *** libvisual ***
2920 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2921 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2922 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2923 if test x$HAVE_LIBVISUAL = xyes; then
2924 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2926 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2927 if test x$LIBVIS_PLUGINSDIR != x; then
2928 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2929 "$LIBVIS_PLUGINSDIR",
2930 [directory in which the detected libvisual's plugins are located])
2934 dnl *** timidity ***
2935 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2936 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2937 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2938 HAVE_TIMIDITY="yes",
2939 AC_MSG_CHECKING([for timidity.cfg])
2941 if test -r /etc/timidity.cfg; then
2942 timidity_cfg=/etc/timidity.cfg
2943 elif test -r /etc/timidity/timidity.cfg; then
2944 timidity_cfg=/etc/timidity/timidity.cfg
2945 elif test -r /usr/share/timidity/timidity.cfg; then
2946 timidity_cfg=/usr/share/timidity/timidity.cfg
2947 elif test -r /usr/local/share/timidity/timidity.cfg; then
2948 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2950 if test "x$timidity_cfg" != "x"; then
2951 AC_MSG_RESULT($timidity_cfg)
2952 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2954 AC_MSG_RESULT([not found])
2959 AC_SUBST(TIMIDITY_CFLAGS)
2960 AC_SUBST(TIMIDITY_LIBS)
2963 dnl *** teletextdec ***
2964 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2965 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2966 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2969 dnl *** wildmidi ***
2970 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2971 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2972 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2975 WILDMIDI_LIBS="-lWildMidi")
2976 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2978 if test "x$HAVE_WILDMIDI" = "xyes"; then
2980 WILDMIDI_LIBS=-lWildMidi
2981 AC_MSG_NOTICE(compiling gstWildMidi)
2985 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2987 AC_SUBST(WILDMIDI_CFLAGS)
2988 AC_SUBST(WILDMIDI_LIBS)
2992 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
2993 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
2994 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
2997 dnl **** Smooth Streaming ****
2998 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
2999 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3000 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3002 HAVE_SMOOTHSTREAMING="yes"],
3004 HAVE_SMOOTHSTREAMING="no"])
3005 AC_SUBST(LIBXML2_CFLAGS)
3006 AC_SUBST(LIBXML2_LIBS)
3010 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3011 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3012 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3013 AC_SUBST(SNDFILE_CFLAGS)
3014 AC_SUBST(SNDFILE_LIBS)
3017 dnl *** soundtouch ***
3018 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3019 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3020 dnl We only need -lBPM on soundtouch < 1.4
3021 dnl We check for libSoundTouch since Debian used it before upstream
3022 dnl added a pkgconfig file.
3023 HAVE_SOUNDTOUCH_1_4=yes
3024 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3025 [HAVE_SOUNDTOUCH=yes],
3026 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3027 [HAVE_SOUNDTOUCH=yes],
3028 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3029 [HAVE_SOUNDTOUCH=yes
3030 HAVE_SOUNDTOUCH_1_4=no
3031 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3032 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3033 [HAVE_SOUNDTOUCH=yes],
3034 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3035 [HAVE_SOUNDTOUCH=yes
3036 HAVE_SOUNDTOUCH_1_4=no
3037 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3038 HAVE_SOUNDTOUCH=no)])])])])
3039 AC_SUBST(SOUNDTOUCH_CFLAGS)
3040 AC_SUBST(SOUNDTOUCH_LIBS)
3041 if test "x$HAVE_CXX" != "xyes"; then
3042 USE_SOUNDTOUCH=false
3043 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3045 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3046 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3047 [Defined if the available libSoundTouch is >= 1.4])
3052 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3053 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3054 AC_CHECK_HEADER(openspc.h, [
3055 AC_CHECK_LIB(openspc, OSPC_Init, [
3056 SPC_LIBS="-lopenspc"
3068 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3069 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3070 AC_CHECK_HEADER(gme/gme.h, [
3071 AC_CHECK_LIB(gme, gme_new_emu, [
3082 if test "x$HAVE_GME" = "xyes"; then
3083 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3084 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3090 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3091 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3093 AC_CHECK_HEADER(xvid.h, [
3095 LIBS="$PTHREAD_LIBS $LIBM"
3096 AC_CHECK_LIB(xvidcore, xvid_encore, [
3097 AC_CHECK_LIB(xvidcore, xvid_decore, [
3098 AC_CHECK_LIB(xvidcore, xvid_global, [
3099 AC_MSG_CHECKING([for up-to-date XviD API version])
3100 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3101 #if XVID_API_MAJOR(XVID_API) != 4
3102 #error "Incompatible XviD API version"
3104 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3105 #error "Incompatible XviD API version"
3107 ]])],[ AC_MSG_RESULT(yes)
3108 XVID_LIBS="-lxvidcore $LIBM"
3111 ],[AC_MSG_RESULT(no) ])
3120 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3121 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3122 AC_MSG_CHECKING([Checking for up to date dvb installation])
3123 AC_CHECK_HEADER(linux/dvb/version.h, [
3124 AC_MSG_CHECKING([for up-to-date dvb API])
3125 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3126 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3127 #error "Incompatible dvb API"
3129 ]])], [ AC_MSG_RESULT(yes)
3131 ], [ AC_MSG_RESULT(no)
3138 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3139 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3140 AC_MSG_CHECKING([Checking for windows internet support])
3141 AC_CHECK_HEADERS([windows.h wininet.h],
3142 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3143 [AC_INCLUDES_DEFAULT
3144 #include <windows.h>])
3148 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3149 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3150 AC_MSG_CHECKING([Checking for ACM support])
3151 AC_CHECK_HEADERS([windows.h msacm.h],
3153 AC_SUBST(ACMENC_CFLAGS)
3154 AC_SUBST(ACMMP3DEC_CFLAGS)
3156 [AC_INCLUDES_DEFAULT
3157 #include <windows.h>])
3161 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3162 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3167 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3169 if test "$HAVE_VDPAU" = "no"; then
3170 saved_CPPFLAGS="$CPPFLAGS"
3171 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3173 if test -z "$HAVE_VDPAU_H"; then
3174 dnl Didn't find VDPAU header straight away.
3175 dnl Try /usr/include/nvidia. Need to clear caching vars first
3176 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3177 unset ac_cv_header_vdpau_vdpau_h
3178 unset ac_cv_header_vdpau_vdpau_x11_h
3179 VDPAU_CFLAGS="-I/usr/include/nvidia"
3180 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3181 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3182 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3185 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3187 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3188 dnl Found the headers - look for the lib
3189 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3191 LIBS="$VDPAU_LIBS $saved_LIBS"
3192 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3198 if test "$HAVE_VDPAU" = "yes"; then
3199 AC_MSG_NOTICE([Found up to date VDPAU installation])
3200 AC_SUBST(VDPAU_CFLAGS)
3201 AC_SUBST(VDPAU_LIBS)
3206 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3207 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3208 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3211 dnl *** schroedinger ***
3212 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3213 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3214 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3218 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3219 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3220 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3224 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3225 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3226 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3230 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3231 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3232 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3233 HAVE_SPANDSP="yes" ], [
3237 AC_SUBST(SPANDSP_CFLAGS)
3238 AC_SUBST(SPANDSP_LIBS)
3241 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3242 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3243 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3244 if test "x$HAVE_SNDIO" = "xyes"; then
3245 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3246 if test "x$HAVE_SNDIO" = "xyes"; then
3248 AC_SUBST(SNDIO_LIBS)
3253 dnl *** hls-crypto ***
3254 AC_ARG_WITH([hls-crypto],
3255 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3256 which cryptographic library version to compile against for hls (default: auto)
3258 AS_CASE([$with_hls_crypto],
3262 [with_hls_crypto=auto]
3268 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3269 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3270 AS_CASE([$with_hls_crypto],
3272 PKG_CHECK_MODULES(NETTLE, nettle, [
3273 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3275 ],[AC_MSG_ERROR([Could not find nettle library])])
3278 AM_PATH_LIBGCRYPT([1.2.0], [
3279 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3281 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3284 PKG_CHECK_MODULES(OPENSSL, openssl, [
3285 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3287 ],[AC_MSG_ERROR([Could not find openssl library])])
3290 dnl Try to find a valid crypto library
3291 PKG_CHECK_MODULES(NETTLE, nettle, [
3292 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3295 AM_PATH_LIBGCRYPT([1.2.0], [
3296 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3299 PKG_CHECK_MODULES(OPENSSL, openssl, [
3300 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3311 dnl *** x265 (H.265/HEVC encoder) ***
3312 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3313 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3314 AG_GST_PKG_CHECK_MODULES(X265, x265)
3319 dnl not building plugins with external dependencies,
3320 dnl but we still need to set the conditionals
3322 AM_CONDITIONAL(USE_ASSRENDER, false)
3323 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3324 AM_CONDITIONAL(USE_VOAACENC, false)
3325 AM_CONDITIONAL(USE_APEXSINK, false)
3326 AM_CONDITIONAL(USE_BS2B, false)
3327 AM_CONDITIONAL(USE_BZ2, false)
3328 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3329 AM_CONDITIONAL(USE_CURL, false)
3330 AM_CONDITIONAL(USE_SSH2, false)
3331 AM_CONDITIONAL(USE_DASH, false)
3332 AM_CONDITIONAL(USE_DC1394, false)
3333 AM_CONDITIONAL(USE_DECKLINK, false)
3334 AM_CONDITIONAL(DECKLINK_OSX, false)
3335 AM_CONDITIONAL(USE_DIRECTFB, false)
3336 AM_CONDITIONAL(USE_WAYLAND, false)
3337 AM_CONDITIONAL(USE_DAALA, false)
3338 AM_CONDITIONAL(USE_DTS, false)
3339 AM_CONDITIONAL(USE_EXIF, false)
3340 AM_CONDITIONAL(USE_RESINDVD, false)
3341 AM_CONDITIONAL(USE_FAAC, false)
3342 AM_CONDITIONAL(USE_FAAD, false)
3343 AM_CONDITIONAL(USE_FBDEV, false)
3344 AM_CONDITIONAL(USE_FLITE, false)
3345 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3346 AM_CONDITIONAL(USE_GL, false)
3347 AM_CONDITIONAL(USE_GSM, false)
3348 AM_CONDITIONAL(USE_GTK3, false)
3349 AM_CONDITIONAL(USE_GTK3_GL, false)
3350 AM_CONDITIONAL(USE_HLS, false)
3351 AM_CONDITIONAL(USE_KATE, false)
3352 AM_CONDITIONAL(USE_TIGER, false)
3353 AM_CONDITIONAL(USE_LADSPA, false)
3354 AM_CONDITIONAL(USE_LV2, false)
3355 AM_CONDITIONAL(USE_LIBDE265, false)
3356 AM_CONDITIONAL(USE_LIBMMS, false)
3357 AM_CONDITIONAL(USE_LINSYS, false)
3358 AM_CONDITIONAL(USE_MODPLUG, false)
3359 AM_CONDITIONAL(USE_MIMIC, false)
3360 AM_CONDITIONAL(USE_MPEG2ENC, false)
3361 AM_CONDITIONAL(USE_MPLEX, false)
3362 AM_CONDITIONAL(USE_MUSEPACK, false)
3363 AM_CONDITIONAL(USE_NAS, false)
3364 AM_CONDITIONAL(USE_NEON, false)
3365 AM_CONDITIONAL(USE_OFA, false)
3366 AM_CONDITIONAL(USE_OPENAL, false)
3367 AM_CONDITIONAL(USE_OPENCV, false)
3368 AM_CONDITIONAL(USE_OPENEXR, false)
3369 AM_CONDITIONAL(USE_OPENJPEG, false)
3370 AM_CONDITIONAL(USE_OPENNI2, false)
3371 AM_CONDITIONAL(USE_OPUS, false)
3372 AM_CONDITIONAL(USE_PVR, false)
3373 AM_CONDITIONAL(USE_QT, false)
3374 AM_CONDITIONAL(USE_LIBVISUAL, false)
3375 AM_CONDITIONAL(USE_TIMIDITY, false)
3376 AM_CONDITIONAL(USE_WILDMIDI, false)
3377 AM_CONDITIONAL(USE_SDL, false)
3378 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3379 AM_CONDITIONAL(USE_SNDFILE, false)
3380 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3381 AM_CONDITIONAL(USE_SPANDSP, false)
3382 AM_CONDITIONAL(USE_SPC, false)
3383 AM_CONDITIONAL(USE_SRTP, false)
3384 AM_CONDITIONAL(USE_GME, false)
3385 AM_CONDITIONAL(USE_XVID, false)
3386 AM_CONDITIONAL(USE_DVB, false)
3387 AM_CONDITIONAL(USE_WININET, false)
3388 AM_CONDITIONAL(USE_ACM, false)
3389 AM_CONDITIONAL(USE_VDPAU, false)
3390 AM_CONDITIONAL(USE_SBC, false)
3391 AM_CONDITIONAL(USE_SCHRO, false)
3392 AM_CONDITIONAL(USE_ZBAR, false)
3393 AM_CONDITIONAL(USE_RSVG, false)
3394 AM_CONDITIONAL(USE_RTMP, false)
3395 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3396 AM_CONDITIONAL(USE_SNDIO, false)
3397 AM_CONDITIONAL(USE_UVCH264, false)
3398 AM_CONDITIONAL(USE_WEBP, false)
3399 AM_CONDITIONAL(USE_OPENH264, false)
3400 AM_CONDITIONAL(USE_X265, false)
3401 AM_CONDITIONAL(USE_DTLS, false)
3403 fi dnl of EXT plugins
3405 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3408 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3409 dnl GST_*: flags shared by built objects to link against GStreamer
3410 dnl GST_ALL_LDFLAGS: linker flags shared by all
3411 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3412 dnl GST_LT_LDFLAGS: library versioning of our libraries
3413 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3415 dnl GST_OPTION_CFLAGS
3416 if test "x$USE_DEBUG" = xyes; then
3419 AC_SUBST(PROFILE_CFLAGS)
3421 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3422 dnl Define _only_ during CVS (not pre-releases or releases)
3423 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3425 DEPRECATED_CFLAGS=""
3427 AC_SUBST(DEPRECATED_CFLAGS)
3429 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3430 dnl at make time with e.g. make ERROR_CFLAGS=""
3431 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3432 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3433 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3434 AC_SUBST(GST_OPTION_CFLAGS)
3435 AC_SUBST(GST_OPTION_CXXFLAGS)
3436 AC_SUBST(GST_OPTION_OBJCFLAGS)
3438 dnl FIXME: do we want to rename to GST_ALL_* ?
3439 dnl prefer internal headers to already installed ones
3440 dnl also add builddir include for enumtypes and marshal
3441 dnl add GST_OPTION_CFLAGS, but overridable
3442 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3443 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3444 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3445 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3446 AC_SUBST(GST_CFLAGS)
3447 AC_SUBST(GST_CXXFLAGS)
3448 AC_SUBST(GST_OBJCFLAGS)
3450 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3451 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3452 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3453 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3454 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3455 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3457 dnl LDFLAGS really should only contain flags, not libs - they get added before
3458 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3459 GST_ALL_LDFLAGS="-no-undefined"
3460 if test "x${enable_Bsymbolic}" = "xyes"; then
3461 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3463 AC_SUBST(GST_ALL_LDFLAGS)
3466 dnl linker flags shared by all libraries
3467 dnl LDFLAGS modifier defining exported symbols from built libraries
3468 dnl (export _gst_foo but not __gst_foo)
3469 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3470 AC_SUBST(GST_LIB_LDFLAGS)
3472 dnl this really should only contain flags, not libs - they get added before
3473 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3474 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3475 AC_SUBST(GST_PLUGIN_LDFLAGS)
3477 dnl *** output files ***
3479 $MKDIR_P tests/check/orc
3487 gst-plugins-bad.spec
3489 gst/accurip/Makefile
3490 gst/adpcmdec/Makefile
3491 gst/adpcmenc/Makefile
3493 gst/videoframe_audiolevel/Makefile
3495 gst/audiofxbad/Makefile
3496 gst/audiomixer/Makefile
3497 gst/audiovisualizers/Makefile
3498 gst/autoconvert/Makefile
3500 gst/camerabin2/Makefile
3501 gst/cdxaparse/Makefile
3502 gst/coloreffects/Makefile
3503 gst/dataurisrc/Makefile
3505 gst/debugutils/Makefile
3506 gst/dvbsuboverlay/Makefile
3508 gst/faceoverlay/Makefile
3509 gst/festival/Makefile
3510 gst/fieldanalysis/Makefile
3511 gst/freeverb/Makefile
3513 gst/gaudieffects/Makefile
3514 gst/geometrictransform/Makefile
3516 gst/hdvparse/Makefile
3519 gst/interlace/Makefile
3520 gst/ivfparse/Makefile
3522 gst/jp2kdecimator/Makefile
3523 gst/jpegformat/Makefile
3526 gst/mpegdemux/Makefile
3527 gst/mpegtsdemux/Makefile
3528 gst/mpegtsmux/Makefile
3529 gst/mpegtsmux/tsmux/Makefile
3530 gst/mpegpsmux/Makefile
3534 gst/nuvdemux/Makefile
3536 gst/patchdetect/Makefile
3537 gst/pcapparse/Makefile
3539 gst/rawparse/Makefile
3540 gst/removesilence/Makefile
3543 gst/segmentclip/Makefile
3550 gst/videofilters/Makefile
3551 gst/videomeasure/Makefile
3552 gst/videoparsers/Makefile
3553 gst/videosignal/Makefile
3557 gst/compositor/Makefile
3559 gst-libs/gst/Makefile
3560 gst-libs/gst/adaptivedemux/Makefile
3561 gst-libs/gst/basecamerabinsrc/Makefile
3562 gst-libs/gst/gl/Makefile
3563 gst-libs/gst/gl/android/Makefile
3564 gst-libs/gst/gl/cocoa/Makefile
3565 gst-libs/gst/gl/dispmanx/Makefile
3566 gst-libs/gst/gl/glprototypes/Makefile
3567 gst-libs/gst/gl/eagl/Makefile
3568 gst-libs/gst/gl/egl/Makefile
3569 gst-libs/gst/gl/wayland/Makefile
3570 gst-libs/gst/gl/win32/Makefile
3571 gst-libs/gst/gl/x11/Makefile
3572 gst-libs/gst/insertbin/Makefile
3573 gst-libs/gst/interfaces/Makefile
3574 gst-libs/gst/codecparsers/Makefile
3575 gst-libs/gst/mpegts/Makefile
3576 gst-libs/gst/uridownloader/Makefile
3577 gst-libs/gst/wayland/Makefile
3578 gst-libs/gst/base/Makefile
3579 gst-libs/gst/player/Makefile
3580 gst-libs/gst/video/Makefile
3581 gst-libs/gst/audio/Makefile
3583 sys/dshowdecwrapper/Makefile
3585 sys/acmmp3dec/Makefile
3586 sys/androidmedia/Makefile
3587 sys/applemedia/Makefile
3588 sys/applemedia-nonpublic/Makefile
3591 sys/d3dvideosink/Makefile
3592 sys/decklink/Makefile
3593 sys/directsound/Makefile
3594 sys/dshowsrcwrapper/Makefile
3595 sys/dshowvideosink/Makefile
3600 sys/opensles/Makefile
3602 sys/tinyalsa/Makefile
3603 sys/uvch264/Makefile
3608 sys/wininet/Makefile
3610 sys/winscreencap/Makefile
3612 tests/check/Makefile
3613 tests/files/Makefile
3614 tests/examples/Makefile
3615 tests/examples/avsamplesink/Makefile
3616 tests/examples/camerabin2/Makefile
3617 tests/examples/codecparsers/Makefile
3618 tests/examples/directfb/Makefile
3619 tests/examples/gl/Makefile
3620 tests/examples/gl/cocoa/Makefile
3621 tests/examples/gl/clutter/Makefile
3622 tests/examples/gl/generic/Makefile
3623 tests/examples/gl/generic/cube/Makefile
3624 tests/examples/gl/generic/cubeyuv/Makefile
3625 tests/examples/gl/generic/doublecube/Makefile
3626 tests/examples/gl/generic/recordgraphic/Makefile
3627 tests/examples/gl/gtk/Makefile
3628 tests/examples/gl/gtk/gtkvideooverlay/Makefile
3629 tests/examples/gl/gtk/3dvideo/Makefile
3630 tests/examples/gl/gtk/filternovideooverlay/Makefile
3631 tests/examples/gl/gtk/filtervideooverlay/Makefile
3632 tests/examples/gl/gtk/fxtest/Makefile
3633 tests/examples/gl/gtk/switchvideooverlay/Makefile
3634 tests/examples/gl/qt/Makefile
3635 tests/examples/gl/sdl/Makefile
3636 tests/examples/gtk/Makefile
3637 tests/examples/mpegts/Makefile
3638 tests/examples/mxf/Makefile
3639 tests/examples/opencv/Makefile
3640 tests/examples/uvch264/Makefile
3641 tests/examples/waylandsink/Makefile
3642 tests/icles/Makefile
3643 ext/voamrwbenc/Makefile
3644 ext/voaacenc/Makefile
3645 ext/assrender/Makefile
3646 ext/apexsink/Makefile
3649 ext/chromaprint/Makefile
3653 ext/directfb/Makefile
3654 ext/wayland/Makefile
3662 ext/fluidsynth/Makefile
3668 ext/libde265/Makefile
3670 ext/libvisual/Makefile
3672 ext/modplug/Makefile
3673 ext/mpeg2enc/Makefile
3676 ext/musepack/Makefile
3682 ext/openexr/Makefile
3683 ext/openh264/Makefile
3684 ext/openjpeg/Makefile
3685 ext/openni2/Makefile
3689 ext/resindvd/Makefile
3692 ext/schroedinger/Makefile
3694 ext/smoothstreaming/Makefile
3695 ext/sndfile/Makefile
3696 ext/soundtouch/Makefile
3697 ext/spandsp/Makefile
3700 ext/teletextdec/Makefile
3703 ext/timidity/Makefile
3705 ext/vulkan/xcb/Makefile
3713 docs/plugins/Makefile
3715 docs/version.entities
3717 pkgconfig/gstreamer-plugins-bad.pc
3718 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3719 pkgconfig/gstreamer-codecparsers.pc
3720 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3721 pkgconfig/gstreamer-insertbin.pc
3722 pkgconfig/gstreamer-insertbin-uninstalled.pc
3723 pkgconfig/gstreamer-gl.pc
3724 pkgconfig/gstreamer-gl-uninstalled.pc
3725 pkgconfig/gstreamer-mpegts.pc
3726 pkgconfig/gstreamer-mpegts-uninstalled.pc
3727 pkgconfig/gstreamer-player.pc
3728 pkgconfig/gstreamer-player-uninstalled.pc
3729 pkgconfig/gstreamer-wayland.pc
3730 pkgconfig/gstreamer-wayland-uninstalled.pc
3731 pkgconfig/gstreamer-bad-base.pc
3732 pkgconfig/gstreamer-bad-base-uninstalled.pc
3733 pkgconfig/gstreamer-bad-video.pc
3734 pkgconfig/gstreamer-bad-video-uninstalled.pc
3735 pkgconfig/gstreamer-bad-audio.pc
3736 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3741 dnl Create the config.h file for Visual Studio builds
3742 dnl Beware of spaces and /'s in some of the shell variable contents.
3744 -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"/' \
3745 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3746 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3747 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3748 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3749 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3750 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3751 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3752 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3753 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3754 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3755 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3756 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3757 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3758 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3759 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3760 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3761 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3762 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3763 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3764 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3765 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3766 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3767 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3768 -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/' \
3769 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3770 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3771 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3772 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3773 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3774 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3775 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3776 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3777 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3778 config.h.in >win32/common/config.h-new
3782 AG_GST_OUTPUT_PLUGINS