3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, git and prerelease does Werror too
6 AC_INIT([GStreamer Bad Plug-ins],[1.7.91],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
13 dnl define PACKAGE_VERSION_* variables
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
28 dnl sets host_* variables
31 dnl use pretty build output with automake >= 1.11
32 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
33 [AM_DEFAULT_VERBOSITY=1
34 AC_SUBST(AM_DEFAULT_VERBOSITY)])
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
39 dnl our libraries and install dirs use GST_API_VERSION in the filename
40 dnl to allow side-by-side installation of different API versions
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44 [GStreamer API Version])
46 AG_GST_LIBTOOL_PREPARE
48 dnl CURRENT, REVISION, AGE
49 dnl - library source changed -> increment REVISION
50 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
51 dnl - interfaces added -> increment AGE
52 dnl - interfaces removed -> AGE = 0
53 dnl sets GST_LT_LDFLAGS
54 AS_LIBTOOL(GST, 791, 0, 791)
56 dnl *** required versions of GStreamer stuff ***
60 dnl *** autotools stuff ****
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
69 dnl the version check needs to stay here because autopoint greps for it
70 AM_GNU_GETTEXT_VERSION([0.17])
71 AM_GNU_GETTEXT([external])
72 AG_GST_GETTEXT([gst-plugins-bad-$GST_API_VERSION])
74 dnl *** check for arguments to configure ***
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
90 AG_GST_ARG_WITH_PLUGINS
92 AG_GST_ARG_ENABLE_EXTERNAL
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
96 AG_GST_PKG_CONFIG_PATH
98 dnl *** checks for platform ***
101 dnl * hardware/architecture *
103 dnl common/m4/gst-arch.m4
107 dnl Determine endianness
110 dnl *** checks for programs ***
116 dnl determine c++ compiler
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
123 dnl check if the compiler supports '-c' and '-o' options
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
139 dnl *** checks for libraries ***
141 dnl check for libm, for sin() etc.
147 dnl check for pthreads
150 dnl *** checks for header files ***
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
159 AC_CHECK_HEADERS([sys/time.h])
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
167 if test "x$HAVE_PTHREAD_H" != "xyes"; then
168 GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
171 dnl *** checks for types/defines ***
173 dnl Check for FIONREAD ioctl declaration
177 dnl *** checks for structures ***
179 dnl *** checks for compiler characteristics ***
181 dnl *** checks for library functions ***
182 AC_CHECK_FUNCS([gmtime_r])
184 dnl *** checks for headers ***
185 AC_CHECK_HEADERS([sys/utsname.h])
187 dnl *** checks for dependency libraries ***
189 dnl *** checks for socket and nsl libraries ***
190 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
191 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
195 AG_GST_GLIB_CHECK([$GLIB_REQ])
197 dnl checks for gstreamer
198 dnl uninstalled is selected preferentially -- see pkg-config(1)
199 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
200 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
201 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
202 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
203 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
204 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
206 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
208 dnl check for uninstalled plugin directories for unit tests
209 AG_GST_CHECK_UNINSTALLED_SETUP([
210 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
211 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
212 AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
215 dnl Check for documentation xrefs
216 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
217 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
218 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
219 AC_SUBST(GLIB_PREFIX)
221 AC_SUBST(GSTPB_PREFIX)
223 dnl GTK is optional and used in examples
227 if test "x$BUILD_EXAMPLES" = "xyes"; then
228 AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
230 AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
232 2.0) GTK_REQ=$GTK2_REQ ;;
233 3.0) GTK_REQ=$GTK3_REQ ;;
234 *) AC_MSG_ERROR([invalid gtk+ version specified]);;
238 AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
239 PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
243 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
245 dnl Check for -Bsymbolic-functions linker flag used to avoid
246 dnl intra-library PLT jumps, if available.
247 AC_ARG_ENABLE(Bsymbolic,
248 [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
249 [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
250 AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
251 LDFLAGS=-Wl,-Bsymbolic-functions
253 AC_TRY_LINK([], [return 0],
255 enable_Bsymbolic=yes,
258 LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
260 dnl *** set variables based on configure arguments ***
262 dnl GTK is optional and used in examples
264 if test "x$BUILD_EXAMPLES" = "xyes"; then
265 PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
266 if test "x$HAVE_GTK3" = "xyes"; then
268 GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
269 AC_SUBST(GTK_VERSION)
270 GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
271 AC_SUBST(GTK_BASE_DIR)
275 AC_SUBST(GTK3_CFLAGS)
277 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
279 dnl clutter is optional and used in examples
283 if test "x$BUILD_EXAMPLES" = "xyes"; then
284 PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
285 AC_SUBST(CLUTTER_LIBS)
286 AC_SUBST(CLUTTER_CFLAGS)
287 AC_SUBST(HAVE_CLUTTER)
289 PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
290 AC_SUBST(CLUTTER_GLX_LIBS)
291 AC_SUBST(CLUTTER_GLX_CFLAGS)
292 AC_SUBST(HAVE_CLUTTER_GLX)
294 PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
295 AC_SUBST(CLUTTER_X11_LIBS)
296 AC_SUBST(CLUTTER_X11_CFLAGS)
297 AC_SUBST(HAVE_CLUTTER_X11)
299 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
300 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
301 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
303 dnl used in the gl/clutteractor example
304 if test "x$BUILD_EXAMPLES" = "xyes"; then
305 PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
306 AC_SUBST(XCOMPOSITE_CFLAGS)
307 AC_SUBST(XCOMPOSITE_LIBS)
309 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
311 dnl graphene-1.0 is optional and used in gltransformation
313 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.0.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
314 if test "x$HAVE_GRAPHENE" = "xyes"; then
315 AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
317 AC_SUBST(HAVE_GRAPHENE)
318 AC_SUBST(GRAPHENE_LIBS)
319 AC_SUBST(GRAPHENE_CFLAGS)
320 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
323 dnl sdl is optional and used in examples
325 if test "x$BUILD_EXAMPLES" = "xyes"; then
326 PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
329 AC_SUBST(SDL_CLUTTER)
331 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
334 dnl Needed for GtkBuilder to autoconnect signals
335 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
337 dnl Needed by plugins that use g_module_*() API
338 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
340 dnl x11 is optional for librfb
342 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
346 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
347 if test "x$HAVE_X11" = "xyes"; then
348 AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
351 dnl exif (used on jifmux tests) ****
352 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
354 AC_SUBST(EXIF_CFLAGS)
355 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
360 dnl set license and copyright notice
362 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
363 AC_SUBST(GST_LICENSE)
365 dnl define LIBDIR so we can inform people where we live
366 AS_AC_EXPAND(LIBDIR, $libdir)
367 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
369 dnl set location of plugin directory
372 dnl set release date/time
373 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
374 ["${srcdir}/gst-plugins-bad.doap"],
375 [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
377 dnl build static plugins or not
378 AC_MSG_CHECKING([whether to build static plugins or not])
382 [--enable-static-plugins],
383 [build static plugins @<:@default=no@:>@]),
385 [$enableval], [no], [], [yes], [],
386 [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
387 [enable_static_plugins=no])
388 AC_MSG_RESULT([$enable_static_plugins])
389 if test "x$enable_static_plugins" = xyes; then
390 AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
391 [Define if static plugins should be built])
392 GST_PLUGIN_LIBTOOLFLAGS=""
394 GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
396 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
397 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
399 AC_ARG_WITH([player-tests],
400 AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
401 if test x$with_player_tests = xyes; then
402 AC_PATH_PROG([WGET], [wget], no)
403 if test x$WGET = xno; then
404 AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
408 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
410 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
411 dnl make sure it doesn't complain about unused variables if debugging is disabled
413 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
415 dnl define an ERROR_CFLAGS Makefile variable
416 dnl -Waggregate-return - libexif returns aggregates
417 dnl -Wundef - Windows headers check _MSC_VER unconditionally
418 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
419 -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
420 -Wwrite-strings -Wformat-security -Wold-style-definition
421 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
422 -Wnested-externs $NO_WARNINGS])
424 dnl define an ERROR_CXXFLAGS Makefile variable
425 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
426 -Wmissing-declarations -Wredundant-decls
427 -Wwrite-strings -Wformat-nonliteral -Wformat-security
428 -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
430 dnl define an ERROR_OBJCFLAGS Makefile variable
431 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
432 -Wmissing-declarations -Wredundant-decls
433 -Wwrite-strings -Wformat-nonliteral -Wformat-security
434 -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
436 dnl define correct level for debugging messages
437 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
440 AG_GST_DEFAULT_ELEMENTS
442 dnl *** plug-ins to include ***
443 dnl Non ported plugins (non-dependant, then dependant)
444 dnl Make sure you have a space before and after all plugins
445 GST_PLUGINS_NONPORTED=" cdxaparse \
454 musepack nas sdl timidity \
456 xvid lv2 sndio libvisual"
457 AC_SUBST(GST_PLUGINS_NONPORTED)
459 dnl these are all the gst plug-ins, compilable without additional libs
460 AG_GST_CHECK_PLUGIN(accurip)
461 AG_GST_CHECK_PLUGIN(adpcmdec)
462 AG_GST_CHECK_PLUGIN(adpcmenc)
463 AG_GST_CHECK_PLUGIN(aiff)
464 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
465 AG_GST_CHECK_PLUGIN(asfmux)
466 AG_GST_CHECK_PLUGIN(audiofxbad)
467 AG_GST_CHECK_PLUGIN(audiomixer)
468 AG_GST_CHECK_PLUGIN(compositor)
469 AG_GST_CHECK_PLUGIN(audiovisualizers)
470 AG_GST_CHECK_PLUGIN(autoconvert)
471 AG_GST_CHECK_PLUGIN(bayer)
472 AG_GST_CHECK_PLUGIN(camerabin2)
473 AG_GST_CHECK_PLUGIN(cdxaparse)
474 AG_GST_CHECK_PLUGIN(coloreffects)
475 AG_GST_CHECK_PLUGIN(dataurisrc)
476 AG_GST_CHECK_PLUGIN(dccp)
477 AG_GST_CHECK_PLUGIN(debugutils)
478 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
479 AG_GST_CHECK_PLUGIN(dvdspu)
480 AG_GST_CHECK_PLUGIN(faceoverlay)
481 AG_GST_CHECK_PLUGIN(festival)
482 AG_GST_CHECK_PLUGIN(fieldanalysis)
483 AG_GST_CHECK_PLUGIN(freeverb)
484 AG_GST_CHECK_PLUGIN(frei0r)
485 AG_GST_CHECK_PLUGIN(gaudieffects)
486 AG_GST_CHECK_PLUGIN(geometrictransform)
487 AG_GST_CHECK_PLUGIN(gdp)
488 AG_GST_CHECK_PLUGIN(hdvparse)
489 AG_GST_CHECK_PLUGIN(id3tag)
490 AG_GST_CHECK_PLUGIN(inter)
491 AG_GST_CHECK_PLUGIN(interlace)
492 AG_GST_CHECK_PLUGIN(ivfparse)
493 AG_GST_CHECK_PLUGIN(ivtc)
494 AG_GST_CHECK_PLUGIN(jp2kdecimator)
495 AG_GST_CHECK_PLUGIN(jpegformat)
496 AG_GST_CHECK_PLUGIN(librfb)
497 AG_GST_CHECK_PLUGIN(midi)
498 AG_GST_CHECK_PLUGIN(mpegdemux)
499 AG_GST_CHECK_PLUGIN(mpegtsdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsmux)
501 AG_GST_CHECK_PLUGIN(mpegpsmux)
502 AG_GST_CHECK_PLUGIN(mve)
503 AG_GST_CHECK_PLUGIN(mxf)
504 AG_GST_CHECK_PLUGIN(netsim)
505 AG_GST_CHECK_PLUGIN(nuvdemux)
506 AG_GST_CHECK_PLUGIN(onvif)
507 AG_GST_CHECK_PLUGIN(patchdetect)
508 AG_GST_CHECK_PLUGIN(pcapparse)
509 AG_GST_CHECK_PLUGIN(pnm)
510 AG_GST_CHECK_PLUGIN(rawparse)
511 AG_GST_CHECK_PLUGIN(removesilence)
512 AG_GST_CHECK_PLUGIN(sdi)
513 AG_GST_CHECK_PLUGIN(sdp)
514 AG_GST_CHECK_PLUGIN(segmentclip)
515 AG_GST_CHECK_PLUGIN(siren)
516 AG_GST_CHECK_PLUGIN(smooth)
517 AG_GST_CHECK_PLUGIN(speed)
518 AG_GST_CHECK_PLUGIN(subenc)
519 AG_GST_CHECK_PLUGIN(stereo)
520 AG_GST_CHECK_PLUGIN(tta)
521 AG_GST_CHECK_PLUGIN(videofilters)
522 AG_GST_CHECK_PLUGIN(videomeasure)
523 AG_GST_CHECK_PLUGIN(videoparsers)
524 AG_GST_CHECK_PLUGIN(videosignal)
525 AG_GST_CHECK_PLUGIN(vmnc)
526 AG_GST_CHECK_PLUGIN(y4m)
527 AG_GST_CHECK_PLUGIN(yadif)
529 dnl *** plug-ins to exclude ***
531 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
532 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
533 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
535 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
537 LIBS="$LIBS -framework VideoToolbox"
538 AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
539 AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
545 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
546 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
547 AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
550 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
551 if test "x$HAVE_IOS" = "xyes"; then
552 AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
555 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
556 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
557 AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
560 dnl disable gst plugins we might not be able to build on this
561 dnl platform: (ugly but minimally invasive)
562 dnl FIXME: maybe move to sys, or make work with winsock2
563 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
564 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
566 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
567 WINSOCK2_LIBS="-lws2_32"
568 AC_SUBST(WINSOCK2_LIBS)
571 if test "x$HAVE_PTHREAD_H" = "xyes"; then
572 DCCP_LIBS="$DCCP_LIBS $PTHREAD_LIBS"
575 AG_GST_DISABLE_PLUGIN(dccp)
579 AC_ARG_ENABLE([opengl],
580 [ --enable-opengl Enable Desktop OpenGL support @<:@default=auto@:>@],
581 [case "${enableval}" in
584 auto) NEED_GL=auto ;;
585 *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
586 esac],[NEED_GL=auto])
588 AC_ARG_WITH([opengl-module-name],
589 AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
590 if test x$with_opengl_module_name != x; then
591 AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
594 AC_ARG_ENABLE([gles2],
595 [ --enable-gles2 Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
596 [case "${enableval}" in
597 yes) NEED_GLES2=yes ;;
599 auto) NEED_GLES2=auto ;;
600 *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
601 esac],[NEED_GLES2=auto])
603 AC_ARG_WITH([gles2-module-name],
604 AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
605 if test x$with_gles2_module_name != x; then
606 AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
610 [ --enable-egl Enable EGL support @<:@default=auto@:>@],
611 [case "${enableval}" in
614 auto) NEED_EGL=auto ;;
615 *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
616 esac],[NEED_EGL=auto])
618 AC_ARG_WITH([egl-module-name],
619 AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
620 if test x$with_egl_module_name != x; then
621 AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
625 [ --enable-wgl Enable WGL support @<:@default=auto@:>@],
626 [case "${enableval}" in
629 auto) NEED_WGL=auto ;;
630 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
631 esac],[NEED_WGL=auto])
634 [ --enable-glx Enable GLX support @<:@default=auto@:>@],
635 [case "${enableval}" in
638 auto) NEED_GLX=auto ;;
639 *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
640 esac],[NEED_GLX=auto])
642 AC_ARG_ENABLE([cocoa],
643 [ --enable-cocoa Enable Cocoa support @<:@default=auto@:>@],
644 [case "${enableval}" in
645 yes) NEED_COCOA=yes ;;
647 auto) NEED_COCOA=auto ;;
648 *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
649 esac],[NEED_COCOA=auto])
652 [ --enable-x11 Enable x11 support @<:@default=auto@:>@],
653 [case "${enableval}" in
656 auto) NEED_X11=auto ;;
657 *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
658 esac],[NEED_X11=auto])
660 AC_ARG_ENABLE([wayland],
661 [ --enable-wayland Enable Wayland support (requires EGL) @<:@default=auto@:>@],
662 [case "${enableval}" in
663 yes) NEED_WAYLAND_EGL=yes ;;
664 no) NEED_WAYLAND_EGL=no ;;
665 auto) NEED_WAYLAND_EGL=auto ;;
666 *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
667 esac],[NEED_WAYLAND_EGL=auto])
669 AC_ARG_ENABLE([dispmanx],
670 [ --enable-dispmanx Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
671 [case "${enableval}" in
672 yes) NEED_DISPMANX=yes ;;
673 no) NEED_DISPMANX=no ;;
674 auto) NEED_DISPMANX=auto ;;
675 *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
676 esac],[NEED_DISPMANX=auto])
678 AG_GST_PKG_CHECK_MODULES(X, x11)
679 save_CPPFLAGS="$CPPFLAGS"
691 AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
692 AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
693 if test "x$HAVE_WGLEXT" = "xyes"; then
699 if test "x$NEED_GL" != "xno"; then
700 AG_GST_PKG_CHECK_MODULES(GL, gl)
701 if test "x$HAVE_GL" != "xyes"; then
702 AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
705 if test "x$NEED_GLES2" != "xno"; then
706 AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
707 if test "x$HAVE_GLES2" != "xyes"; then
708 AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
711 if test "x$NEED_EGL" != "xno"; then
712 AG_GST_PKG_CHECK_MODULES(EGL, egl)
713 if test "x$HAVE_EGL" != "xyes"; then
714 AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
721 dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
722 AC_CHECK_HEADER([EGL/fbdev_window.h],
725 AC_CHECK_LIB([Mali], [mali_image_create],
728 AC_CHECK_LIB([GLESv2], [glEnable],
730 AC_CHECK_HEADER([GLES2/gl2.h],
732 AC_CHECK_LIB([EGL], [eglGetProcAddress],
734 AC_CHECK_HEADER([EGL/egl.h],
738 EGL_LIBS="-lMali -lUMP"
740 AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
748 dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
749 dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
750 LIBS="$LIBS -lvcos -lvchiq_arm"
751 AC_CHECK_LIB([bcm_host], [bcm_host_init],
753 LIBS="$LIBS -lbcm_host"
754 AC_CHECK_HEADER(bcm_host.h,
756 LIBS="$LIBS -lGLESv2"
757 AC_CHECK_LIB([EGL], [eglGetProcAddress],
760 AC_CHECK_HEADER([EGL/egl.h],
762 AC_CHECK_LIB([GLESv2], [glEnable],
764 AC_CHECK_HEADER([GLES2/gl2.h],
769 EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
771 AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
782 PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
786 CPPFLAGS="$save_CPPFLAGS"
800 dnl Check for what the user asked for and what we could find
801 if test "x$HAVE_EGL" = "xno"; then
802 if test "x$NEED_EGL" = "xyes"; then
803 AC_MSG_ERROR([Could not find the required EGL libraries])
807 if test "x$HAVE_GL" = "xno"; then
808 if test "x$NEED_GL" = "xyes"; then
809 AC_MSG_ERROR([Could not find the required OpenGL libraries])
813 if test "x$HAVE_GLES2" = "xno"; then
814 if test "x$NEED_GLES2" = "xyes"; then
815 AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
819 dnl X, GLX and OpenGL
820 if test "x$HAVE_X" = "xno"; then
821 if test "x$NEED_GLX" = "xyes"; then
822 AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
824 if test "x$NEED_X11" = "xyes"; then
825 AC_MSG_ERROR([Could not find X11 development libraries])
828 if test "x$NEED_GL" != "xno"; then
829 if test "x$HAVE_GL" = "xno"; then
830 if test "x$NEED_GLX" = "xyes"; then
831 AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
835 if test "x$NEED_GLX" != "xno"; then
842 dnl check for DMABUF support
843 HAVE_DRM_FOURCC_HEADER=no
844 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
845 HAVE_DRM_FOURCC_HEADER=yes, )
847 HAVE_GST_ALLOCATORS=no
848 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
849 HAVE_GST_ALLOCATORS=yes, )
852 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
853 "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
854 "x$HAVE_EGL" = "xyes"; then
858 dnl check if we can include both GL and GLES2 at the same time
859 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
862 # pragma GCC diagnostic push
863 # pragma GCC diagnostic ignored \"-Wredundant-decls\"
865 #ifndef GL_GLEXT_PROTOTYPES
866 #define GL_GLEXT_PROTOTYPES 1
869 # include <OpenGLES/ES2/gl.h>
870 # include <OpenGLES/ES2/glext.h>
872 # include <GLES2/gl2.h>
873 # include <GLES2/gl2ext.h>
876 # include <OpenGL/OpenGL.h>
877 # include <OpenGL/gl.h>
878 # if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
879 # define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
880 # include <OpenGL/gl3.h>
884 # if __WIN32__ || _WIN32
885 # include <GL/glext.h>
888 int main (int argc, char **argv) { return 0; }
890 AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
891 save_CFLAGS="$CFLAGS"
892 CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
893 AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
894 #if !defined(GL_FALSE)
895 #error Failed to include GL headers
897 ]])],[ AC_MSG_RESULT(yes)
899 if test "x$NEED_GLES2" = "xyes"; then
900 if test "x$NEED_GL" = "xyes"; then
901 AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
903 AC_MSG_WARN([Disabling Desktop GL support])
907 AC_MSG_WARN([Disabling GL|ES 2.0 support])
911 CFLAGS="$save_CFLAGS"
914 #dnl Check for OpenGL
918 if test "x$NEED_WGL" = "xyes"; then
919 AC_MSG_ERROR([WGL is not available on Android])
921 if test "x$NEED_GLX" = "xyes"; then
922 AC_MSG_ERROR([GLX is not available on Android])
924 if test "x$NEED_GL" = "xyes"; then
925 AC_MSG_ERROR([GL is not available on Android])
927 if test "x$NEED_X11" = "xyes"; then
928 AC_MSG_ERROR([X11 is not available on Android])
930 if test "x$NEED_COCOA" = "xyes"; then
931 AC_MSG_ERROR([Cocoa is not available on Android])
935 if test "x$HAVE_GLES2" = "xyes"; then
936 if test "x$NEED_GLES2" != "xno"; then
937 GL_LIBS="$GL_LIBS -lGLESv2"
943 if test "x$HAVE_EGL" = "xyes"; then
944 if test "x$NEED_EGL" != "xno"; then
945 GL_LIBS="$GL_LIBS -lEGL"
950 if test "x$USE_EGL" != "xyes"; then
951 AC_MSG_ERROR([Need EGL on Android])
954 if test "x$USE_GLES2" != "xyes"; then
955 AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
958 HAVE_WINDOW_ANDROID=yes
960 *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
961 if test "x$NEED_WGL" = "xyes"; then
962 AC_MSG_ERROR([WGL is not available on unix])
965 if test "x$HAVE_X" = "xno"; then
966 if test "x$HAVE_WAYLAND_EGL" = "xno"; then
967 AC_MSG_WARN([X or Wayland is required for OpenGL support])
971 dnl check Desktop OpenGL
972 if test "x$HAVE_GL" = "xyes"; then
973 if test "x$NEED_GL" != "xno"; then
974 GL_LIBS="$GL_LIBS -lGL"
979 if test "x$HAVE_GLES2" = "xyes"; then
980 if test "x$NEED_GLES2" != "xno"; then
981 GL_LIBS="$GL_LIBS -lGLESv2"
986 if test "x$HAVE_X" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
987 if test "x$NEED_X11" != "xno"; then
988 GL_LIBS="$GL_LIBS $X_LIBS"
989 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
994 if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
995 if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
996 AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
998 if test "x$NEED_WAYLAND_EGL" != "xno"; then
999 HAVE_WINDOW_WAYLAND=yes
1000 GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1001 GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1006 if test "x$HAVE_EGL_RPI" = "xyes"; then
1007 if test "x$NEED_DISPMANX" != "xno"; then
1008 HAVE_WINDOW_DISPMANX=yes
1014 if test "x$HAVE_EGL" = "xno"; then
1015 if test "x$HAVE_GL" = "xno"; then
1016 AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1019 if test "x$NEED_EGL" != "xno"; then
1020 if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1021 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1022 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1029 if test "x$HAVE_IOS" = "xyes"; then
1030 if test "x$NEED_WGL" = "xyes"; then
1031 AC_MSG_ERROR([WGL is not available on iOS])
1033 if test "x$NEED_GLX" = "xyes"; then
1034 AC_MSG_ERROR([GLX is not available on iOS])
1036 if test "x$NEED_GL" = "xyes"; then
1037 AC_MSG_ERROR([GL is not available on iOS])
1039 if test "x$NEED_X11" = "xyes"; then
1040 AC_MSG_ERROR([X11 is not available on iOS])
1042 if test "x$NEED_COCOA" = "xyes"; then
1043 AC_MSG_ERROR([Cocoa is not available on iOS])
1045 if test "x$NEED_EGL" = "xyes"; then
1046 AC_MSG_ERROR([EGL is not available on iOS])
1049 GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1050 GL_CFLAGS="$GL_CFLAGS"
1053 HAVE_WINDOW_EAGL=yes
1055 ac_cv_type_GLsizeiptr=yes
1056 ac_cv_type_GLintptr=yes
1057 ac_cv_type_GLchar=yes
1059 dnl Only osx supports cocoa.
1060 if test "x$NEED_WGL" = "xyes"; then
1061 AC_MSG_ERROR([WGL is not available on Mac OS X])
1064 if test "x$NEED_COCOA" != "xno"; then
1065 GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1066 GL_CFLAGS="$GL_CFLAGS"
1068 HAVE_WINDOW_COCOA=yes
1072 if test "x$USE_GLX" = "xyes"; then
1073 if test "x$HAVE_X" = "xyes"; then
1074 if test "x$NEED_X11" != "xno"; then
1075 GL_LIBS="$GL_LIBS $X_LIBS"
1076 GL_CFLAGS="$GL_CFLAGS $X_CFLAGS"
1081 if test "x$HAVE_GL" = "xyes"; then
1082 if test "x$NEED_GL" != "xno"; then
1083 GL_LIBS="$GL_LIBS -lGL"
1089 if test "x$HAVE_EGL" = "xyes"; then
1090 if test "x$NEED_EGL" != "xno"; then
1091 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1092 GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1093 GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1100 if test "x$HAVE_GLES2" = "xyes"; then
1101 if test "x$NEED_GLES2" != "xno"; then
1102 GL_LIBS="$GL_LIBS -lGLESv2"
1109 if test "x$NEED_GLX" = "xyes"; then
1110 AC_MSG_ERROR([GLX is not available on Windows])
1112 if test "x$NEED_GLES2" = "xyes"; then
1113 AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1116 if test "x$HAVE_GL" = "xyes"; then
1117 if test "x$NEED_GL" != "xno"; then
1118 if test "x$HAVE_WGL" = "xyes"; then
1119 if test "$NEED_WGL" != "xno"; then
1120 GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1121 HAVE_WINDOW_WIN32=yes
1130 AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1141 GST_GL_HAVE_OPENGL=0
1145 if test "x$USE_OPENGL" = "xyes"; then
1146 GL_APIS="gl $GL_APIS"
1147 GST_GL_HAVE_OPENGL=1
1149 if test "x$USE_GLES2" = "xyes"; then
1150 GL_APIS="gles2 $GL_APIS"
1154 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1155 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1156 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1157 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1162 GST_GL_HAVE_WINDOW_X11=0
1163 GST_GL_HAVE_WINDOW_COCOA=0
1164 GST_GL_HAVE_WINDOW_WIN32=0
1165 GST_GL_HAVE_WINDOW_WAYLAND=0
1166 GST_GL_HAVE_WINDOW_ANDROID=0
1167 GST_GL_HAVE_WINDOW_DISPMANX=0
1168 GST_GL_HAVE_WINDOW_EAGL=0
1170 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1171 GL_WINDOWS="x11 $GL_WINDOWS"
1172 GST_GL_HAVE_WINDOW_X11=1
1174 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1175 GL_WINDOWS="cocoa $GL_WINDOWS"
1176 GST_GL_HAVE_WINDOW_COCOA=1
1178 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1179 GL_WINDOWS="win32 $GL_WINDOWS"
1180 GST_GL_HAVE_WINDOW_WIN32=1
1182 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1183 GL_WINDOWS="wayland $GL_WINDOWS"
1184 GST_GL_HAVE_WINDOW_WAYLAND=1
1186 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1187 GL_WINDOWS="android $GL_WINDOWS"
1188 GST_GL_HAVE_WINDOW_ANDROID=1
1190 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1191 GL_WINDOWS="dispmanx $GL_WINDOWS"
1192 GST_GL_HAVE_WINDOW_DISPMANX=1
1194 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1195 GL_WINDOWS="eagl $GL_WINDOWS"
1196 GST_GL_HAVE_WINDOW_EAGL=1
1199 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1200 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1201 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1202 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1203 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1204 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1205 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1206 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1211 GST_GL_HAVE_PLATFORM_EGL=0
1212 GST_GL_HAVE_PLATFORM_GLX=0
1213 GST_GL_HAVE_PLATFORM_WGL=0
1214 GST_GL_HAVE_PLATFORM_CGL=0
1215 GST_GL_HAVE_PLATFORM_EAGL=0
1217 if test "x$USE_EGL" = "xyes"; then
1218 GL_PLATFORMS="egl $GL_PLATFORMS"
1219 GST_GL_HAVE_PLATFORM_EGL=1
1221 if test "x$USE_GLX" = "xyes"; then
1222 GL_PLATFORMS="glx $GL_PLATFORMS"
1223 GST_GL_HAVE_PLATFORM_GLX=1
1225 if test "x$USE_WGL" = "xyes"; then
1226 GL_PLATFORMS="wgl $GL_PLATFORMS"
1227 GST_GL_HAVE_PLATFORM_WGL=1
1229 if test "x$USE_COCOA" = "xyes"; then
1230 GL_PLATFORMS="cgl $GL_PLATFORMS"
1231 GST_GL_HAVE_PLATFORM_CGL=1
1233 if test "x$USE_EAGL" = "xyes"; then
1234 GL_PLATFORMS="eagl $GL_PLATFORMS"
1235 GST_GL_HAVE_PLATFORM_EAGL=1
1238 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1239 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1240 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1241 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1242 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1243 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1246 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1247 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1250 dnl Check for no platforms/window systems
1251 if test "x$GL_APIS" = "x"; then
1252 AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1254 if test "x$GL_PLATFORMS" = "x"; then
1255 AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1257 if test "x$GL_WINDOWS" = "x"; then
1258 AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1261 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1276 HAVE_WINDOW_WIN32=no
1277 HAVE_WINDOW_DISPMANX=no
1278 HAVE_WINDOW_WAYLAND=no
1279 HAVE_WINDOW_ANDROID=no
1280 HAVE_WINDOW_COCOA=no
1286 AC_SUBST(GL_OBJCFLAGS)
1287 AC_SUBST(USE_OPENGL)
1290 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1291 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1292 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1293 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1294 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1295 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1296 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1298 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1299 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1300 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1301 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1302 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1303 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1304 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1305 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1306 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1308 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1310 dnl Check for some types that are not always present
1312 if test "x$USE_GLES2" = "xyes"; then
1313 GL_INCLUDES="$GL_INCLUDES
1314 #ifndef GL_GLEXT_PROTOTYPES
1315 #define GL_GLEXT_PROTOTYPES 1
1318 # include <OpenGLES/ES2/gl.h>
1319 # include <OpenGLES/ES2/glext.h>
1321 # include <GLES2/gl2.h>
1322 # include <GLES2/gl2ext.h>
1327 if test "x$USE_OPENGL" = "xyes"; then
1328 GL_INCLUDES="$GL_INCLUDES
1330 # include <OpenGL/OpenGL.h>
1331 # include <OpenGL/gl.h>
1334 # if __WIN32__ || _WIN32
1335 # include <GL/glext.h>
1341 GST_GL_HAVE_GLEGLIMAGEOES=0
1342 GST_GL_HAVE_GLCHAR=0
1343 GST_GL_HAVE_GLSIZEIPTR=0
1344 GST_GL_HAVE_GLINTPTR=0
1345 GST_GL_HAVE_GLSYNC=0
1346 GST_GL_HAVE_GLUINT64=0
1347 GST_GL_HAVE_GLINT64=0
1350 CFLAGS="$GL_CFLAGS $CFLAGS"
1352 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1353 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1354 GST_GL_HAVE_GLEGLIMAGEOES=1
1357 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1358 if test "x$ac_cv_type_GLchar" = "xyes"; then
1359 GST_GL_HAVE_GLCHAR=1
1362 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1363 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1364 GST_GL_HAVE_GLSIZEIPTR=1
1367 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1368 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1369 GST_GL_HAVE_GLINTPTR=1
1372 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1373 if test "x$ac_cv_type_GLsync" = "xyes"; then
1374 GST_GL_HAVE_GLSYNC=1
1377 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1378 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1379 GST_GL_HAVE_GLUINT64=1
1382 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1383 if test "x$ac_cv_type_GLint64" = "xyes"; then
1384 GST_GL_HAVE_GLINT64=1
1389 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1390 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1391 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1392 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1393 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1394 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1395 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1396 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1399 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1400 outfile=gstglconfig.h-tmp
1401 cat > $outfile <<\_______EOF
1404 * This is a generated file. Please modify `configure.ac'
1407 #ifndef __GST_GL_CONFIG_H__
1408 #define __GST_GL_CONFIG_H__
1410 #include <gst/gst.h>
1416 cat >>$outfile <<_______EOF
1420 cat >>$outfile <<_______EOF
1424 #endif /* __GST_GL_CONFIG_H__ */
1428 if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1429 AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1432 mv $outfile gst-libs/gst/gl/gstglconfig.h
1435 gl_config_defines='$GL_CONFIG_DEFINES'
1438 dnl libpng is optional
1439 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1440 if test "x$HAVE_PNG" = "xyes"; then
1441 AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1444 AC_SUBST(LIBPNG_LIBS)
1445 AC_SUBST(LIBPNG_CFLAGS)
1446 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1448 dnl libjpeg is optional
1449 AC_ARG_WITH(jpeg-mmx, [ --with-jpeg-mmx, path to MMX'ified JPEG library])
1451 if test x$with_jpeg_mmx != x; then
1452 LIBS="$LIBS -L$with_jpeg_mmx"
1454 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1455 JPEG_LIBS="$LIBS -ljpeg-mmx"
1457 if test x$HAVE_JPEG != xyes; then
1459 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1462 if test x$HAVE_JPEG = xyes; then
1463 AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1465 AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1470 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1473 VULKAN_CONFIG_DEFINES=""
1475 PKG_CHECK_MODULES(XCB, xcb >= 1.10, HAVE_XCB=yes, HAVE_XCB=no)
1477 AM_CONDITIONAL(USE_XCB, test "x$HAVE_XCB" = "xyes")
1478 if test "x$HAVE_XCB" = "xyes"; then
1479 VULKAN_CONFIG_DEFINES="$VULKAN_CONFIG_DEFINES
1480 #define GST_VULKAN_HAVE_WINDOW_XCB 1"
1483 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1484 outfile=vkconfig.h-tmp
1485 cat > $outfile <<\_______EOF
1488 * This is a generated file. Please modify `configure.ac'
1491 #ifndef __GST_VULKAN_CONFIG_H__
1492 #define __GST_VULKAN_CONFIG_H__
1494 #include <gst/gst.h>
1500 cat >>$outfile <<_______EOF
1501 $vulkan_config_defines
1504 cat >>$outfile <<_______EOF
1508 #endif /* __GST_VULKAN_CONFIG_H__ */
1512 if cmp -s $outfile ext/vulkan/vkconfig.h; then
1513 AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1516 mv $outfile ext/vulkan/vkconfig.h
1519 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1522 dnl *** sys plug-ins ***
1525 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1526 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1527 HAVE_DIRECTSOUND="no"
1528 save_CFLAGS="$CFLAGS"
1529 save_LDFLAGS="$LDFLAGS"
1531 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1532 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1533 LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1534 AC_MSG_CHECKING(for DirectSound LDFLAGS)
1535 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1536 #include <windows.h>
1539 #include <mmsystem.h>
1541 DXGetErrorString9 (0);
1542 DirectSoundCreate(NULL, NULL, NULL);
1544 [HAVE_DIRECTSOUND="yes"],
1545 [HAVE_DIRECTSOUND="no"])
1546 AC_MSG_RESULT($HAVE_DIRECTSOUND)
1548 LDFLAGS=$save_LDFLAGS
1551 if test "x$HAVE_DIRECTSOUND" = "xyes"; then
1552 dnl this is much more than we want
1553 DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1554 AC_SUBST(DIRECTX_CFLAGS)
1555 AC_SUBST(DIRECTX_LDFLAGS)
1556 AC_SUBST(DIRECTSOUND_LIBS)
1558 AC_SUBST(HAVE_DIRECTSOUND)
1562 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1563 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1565 save_CFLAGS="$CFLAGS"
1566 save_LDFLAGS="$LDFLAGS"
1568 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1569 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1570 LIBS="$LIBS -lole32 -lwinmm -lksuser"
1571 AC_MSG_CHECKING(for WASAPI LDFLAGS)
1572 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1573 #include <windows.h>
1575 #include <mmsystem.h>
1576 #include <mmdeviceapi.h>
1582 hr = CoInitialize(NULL);
1584 printf("CoInitialize failed: hr = 0x%08x", hr);
1589 // result = do_everything(argc, argv);
1595 [HAVE_WASAPI="yes"],
1597 AC_MSG_RESULT($HAVE_WASAPI)
1599 LDFLAGS=$save_LDFLAGS
1602 if test "x$HAVE_WASAPI" = "xyes"; then
1603 WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1604 AC_SUBST(WASAPI_LIBS)
1606 AC_SUBST(HAVE_WASAPI)
1610 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1611 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1613 save_CFLAGS="$CFLAGS"
1614 save_LDFLAGS="$LDFLAGS"
1616 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1617 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1618 LIBS="$LIBS -ld3d9 -lgdi32"
1619 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1620 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1621 #include <windows.h>
1624 Direct3DCreate9(D3D_SDK_VERSION);
1626 [HAVE_DIRECT3D="yes"],
1627 [HAVE_DIRECT3D="no"])
1628 AC_MSG_RESULT($HAVE_DIRECT3D)
1630 LDFLAGS=$save_LDFLAGS
1633 if test "x$HAVE_DIRECT3D" = "xyes"; then
1634 DIRECT3D_LIBS="-ld3d9 -lgdi32"
1635 AC_SUBST(DIRECT3D_LIBS)
1637 AC_SUBST(HAVE_DIRECT3D)
1641 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1642 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1643 HAVE_WINSCREENCAP="no"
1644 save_CFLAGS="$CFLAGS"
1645 save_LDFLAGS="$LDFLAGS"
1647 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1648 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1649 LIBS="$LIBS -ld3d9 -lgdi32"
1650 AC_MSG_CHECKING(for Direct3D LDFLAGS)
1651 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1652 #include <windows.h>
1655 Direct3DCreate9(D3D_SDK_VERSION);
1657 [HAVE_WINSCREENCAP="yes"],
1658 [HAVE_WINSCREENCAP="no"])
1659 AC_MSG_RESULT($HAVE_WINSCREENCAP)
1661 LDFLAGS=$save_LDFLAGS
1664 if test "x$HAVE_WINSCREENCAP" = "xyes"; then
1665 WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1666 AC_SUBST(WINSCREENCAP_LIBS)
1668 AC_SUBST(HAVE_WINSCREENCAP)
1672 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1673 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1675 save_CFLAGS="$CFLAGS"
1676 save_LDFLAGS="$LDFLAGS"
1678 CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1679 LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1680 LIBS="$LIBS -lole32 -luuid -lstrmiids"
1681 AC_MSG_CHECKING(for Winks LDFLAGS)
1682 AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1683 #include <windows.h>
1688 IGraphBuilder *pGraph = NULL;
1689 HRESULT hr = CoInitialize(NULL);
1690 hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1691 &IID_IGraphBuilder, (void **)&pGraph);
1698 AC_MSG_RESULT($HAVE_WINKS)
1700 LDFLAGS=$save_LDFLAGS
1703 if test "x$HAVE_WINKS" = "xyes"; then
1704 dnl this is much more than we want
1705 WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1706 AC_SUBST(DIRECTX_CFLAGS)
1707 AC_SUBST(DIRECTX_LDFLAGS)
1708 AC_SUBST(WINKS_LIBS)
1710 AC_SUBST(HAVE_WINKS)
1713 dnl *** Android Media ***
1714 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1715 HAVE_ANDROID_MEDIA="no"
1716 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1719 AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1722 HAVE_ANDROID_MEDIA="no"
1727 dnl *** AppleMedia (OS X and iOS) ***
1728 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1729 HAVE_APPLE_MEDIA="no"
1730 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1731 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1732 AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1733 dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1734 if test "x$HAVE_IOS" = "xno"; then
1735 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1739 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1744 HAVE_APPLE_MEDIA="no"
1749 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1750 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1751 PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1752 PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1753 AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1755 AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1764 dnl *** OS/X AVCVideoServices ***
1765 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1767 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1769 save_CPPFLAGS="$CPPFLAGS"
1770 CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1772 LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1773 AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1775 CPPFLAGS=$save_CPPFLAGS
1778 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1787 dnl check for shm_open (for shm plugin)
1788 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1789 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1790 if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1792 *-darwin* | *-macos10*)
1793 AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1797 AC_CHECK_LIB([rt], [shm_open],
1798 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1799 #include <sys/socket.h>
1802 AC_SUBST(SHM_LIBS, "-lrt")
1810 dnl check for Video CD
1811 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1812 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1813 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1816 dnl check for OpenSL ES
1817 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1818 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1819 AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1822 dnl *** UVC H264 ***
1823 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1824 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1825 AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1826 PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1827 AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1830 PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1831 AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1832 HAVE_LIBUSB="yes" ],
1834 if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1835 test "x$HAVE_GUDEV" = "xyes" && \
1836 test "x$HAVE_LIBUSB" = "xyes"; then
1842 AC_SUBST(LIBUDEV_CFLAGS)
1843 AC_SUBST(LIBUDEV_LIBS)
1844 AC_SUBST(LIBUSB_CFLAGS)
1845 AC_SUBST(LIBUSB_LIBS)
1848 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1849 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1850 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-1.0)
1851 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-1.0)
1852 AC_ARG_WITH([cuda-prefix],
1853 AS_HELP_STRING([--with-cuda-prefix],
1854 [Use the provided prefix for detecting the cuda installation]),
1855 [AS_IF([test "x$with_cuda_prefix" != "x"],
1856 [CUDA_PREFIX="$with_cuda_prefix"])],
1860 if test "x$CUDA_PREFIX" != "x"; then
1861 dnl only override if not already set
1862 if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1863 dnl this is an educated guess, user can always override these
1864 CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1865 CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1868 PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1869 PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1870 PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1871 AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1876 save_CPPFLAGS="$CPPFLAGS"
1877 CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1878 AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1879 AC_MSG_WARN([Could not find cuda.h]))
1880 AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1881 AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1882 CPPFLAGS=$save_CPPFLAGS
1884 dnl libcuda and libcudart libraries
1886 LIBS="$CUDA_LIBS $save_LIBS"
1887 HAVE_CUDART_LIB="no"
1888 AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1889 AC_MSG_WARN([Could not find cudart library])])
1891 AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1892 AC_MSG_WARN([Could not find cuda library])])
1895 dnl nvEncodeAPI.h header
1896 HAVE_NVENCODEAPI_H=no
1897 AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1898 save_CPPFLAGS="$CPPFLAGS"
1899 CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1900 AC_CHECK_HEADER([nvEncodeAPI.h], [
1901 AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1902 #if NVENCAPI_MAJOR_VERSION < 5
1903 #error "Need nvEncodeAPI.h >= 5.0"
1906 HAVE_NVENCODEAPI_H=yes
1908 AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1911 AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1912 AC_SUBST(NVENCODE_CFLAGS)
1913 CPPFLAGS="$save_CPPFLAGS"
1915 dnl libnvnidia-encode library
1916 HAVE_NVENCODE_LIB=no
1917 AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1919 LIBS="$NVENCODE_LIBS $saved_LIBS"
1920 AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1921 AC_MSG_WARN([Could not find library nvidia-encode]))
1922 NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1923 AC_SUBST(NVENCODE_LIBS)
1927 if test "x$HAVE_CUDA_H" = "xyes" \
1928 -a "x$HAVE_CUDART_H" = "xyes" \
1929 -a "x$HAVE_CUDA_LIB" = "xyes" \
1930 -a "x$HAVE_CUDART_LIB" = "xyes" \
1931 -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
1932 -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
1934 if test x"$USE_OPENGL" = x"yes"; then
1935 dnl cuda-gl interop header
1936 save_CPPFLAGS="$CPPFLAGS"
1937 CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
1938 AC_CHECK_HEADER([cuda_gl_interop.h], [
1939 USE_NVENC_GST_GL="yes"
1940 AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
1942 CPPFLAGS="$save_CPPFLAGS"
1948 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
1950 dnl check for tinyalsa
1951 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
1952 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
1953 AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
1956 dnl *** ext plug-ins ***
1957 dnl keep this list sorted alphabetically !
1959 if test "x$BUILD_EXTERNAL" = "xyes"; then
1961 dnl *** assrender ***
1962 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
1963 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
1964 PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
1965 HAVE_ASSRENDER="yes" ], [
1969 AC_SUBST(ASSRENDER_CFLAGS)
1970 AC_SUBST(ASSRENDER_LIBS)
1972 dnl *** vo-amrwbenc ***
1973 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
1974 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
1975 AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
1978 dnl *** vo-aacenc ***
1979 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
1980 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
1981 AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
1984 dnl *** apexsink ***
1985 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
1986 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
1987 PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [
1991 AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
1992 AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
1993 APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
1995 AC_SUBST(APEXSINK_CFLAGS)
1996 AC_SUBST(APEXSINK_LIBS)
2003 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2004 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2005 PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2008 AC_SUBST(BS2B_CFLAGS)
2013 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2014 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2017 AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2018 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2019 AC_MSG_RESULT($HAVE_BZ2)
2021 if test "x$HAVE_BZ2" = "xyes"; then
2029 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2030 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2031 # PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2034 # AC_SUBST(CAIRO_CFLAGS)
2035 # AC_SUBST(CAIRO_LIBS)
2038 dnl *** chromaprint ***
2039 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2040 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2041 PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2042 HAVE_CHROMAPRINT="no"
2044 AC_SUBST(CHROMAPRINT_CFLAGS)
2045 AC_SUBST(CHROMAPRINT_LIBS)
2049 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2050 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2051 PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2053 AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2054 AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2056 AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2057 [[#ifdef HAVE_SYS_TYPES_H
2058 # include <sys/types.h>
2060 #ifdef HAVE_NETINET_IN_H
2061 # include <netinet/in.h>
2064 AC_MSG_CHECKING([for socket support needed by curlsink])
2065 AC_MSG_RESULT($HAVE_CURL)
2069 AC_SUBST(CURL_CFLAGS)
2071 PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2073 AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2077 AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2078 AC_SUBST(SSH2_CFLAGS)
2080 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2083 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2084 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2085 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2086 HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2088 AC_SUBST(LIBXML2_CFLAGS)
2089 AC_SUBST(LIBXML2_LIBS)
2093 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2094 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2095 PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2096 if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2105 AC_SUBST(LIBDC1394_CFLAGS)
2106 AC_SUBST(LIBDC1394_LIBS)
2109 dnl *** decklink ***
2110 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2111 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2118 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2119 AC_CHECK_LIB(dl, dlopen,
2123 DECKLINK_LIBS="-lpthread -ldl"
2128 if test "x$HAVE_PTHREAD_H" = "xyes"; then
2129 AC_CHECK_LIB(dl, dlopen,
2133 DECKLINK_LIBS="-lpthread -ldl"
2134 HAVE_DECKLINK_OSX=yes
2143 AC_SUBST(DECKLINK_CXXFLAGS)
2144 AC_SUBST(DECKLINK_LIBS)
2146 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2148 dnl **** DirectFB ****
2149 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2150 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2151 PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2156 dnl **** Wayland ****
2157 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2158 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2159 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2160 PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0, [
2161 if test "x$wayland_scanner" != "x"; then
2164 AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2173 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2174 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2175 PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2176 HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2178 AC_SUBST(WEBP_CFLAGS)
2183 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2184 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2185 if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2186 PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2191 AC_SUBST(DAALA_CFLAGS)
2192 AC_SUBST(DAALA_LIBS)
2197 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2198 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2200 AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2201 DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2202 if test $HAVE_DTS = "no"; then
2203 AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2204 [ DTS_LIBS="-ldts_pic $LIBM"
2205 AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2211 dnl *** resindvd ***
2212 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2213 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2214 PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2219 dnl **** Free AAC Encoder (FAAC) ****
2220 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2221 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2222 AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2223 FAAC_LIBS="-lfaac $LIBM")
2227 dnl **** Free AAC Decoder (FAAD2) ****
2228 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2229 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2230 AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2231 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2232 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2234 #elif !defined(LATM)
2235 #error Not faad2 >= 2.7
2241 AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2251 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2252 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2253 if test "x$HAVE_FBDEV" != "xyes"; then
2254 AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2259 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2260 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2261 AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2262 FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2264 AC_SUBST(FLITE_CFLAGS)
2265 AC_SUBST(FLITE_LIBS)
2269 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2270 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2271 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2272 if test $HAVE_GSM != "yes"; then
2273 AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2274 if test $HAVE_GSM = "yes"; then
2275 AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2281 dnl *** fluidSynth ***
2282 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2283 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2284 PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2285 HAVE_FLUIDSYNTH="no"
2290 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2291 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2292 PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2295 AC_SUBST(KATE_CFLAGS)
2297 PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2300 AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2306 AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2307 AC_SUBST(TIGER_CFLAGS)
2308 AC_SUBST(TIGER_LIBS)
2309 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2312 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2313 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2314 AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2316 PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2317 if test $HAVE_LRDF = "yes"; then
2318 AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2321 AC_SUBST(LRDF_CFLAGS)
2325 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2326 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2327 PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
2328 AC_SUBST(SLV2_CFLAGS)
2332 dnl *** libde265 ***
2333 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2334 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2335 PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2336 AC_SUBST(LIBDE265_CFLAGS)
2337 AC_SUBST(LIBDE265_LIBS)
2341 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2342 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2343 dnl check with pkg-config first
2344 PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2348 AC_SUBST(LIBMMS_LIBS)
2352 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2353 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2354 PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2355 AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2358 AC_SUBST(SRTP_CFLAGS)
2362 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2363 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2364 PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1 libcrypto ], [
2366 AC_SUBST(DTLS_CFLAGS)
2374 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
2375 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
2387 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2388 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2389 if test "x$HAVE_CXX" != "xyes"; then
2390 AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2393 PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2395 AC_SUBST(MODPLUG_CFLAGS)
2396 AC_SUBST(MODPLUG_LIBS)
2400 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
2401 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
2403 PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMIC_REQUIRED,
2404 HAVE_MIMIC=yes, HAVE_MIMIC=no)
2405 AC_SUBST(MIMIC_CFLAGS)
2406 AC_SUBST(MIMIC_LIBS)
2409 dnl *** mjpegtools version info ***
2410 dnl some may prefer older version (given quirks above)
2411 dnl hm, no version info seems available within mjpegtools headers
2412 dnl and API really moves along
2414 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2415 mjpegtools_api=10601
2417 PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2418 mjpegtools_api=10800
2420 PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2421 mjpegtools_api=20000
2423 PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2424 dnl logging API changed in release candidates
2425 OLD_CFLAGS="$CFLAGS"
2427 CFLAGS="$MJPEG_CFLAGS"
2428 LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2429 AC_CHECK_FUNC(mjpeg_loglev_t, [
2430 mjpegtools_api=10903
2432 mjpegtools_api=10900
2434 CFLAGS="$OLD_CFLAGS"
2442 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2443 [mjpegtools API evolution])
2445 dnl *** mpeg2enc ***
2446 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2447 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2449 dnl we require a c++ compiler for this one
2450 if [ test x$HAVE_CXX = xyes ]; then
2451 dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2452 dnl since many distros include mjpegtools specifically without mplex
2453 dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2454 PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2455 dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2457 dnl switch over to c++ to test things
2459 OLD_CPPFLAGS="$CPPFLAGS"
2461 CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2462 CPPFLAGS="$CPPFLAGS_GOOD -I."
2464 mpeg2enc_headers_ok=no
2465 AC_CHECK_HEADER([mpeg2encoder.hh], [
2466 MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2468 LIBS="$LIBS $MPEG2ENC_LIBS"
2469 AC_MSG_CHECKING([for valid mpeg2enc objects])
2470 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2471 #include <mpeg2encoder.hh>
2472 #include <mpeg2encoptions.hh>
2478 MPEG2EncOptions *options = new MPEG2EncOptions ();
2479 MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2484 dnl so far so good, let's check more things:
2485 dnl mjpegtools-1.8.0 does not install the required
2486 dnl mpeg2syntaxcodes.h header by default, and a new release
2487 dnl is not in sight, so check for this oversight in case
2488 dnl distros or folks have fixed this themselves
2489 if test "$mjpegtools_api" -ge "10800"; then
2490 AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2491 mpeg2enc_headers_ok=yes
2493 mpeg2enc_headers_ok=no
2496 mpeg2enc_headers_ok=yes
2498 if test "x$mpeg2enc_headers_ok" = "xyes"; then
2501 CPPFLAGS="$CPPFLAGS_GOOD"
2502 AC_SUBST(MPEG2ENC_CFLAGS)
2503 AC_SUBST(MPEG2ENC_LIBS)
2510 CPPFLAGS="$OLD_CPPFLAGS"
2519 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2520 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2522 dnl we require a c++ compiler for this one
2523 if [ test x$HAVE_CXX = xyes ]; then
2524 dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2525 dnl since many distros include mjpegtools specifically without mplex
2526 dnl and mpeg2enc, we check for mplex on its own, too.
2527 dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2528 PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2529 dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2531 dnl switch over to c++ to test things
2533 OLD_CPPFLAGS="$CPPFLAGS"
2535 CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2536 CPPFLAGS="$CPPFLAGS_GOOD -I."
2537 AC_CHECK_HEADER(interact.hpp, [
2538 MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2540 LIBS="$LIBS $MPLEX_LIBS"
2541 OLD_LDFLAGS="$LDFLAGS"
2542 LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2543 dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2544 dnl don't want this here
2545 AC_MSG_CHECKING([for valid mplex objects])
2546 AC_RUN_IFELSE([AC_LANG_SOURCE([[
2548 #include <interact.hpp>
2549 #include <outputstrm.hpp>
2550 #include <multiplexor.hpp>
2555 class TestOutputStream : public OutputStream {
2557 TestOutputStream () : OutputStream () { }
2558 void Write (uint8_t *a, unsigned int b) { }
2559 void NextSegment () { }
2560 uint64_t SegmentSize () { }
2564 MultiplexJob *job = new MultiplexJob ();
2565 vector<IBitStream *> inputs;
2566 job->SetupInputStreams (inputs);
2567 TestOutputStream *out = new TestOutputStream ();
2568 Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2573 CPPFLAGS="$CPPFLAGS_GOOD"
2574 AC_SUBST(MPLEX_CFLAGS)
2575 AC_SUBST(MPLEX_LIBS)
2576 AC_SUBST(MPLEX_LDFLAGS)
2578 ],[AC_MSG_RESULT(no)],[])
2580 LDFLAGS="$OLD_LDFLAGS"
2582 CPPFLAGS="$OLD_CPPFLAGS"
2588 dnl *** musepack ***
2589 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2590 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2591 AC_CHECK_HEADER([mpc/mpcdec.h], [
2593 MUSEPACK_LIBS="-lmpcdec"
2594 AC_SUBST(MUSEPACK_LIBS)
2595 ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2597 MUSEPACK_LIBS="-lmpcdec"
2598 AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2599 AC_SUBST(MUSEPACK_LIBS)
2600 ], [HAVE_MUSEPACK="no"])])
2604 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
2605 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
2607 if test "x$HAVE_X" = "xyes"; then
2608 save_cppflags=$CFLAGS
2609 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
2610 AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
2611 NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
2612 CPPFLAGS="$save_cppflags"
2614 AC_SUBST(NAS_CFLAGS)
2619 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2620 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2621 PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.30.99, HAVE_NEON="yes", [
2624 AC_SUBST(NEON_CFLAGS)
2629 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2630 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2631 PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2634 AC_SUBST(OFA_CFLAGS)
2639 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2640 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2641 PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2644 AC_SUBST(OPENAL_CFLAGS)
2645 AC_SUBST(OPENAL_LIBS)
2649 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2650 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2651 dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2652 dnl and don't want the build to break when a new opencv version comes out.
2653 dnl Need to adjust this upwards once we know that our code compiles fine with
2654 dnl a new version and the no-backward-compatibility define. (There doesn't
2655 dnl seem to be a switch to suppress the warnings the cvcompat.h header
2657 PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv < 2.5.0 , [
2660 OLD_CPPFLAGS=$CPPFLAGS
2661 CPPFLAGS=$OPENCV_CFLAGS
2662 something_not_found=no
2663 AC_CHECK_HEADERS([opencv2/contrib/contrib.hpp \
2664 opencv2/core/core_c.h \
2665 opencv2/core/types_c.h \
2666 opencv2/core/version.hpp \
2667 opencv2/highgui/highgui_c.h \
2668 opencv2/imgproc/imgproc.hpp \
2669 opencv2/imgproc/imgproc_c.h \
2670 opencv2/legacy/compat.hpp \
2671 opencv2/legacy/legacy.hpp \
2672 opencv2/objdetect/objdetect.hpp \
2673 opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2674 CPPFLAGS=$OLD_CPPFLAGS
2677 if test $something_not_found = "yes"; then
2678 AC_MSG_RESULT([not all opencv2 headers were found])
2686 OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2687 AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2688 AC_SUBST(OPENCV_PREFIX)
2689 AC_SUBST(OPENCV_CFLAGS)
2690 AC_SUBST(OPENCV_LIBS)
2691 dnl the OpenCV prefix is used at runtime for some object properties, and also
2692 dnl used here to detect which directory is the correct one. For the second
2693 dnl case, make sure the right sysroot is used, ensuring correct behavior
2694 dnl during cross compilation.
2695 if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2696 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2698 AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2703 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2704 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2705 AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2708 dnl *** openh264 ***
2709 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2710 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2711 AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2714 dnl *** OpenJPEG ***
2715 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2716 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2720 save_CFLAGS="$CFLAGS"
2721 OPENJPEG_LIBS="-lopenjp2"
2722 LIBS="$LIBS $OPENJPEG_LIBS"
2723 CFLAGS="$CFLAGS $OPENJPEG_CFLAGS"
2725 AC_LANG_PROGRAM([#include <openjpeg-2.0/openjpeg.h>],
2726 [return (int) *opj_version ();])
2727 ], [HAVE_OPENJPEG=yes], [HAVE_OPENJPEG=no])
2729 CFLAGS="$save_CFLAGS"
2731 if test x"$HAVE_OPENJPEG" = x"no"; then
2733 PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2734 HAVE_OPENJPEG="yes",
2735 AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2737 if test x"$HAVE_OPENJPEG" = x"yes"; then
2738 AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2741 AC_SUBST(OPENJPEG_CFLAGS)
2742 AC_SUBST(OPENJPEG_LIBS)
2746 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2747 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2748 PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2749 AC_SUBST(OPENNI2_CFLAGS)
2750 AC_SUBST(OPENNI2_LIBS)
2754 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2755 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2756 PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2757 AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2762 AC_SUBST(OPUS_CFLAGS)
2767 translit(dnm, m, l) AM_CONDITIONAL(USE_PVR, true)
2768 AG_GST_CHECK_FEATURE(PVR, [pvrvideosink], pvr, [
2769 PKG_CHECK_MODULES([PVR], [libtimemmgr], HAVE_PVR=yes, HAVE_PVR=no)
2770 AC_SUBST(PVR_CFLAGS)
2774 AC_ARG_WITH([pvr-external-headers],
2775 AS_HELP_STRING([--with-pvr-external-headers],[Use system installed PVR2D headers]),
2776 [AS_IF([test "x$with_pvr_external_headers" = "xno"],
2777 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])],
2778 [PVR_CFLAGS="$PVR_CFLAGS -I\$(srcdir)/pvr_includes"])
2781 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2782 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2783 AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2787 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2788 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2791 if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2798 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2799 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2800 PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2801 AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2806 PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2808 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2809 PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2810 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2811 GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2813 ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2815 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2816 PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2817 GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2818 GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2820 ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2822 if test "x$GDK_WINDOWING" = "xyes"; then
2823 AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2830 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2833 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2834 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2835 PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2836 QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2837 QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2838 AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2839 AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2840 AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2841 if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2842 AC_MSG_WARN([One of the required qt build programs was not found])
2846 HAVE_QT_WINDOWING="no"
2847 if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2848 PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2849 AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2850 QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2851 QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2852 HAVE_QT_WINDOWING="yes"
2853 ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2855 if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2856 PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2857 AC_DEFINE([HAVE_QT_WAYLAND], [],
2858 [Define if Qt Wayland integration is installed])
2859 QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2860 QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2861 HAVE_QT_WINDOWING="yes"
2862 ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2864 if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2865 PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2866 # c++ on android requires a standard library and there are multiple
2867 # choices. cerbero provides a pkg-config file the describes a choice
2868 # so try to use that. Outside cerbero one has to pass these flags
2869 # manually for the library one is using
2870 PKG_CHECK_MODULES(GNUSTL, gnustl, [
2871 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2872 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2874 AC_MSG_NOTICE([Could not find Standard C++ library])])
2876 AC_DEFINE([HAVE_QT_ANDROID], [],
2877 [Define if Qt Android integration is installed])
2878 QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2879 QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2880 HAVE_QT_WINDOWING="yes"
2881 ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2883 if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2884 PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2885 AC_DEFINE([HAVE_QT_MAC], [],
2886 [Define if Qt Mac integration is installed])
2887 QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2888 QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2889 QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2890 HAVE_QT_WINDOWING="yes"
2891 ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2893 if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2894 if test "x$HAVE_IOS" = "xyes"; then
2895 # iOS doesn't have its own extras package so if we have the core
2896 # modules we are good to go
2897 AC_DEFINE([HAVE_QT_IOS], [],
2898 [Define if Qt iOS integration is installed])
2899 HAVE_QT_WINDOWING="yes"
2902 if test "x$HAVE_QT_WINDOWING" = "xno"; then
2903 AC_MSG_WARN([Could not find any Qt Windowing integration])
2906 AC_SUBST([QT_CFLAGS])
2915 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
2916 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
2918 AC_CHECK_HEADER(vulkan/vulkan.h, [
2919 AC_CHECK_LIB(vulkan, vkCreateDevice, [
2920 VULKAN_LIBS="-lvulkan"
2921 AC_SUBST(VULKAN_LIBS)
2922 dnl TODO check platform support (x11, win32, wayland, android, etc)
2923 if test "x$HAVE_XCB" = "xyes"; then
2930 dnl *** libvisual ***
2931 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBVISUAL, true)
2932 AG_GST_CHECK_FEATURE(LIBVISUAL, [libvisual visualization library], libvisual, [
2933 AG_GST_PKG_CHECK_MODULES(LIBVISUAL, libvisual-0.4 >= 0.4.0)
2934 if test x$HAVE_LIBVISUAL = xyes; then
2935 LIBVIS_PLUGINSDIR="`$PKG_CONFIG --variable=pluginsbasedir libvisual-0.4`"
2937 AC_MSG_NOTICE([libvisual pluginsdir: $LIBVIS_PLUGINSDIR])
2938 if test x$LIBVIS_PLUGINSDIR != x; then
2939 AC_DEFINE_UNQUOTED(LIBVISUAL_PLUGINSBASEDIR,
2940 "$LIBVIS_PLUGINSDIR",
2941 [directory in which the detected libvisual's plugins are located])
2945 dnl *** timidity ***
2946 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
2947 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
2948 PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
2949 HAVE_TIMIDITY="yes",
2950 AC_MSG_CHECKING([for timidity.cfg])
2952 if test -r /etc/timidity.cfg; then
2953 timidity_cfg=/etc/timidity.cfg
2954 elif test -r /etc/timidity/timidity.cfg; then
2955 timidity_cfg=/etc/timidity/timidity.cfg
2956 elif test -r /usr/share/timidity/timidity.cfg; then
2957 timidity_cfg=/usr/share/timidity/timidity.cfg
2958 elif test -r /usr/local/share/timidity/timidity.cfg; then
2959 timidity_cfg=/usr/local/share/timidity/timidity.cfg
2961 if test "x$timidity_cfg" != "x"; then
2962 AC_MSG_RESULT($timidity_cfg)
2963 AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
2965 AC_MSG_RESULT([not found])
2970 AC_SUBST(TIMIDITY_CFLAGS)
2971 AC_SUBST(TIMIDITY_LIBS)
2974 dnl *** teletextdec ***
2975 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
2976 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
2977 AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
2980 dnl *** wildmidi ***
2981 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
2982 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
2983 AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
2986 WILDMIDI_LIBS="-lWildMidi")
2987 AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
2989 if test "x$HAVE_WILDMIDI" = "xyes"; then
2991 WILDMIDI_LIBS=-lWildMidi
2992 AC_MSG_NOTICE(compiling gstWildMidi)
2996 AC_MSG_WARN(no WildMidi library found (libWildMidi))
2998 AC_SUBST(WILDMIDI_CFLAGS)
2999 AC_SUBST(WILDMIDI_LIBS)
3003 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
3004 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
3005 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
3008 dnl **** Smooth Streaming ****
3009 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3010 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3011 PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3013 HAVE_SMOOTHSTREAMING="yes"],
3015 HAVE_SMOOTHSTREAMING="no"])
3016 AC_SUBST(LIBXML2_CFLAGS)
3017 AC_SUBST(LIBXML2_LIBS)
3021 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3022 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3023 PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3024 AC_SUBST(SNDFILE_CFLAGS)
3025 AC_SUBST(SNDFILE_LIBS)
3028 dnl *** soundtouch ***
3029 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3030 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3031 dnl We only need -lBPM on soundtouch < 1.4
3032 dnl We check for libSoundTouch since Debian used it before upstream
3033 dnl added a pkgconfig file.
3034 HAVE_SOUNDTOUCH_1_4=yes
3035 PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3036 [HAVE_SOUNDTOUCH=yes],
3037 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3038 [HAVE_SOUNDTOUCH=yes],
3039 [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3040 [HAVE_SOUNDTOUCH=yes
3041 HAVE_SOUNDTOUCH_1_4=no
3042 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3043 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3044 [HAVE_SOUNDTOUCH=yes],
3045 [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3046 [HAVE_SOUNDTOUCH=yes
3047 HAVE_SOUNDTOUCH_1_4=no
3048 SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3049 HAVE_SOUNDTOUCH=no)])])])])
3050 AC_SUBST(SOUNDTOUCH_CFLAGS)
3051 AC_SUBST(SOUNDTOUCH_LIBS)
3052 if test "x$HAVE_CXX" != "xyes"; then
3053 USE_SOUNDTOUCH=false
3054 AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3056 if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3057 AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3058 [Defined if the available libSoundTouch is >= 1.4])
3063 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3064 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3065 AC_CHECK_HEADER(openspc.h, [
3066 AC_CHECK_LIB(openspc, OSPC_Init, [
3067 SPC_LIBS="-lopenspc"
3079 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3080 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3081 AC_CHECK_HEADER(gme/gme.h, [
3082 AC_CHECK_LIB(gme, gme_new_emu, [
3093 if test "x$HAVE_GME" = "xyes"; then
3094 AC_CHECK_LIB(gme, gme_enable_accuracy, [
3095 AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3101 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
3102 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
3104 AC_CHECK_HEADER(xvid.h, [
3106 LIBS="$PTHREAD_LIBS $LIBM"
3107 AC_CHECK_LIB(xvidcore, xvid_encore, [
3108 AC_CHECK_LIB(xvidcore, xvid_decore, [
3109 AC_CHECK_LIB(xvidcore, xvid_global, [
3110 AC_MSG_CHECKING([for up-to-date XviD API version])
3111 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <xvid.h>]], [[
3112 #if XVID_API_MAJOR(XVID_API) != 4
3113 #error "Incompatible XviD API version"
3115 #if XVID_API_MAJOR(XVID_API) == 4 && XVID_API_MINOR(XVID_API) < 3
3116 #error "Incompatible XviD API version"
3118 ]])],[ AC_MSG_RESULT(yes)
3119 XVID_LIBS="-lxvidcore $LIBM"
3122 ],[AC_MSG_RESULT(no) ])
3131 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3132 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3133 AC_MSG_CHECKING([Checking for up to date dvb installation])
3134 AC_CHECK_HEADER(linux/dvb/version.h, [
3135 AC_MSG_CHECKING([for up-to-date dvb API])
3136 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3137 #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3138 #error "Incompatible dvb API"
3140 ]])], [ AC_MSG_RESULT(yes)
3142 ], [ AC_MSG_RESULT(no)
3149 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
3150 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
3151 AC_MSG_CHECKING([Checking for windows internet support])
3152 AC_CHECK_HEADERS([windows.h wininet.h],
3153 [HAVE_WININET="yes"], [HAVE_WININET="no"],
3154 [AC_INCLUDES_DEFAULT
3155 #include <windows.h>])
3159 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3160 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3161 AC_MSG_CHECKING([Checking for ACM support])
3162 AC_CHECK_HEADERS([windows.h msacm.h],
3164 AC_SUBST(ACMENC_CFLAGS)
3165 AC_SUBST(ACMMP3DEC_CFLAGS)
3167 [AC_INCLUDES_DEFAULT
3168 #include <windows.h>])
3172 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3173 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3178 PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3180 if test "$HAVE_VDPAU" = "no"; then
3181 saved_CPPFLAGS="$CPPFLAGS"
3182 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3184 if test -z "$HAVE_VDPAU_H"; then
3185 dnl Didn't find VDPAU header straight away.
3186 dnl Try /usr/include/nvidia. Need to clear caching vars first
3187 AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3188 unset ac_cv_header_vdpau_vdpau_h
3189 unset ac_cv_header_vdpau_vdpau_x11_h
3190 VDPAU_CFLAGS="-I/usr/include/nvidia"
3191 VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3192 CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3193 AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3196 AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3198 if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3199 dnl Found the headers - look for the lib
3200 AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3202 LIBS="$VDPAU_LIBS $saved_LIBS"
3203 AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3209 if test "$HAVE_VDPAU" = "yes"; then
3210 AC_MSG_NOTICE([Found up to date VDPAU installation])
3211 AC_SUBST(VDPAU_CFLAGS)
3212 AC_SUBST(VDPAU_LIBS)
3217 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3218 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3219 AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3222 dnl *** schroedinger ***
3223 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3224 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3225 AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3229 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3230 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3231 AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3235 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3236 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3237 AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3241 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3242 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3243 PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3244 HAVE_SPANDSP="yes" ], [
3248 AC_SUBST(SPANDSP_CFLAGS)
3249 AC_SUBST(SPANDSP_LIBS)
3252 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDIO, true)
3253 AG_GST_CHECK_FEATURE(SNDIO, [sndio audio], sndio, [
3254 AC_CHECK_HEADER(sndio.h, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3255 if test "x$HAVE_SNDIO" = "xyes"; then
3256 AC_CHECK_LIB(sndio, sio_open, HAVE_SNDIO="yes", HAVE_SNDIO="no")
3257 if test "x$HAVE_SNDIO" = "xyes"; then
3259 AC_SUBST(SNDIO_LIBS)
3264 dnl *** hls-crypto ***
3265 AC_ARG_WITH([hls-crypto],
3266 AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3267 which cryptographic library version to compile against for hls (default: auto)
3269 AS_CASE([$with_hls_crypto],
3273 [with_hls_crypto=auto]
3279 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3280 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3281 AS_CASE([$with_hls_crypto],
3283 PKG_CHECK_MODULES(NETTLE, nettle, [
3284 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3286 ],[AC_MSG_ERROR([Could not find nettle library])])
3289 AM_PATH_LIBGCRYPT([1.2.0], [
3290 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3292 ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3295 PKG_CHECK_MODULES(OPENSSL, openssl, [
3296 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3298 ],[AC_MSG_ERROR([Could not find openssl library])])
3301 dnl Try to find a valid crypto library
3302 PKG_CHECK_MODULES(NETTLE, nettle, [
3303 AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3306 AM_PATH_LIBGCRYPT([1.2.0], [
3307 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3310 PKG_CHECK_MODULES(OPENSSL, openssl, [
3311 AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3322 dnl *** x265 (H.265/HEVC encoder) ***
3323 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3324 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3325 AG_GST_PKG_CHECK_MODULES(X265, x265)
3330 dnl not building plugins with external dependencies,
3331 dnl but we still need to set the conditionals
3333 AM_CONDITIONAL(USE_ASSRENDER, false)
3334 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3335 AM_CONDITIONAL(USE_VOAACENC, false)
3336 AM_CONDITIONAL(USE_APEXSINK, false)
3337 AM_CONDITIONAL(USE_BS2B, false)
3338 AM_CONDITIONAL(USE_BZ2, false)
3339 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3340 AM_CONDITIONAL(USE_CURL, false)
3341 AM_CONDITIONAL(USE_SSH2, false)
3342 AM_CONDITIONAL(USE_DASH, false)
3343 AM_CONDITIONAL(USE_DC1394, false)
3344 AM_CONDITIONAL(USE_DECKLINK, false)
3345 AM_CONDITIONAL(DECKLINK_OSX, false)
3346 AM_CONDITIONAL(USE_DIRECTFB, false)
3347 AM_CONDITIONAL(USE_WAYLAND, false)
3348 AM_CONDITIONAL(USE_DAALA, false)
3349 AM_CONDITIONAL(USE_DTS, false)
3350 AM_CONDITIONAL(USE_EXIF, false)
3351 AM_CONDITIONAL(USE_RESINDVD, false)
3352 AM_CONDITIONAL(USE_FAAC, false)
3353 AM_CONDITIONAL(USE_FAAD, false)
3354 AM_CONDITIONAL(USE_FBDEV, false)
3355 AM_CONDITIONAL(USE_FLITE, false)
3356 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3357 AM_CONDITIONAL(USE_GL, false)
3358 AM_CONDITIONAL(USE_GSM, false)
3359 AM_CONDITIONAL(USE_GTK3, false)
3360 AM_CONDITIONAL(USE_GTK3_GL, false)
3361 AM_CONDITIONAL(USE_HLS, false)
3362 AM_CONDITIONAL(USE_KATE, false)
3363 AM_CONDITIONAL(USE_TIGER, false)
3364 AM_CONDITIONAL(USE_LADSPA, false)
3365 AM_CONDITIONAL(USE_LV2, false)
3366 AM_CONDITIONAL(USE_LIBDE265, false)
3367 AM_CONDITIONAL(USE_LIBMMS, false)
3368 AM_CONDITIONAL(USE_LINSYS, false)
3369 AM_CONDITIONAL(USE_MODPLUG, false)
3370 AM_CONDITIONAL(USE_MIMIC, false)
3371 AM_CONDITIONAL(USE_MPEG2ENC, false)
3372 AM_CONDITIONAL(USE_MPLEX, false)
3373 AM_CONDITIONAL(USE_MUSEPACK, false)
3374 AM_CONDITIONAL(USE_NAS, false)
3375 AM_CONDITIONAL(USE_NEON, false)
3376 AM_CONDITIONAL(USE_OFA, false)
3377 AM_CONDITIONAL(USE_OPENAL, false)
3378 AM_CONDITIONAL(USE_OPENCV, false)
3379 AM_CONDITIONAL(USE_OPENEXR, false)
3380 AM_CONDITIONAL(USE_OPENJPEG, false)
3381 AM_CONDITIONAL(USE_OPENNI2, false)
3382 AM_CONDITIONAL(USE_OPUS, false)
3383 AM_CONDITIONAL(USE_PVR, false)
3384 AM_CONDITIONAL(USE_QT, false)
3385 AM_CONDITIONAL(USE_LIBVISUAL, false)
3386 AM_CONDITIONAL(USE_TIMIDITY, false)
3387 AM_CONDITIONAL(USE_WILDMIDI, false)
3388 AM_CONDITIONAL(USE_SDL, false)
3389 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3390 AM_CONDITIONAL(USE_SNDFILE, false)
3391 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3392 AM_CONDITIONAL(USE_SPANDSP, false)
3393 AM_CONDITIONAL(USE_SPC, false)
3394 AM_CONDITIONAL(USE_SRTP, false)
3395 AM_CONDITIONAL(USE_GME, false)
3396 AM_CONDITIONAL(USE_XVID, false)
3397 AM_CONDITIONAL(USE_DVB, false)
3398 AM_CONDITIONAL(USE_WININET, false)
3399 AM_CONDITIONAL(USE_ACM, false)
3400 AM_CONDITIONAL(USE_VDPAU, false)
3401 AM_CONDITIONAL(USE_SBC, false)
3402 AM_CONDITIONAL(USE_SCHRO, false)
3403 AM_CONDITIONAL(USE_ZBAR, false)
3404 AM_CONDITIONAL(USE_RSVG, false)
3405 AM_CONDITIONAL(USE_RTMP, false)
3406 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3407 AM_CONDITIONAL(USE_SNDIO, false)
3408 AM_CONDITIONAL(USE_UVCH264, false)
3409 AM_CONDITIONAL(USE_WEBP, false)
3410 AM_CONDITIONAL(USE_OPENH264, false)
3411 AM_CONDITIONAL(USE_X265, false)
3412 AM_CONDITIONAL(USE_DTLS, false)
3414 fi dnl of EXT plugins
3416 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3419 dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ...
3420 dnl GST_*: flags shared by built objects to link against GStreamer
3421 dnl GST_ALL_LDFLAGS: linker flags shared by all
3422 dnl GST_LIB_LDFLAGS: additional linker flags for all libaries
3423 dnl GST_LT_LDFLAGS: library versioning of our libraries
3424 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3426 dnl GST_OPTION_CFLAGS
3427 if test "x$USE_DEBUG" = xyes; then
3430 AC_SUBST(PROFILE_CFLAGS)
3432 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3433 dnl Define _only_ during CVS (not pre-releases or releases)
3434 DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3436 DEPRECATED_CFLAGS=""
3438 AC_SUBST(DEPRECATED_CFLAGS)
3440 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3441 dnl at make time with e.g. make ERROR_CFLAGS=""
3442 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3443 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3444 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3445 AC_SUBST(GST_OPTION_CFLAGS)
3446 AC_SUBST(GST_OPTION_CXXFLAGS)
3447 AC_SUBST(GST_OPTION_OBJCFLAGS)
3449 dnl FIXME: do we want to rename to GST_ALL_* ?
3450 dnl prefer internal headers to already installed ones
3451 dnl also add builddir include for enumtypes and marshal
3452 dnl add GST_OPTION_CFLAGS, but overridable
3453 GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API"
3454 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3455 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3456 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3457 AC_SUBST(GST_CFLAGS)
3458 AC_SUBST(GST_CXXFLAGS)
3459 AC_SUBST(GST_OBJCFLAGS)
3461 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3462 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3463 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3464 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3465 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3466 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3468 dnl LDFLAGS really should only contain flags, not libs - they get added before
3469 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3470 GST_ALL_LDFLAGS="-no-undefined"
3471 if test "x${enable_Bsymbolic}" = "xyes"; then
3472 GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3474 AC_SUBST(GST_ALL_LDFLAGS)
3477 dnl linker flags shared by all libraries
3478 dnl LDFLAGS modifier defining exported symbols from built libraries
3479 dnl (export _gst_foo but not __gst_foo)
3480 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3481 AC_SUBST(GST_LIB_LDFLAGS)
3483 dnl this really should only contain flags, not libs - they get added before
3484 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3485 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3486 AC_SUBST(GST_PLUGIN_LDFLAGS)
3488 dnl *** output files ***
3490 $MKDIR_P tests/check/orc
3498 gst-plugins-bad.spec
3500 gst/accurip/Makefile
3501 gst/adpcmdec/Makefile
3502 gst/adpcmenc/Makefile
3504 gst/videoframe_audiolevel/Makefile
3506 gst/audiofxbad/Makefile
3507 gst/audiomixer/Makefile
3508 gst/audiovisualizers/Makefile
3509 gst/autoconvert/Makefile
3511 gst/camerabin2/Makefile
3512 gst/cdxaparse/Makefile
3513 gst/coloreffects/Makefile
3514 gst/dataurisrc/Makefile
3516 gst/debugutils/Makefile
3517 gst/dvbsuboverlay/Makefile
3519 gst/faceoverlay/Makefile
3520 gst/festival/Makefile
3521 gst/fieldanalysis/Makefile
3522 gst/freeverb/Makefile
3524 gst/gaudieffects/Makefile
3525 gst/geometrictransform/Makefile
3527 gst/hdvparse/Makefile
3530 gst/interlace/Makefile
3531 gst/ivfparse/Makefile
3533 gst/jp2kdecimator/Makefile
3534 gst/jpegformat/Makefile
3537 gst/mpegdemux/Makefile
3538 gst/mpegtsdemux/Makefile
3539 gst/mpegtsmux/Makefile
3540 gst/mpegtsmux/tsmux/Makefile
3541 gst/mpegpsmux/Makefile
3545 gst/nuvdemux/Makefile
3547 gst/patchdetect/Makefile
3548 gst/pcapparse/Makefile
3550 gst/rawparse/Makefile
3551 gst/removesilence/Makefile
3554 gst/segmentclip/Makefile
3561 gst/videofilters/Makefile
3562 gst/videomeasure/Makefile
3563 gst/videoparsers/Makefile
3564 gst/videosignal/Makefile
3568 gst/compositor/Makefile
3570 gst-libs/gst/Makefile
3571 gst-libs/gst/adaptivedemux/Makefile
3572 gst-libs/gst/basecamerabinsrc/Makefile
3573 gst-libs/gst/gl/Makefile
3574 gst-libs/gst/gl/android/Makefile
3575 gst-libs/gst/gl/cocoa/Makefile
3576 gst-libs/gst/gl/dispmanx/Makefile
3577 gst-libs/gst/gl/glprototypes/Makefile
3578 gst-libs/gst/gl/eagl/Makefile
3579 gst-libs/gst/gl/egl/Makefile
3580 gst-libs/gst/gl/wayland/Makefile
3581 gst-libs/gst/gl/win32/Makefile
3582 gst-libs/gst/gl/x11/Makefile
3583 gst-libs/gst/insertbin/Makefile
3584 gst-libs/gst/interfaces/Makefile
3585 gst-libs/gst/codecparsers/Makefile
3586 gst-libs/gst/mpegts/Makefile
3587 gst-libs/gst/uridownloader/Makefile
3588 gst-libs/gst/wayland/Makefile
3589 gst-libs/gst/base/Makefile
3590 gst-libs/gst/player/Makefile
3591 gst-libs/gst/video/Makefile
3592 gst-libs/gst/audio/Makefile
3594 sys/dshowdecwrapper/Makefile
3596 sys/acmmp3dec/Makefile
3597 sys/androidmedia/Makefile
3598 sys/applemedia/Makefile
3599 sys/applemedia-nonpublic/Makefile
3602 sys/d3dvideosink/Makefile
3603 sys/decklink/Makefile
3604 sys/directsound/Makefile
3605 sys/dshowsrcwrapper/Makefile
3606 sys/dshowvideosink/Makefile
3611 sys/opensles/Makefile
3613 sys/tinyalsa/Makefile
3614 sys/uvch264/Makefile
3619 sys/wininet/Makefile
3621 sys/winscreencap/Makefile
3623 tests/check/Makefile
3624 tests/files/Makefile
3625 tests/examples/Makefile
3626 tests/examples/avsamplesink/Makefile
3627 tests/examples/camerabin2/Makefile
3628 tests/examples/codecparsers/Makefile
3629 tests/examples/directfb/Makefile
3630 tests/examples/gl/Makefile
3631 tests/examples/gl/cocoa/Makefile
3632 tests/examples/gl/clutter/Makefile
3633 tests/examples/gl/generic/Makefile
3634 tests/examples/gl/generic/cube/Makefile
3635 tests/examples/gl/generic/cubeyuv/Makefile
3636 tests/examples/gl/generic/doublecube/Makefile
3637 tests/examples/gl/generic/recordgraphic/Makefile
3638 tests/examples/gl/gtk/Makefile
3639 tests/examples/gl/gtk/gtkvideooverlay/Makefile
3640 tests/examples/gl/gtk/3dvideo/Makefile
3641 tests/examples/gl/gtk/filternovideooverlay/Makefile
3642 tests/examples/gl/gtk/filtervideooverlay/Makefile
3643 tests/examples/gl/gtk/fxtest/Makefile
3644 tests/examples/gl/gtk/switchvideooverlay/Makefile
3645 tests/examples/gl/qt/Makefile
3646 tests/examples/gl/sdl/Makefile
3647 tests/examples/gtk/Makefile
3648 tests/examples/mpegts/Makefile
3649 tests/examples/mxf/Makefile
3650 tests/examples/opencv/Makefile
3651 tests/examples/uvch264/Makefile
3652 tests/examples/waylandsink/Makefile
3653 tests/icles/Makefile
3654 ext/voamrwbenc/Makefile
3655 ext/voaacenc/Makefile
3656 ext/assrender/Makefile
3657 ext/apexsink/Makefile
3660 ext/chromaprint/Makefile
3664 ext/directfb/Makefile
3665 ext/wayland/Makefile
3673 ext/fluidsynth/Makefile
3679 ext/libde265/Makefile
3681 ext/libvisual/Makefile
3683 ext/modplug/Makefile
3684 ext/mpeg2enc/Makefile
3687 ext/musepack/Makefile
3693 ext/openexr/Makefile
3694 ext/openh264/Makefile
3695 ext/openjpeg/Makefile
3696 ext/openni2/Makefile
3700 ext/resindvd/Makefile
3703 ext/schroedinger/Makefile
3705 ext/smoothstreaming/Makefile
3706 ext/sndfile/Makefile
3707 ext/soundtouch/Makefile
3708 ext/spandsp/Makefile
3711 ext/teletextdec/Makefile
3714 ext/timidity/Makefile
3716 ext/vulkan/xcb/Makefile
3724 docs/plugins/Makefile
3726 docs/version.entities
3728 pkgconfig/gstreamer-plugins-bad.pc
3729 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3730 pkgconfig/gstreamer-codecparsers.pc
3731 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3732 pkgconfig/gstreamer-insertbin.pc
3733 pkgconfig/gstreamer-insertbin-uninstalled.pc
3734 pkgconfig/gstreamer-gl.pc
3735 pkgconfig/gstreamer-gl-uninstalled.pc
3736 pkgconfig/gstreamer-mpegts.pc
3737 pkgconfig/gstreamer-mpegts-uninstalled.pc
3738 pkgconfig/gstreamer-player.pc
3739 pkgconfig/gstreamer-player-uninstalled.pc
3740 pkgconfig/gstreamer-wayland.pc
3741 pkgconfig/gstreamer-wayland-uninstalled.pc
3742 pkgconfig/gstreamer-bad-base.pc
3743 pkgconfig/gstreamer-bad-base-uninstalled.pc
3744 pkgconfig/gstreamer-bad-video.pc
3745 pkgconfig/gstreamer-bad-video-uninstalled.pc
3746 pkgconfig/gstreamer-bad-audio.pc
3747 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3752 dnl Create the config.h file for Visual Studio builds
3753 dnl Beware of spaces and /'s in some of the shell variable contents.
3755 -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"/' \
3756 -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
3757 -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
3758 -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
3759 -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
3760 -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
3761 -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
3762 -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
3763 -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
3764 -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
3765 -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
3766 -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
3767 -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
3768 -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
3769 -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
3770 -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
3771 -e 's/.* LIBDIR$/#ifdef _DEBUG\n# define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n# define LIBDIR PREFIX "\\\\lib"\n#endif/' \
3772 -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
3773 -e "s/.* PACKAGE$/#define PACKAGE \"$PACKAGE\"/" \
3774 -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
3775 -e "s/.* PACKAGE_NAME$/#define PACKAGE_NAME \"$PACKAGE_NAME\"/" \
3776 -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
3777 -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
3778 -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
3779 -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/' \
3780 -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
3781 -e "s/.* DEFAULT_AUDIOSINK$/#define DEFAULT_AUDIOSINK \"directsoundsink\"/" \
3782 -e "s/.* DEFAULT_AUDIOSRC$/#define DEFAULT_AUDIOSRC \"audiotestsrc\"/" \
3783 -e "s/.* DEFAULT_VIDEOSRC$/#define DEFAULT_VIDEOSRC \"videotestsrc\"/" \
3784 -e "s/.* DEFAULT_VISUALIZER$/#define DEFAULT_VISUALIZER \"goom\"/" \
3785 -e 's/.* HAVE_WINDOWS_H$/#define HAVE_WINDOWS_H 1/' \
3786 -e 's/.* HAVE_WININET_H$/#define HAVE_WININET_H 1/' \
3787 -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
3788 -e 's/.* HAVE_WS2TCPIP_H$/#define HAVE_WS2TCPIP_H 1/' \
3789 config.h.in >win32/common/config.h-new
3793 AG_GST_OUTPUT_PLUGINS