examples: add audiomixmatrix test to .gitignore
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ([2.69])
2
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.11.2.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-bad])
7
8 AG_GST_INIT
9
10 dnl initialize automake
11 AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
12
13 dnl define PACKAGE_VERSION_* variables
14 AS_VERSION
15
16 dnl check if this is a release version
17 AS_NANO(GST_GIT="no", GST_GIT="yes")
18
19 dnl can autoconf find the source ?
20 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
21
22 dnl define the output header for config
23 AC_CONFIG_HEADERS([config.h])
24
25 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
26 AM_MAINTAINER_MODE([enable])
27
28 dnl sets host_* variables
29 AC_CANONICAL_HOST
30
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)])
35
36 dnl PKG_CONFIG_SYSROOT_DIR is a valid environment variable
37 m4_pattern_allow(PKG_CONFIG_SYSROOT_DIR)
38
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
41 GST_API_VERSION=1.0
42 AC_SUBST(GST_API_VERSION)
43 AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
44   [GStreamer API Version])
45
46 AG_GST_LIBTOOL_PREPARE
47
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, 1102, 0, 1102)
55
56 dnl *** required versions of GStreamer stuff ***
57 GST_REQ=1.11.2.1
58 GSTPB_REQ=1.11.2.1
59
60 dnl *** autotools stuff ****
61
62 dnl allow for different autotools
63 AS_AUTOTOOLS_ALTERNATE
64
65 dnl Add parameters for aclocal
66 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
67
68 dnl set up gettext
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])
73
74 dnl *** check for arguments to configure ***
75
76 AG_GST_ARG_DISABLE_FATAL_WARNINGS
77 AG_GST_ARG_ENABLE_EXTRA_CHECKS
78
79 AG_GST_ARG_DEBUG
80 AG_GST_ARG_PROFILING
81 AG_GST_ARG_VALGRIND
82 AG_GST_ARG_GCOV
83
84 AG_GST_ARG_EXAMPLES
85
86 AG_GST_ARG_WITH_PKG_CONFIG_PATH
87 AG_GST_ARG_WITH_PACKAGE_NAME
88 AG_GST_ARG_WITH_PACKAGE_ORIGIN
89
90 AG_GST_ARG_WITH_PLUGINS
91
92 AG_GST_ARG_ENABLE_EXTERNAL
93
94 AG_GST_ARG_ENABLE_EXPERIMENTAL
95
96 AG_GST_PKG_CONFIG_PATH
97
98 dnl *** checks for platform ***
99 AG_GST_PLATFORM
100
101 dnl * hardware/architecture *
102
103 dnl common/m4/gst-arch.m4
104 dnl check CPU type
105 AG_GST_ARCH
106
107 dnl Determine endianness
108 AC_C_BIGENDIAN
109
110 dnl *** checks for programs ***
111
112 dnl find a compiler
113 AC_PROG_CC
114 AC_PROG_CC_STDC
115
116 dnl determine c++ compiler
117 AC_PROG_CXX
118 dnl determine if c++ is available on this system
119 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
120
121 AC_PROG_OBJC
122
123 dnl check if the compiler supports '-c' and '-o' options
124 AM_PROG_CC_C_O
125
126 dnl check if the compiler supports do while(0) macros
127 AG_GST_CHECK_DOWHILE_MACROS
128
129 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
130 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
131
132 dnl check for gobject-introspection
133 GOBJECT_INTROSPECTION_CHECK([1.31.1])
134
135 dnl check for documentation tools
136 GTK_DOC_CHECK([1.12])
137 AG_GST_PLUGIN_DOCS([1.12])
138
139 dnl *** checks for libraries ***
140
141 dnl check for libm, for sin() etc.
142 LT_LIB_M
143 AC_SUBST(LIBM)
144
145 AC_FUNC_MMAP
146
147 dnl check for pthreads
148 AX_PTHREAD
149
150 dnl *** checks for header files ***
151
152 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
153 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
154
155 if test "x$HAVE_UNISTD_H" != "xyes"; then
156   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
157 fi
158
159 AC_CHECK_HEADERS([sys/time.h])
160
161 dnl used by ext/dts
162 AX_CREATE_STDINT_H
163
164 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
165 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
166
167 dnl *** checks for types/defines ***
168
169 dnl *** checks for structures ***
170
171 dnl *** checks for compiler characteristics ***
172
173 dnl *** checks for library functions ***
174 AC_CHECK_FUNCS([gmtime_r])
175
176 dnl *** checks for headers ***
177 AC_CHECK_HEADERS([sys/utsname.h])
178
179 dnl *** checks for dependency libraries ***
180
181 dnl *** checks for socket and nsl libraries ***
182 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
183 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
184
185 dnl GLib is required
186 GLIB_REQ=2.40.0
187 AG_GST_GLIB_CHECK([$GLIB_REQ])
188
189 dnl checks for gstreamer
190 dnl uninstalled is selected preferentially -- see pkg-config(1)
191 AG_GST_CHECK_GST($GST_API_VERSION, [$GST_REQ], yes)
192 AG_GST_CHECK_GST_BASE($GST_API_VERSION, [$GST_REQ], yes)
193 AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
194 AG_GST_CHECK_GST_CONTROLLER($GST_API_VERSION, [$GST_REQ], yes)
195 AG_GST_CHECK_GST_NET($GST_API_VERSION, [$GST_REQ], yes)
196 AG_GST_PKG_CHECK_MODULES(GST_VIDEO, gstreamer-video-[$GST_API_VERSION], [$GST_REQ], yes)
197 AG_GST_PKG_CHECK_MODULES(GST_AUDIO, gstreamer-audio-[$GST_API_VERSION], [$GST_REQ], yes)
198 AG_GST_PKG_CHECK_MODULES(GST_PBUTILS, gstreamer-pbutils-[$GST_API_VERSION], [$GST_REQ], yes)
199
200 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
201
202 AG_GST_CHECK_GST_PLUGINS_BASE($GST_API_VERSION, [$GSTPB_REQ], yes)
203
204 dnl check for uninstalled plugin directories for unit tests
205 AG_GST_CHECK_UNINSTALLED_SETUP([
206   AG_GST_CHECK_GST_PLUGINS_GOOD($GST_API_VERSION, [0.11.0])
207   AG_GST_CHECK_GST_PLUGINS_UGLY($GST_API_VERSION, [0.11.0])
208   AG_GST_CHECK_GST_PLUGINS_LIBAV($GST_API_VERSION, [0.11.0])
209 ])
210
211 dnl Check for documentation xrefs
212 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
213 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_API_VERSION`"
214 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_API_VERSION`"
215 AC_SUBST(GLIB_PREFIX)
216 AC_SUBST(GST_PREFIX)
217 AC_SUBST(GSTPB_PREFIX)
218
219 dnl GTK is optional and used in examples
220 HAVE_GTK=NO
221 GTK2_REQ=2.14.0
222 GTK3_REQ=2.91.3
223 if test "x$BUILD_EXAMPLES" = "xyes"; then
224   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
225   AC_ARG_WITH([gtk],
226     AS_HELP_STRING([--with-gtk=3.0|2.0],[which gtk+ version to compile against (default: 2.0)]),
227     [case "$with_gtk" in
228         2.0) GTK_REQ=$GTK2_REQ ;;
229         3.0) GTK_REQ=$GTK3_REQ ;;
230         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
231     esac],
232     [with_gtk=2.0
233      GTK_REQ=$GTK2_REQ])
234   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
235   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
236   AC_SUBST(GTK_LIBS)
237   AC_SUBST(GTK_CFLAGS)
238 fi
239 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
240
241 dnl Check for -Bsymbolic-functions linker flag used to avoid
242 dnl intra-library PLT jumps, if available.
243 AC_ARG_ENABLE(Bsymbolic,
244               [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
245               [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}"
246                AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
247                LDFLAGS=-Wl,-Bsymbolic-functions
248                LIBS=
249                AC_TRY_LINK([], [return 0],
250                            AC_MSG_RESULT(yes)
251                            enable_Bsymbolic=yes,
252                            AC_MSG_RESULT(no)
253                            enable_Bsymbolic=no)
254                LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"])
255
256 dnl *** set variables based on configure arguments ***
257
258 dnl GTK is optional and used in examples
259 HAVE_GTK3=NO
260 if test "x$BUILD_EXAMPLES" = "xyes"; then
261   PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= 3.4, HAVE_GTK3=yes, HAVE_GTK3=no)
262   if test "x$HAVE_GTK3" = "xyes"; then
263     HAVE_GTK=yes
264     GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-3.0`
265     AC_SUBST(GTK_VERSION)
266     GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
267     AC_SUBST(GTK_BASE_DIR)
268   fi
269 fi
270 AC_SUBST(GTK3_LIBS)
271 AC_SUBST(GTK3_CFLAGS)
272 AC_SUBST(HAVE_GTK3)
273 AM_CONDITIONAL(HAVE_GTK3, test "x$HAVE_GTK3" = "xyes")
274
275 dnl clutter is optional and used in examples
276 HAVE_CLUTTER=no
277 HAVE_CLUTTER_X11=no
278 HAVE_CLUTTER_GLX=no
279 if test "x$BUILD_EXAMPLES" = "xyes"; then
280   PKG_CHECK_MODULES(CLUTTER, clutter-1.0 >= 1.8, HAVE_CLUTTER=yes, HAVE_CLUTTER=no)
281   AC_SUBST(CLUTTER_LIBS)
282   AC_SUBST(CLUTTER_CFLAGS)
283   AC_SUBST(HAVE_CLUTTER)
284
285   PKG_CHECK_MODULES(CLUTTER_GLX, clutter-glx-1.0 >= 1.8, HAVE_CLUTTER_GLX=yes, HAVE_CLUTTER_GLX=no)
286   AC_SUBST(CLUTTER_GLX_LIBS)
287   AC_SUBST(CLUTTER_GLX_CFLAGS)
288   AC_SUBST(HAVE_CLUTTER_GLX)
289
290   PKG_CHECK_MODULES(CLUTTER_X11, clutter-x11-1.0 >= 1.8, HAVE_CLUTTER_X11=yes, HAVE_CLUTTER_X11=no)
291   AC_SUBST(CLUTTER_X11_LIBS)
292   AC_SUBST(CLUTTER_X11_CFLAGS)
293   AC_SUBST(HAVE_CLUTTER_X11)
294 fi
295 AM_CONDITIONAL(HAVE_CLUTTER, test "x$HAVE_CLUTTER" = "xyes")
296 AM_CONDITIONAL(HAVE_CLUTTER_GLX, test "x$HAVE_CLUTTER_GLX" = "xyes")
297 AM_CONDITIONAL(HAVE_CLUTTER_X11, test "x$HAVE_CLUTTER_X11" = "xyes")
298
299 dnl used in the gl/clutteractor example
300 if test "x$BUILD_EXAMPLES" = "xyes"; then
301   PKG_CHECK_MODULES(XCOMPOSITE, xcomposite, HAVE_XCOMPOSITE=yes, HAVE_XCOMPOSITE=no)
302   AC_SUBST(XCOMPOSITE_CFLAGS)
303   AC_SUBST(XCOMPOSITE_LIBS)
304 fi
305 AM_CONDITIONAL(HAVE_XCOMPOSITE, test "x$HAVE_XCOMPOSITE" = "xyes")
306
307 dnl graphene-1.0 is optional and used in gltransformation
308 HAVE_GRAPHENE=NO
309 PKG_CHECK_MODULES(GRAPHENE, graphene-1.0 >= 1.4.0, HAVE_GRAPHENE=yes, HAVE_GRAPHENE=no)
310 if test "x$HAVE_GRAPHENE" = "xyes"; then
311   AC_DEFINE(HAVE_GRAPHENE, [1] , [Use graphene])
312 fi
313 AC_SUBST(HAVE_GRAPHENE)
314 AC_SUBST(GRAPHENE_LIBS)
315 AC_SUBST(GRAPHENE_CFLAGS)
316 AM_CONDITIONAL(HAVE_GRAPHENE, test "x$HAVE_GRAPHENE" = "xyes")
317
318
319 dnl sdl is optional and used in examples
320 HAVE_SDL=NO
321 if test "x$BUILD_EXAMPLES" = "xyes"; then
322   PKG_CHECK_MODULES(SDL, sdl >= 1.2.0, HAVE_SDL=yes, HAVE_SDL=no)
323   AC_SUBST(SDL_LIBS)
324   AC_SUBST(SDL_CFLAGS)
325   AC_SUBST(SDL_CLUTTER)
326 fi
327 AM_CONDITIONAL(HAVE_SDL, test "x$HAVE_SDL" = "xyes")
328
329
330 dnl Needed for GtkBuilder to autoconnect signals
331 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
332
333 dnl Needed by plugins that use g_module_*() API
334 PKG_CHECK_MODULES(GMODULE_NO_EXPORT, gmodule-no-export-2.0)
335
336 dnl x11 is optional for librfb
337 HAVE_X11=NO
338 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
339 AC_SUBST(X11_LIBS)
340 AC_SUBST(X11_CFLAGS)
341 AC_SUBST(HAVE_X11)
342 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
343 if test "x$HAVE_X11" = "xyes"; then
344   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
345 fi
346
347 dnl exif (used on jifmux tests) ****
348 PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no")
349 AC_SUBST(EXIF_LIBS)
350 AC_SUBST(EXIF_CFLAGS)
351 AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes")
352
353 AG_GST_CHECK_FEATURE(IQA, [iqa], iqa , [
354   PKG_CHECK_MODULES(DSSIM, dssim, [
355     HAVE_DSSIM="yes"
356     HAVE_IQA="yes"
357   ], [
358     HAVE_DSSIM="no"
359     HAVE_IQA="no"
360   ])
361
362   if test "x$HAVE_DSSIM" = "xyes"; then
363     AC_DEFINE(HAVE_DSSIM, 1, [Define if you have dssim library])
364   fi
365   AC_SUBST(DSSIM_LIBS)
366   AC_SUBST(DSSIM_CFLAGS)
367 ])
368 AM_CONDITIONAL(HAVE_DSSIM, test "x$HAVE_DSSIM" = "xyes")
369
370 dnl Orc
371 ORC_CHECK([0.4.17])
372
373 dnl set license and copyright notice
374 GST_LICENSE="LGPL"
375 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
376 AC_SUBST(GST_LICENSE)
377
378 dnl define LIBDIR so we can inform people where we live
379 AS_AC_EXPAND(LIBDIR, $libdir)
380 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
381
382 dnl set location of plugin directory
383 AG_GST_SET_PLUGINDIR
384
385 dnl set release date/time
386 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
387   ["${srcdir}/gst-plugins-bad.doap"],
388   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
389
390 dnl build static plugins or not
391 AC_MSG_CHECKING([whether to build static plugins or not])
392 AC_ARG_ENABLE(
393   static-plugins,
394   AC_HELP_STRING(
395     [--enable-static-plugins],
396     [build static plugins @<:@default=no@:>@]),
397   [AS_CASE(
398     [$enableval], [no], [], [yes], [],
399     [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
400   [enable_static_plugins=no])
401 AC_MSG_RESULT([$enable_static_plugins])
402 if test "x$enable_static_plugins" = xyes; then
403   AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
404     [Define if static plugins should be built])
405   GST_PLUGIN_LIBTOOLFLAGS=""
406 else
407   GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
408 fi
409 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
410 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
411
412 dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
413 dnl needed only on Windows, but it doesn't hurt to have it everywhere.
414 if test x$enable_static = xyes -a x$enable_shared = xno; then
415   GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
416 fi
417
418 AC_ARG_WITH([player-tests],
419   AS_HELP_STRING([--with-player-tests],[Enable GstPlayer tests that need network access (default: no)]))
420 if test x$with_player_tests = xyes; then
421   AC_PATH_PROG([WGET], [wget], no)
422   if test x$WGET = xno; then
423     AC_MSG_WARN([wget required for GstPlayer tests but not found - disabling])
424     with_player_tests=no
425   fi
426 fi
427 AM_CONDITIONAL(WITH_GST_PLAYER_TESTS, test "x$with_player_tests" = "xyes")
428
429 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
430 dnl make sure it doesn't complain about unused variables if debugging is disabled
431 NO_WARNINGS=""
432 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
433
434 dnl define an ERROR_CFLAGS Makefile variable
435 dnl -Waggregate-return - libexif returns aggregates
436 dnl -Wundef - Windows headers check _MSC_VER unconditionally
437 AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [
438     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
439     -Wwrite-strings -Wformat-security -Wold-style-definition
440     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
441     -Wnested-externs $NO_WARNINGS])
442
443 dnl define an ERROR_CXXFLAGS Makefile variable
444 AG_GST_SET_ERROR_CXXFLAGS($FATAL_WARNINGS, [
445     -Wmissing-declarations -Wredundant-decls
446     -Wwrite-strings -Wformat-nonliteral -Wformat-security
447     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar $NO_WARNINGS])
448
449 dnl define an ERROR_OBJCFLAGS Makefile variable
450 AG_GST_SET_ERROR_OBJCFLAGS($FATAL_WARNINGS, [
451     -Wmissing-declarations -Wredundant-decls
452     -Wwrite-strings -Wformat-nonliteral -Wformat-security
453     -Winit-self -Wmissing-include-dirs -Wno-multichar $NO_WARNINGS])
454
455 dnl define correct level for debugging messages
456 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
457
458 dnl used in examples
459 AG_GST_DEFAULT_ELEMENTS
460
461 dnl *** plug-ins to include ***
462
463 dnl these are all the gst plug-ins, compilable without additional libs
464 AG_GST_CHECK_PLUGIN(accurip)
465 AG_GST_CHECK_PLUGIN(adpcmdec)
466 AG_GST_CHECK_PLUGIN(adpcmenc)
467 AG_GST_CHECK_PLUGIN(aiff)
468 AG_GST_CHECK_PLUGIN(videoframe_audiolevel)
469 AG_GST_CHECK_PLUGIN(asfmux)
470 AG_GST_CHECK_PLUGIN(audiobuffersplit)
471 AG_GST_CHECK_PLUGIN(audiofxbad)
472 AG_GST_CHECK_PLUGIN(audiomixer)
473 AG_GST_CHECK_PLUGIN(audiomixmatrix)
474 AG_GST_CHECK_PLUGIN(compositor)
475 AG_GST_CHECK_PLUGIN(audiovisualizers)
476 AG_GST_CHECK_PLUGIN(autoconvert)
477 AG_GST_CHECK_PLUGIN(bayer)
478 AG_GST_CHECK_PLUGIN(camerabin2)
479 AG_GST_CHECK_PLUGIN(coloreffects)
480 AG_GST_CHECK_PLUGIN(debugutils)
481 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
482 AG_GST_CHECK_PLUGIN(dvdspu)
483 AG_GST_CHECK_PLUGIN(festival)
484 AG_GST_CHECK_PLUGIN(fieldanalysis)
485 AG_GST_CHECK_PLUGIN(freeverb)
486 AG_GST_CHECK_PLUGIN(frei0r)
487 AG_GST_CHECK_PLUGIN(gaudieffects)
488 AG_GST_CHECK_PLUGIN(geometrictransform)
489 AG_GST_CHECK_PLUGIN(gdp)
490 AG_GST_CHECK_PLUGIN(id3tag)
491 AG_GST_CHECK_PLUGIN(inter)
492 AG_GST_CHECK_PLUGIN(interlace)
493 AG_GST_CHECK_PLUGIN(ivfparse)
494 AG_GST_CHECK_PLUGIN(ivtc)
495 AG_GST_CHECK_PLUGIN(jp2kdecimator)
496 AG_GST_CHECK_PLUGIN(jpegformat)
497 AG_GST_CHECK_PLUGIN(librfb)
498 AG_GST_CHECK_PLUGIN(midi)
499 AG_GST_CHECK_PLUGIN(mpegdemux)
500 AG_GST_CHECK_PLUGIN(mpegtsdemux)
501 AG_GST_CHECK_PLUGIN(mpegtsmux)
502 AG_GST_CHECK_PLUGIN(mpegpsmux)
503 AG_GST_CHECK_PLUGIN(mxf)
504 AG_GST_CHECK_PLUGIN(netsim)
505 AG_GST_CHECK_PLUGIN(onvif)
506 AG_GST_CHECK_PLUGIN(pcapparse)
507 AG_GST_CHECK_PLUGIN(pnm)
508 AG_GST_CHECK_PLUGIN(rawparse)
509 AG_GST_CHECK_PLUGIN(removesilence)
510 AG_GST_CHECK_PLUGIN(sdp)
511 AG_GST_CHECK_PLUGIN(segmentclip)
512 AG_GST_CHECK_PLUGIN(siren)
513 AG_GST_CHECK_PLUGIN(smooth)
514 AG_GST_CHECK_PLUGIN(speed)
515 AG_GST_CHECK_PLUGIN(subenc)
516 AG_GST_CHECK_PLUGIN(stereo)
517 AG_GST_CHECK_PLUGIN(timecode)
518 AG_GST_CHECK_PLUGIN(videofilters)
519 AG_GST_CHECK_PLUGIN(videoparsers)
520 AG_GST_CHECK_PLUGIN(videosignal)
521 AG_GST_CHECK_PLUGIN(vmnc)
522 AG_GST_CHECK_PLUGIN(y4m)
523 AG_GST_CHECK_PLUGIN(yadif)
524
525 dnl *** plug-ins to exclude ***
526
527 AC_CHECK_HEADER(AVFoundation/AVFoundation.h, HAVE_AVFOUNDATION="yes", HAVE_AVFOUNDATION="no", [-])
528 AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
529 AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h, HAVE_VIDEOTOOLBOX="yes", HAVE_VIDEOTOOLBOX="no", [-])
530 AC_CHECK_HEADER(QTKit/QTKit.h, HAVE_QTKIT="yes", HAVE_QTKIT="no", [-])
531
532 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
533   old_LIBS=$LIBS
534   LIBS="$LIBS -framework VideoToolbox"
535   AC_CHECK_FUNC(VTCompressionSessionPrepareToEncodeFrames, [
536     AC_DEFINE(HAVE_VIDEOTOOLBOX_10_9_6, 1, [Define if building with VideoToolbox >= 10.9.6])
537   ], [
538   ])
539   LIBS=$old_LIBS
540 fi
541
542 AM_CONDITIONAL(HAVE_AVFOUNDATION, test "x$HAVE_AVFOUNDATION" = "xyes")
543 if test "x$HAVE_AVFOUNDATION" = "xyes"; then
544   AC_DEFINE(HAVE_AVFOUNDATION, 1, [Define if building with AVFoundation])
545 fi
546
547 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
548 if test "x$HAVE_IOS" = "xyes"; then
549   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
550 fi
551
552 AM_CONDITIONAL(HAVE_VIDEOTOOLBOX, test "x$HAVE_VIDEOTOOLBOX" = "xyes")
553 if test "x$HAVE_VIDEOTOOLBOX" = "xyes"; then
554   AC_DEFINE(HAVE_VIDEOTOOLBOX, 1, [Define if building with VideoToolbox])
555 fi
556
557 AM_CONDITIONAL(HAVE_QTKIT, test "x$HAVE_QTKIT" = "xyes")
558 if test "x$HAVE_QTKIT" = "xyes"; then
559   AC_DEFINE(HAVE_QTKIT, 1, [Define if building with QTKit])
560 fi
561 dnl disable gst plugins we might not be able to build on this
562 dnl platform: (ugly but minimally invasive)
563 dnl FIXME: maybe move to sys, or make work with winsock2
564 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
565 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
566
567 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
568   WINSOCK2_LIBS="-lws2_32"
569   AC_SUBST(WINSOCK2_LIBS)
570 fi
571
572 dnl *** opengl ***
573 AC_ARG_ENABLE([opengl],
574      [  --enable-opengl         Enable Desktop OpenGL support @<:@default=auto@:>@],
575      [case "${enableval}" in
576        yes)  NEED_GL=yes ;;
577        no)   NEED_GL=no ;;
578        auto) NEED_GL=auto ;;
579        *) AC_MSG_ERROR([bad value ${enableval} for --enable-opengl]) ;;
580      esac],[NEED_GL=auto])
581
582 AC_ARG_WITH([opengl-module-name],
583   AS_HELP_STRING([--with-opengl-module-name],[library module name for OpenGL (default: libGL)]))
584 if test x$with_opengl_module_name != x; then
585   AC_DEFINE_UNQUOTED(GST_GL_LIBGL_MODULE_NAME, "$with_opengl_module_name", [OpenGL module name])
586 fi
587
588 AC_ARG_ENABLE([gles2],
589      [  --enable-gles2          Enable OpenGL|ES 2.0 support @<:@default=auto@:>@],
590      [case "${enableval}" in
591        yes)  NEED_GLES2=yes ;;
592        no)   NEED_GLES2=no ;;
593        auto) NEED_GLES2=auto ;;
594        *) AC_MSG_ERROR([bad value ${enableval} for --enable-gles2]) ;;
595      esac],[NEED_GLES2=auto])
596
597 AC_ARG_WITH([gles2-module-name],
598   AS_HELP_STRING([--with-gles2-module-name],[library module name for GLES2 (default: libGLESv2)]))
599 if test x$with_gles2_module_name != x; then
600   AC_DEFINE_UNQUOTED(GST_GL_LIBGLESV2_MODULE_NAME, "$with_gles2_module_name", [GLES2 module name])
601 fi
602
603 AC_ARG_ENABLE([egl],
604      [  --enable-egl            Enable EGL support @<:@default=auto@:>@],
605      [case "${enableval}" in
606        yes)  NEED_EGL=yes ;;
607        no)   NEED_EGL=no ;;
608        auto) NEED_EGL=auto ;;
609        *) AC_MSG_ERROR([bad value ${enableval} for --enable-egl]) ;;
610      esac],[NEED_EGL=auto])
611
612 AC_ARG_WITH([egl-module-name],
613   AS_HELP_STRING([--with-egl-module-name],[library module name for EGL (default: libEGL)]))
614 if test x$with_egl_module_name != x; then
615   AC_DEFINE_UNQUOTED(GST_GL_LIBEGL_MODULE_NAME, "$with_egl_module_name", [EGL module name])
616 fi
617
618 AC_ARG_ENABLE([wgl],
619      [  --enable-wgl            Enable WGL support @<:@default=auto@:>@],
620      [case "${enableval}" in
621        yes)  NEED_WGL=yes ;;
622        no)   NEED_WGL=no ;;
623        auto) NEED_WGL=auto ;;
624        *) AC_MSG_ERROR([bad value ${enableval} for --enable-wgl]) ;;
625      esac],[NEED_WGL=auto])
626
627 AC_ARG_ENABLE([glx],
628      [  --enable-glx            Enable GLX support @<:@default=auto@:>@],
629      [case "${enableval}" in
630        yes)  NEED_GLX=yes ;;
631        no)   NEED_GLX=no ;;
632        auto) NEED_GLX=auto ;;
633        *) AC_MSG_ERROR([bad value ${enableval} for --enable-glx]) ;;
634      esac],[NEED_GLX=auto])
635
636 AC_ARG_ENABLE([cocoa],
637      [  --enable-cocoa          Enable Cocoa support @<:@default=auto@:>@],
638      [case "${enableval}" in
639        yes)  NEED_COCOA=yes ;;
640        no)   NEED_COCOA=no ;;
641        auto) NEED_COCOA=auto ;;
642        *) AC_MSG_ERROR([bad value ${enableval} for --enable-cocoa]) ;;
643      esac],[NEED_COCOA=auto])
644
645 AC_ARG_ENABLE([x11],
646      [  --enable-x11            Enable x11 support @<:@default=auto@:>@],
647      [case "${enableval}" in
648        yes)  NEED_X11=yes ;;
649        no)   NEED_X11=no ;;
650        auto) NEED_X11=auto ;;
651        *) AC_MSG_ERROR([bad value ${enableval} for --enable-x11]) ;;
652      esac],[NEED_X11=auto])
653
654 AC_ARG_ENABLE([wayland],
655      [  --enable-wayland        Enable Wayland support (requires EGL) @<:@default=auto@:>@],
656      [case "${enableval}" in
657        yes)  NEED_WAYLAND_EGL=yes ;;
658        no)   NEED_WAYLAND_EGL=no ;;
659        auto) NEED_WAYLAND_EGL=auto ;;
660        *) AC_MSG_ERROR([bad value ${enableval} for --enable-wayland]) ;;
661      esac],[NEED_WAYLAND_EGL=auto])
662
663 AC_ARG_ENABLE([dispmanx],
664      [  --enable-dispmanx        Enable Dispmanx support (requires EGL) @<:@default=auto@:>@],
665      [case "${enableval}" in
666        yes)  NEED_DISPMANX=yes ;;
667        no)   NEED_DISPMANX=no ;;
668        auto) NEED_DISPMANX=auto ;;
669        *) AC_MSG_ERROR([bad value ${enableval} for --enable-dispmanx]) ;;
670      esac],[NEED_DISPMANX=auto])
671
672 AG_GST_PKG_CHECK_MODULES(X11_XCB, x11-xcb)
673 save_CPPFLAGS="$CPPFLAGS"
674 save_LIBS="$LIBS"
675
676 HAVE_GL=no
677 HAVE_GLES2=no
678 HAVE_GLES3_H=no
679 HAVE_WAYLAND_EGL=no
680 HAVE_VIV_FB_EGL=no
681 HAVE_EGL_RPI=no
682
683 case $host in
684   *-mingw32* )
685     LIBS="$LIBS -lgdi32"
686     AG_GST_CHECK_LIBHEADER(GL, opengl32, glTexImage2D,, GL/gl.h)
687     AC_CHECK_HEADER(GL/wglext.h, HAVE_WGLEXT="yes", HAVE_WGLEXT="no", [#include <GL/gl.h>])
688     if test "x$HAVE_WGLEXT" = "xyes"; then
689       HAVE_WGL=yes
690       HAVE_GL=yes
691     fi
692   ;;
693   *)
694     if test "x$NEED_GL" != "xno"; then
695       AG_GST_PKG_CHECK_MODULES(GL, gl)
696       if test "x$HAVE_GL" != "xyes"; then
697         AG_GST_CHECK_LIBHEADER(GL, GL, glTexImage2D,, GL/gl.h)
698       fi
699     fi
700     if test "x$NEED_GLES2" != "xno"; then
701       AG_GST_PKG_CHECK_MODULES(GLES2, glesv2)
702       if test "x$HAVE_GLES2" != "xyes"; then
703         AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h)
704       fi
705       AC_CHECK_HEADER([GLES3/gl3.h], [HAVE_GLES3_H=yes])
706     fi
707     if test "x$NEED_EGL" != "xno"; then
708       AG_GST_PKG_CHECK_MODULES(EGL, egl)
709       if test "x$HAVE_EGL" != "xyes"; then
710         AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h)
711       fi
712     fi
713
714     old_LIBS=$LIBS
715     old_CFLAGS=$CFLAGS
716
717     dnl imx6 / Vivante specifics
718     if test "x$HAVE_EGL" = "xyes"; then
719         AC_CHECK_LIB([EGL], [fbGetDisplay], [HAVE_VIV_FB_EGL=yes])
720     fi
721
722     dnl FIXME: Mali EGL depends on GLESv1 or GLESv2
723     AC_CHECK_HEADER([EGL/fbdev_window.h],
724       [
725         LIBS="$LIBS -lUMP"
726         AC_CHECK_LIB([Mali], [mali_image_create],
727           [
728             LIBS="$LIBS -lMali"
729             AC_CHECK_LIB([GLESv2], [glEnable],
730               [
731                 AC_CHECK_HEADER([GLES2/gl2.h],
732                   [
733                     AC_CHECK_LIB([EGL], [eglGetProcAddress],
734                       [
735                         AC_CHECK_HEADER([EGL/egl.h],
736                           [
737                             HAVE_EGL=yes
738                             HAVE_GLES2=yes
739                             EGL_LIBS="-lMali -lUMP"
740                             EGL_CFLAGS=""
741                             AC_DEFINE(USE_EGL_MALI_FB, [1], [Use Mali FB EGL platform])
742                           ])
743                       ])
744                   ])
745               ])
746           ])
747       ])
748
749     dnl FIXME: EGL of RPi depends on GLESv1 or GLESv2
750     dnl FIXME: GLESv2 of RPi depends on EGL... WTF!
751     LIBS="$LIBS -lvcos -lvchiq_arm"
752     AC_CHECK_LIB([bcm_host], [bcm_host_init],
753       [
754         LIBS="$LIBS -lbcm_host"
755         AC_CHECK_HEADER(bcm_host.h,
756           [
757             LIBS="$LIBS -lGLESv2"
758             AC_CHECK_LIB([EGL], [eglGetProcAddress],
759               [
760                 LIBS="$LIBS -lEGL"
761                 AC_CHECK_HEADER([EGL/egl.h],
762                   [
763                     AC_CHECK_LIB([GLESv2], [glEnable],
764                       [
765                         AC_CHECK_HEADER([GLES2/gl2.h],
766                           [
767                             HAVE_EGL=yes
768                             HAVE_GLES2=yes
769                             HAVE_EGL_RPI=yes
770                             EGL_LIBS="-lbcm_host -lvcos -lvchiq_arm"
771                             EGL_CFLAGS=""
772                             AC_DEFINE(USE_EGL_RPI, [1], [Use RPi platform])
773                           ])
774                       ])
775                   ])
776               ])
777           ])
778       ])
779
780     LIBS=$old_LIBS
781     CFLAGS=$old_CFLAGS
782
783     PKG_CHECK_MODULES(WAYLAND_EGL, wayland-client >= 1.0 wayland-cursor >= 1.0 wayland-egl >= 9.0, HAVE_WAYLAND_EGL=yes, HAVE_WAYLAND_EGL=no)
784
785     # OS X and iOS always have GL available
786     case $host in
787       *-darwin*)
788         if test "x$HAVE_IOS" = "xyes"; then
789           HAVE_GLES2=yes
790         else
791           HAVE_GL=yes
792         fi
793       ;;
794     esac
795   ;;
796 esac
797
798 CPPFLAGS="$save_CPPFLAGS"
799 LIBS="$save_LIBS"
800
801 USE_OPENGL=no
802 USE_GLES2=no
803 USE_GLX=no
804 USE_COCOA=no
805 USE_WGL=no
806 USE_X11=no
807 USE_EAGL=no
808 GL_LIBS=
809 GL_CFLAGS=
810 GL_OBJCFLAGS=
811
812 dnl Check for what the user asked for and what we could find
813 if test "x$HAVE_EGL" = "xno"; then
814   if test "x$NEED_EGL" = "xyes"; then
815     AC_MSG_ERROR([Could not find the required EGL libraries])
816   fi
817 fi
818
819 if test "x$HAVE_GL" = "xno"; then
820   if test "x$NEED_GL" = "xyes"; then
821     AC_MSG_ERROR([Could not find the required OpenGL libraries])
822   fi
823 fi
824
825 if test "x$HAVE_GLES2" = "xno"; then
826   if test "x$NEED_GLES2" = "xyes"; then
827     AC_MSG_ERROR([Could not find the required OpenGL|ES 2.0 libraries])
828   fi
829 fi
830
831 dnl X, GLX and OpenGL
832 if test "x$HAVE_X11_XCB" = "xno"; then
833   if test "x$NEED_GLX" = "xyes"; then
834     AC_MSG_ERROR([Building the GLX backend without X11 is unsupported])
835   fi
836   if test "x$NEED_X11" = "xyes"; then
837     AC_MSG_ERROR([Could not find X11 development libraries])
838   fi
839 else
840   if test "x$NEED_GL" != "xno"; then
841     if test "x$HAVE_GL" = "xno"; then
842       if test "x$NEED_GLX" = "xyes"; then
843         AC_MSG_ERROR([Building the GLX backend without the OpenGL backend is unsupported])
844       fi
845     else dnl HAVE_GL=yes
846       USE_OPENGL=yes
847       if test "x$NEED_GLX" != "xno"; then
848         USE_GLX=yes
849       fi
850     fi
851   fi
852 fi
853
854 dnl check for DMABUF support
855 HAVE_DRM_FOURCC_HEADER=no
856 AC_CHECK_HEADER(libdrm/drm_fourcc.h,
857   HAVE_DRM_FOURCC_HEADER=yes, )
858
859 HAVE_GST_ALLOCATORS=no
860 PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0,
861   HAVE_GST_ALLOCATORS=yes, )
862
863 GST_GL_HAVE_DMABUF=0
864 if test "x$HAVE_DRM_FOURCC_HEADER" = "xyes" -a \
865         "x$HAVE_GST_ALLOCATORS" = "xyes" -a \
866         "x$HAVE_EGL" = "xyes"; then
867           GST_GL_HAVE_DMABUF=1
868 fi
869
870 dnl check for Vivante DirectVIV support
871 AC_CHECK_LIB(GLESv2, glTexDirectVIV, [HAVE_VIV_DIRECTVIV=yes], [HAVE_VIV_DIRECTVIV=no])
872
873 GST_GL_HAVE_VIV_DIRECTVIV=0
874 if test "x$HAVE_VIV_DIRECTVIV" = "xyes"; then
875           GST_GL_HAVE_VIV_DIRECTVIV=1
876 fi
877
878 dnl check if we can include both GL and GLES2 at the same time
879 if test "x$HAVE_GL" = "xyes" -a "x$HAVE_GLES2" = "xyes"; then
880   GLES3_H_DEFINE=0
881   if test "x$HAVE_GLES3_H" == "xyes"; then
882     GLES3_H_DEFINE=1
883   fi
884   GL_INCLUDES="
885 #ifdef __GNUC__
886 #  pragma GCC diagnostic push
887 #  pragma GCC diagnostic ignored \"-Wredundant-decls\"
888 #endif
889 #ifndef GL_GLEXT_PROTOTYPES
890 #define GL_GLEXT_PROTOTYPES 1
891 #endif
892 # ifdef HAVE_IOS
893 #  include <OpenGLES/ES2/gl.h>
894 #  include <OpenGLES/ES2/glext.h>
895 # else
896 #  if $GLES3_H_DEFINE
897 #   include <GLES3/gl3.h>
898 #   include <GLES3/gl3ext.h>
899 #  else
900 #   include <GLES2/gl2.h>
901 #   include <GLES2/gl2ext.h>
902 #  endif
903 # endif
904 # ifdef __APPLE__
905 #  include <OpenGL/OpenGL.h>
906 #  include <OpenGL/gl.h>
907 #  if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
908 #   define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED
909 #   include <OpenGL/gl3.h>
910 #  endif
911 # else
912 #  include <GL/gl.h>
913 #  if __WIN32__ || _WIN32
914 #   include <GL/glext.h>
915 #  endif
916 # endif
917 int main (int argc, char **argv) { return 0; }
918 "
919   AC_MSG_CHECKING([whether it is possible to include both GL and GLES2 headers])
920   save_CFLAGS="$CFLAGS"
921   CFLAGS="$CFLAGS $GL_CFLAGS $GLES2_CFLAGS $WARNING_CFLAGS $ERROR_CFLAGS"
922   AC_COMPILE_IFELSE([AC_LANG_SOURCE([[$GL_INCLUDES]], [[
923     #if !defined(GL_FALSE)
924     #error Failed to include GL headers
925     #endif
926     ]])],[ AC_MSG_RESULT(yes)
927     ],[AC_MSG_RESULT(no)
928     if test "x$NEED_GLES2" = "xyes"; then
929       if test "x$NEED_GL" = "xyes"; then
930         AC_MSG_ERROR([Cannot seem to include both GL and GLES2 headers. Try disabling one API])
931       fi
932       AC_MSG_WARN([Disabling Desktop GL support])
933       HAVE_GL=no
934       USE_OPENGL=no
935     else
936       AC_MSG_WARN([Disabling GL|ES 2.0 support])
937       HAVE_GLES2=no
938       HAVE_GLES3_H=no
939     fi
940   ])
941   CFLAGS="$save_CFLAGS"
942 fi
943
944 #dnl Check for OpenGL
945 echo host is $host
946 case $host in
947   *-android*)
948     if test "x$NEED_WGL" = "xyes"; then
949       AC_MSG_ERROR([WGL is not available on Android])
950     fi
951     if test "x$NEED_GLX" = "xyes"; then
952       AC_MSG_ERROR([GLX is not available on Android])
953     fi
954     if test "x$NEED_GL" = "xyes"; then
955       AC_MSG_ERROR([GL is not available on Android])
956     fi
957     if test "x$NEED_X11" = "xyes"; then
958       AC_MSG_ERROR([X11 is not available on Android])
959     fi
960     if test "x$NEED_COCOA" = "xyes"; then
961       AC_MSG_ERROR([Cocoa is not available on Android])
962     fi
963
964     dnl OpenGL|ES 2.0
965     if test "x$HAVE_GLES2" = "xyes"; then
966       if test "x$NEED_GLES2" != "xno"; then
967         GL_LIBS="$GL_LIBS -lGLESv2"
968         USE_GLES2=yes
969       fi
970     fi
971
972     dnl EGL
973     if test "x$HAVE_EGL" = "xyes"; then
974       if test "x$NEED_EGL" != "xno"; then
975         GL_LIBS="$GL_LIBS -lEGL"
976         USE_EGL=yes
977       fi
978     fi
979
980     if test "x$USE_EGL" != "xyes"; then
981       AC_MSG_ERROR([Need EGL on Android])
982     fi
983
984     if test "x$USE_GLES2" != "xyes"; then
985       AC_MSG_ERROR([Need OpenGL|ES 2.0 on Android])
986     fi
987
988     HAVE_WINDOW_ANDROID=yes
989     ;;
990   *-linux* | *-cygwin* | *-solaris* | *-netbsd* | *-freebsd* | *-openbsd* | *-kfreebsd* | *-dragonflybsd* | *-gnu* )
991     if test "x$NEED_WGL" = "xyes"; then
992       AC_MSG_ERROR([WGL is not available on unix])
993     fi
994
995     if test "x$HAVE_X11_XCB" = "xno"; then
996       if test "x$HAVE_WAYLAND_EGL" = "xno"; then
997         AC_MSG_WARN([X or Wayland is required for OpenGL support])
998       fi
999     fi
1000
1001     dnl check Desktop OpenGL
1002     if test "x$HAVE_GL" = "xyes"; then
1003       if test "x$NEED_GL" != "xno"; then
1004         GL_LIBS="$GL_LIBS -lGL"
1005       fi
1006     fi
1007
1008     dnl OpenGL|ES 2.0
1009     if test "x$HAVE_GLES2" = "xyes"; then
1010       if test "x$NEED_GLES2" != "xno"; then
1011         GL_LIBS="$GL_LIBS -lGLESv2"
1012         USE_GLES2=yes
1013       fi
1014     fi
1015
1016     if test "x$HAVE_X11_XCB" = "xyes" -a "x$HAVE_EGL_RPI" = "xno"; then
1017       if test "x$NEED_X11" != "xno"; then
1018         GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1019         GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1020         HAVE_WINDOW_X11=yes
1021       fi
1022     fi
1023
1024     if test "x$HAVE_WAYLAND_EGL" = "xyes"; then
1025       if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1026         AC_MSG_WARN([EGL is required by the Wayland backend for OpenGL support])
1027       else
1028         if test "x$NEED_WAYLAND_EGL" != "xno"; then
1029           HAVE_WINDOW_WAYLAND=yes
1030           GL_LIBS="$GL_LIBS $WAYLAND_EGL_LIBS"
1031           GL_CFLAGS="$GL_CFLAGS $WAYLAND_EGL_CFLAGS"
1032         fi
1033       fi
1034     fi
1035
1036     if test "x$HAVE_VIV_FB_EGL" = "xyes"; then
1037       if test "x$NEED_EGL" = "xno" -o "x$HAVE_EGL" = "xno"; then
1038         AC_MSG_WARN([EGL is required by the Vivante EGL FB backend])
1039       else
1040         HAVE_WINDOW_VIV_FB=yes
1041         GL_LIBS="$GL_LIBS"
1042         GL_CFLAGS="$GL_CFLAGS"
1043       fi
1044     fi
1045
1046     if test "x$HAVE_EGL_RPI" = "xyes"; then
1047       if test "x$NEED_DISPMANX" != "xno"; then
1048         HAVE_WINDOW_DISPMANX=yes
1049         USE_EGL=yes
1050       fi
1051     fi
1052
1053     dnl EGL
1054     if test "x$HAVE_EGL" = "xno"; then
1055       if test "x$HAVE_GL" = "xno"; then
1056         AC_MSG_WARN([Building requires either EGL or GLX for OpenGL support])
1057       fi
1058     else
1059       if test "x$NEED_EGL" != "xno"; then
1060         if test "x$HAVE_WINDOW_WAYLAND" = "xyes" -o "x$HAVE_WINDOW_X11" = "xyes" -o "x$HAVE_WINDOW_DISPMANX" = "xyes" -o "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1061           GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1062           GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1063           USE_EGL=yes
1064         fi
1065       fi
1066     fi
1067     ;;
1068   *-darwin*)
1069     if test "x$HAVE_IOS" = "xyes"; then
1070       if test "x$NEED_WGL" = "xyes"; then
1071         AC_MSG_ERROR([WGL is not available on iOS])
1072       fi
1073       if test "x$NEED_GLX" = "xyes"; then
1074         AC_MSG_ERROR([GLX is not available on iOS])
1075       fi
1076       if test "x$NEED_GL" = "xyes"; then
1077         AC_MSG_ERROR([GL is not available on iOS])
1078       fi
1079       if test "x$NEED_X11" = "xyes"; then
1080         AC_MSG_ERROR([X11 is not available on iOS])
1081       fi
1082       if test "x$NEED_COCOA" = "xyes"; then
1083         AC_MSG_ERROR([Cocoa is not available on iOS])
1084       fi
1085       if test "x$NEED_EGL" = "xyes"; then
1086         AC_MSG_ERROR([EGL is not available on iOS])
1087       fi
1088
1089       GL_LIBS="$LIBS -framework OpenGLES -framework QuartzCore -framework UIKit -framework CoreGraphics -framework CoreFoundation -framework Foundation"
1090       GL_CFLAGS="$GL_CFLAGS"
1091       USE_GLES2=yes
1092       USE_EAGL=yes
1093       HAVE_WINDOW_EAGL=yes
1094
1095       ac_cv_type_GLsizeiptr=yes
1096       ac_cv_type_GLintptr=yes
1097       ac_cv_type_GLchar=yes
1098     else
1099       dnl Only osx supports cocoa.
1100       if test "x$NEED_WGL" = "xyes"; then
1101         AC_MSG_ERROR([WGL is not available on Mac OS X])
1102       fi
1103
1104       if test "x$NEED_COCOA" != "xno"; then
1105         GL_LIBS="$LIBS -framework OpenGL -framework Cocoa -framework QuartzCore -framework CoreFoundation"
1106         GL_CFLAGS="$GL_CFLAGS"
1107         USE_COCOA=yes
1108         HAVE_WINDOW_COCOA=yes
1109         USE_OPENGL=yes
1110       fi
1111
1112       if test "x$USE_GLX" = "xyes"; then
1113         if test "x$HAVE_X11_XCB" = "xyes"; then
1114           if test "x$NEED_X11" != "xno"; then
1115             GL_LIBS="$GL_LIBS $X11_XCB_LIBS"
1116             GL_CFLAGS="$GL_CFLAGS $X11_XCB_CFLAGS"
1117             HAVE_WINDOW_X11=yes
1118           fi
1119         fi
1120
1121         if test "x$HAVE_GL" = "xyes"; then
1122           if test "x$NEED_GL" != "xno"; then
1123             GL_LIBS="$GL_LIBS -lGL"
1124           fi
1125           USE_OPENGL=yes
1126         fi
1127       fi
1128
1129       if test "x$HAVE_EGL" = "xyes"; then
1130         if test "x$NEED_EGL" != "xno"; then
1131           if test "x$HAVE_WINDOW_X11" = "xyes"; then
1132             GL_LIBS="$GL_LIBS -lEGL $EGL_LIBS"
1133             GL_CFLAGS="$GL_CFLAGS $EGL_CFLAGS"
1134             USE_EGL=yes
1135           fi
1136         fi
1137       fi
1138
1139       dnl OpenGL|ES 2.0
1140       if test "x$HAVE_GLES2" = "xyes"; then
1141         if test "x$NEED_GLES2" != "xno"; then
1142           GL_LIBS="$GL_LIBS -lGLESv2"
1143           USE_GLES2=yes
1144         fi
1145       fi
1146     fi
1147     ;;
1148   *-mingw32*)
1149     if test "x$NEED_GLX" = "xyes"; then
1150       AC_MSG_ERROR([GLX is not available on Windows])
1151     fi
1152     if test "x$NEED_GLES2" = "xyes"; then
1153       AC_MSG_ERROR([OpenGL|ES 2.0 is not supported on your platform yet])
1154     fi
1155
1156     if test "x$HAVE_GL" = "xyes"; then
1157       if test "x$NEED_GL" != "xno"; then
1158         if test "x$HAVE_WGL" = "xyes"; then
1159           if test "$NEED_WGL" != "xno"; then
1160             GL_LIBS="$GL_LIBS -lgdi32 -lopengl32"
1161             HAVE_WINDOW_WIN32=yes
1162             USE_OPENGL=yes
1163             USE_WGL=yes
1164           fi
1165         fi
1166       fi
1167     fi
1168     ;;
1169   *)
1170     AC_MSG_WARN([Don't know how to check for OpenGL on your platform.])
1171     ;;
1172 esac
1173
1174 GL_PLATFORMS=
1175 GL_WINDOWS=
1176 GL_APIS=
1177 GL_CONFIG_DEFINES=
1178
1179 dnl APIs
1180
1181 GST_GL_HAVE_OPENGL=0
1182 GST_GL_HAVE_GLES2=0
1183 GST_GL_HAVE_GLES3=0
1184
1185 if test "x$USE_OPENGL" = "xyes"; then
1186   GL_APIS="gl $GL_APIS"
1187   GST_GL_HAVE_OPENGL=1
1188 fi
1189 if test "x$USE_GLES2" = "xyes"; then
1190   GL_APIS="gles2 $GL_APIS"
1191   GST_GL_HAVE_GLES2=1
1192   if test "x$HAVE_GLES3_H" = "xyes"; then
1193     GST_GL_HAVE_GLES3=1
1194   fi
1195 fi
1196
1197 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1198 #define GST_GL_HAVE_OPENGL $GST_GL_HAVE_OPENGL
1199 #define GST_GL_HAVE_GLES2 $GST_GL_HAVE_GLES2
1200 #define GST_GL_HAVE_GLES3 $GST_GL_HAVE_GLES3
1201 "
1202
1203 dnl WINDOW's
1204
1205 GST_GL_HAVE_WINDOW_X11=0
1206 GST_GL_HAVE_WINDOW_COCOA=0
1207 GST_GL_HAVE_WINDOW_WIN32=0
1208 GST_GL_HAVE_WINDOW_WAYLAND=0
1209 GST_GL_HAVE_WINDOW_ANDROID=0
1210 GST_GL_HAVE_WINDOW_DISPMANX=0
1211 GST_GL_HAVE_WINDOW_EAGL=0
1212 GST_GL_HAVE_WINDOW_VIV_FB=0
1213
1214 if test "x$HAVE_WINDOW_X11" = "xyes"; then
1215   GL_WINDOWS="x11 $GL_WINDOWS"
1216   GST_GL_HAVE_WINDOW_X11=1
1217 fi
1218 if test "x$HAVE_WINDOW_COCOA" = "xyes"; then
1219   GL_WINDOWS="cocoa $GL_WINDOWS"
1220   GST_GL_HAVE_WINDOW_COCOA=1
1221 fi
1222 if test "x$HAVE_WINDOW_WIN32" = "xyes"; then
1223   GL_WINDOWS="win32 $GL_WINDOWS"
1224   GST_GL_HAVE_WINDOW_WIN32=1
1225 fi
1226 if test "x$HAVE_WINDOW_WAYLAND" = "xyes"; then
1227   GL_WINDOWS="wayland $GL_WINDOWS"
1228   GST_GL_HAVE_WINDOW_WAYLAND=1
1229 fi
1230 if test "x$HAVE_WINDOW_ANDROID" = "xyes"; then
1231   GL_WINDOWS="android $GL_WINDOWS"
1232   GST_GL_HAVE_WINDOW_ANDROID=1
1233 fi
1234 if test "x$HAVE_WINDOW_DISPMANX" = "xyes"; then
1235   GL_WINDOWS="dispmanx $GL_WINDOWS"
1236   GST_GL_HAVE_WINDOW_DISPMANX=1
1237 fi
1238 if test "x$HAVE_WINDOW_EAGL" = "xyes"; then
1239   GL_WINDOWS="eagl $GL_WINDOWS"
1240   GST_GL_HAVE_WINDOW_EAGL=1
1241 fi
1242 if test "x$HAVE_WINDOW_VIV_FB" = "xyes"; then
1243   GL_WINDOWS="viv-fb $GL_WINDOWS"
1244   GST_GL_HAVE_WINDOW_VIV_FB=1
1245 fi
1246
1247 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1248 #define GST_GL_HAVE_WINDOW_X11 $GST_GL_HAVE_WINDOW_X11
1249 #define GST_GL_HAVE_WINDOW_COCOA $GST_GL_HAVE_WINDOW_COCOA
1250 #define GST_GL_HAVE_WINDOW_WIN32 $GST_GL_HAVE_WINDOW_WIN32
1251 #define GST_GL_HAVE_WINDOW_WAYLAND $GST_GL_HAVE_WINDOW_WAYLAND
1252 #define GST_GL_HAVE_WINDOW_ANDROID $GST_GL_HAVE_WINDOW_ANDROID
1253 #define GST_GL_HAVE_WINDOW_DISPMANX $GST_GL_HAVE_WINDOW_DISPMANX
1254 #define GST_GL_HAVE_WINDOW_EAGL $GST_GL_HAVE_WINDOW_EAGL
1255 #define GST_GL_HAVE_WINDOW_VIV_FB $GST_GL_HAVE_WINDOW_VIV_FB
1256 "
1257
1258 dnl PLATFORM's
1259
1260 GST_GL_HAVE_PLATFORM_EGL=0
1261 GST_GL_HAVE_PLATFORM_GLX=0
1262 GST_GL_HAVE_PLATFORM_WGL=0
1263 GST_GL_HAVE_PLATFORM_CGL=0
1264 GST_GL_HAVE_PLATFORM_EAGL=0
1265
1266 if test "x$USE_EGL" = "xyes"; then
1267   GL_PLATFORMS="egl $GL_PLATFORMS"
1268   GST_GL_HAVE_PLATFORM_EGL=1
1269 fi
1270 if test "x$USE_GLX" = "xyes"; then
1271   GL_PLATFORMS="glx $GL_PLATFORMS"
1272   GST_GL_HAVE_PLATFORM_GLX=1
1273 fi
1274 if test "x$USE_WGL" = "xyes"; then
1275   GL_PLATFORMS="wgl $GL_PLATFORMS"
1276   GST_GL_HAVE_PLATFORM_WGL=1
1277 fi
1278 if test "x$USE_COCOA" = "xyes"; then
1279   GL_PLATFORMS="cgl $GL_PLATFORMS"
1280   GST_GL_HAVE_PLATFORM_CGL=1
1281 fi
1282 if test "x$USE_EAGL" = "xyes"; then
1283   GL_PLATFORMS="eagl $GL_PLATFORMS"
1284   GST_GL_HAVE_PLATFORM_EAGL=1
1285 fi
1286
1287 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1288 #define GST_GL_HAVE_PLATFORM_EGL $GST_GL_HAVE_PLATFORM_EGL
1289 #define GST_GL_HAVE_PLATFORM_GLX $GST_GL_HAVE_PLATFORM_GLX
1290 #define GST_GL_HAVE_PLATFORM_WGL $GST_GL_HAVE_PLATFORM_WGL
1291 #define GST_GL_HAVE_PLATFORM_CGL $GST_GL_HAVE_PLATFORM_CGL
1292 #define GST_GL_HAVE_PLATFORM_EAGL $GST_GL_HAVE_PLATFORM_EAGL
1293 "
1294
1295 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1296 #define GST_GL_HAVE_DMABUF $GST_GL_HAVE_DMABUF
1297 #define GST_GL_HAVE_VIV_DIRECTVIV $GST_GL_HAVE_VIV_DIRECTVIV
1298 "
1299
1300 dnl Check for no platforms/window systems
1301 if test "x$GL_APIS" = "x"; then
1302   AC_MSG_WARN([Either OpenGL or OpenGL|ES is required for OpenGL support])
1303 fi
1304 if test "x$GL_PLATFORMS" = "x"; then
1305   AC_MSG_WARN([Could not find any OpenGL platforms to use such as CGL, WGL or GLX])
1306 fi
1307 if test "x$GL_WINDOWS" = "x"; then
1308   AC_MSG_WARN([Could not find any window systems to use such as Cocoa, Win32API or X11])
1309 fi
1310
1311 if test "x$GL_APIS" = "x" -o "x$GL_PLATFORMS" = "x" -o "x$GL_WINDOWS" = "x"; then
1312   GL_LIBS=
1313   GL_CFLAGS=
1314   GL_OBJCFLAGS=
1315   USE_OPENGL=no
1316   USE_GLES2=no
1317   USE_GLX=no
1318   USE_EGL=no
1319   USE_WGL=no
1320   USE_COCOA=no
1321   USE_EGL_MALI=no
1322   USE_EGL_RPI=no
1323   USE_EAGL=no
1324
1325   HAVE_WINDOW_X11=no
1326   HAVE_WINDOW_WIN32=no
1327   HAVE_WINDOW_DISPMANX=no
1328   HAVE_WINDOW_WAYLAND=no
1329   HAVE_WINDOW_ANDROID=no
1330   HAVE_WINDOW_COCOA=no
1331   HAVE_WINDOW_EAGL=no
1332   HAVE_WINDOW_VIV_FB=no
1333 fi
1334
1335 AC_SUBST(GL_APIS)
1336 AC_SUBST(GL_PLATFORMS)
1337 AC_SUBST(GL_WINDOWS)
1338 AC_SUBST(GL_LIBS)
1339 AC_SUBST(GL_CFLAGS)
1340 AC_SUBST(GL_OBJCFLAGS)
1341 AC_SUBST(USE_OPENGL)
1342 AC_SUBST(USE_GLES2)
1343
1344 AM_CONDITIONAL(HAVE_WINDOW_X11, test "x$HAVE_WINDOW_X11" = "xyes")
1345 AM_CONDITIONAL(HAVE_WINDOW_COCOA, test "x$HAVE_WINDOW_COCOA" = "xyes")
1346 AM_CONDITIONAL(HAVE_WINDOW_WIN32, test "x$HAVE_WINDOW_WIN32" = "xyes")
1347 AM_CONDITIONAL(HAVE_WINDOW_DISPMANX, test "x$HAVE_WINDOW_DISPMANX" = "xyes")
1348 AM_CONDITIONAL(HAVE_WINDOW_WAYLAND, test "x$HAVE_WINDOW_WAYLAND" = "xyes")
1349 AM_CONDITIONAL(HAVE_WINDOW_ANDROID, test "x$HAVE_WINDOW_ANDROID" = "xyes")
1350 AM_CONDITIONAL(HAVE_WINDOW_EAGL, test "x$HAVE_WINDOW_EAGL" = "xyes")
1351 AM_CONDITIONAL(HAVE_WINDOW_VIV_FB, test "x$HAVE_WINDOW_VIV_FB" = "xyes")
1352
1353 AM_CONDITIONAL(USE_OPENGL, test "x$USE_OPENGL" = "xyes")
1354 AM_CONDITIONAL(USE_GLES2, test "x$USE_GLES2" = "xyes")
1355 AM_CONDITIONAL(USE_GLX, test "x$USE_GLX" = "xyes")
1356 AM_CONDITIONAL(USE_EGL, test "x$USE_EGL" = "xyes")
1357 AM_CONDITIONAL(USE_WGL, test "x$USE_WGL" = "xyes")
1358 AM_CONDITIONAL(USE_COCOA, test "x$USE_COCOA" = "xyes")
1359 AM_CONDITIONAL(USE_EGL_MALI, test "x$USE_EGL_MALI" = "xyes")
1360 AM_CONDITIONAL(USE_EGL_RPI, test "x$USE_EGL_RPI" = "xyes")
1361 AM_CONDITIONAL(USE_EAGL, test "x$USE_EAGL" = "xyes")
1362
1363 AM_CONDITIONAL(HAVE_GST_GL, test "x$USE_OPENGL" = "xyes" -o "x$USE_GLES2" = "xyes")
1364
1365 dnl Check for some types that are not always present
1366 GL_INCLUDES=""
1367 if test "x$USE_GLES2" = "xyes"; then
1368   GL_INCLUDES="$GL_INCLUDES
1369 #ifndef GL_GLEXT_PROTOTYPES
1370 #define GL_GLEXT_PROTOTYPES 1
1371 #endif
1372 # ifdef HAVE_IOS
1373 #  include <OpenGLES/ES2/gl.h>
1374 #  include <OpenGLES/ES2/glext.h>
1375 # else
1376 #  if $GST_GL_HAVE_GLES3
1377 #   include <GLES3/gl3.h>
1378 #   include <GLES3/gl3ext.h>
1379 #  else
1380 #   include <GLES2/gl2.h>
1381 #   include <GLES2/gl2ext.h>
1382 #  endif
1383 # endif
1384 "
1385 fi
1386
1387 if test "x$USE_OPENGL" = "xyes"; then
1388   GL_INCLUDES="$GL_INCLUDES
1389 # ifdef __APPLE__
1390 #  include <OpenGL/OpenGL.h>
1391 #  include <OpenGL/gl.h>
1392 # else
1393 #  include <GL/gl.h>
1394 #  if __WIN32__ || _WIN32
1395 #   include <GL/glext.h>
1396 #  endif
1397 # endif
1398 "
1399 fi
1400
1401 GST_GL_HAVE_GLEGLIMAGEOES=0
1402 GST_GL_HAVE_GLCHAR=0
1403 GST_GL_HAVE_GLSIZEIPTR=0
1404 GST_GL_HAVE_GLINTPTR=0
1405 GST_GL_HAVE_GLSYNC=0
1406 GST_GL_HAVE_GLUINT64=0
1407 GST_GL_HAVE_GLINT64=0
1408 GST_GL_HAVE_EGLATTRIB=0
1409
1410 old_CFLAGS=$CFLAGS
1411 CFLAGS="$GL_CFLAGS $CFLAGS"
1412
1413 AC_CHECK_TYPES(GLeglImageOES, [], [], [[$GL_INCLUDES]])
1414 if test "x$ac_cv_type_GLeglImageOES" = "xyes"; then
1415   GST_GL_HAVE_GLEGLIMAGEOES=1
1416 fi
1417
1418 AC_CHECK_TYPES(GLchar, [], [], [[$GL_INCLUDES]])
1419 if test "x$ac_cv_type_GLchar" = "xyes"; then
1420   GST_GL_HAVE_GLCHAR=1
1421 fi
1422
1423 AC_CHECK_TYPES(GLsizeiptr, [], [], [[$GL_INCLUDES]])
1424 if test "x$ac_cv_type_GLsizeiptr" = "xyes"; then
1425   GST_GL_HAVE_GLSIZEIPTR=1
1426 fi
1427
1428 AC_CHECK_TYPES(GLintptr, [], [], [[$GL_INCLUDES]])
1429 if test "x$ac_cv_type_GLintptr" = "xyes"; then
1430   GST_GL_HAVE_GLINTPTR=1
1431 fi
1432
1433 AC_CHECK_TYPES(GLsync, [], [], [[$GL_INCLUDES]])
1434 if test "x$ac_cv_type_GLsync" = "xyes"; then
1435   GST_GL_HAVE_GLSYNC=1
1436 fi
1437
1438 AC_CHECK_TYPES(GLuint64, [], [], [[$GL_INCLUDES]])
1439 if test "x$ac_cv_type_GLuint64" = "xyes"; then
1440   GST_GL_HAVE_GLUINT64=1
1441 fi
1442
1443 AC_CHECK_TYPES(GLint64, [], [], [[$GL_INCLUDES]])
1444 if test "x$ac_cv_type_GLint64" = "xyes"; then
1445   GST_GL_HAVE_GLINT64=1
1446 fi
1447
1448 if test "x$USE_EGL" = "xyes"; then
1449   EGL_INCLUDES="$GL_INCLUDES
1450   #include <EGL/egl.h>
1451   #include <EGL/eglext.h>
1452   "
1453   AC_CHECK_TYPES(EGLAttrib, [], [], [[$EGL_INCLUDES]])
1454   if test "x$ac_cv_type_EGLAttrib" = "xyes"; then
1455     GST_GL_HAVE_EGLATTRIB=1
1456   fi
1457 fi
1458
1459 CFLAGS=$old_CFLAGS
1460
1461 GL_CONFIG_DEFINES="$GL_CONFIG_DEFINES
1462 #define GST_GL_HAVE_GLEGLIMAGEOES $GST_GL_HAVE_GLEGLIMAGEOES
1463 #define GST_GL_HAVE_GLCHAR $GST_GL_HAVE_GLCHAR
1464 #define GST_GL_HAVE_GLSIZEIPTR $GST_GL_HAVE_GLSIZEIPTR
1465 #define GST_GL_HAVE_GLINTPTR $GST_GL_HAVE_GLINTPTR
1466 #define GST_GL_HAVE_GLSYNC $GST_GL_HAVE_GLSYNC
1467 #define GST_GL_HAVE_GLUINT64 $GST_GL_HAVE_GLUINT64
1468 #define GST_GL_HAVE_GLINT64 $GST_GL_HAVE_GLINT64
1469 #define GST_GL_HAVE_EGLATTRIB $GST_GL_HAVE_EGLATTRIB
1470 "
1471
1472 AC_CONFIG_COMMANDS([gst-libs/gst/gl/gstglconfig.h], [
1473         outfile=gstglconfig.h-tmp
1474         cat > $outfile <<\_______EOF
1475 /* gstglconfig.h
1476  *
1477  * This is a generated file.  Please modify `configure.ac'
1478  */
1479
1480 #ifndef __GST_GL_CONFIG_H__
1481 #define __GST_GL_CONFIG_H__
1482
1483 #include <gst/gst.h>
1484
1485 G_BEGIN_DECLS
1486
1487 _______EOF
1488
1489         cat >>$outfile <<_______EOF
1490 $gl_config_defines
1491 _______EOF
1492
1493         cat >>$outfile <<_______EOF
1494
1495 G_END_DECLS
1496
1497 #endif  /* __GST_GL_CONFIG_H__ */
1498 _______EOF
1499
1500
1501         if cmp -s $outfile gst-libs/gst/gl/gstglconfig.h; then
1502           AC_MSG_NOTICE([gst-libs/gst/gl/gstglconfig.h is unchanged])
1503           rm -f $outfile
1504         else
1505           mv $outfile gst-libs/gst/gl/gstglconfig.h
1506         fi
1507 ],[
1508 gl_config_defines='$GL_CONFIG_DEFINES'
1509 ])
1510
1511 dnl libpng is optional
1512 PKG_CHECK_MODULES(LIBPNG, libpng >= 1.0, HAVE_PNG=yes, HAVE_PNG=no)
1513 if test "x$HAVE_PNG" = "xyes"; then
1514   AC_DEFINE(HAVE_PNG, [1] , [Use libpng])
1515 fi
1516 AC_SUBST(HAVE_PNG)
1517 AC_SUBST(LIBPNG_LIBS)
1518 AC_SUBST(LIBPNG_CFLAGS)
1519 AM_CONDITIONAL(HAVE_PNG, test "x$HAVE_PNG" = "xyes")
1520
1521 dnl libjpeg is optional
1522 AC_ARG_WITH(jpeg-mmx, [  --with-jpeg-mmx, path to MMX'ified JPEG library])
1523 OLD_LIBS="$LIBS"
1524 if test x$with_jpeg_mmx != x; then
1525   LIBS="$LIBS -L$with_jpeg_mmx"
1526 fi
1527 AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1528 JPEG_LIBS="$LIBS -ljpeg-mmx"
1529 LIBS="$OLD_LIBS"
1530 if test x$HAVE_JPEG != xyes; then
1531   JPEG_LIBS="-ljpeg"
1532   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1533 fi
1534
1535 if test x$HAVE_JPEG = xyes; then
1536   AC_DEFINE(HAVE_JPEG, [1], [Use libjpeg])
1537 else
1538   AC_DEFINE(HAVE_JPEG, [0], [Use libjpeg])
1539   JPEG_LIBS=
1540 fi
1541 AC_SUBST(JPEG_LIBS)
1542 AC_SUBST(HAVE_JPEG)
1543 AM_CONDITIONAL(HAVE_JPEG, test "x$HAVE_JPEG" = "xyes")
1544
1545 dnl Vulkan
1546 PKG_CHECK_MODULES(XCB, xcb >= 1.10, GST_VULKAN_HAVE_WINDOW_XCB=1, GST_VULKAN_HAVE_WINDOW_XCB=0)
1547 AM_CONDITIONAL(USE_XCB, test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1")
1548
1549 PKG_CHECK_MODULES(VULKAN_WAYLAND, wayland-client >= 1.4, GST_VULKAN_HAVE_WINDOW_WAYLAND=1, GST_VULKAN_HAVE_WINDOW_WAYLAND=0)
1550 AM_CONDITIONAL(USE_WAYLAND, test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1")
1551 VULKAN_CONFIG_DEFINES="
1552 #define GST_VULKAN_HAVE_WINDOW_XCB $GST_VULKAN_HAVE_WINDOW_XCB
1553 #define GST_VULKAN_HAVE_WINDOW_WAYLAND $GST_VULKAN_HAVE_WINDOW_WAYLAND"
1554
1555 AC_CONFIG_COMMANDS([ext/vulkan/vkconfig.h], [
1556         outfile=vkconfig.h-tmp
1557         cat > $outfile <<\_______EOF
1558 /* vkconfig.h
1559  *
1560  * This is a generated file.  Please modify `configure.ac'
1561  */
1562
1563 #ifndef __GST_VULKAN_CONFIG_H__
1564 #define __GST_VULKAN_CONFIG_H__
1565
1566 #include <gst/gst.h>
1567
1568 G_BEGIN_DECLS
1569
1570 _______EOF
1571
1572         cat >>$outfile <<_______EOF
1573 $vulkan_config_defines
1574 _______EOF
1575
1576         cat >>$outfile <<_______EOF
1577
1578 G_END_DECLS
1579
1580 #endif  /* __GST_VULKAN_CONFIG_H__ */
1581 _______EOF
1582
1583
1584         if cmp -s $outfile ext/vulkan/vkconfig.h; then
1585           AC_MSG_NOTICE([ext/vulkan/vkconfig.h is unchanged])
1586           rm -f $outfile
1587         else
1588           mv $outfile ext/vulkan/vkconfig.h
1589         fi
1590 ],[
1591 vulkan_config_defines='$VULKAN_CONFIG_DEFINES'
1592 ])
1593
1594 dnl *** sys plug-ins ***
1595
1596 dnl DirectSound
1597 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
1598 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
1599   HAVE_DIRECTSOUND="no"
1600   save_CFLAGS="$CFLAGS"
1601   save_LDFLAGS="$LDFLAGS"
1602   save_LIBS="$LIBS"
1603   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1604   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1605   LIBS="$LIBS -lwinmm -ldsound -ldxerr9 -luser32"
1606   AC_MSG_CHECKING(for DirectSound LDFLAGS)
1607   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1608 #include <windows.h>
1609 #include <dxerr9.h>
1610 #include <dsound.h>
1611 #include <mmsystem.h>
1612 ]], [[
1613   DXGetErrorString9 (0);
1614   DirectSoundCreate(NULL, NULL, NULL);
1615 ]])],
1616     [HAVE_DIRECTSOUND="yes"],
1617     [HAVE_DIRECTSOUND="no"])
1618   AC_MSG_RESULT($HAVE_DIRECTSOUND)
1619   CFLAGS=$save_CFLAGS
1620   LDFLAGS=$save_LDFLAGS
1621   LIBS=$save_LIBS
1622
1623   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
1624     dnl this is much more than we want
1625     DIRECTSOUND_LIBS="-lwinmm -ldsound -ldxerr9 -luser32"
1626     AC_SUBST(DIRECTX_CFLAGS)
1627     AC_SUBST(DIRECTX_LDFLAGS)
1628     AC_SUBST(DIRECTSOUND_LIBS)
1629   fi
1630   AC_SUBST(HAVE_DIRECTSOUND)
1631 ])
1632
1633 dnl WASAPI
1634 translit(dnm, m, l) AM_CONDITIONAL(USE_WASAPI, true)
1635 AG_GST_CHECK_FEATURE(WASAPI, [WASAPI plug-in], wasapi, [
1636   HAVE_WASAPI="no"
1637   save_CFLAGS="$CFLAGS"
1638   save_LDFLAGS="$LDFLAGS"
1639   save_LIBS="$LIBS"
1640   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1641   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1642   LIBS="$LIBS -lole32 -lwinmm -lksuser"
1643   AC_MSG_CHECKING(for WASAPI LDFLAGS)
1644   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1645 #include <windows.h>
1646 #include <stdio.h>
1647 #include <mmsystem.h>
1648 #include <mmdeviceapi.h>
1649 ]], [[
1650 int main ()
1651 {
1652     HRESULT hr = S_OK;
1653
1654     hr = CoInitialize(NULL);
1655     if (FAILED(hr)) {
1656         printf("CoInitialize failed: hr = 0x%08x", hr);
1657         return __LINE__;
1658     }
1659
1660         int result = 0;
1661     // result = do_everything(argc, argv);
1662
1663     CoUninitialize();
1664     return result;
1665 }
1666 ]])],
1667     [HAVE_WASAPI="yes"],
1668     [HAVE_WASAPI="no"])
1669   AC_MSG_RESULT($HAVE_WASAPI)
1670   CFLAGS=$save_CFLAGS
1671   LDFLAGS=$save_LDFLAGS
1672   LIBS=$save_LIBS
1673
1674   if test "x$HAVE_WASAPI" = "xyes";  then
1675     WASAPI_LIBS="-lole32 -lwinmm -lksuser"
1676     AC_SUBST(WASAPI_LIBS)
1677   fi
1678   AC_SUBST(HAVE_WASAPI)
1679 ])
1680
1681 dnl Direct3D
1682 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECT3D, true)
1683 AG_GST_CHECK_FEATURE(DIRECT3D, [Direct3D plug-in], direct3dsink, [
1684   HAVE_DIRECT3D="no"
1685   save_CFLAGS="$CFLAGS"
1686   save_LDFLAGS="$LDFLAGS"
1687   save_LIBS="$LIBS"
1688   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1689   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1690   LIBS="$LIBS -ld3d9 -lgdi32"
1691   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1692   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1693 #include <windows.h>
1694 #include <d3d9.h>
1695 ]], [[
1696   Direct3DCreate9(D3D_SDK_VERSION);
1697 ]])],
1698     [HAVE_DIRECT3D="yes"],
1699     [HAVE_DIRECT3D="no"])
1700   AC_MSG_RESULT($HAVE_DIRECT3D)
1701   CFLAGS=$save_CFLAGS
1702   LDFLAGS=$save_LDFLAGS
1703   LIBS=$save_LIBS
1704
1705   if test "x$HAVE_DIRECT3D" = "xyes";  then
1706     DIRECT3D_LIBS="-ld3d9 -lgdi32"
1707     AC_SUBST(DIRECT3D_LIBS)
1708   fi
1709   AC_SUBST(HAVE_DIRECT3D)
1710 ])
1711
1712 dnl winscreencap
1713 translit(dnm, m, l) AM_CONDITIONAL(USE_WINSCREENCAP, true)
1714 AG_GST_CHECK_FEATURE(WINSCREENCAP, [winscreencap plug-in], winscreencap, [
1715   HAVE_WINSCREENCAP="no"
1716   save_CFLAGS="$CFLAGS"
1717   save_LDFLAGS="$LDFLAGS"
1718   save_LIBS="$LIBS"
1719   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1720   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1721   LIBS="$LIBS -ld3d9 -lgdi32"
1722   AC_MSG_CHECKING(for Direct3D LDFLAGS)
1723   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1724 #include <windows.h>
1725 #include <d3d9.h>
1726 ]], [[
1727   Direct3DCreate9(D3D_SDK_VERSION);
1728 ]])],
1729     [HAVE_WINSCREENCAP="yes"],
1730     [HAVE_WINSCREENCAP="no"])
1731   AC_MSG_RESULT($HAVE_WINSCREENCAP)
1732   CFLAGS=$save_CFLAGS
1733   LDFLAGS=$save_LDFLAGS
1734   LIBS=$save_LIBS
1735
1736   if test "x$HAVE_WINSCREENCAP" = "xyes";  then
1737     WINSCREENCAP_LIBS="-ld3d9 -lgdi32"
1738     AC_SUBST(WINSCREENCAP_LIBS)
1739   fi
1740   AC_SUBST(HAVE_WINSCREENCAP)
1741 ])
1742
1743 dnl winks
1744 translit(dnm, m, l) AM_CONDITIONAL(USE_WINKS, true)
1745 AG_GST_CHECK_FEATURE(WINKS, [Winks plug-in], winks, [
1746   HAVE_WINKS="no"
1747   save_CFLAGS="$CFLAGS"
1748   save_LDFLAGS="$LDFLAGS"
1749   save_LIBS="$LIBS"
1750   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
1751   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
1752   LIBS="$LIBS -lole32 -luuid -lstrmiids"
1753   AC_MSG_CHECKING(for Winks LDFLAGS)
1754   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
1755 #include <windows.h>
1756 #include <strmif.h>
1757 #include <uuids.h>
1758 ]], [[
1759 int main () {
1760   IGraphBuilder *pGraph = NULL;
1761   HRESULT hr = CoInitialize(NULL);
1762   hr = CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
1763                         &IID_IGraphBuilder, (void **)&pGraph);
1764
1765   return 0;
1766 }
1767 ]])],
1768     [HAVE_WINKS="yes"],
1769     [HAVE_WINKS="no"])
1770   AC_MSG_RESULT($HAVE_WINKS)
1771   CFLAGS=$save_CFLAGS
1772   LDFLAGS=$save_LDFLAGS
1773   LIBS=$save_LIBS
1774
1775   if test "x$HAVE_WINKS" = "xyes";  then
1776     dnl this is much more than we want
1777     WINKS_LIBS="-ldxguid -lole32 -luuid -lstrmiids -lksuser -lsetupapi"
1778     AC_SUBST(DIRECTX_CFLAGS)
1779     AC_SUBST(DIRECTX_LDFLAGS)
1780     AC_SUBST(WINKS_LIBS)
1781   fi
1782   AC_SUBST(HAVE_WINKS)
1783 ])
1784
1785 dnl *** Android Media ***
1786 translit(dnm, m, l) AM_CONDITIONAL(USE_ANDROID_MEDIA, true)
1787 HAVE_ANDROID_MEDIA="no"
1788 AG_GST_CHECK_FEATURE(ANDROID_MEDIA, [Android Media], androidmedia, [
1789   case "$host" in
1790     *android*)
1791       AC_CHECK_HEADER(jni.h, HAVE_ANDROID_MEDIA="yes", HAVE_ANDROID_MEDIA="no")
1792       ;;
1793     *)
1794       HAVE_ANDROID_MEDIA="no"
1795       ;;
1796   esac
1797 ])
1798
1799 dnl *** AppleMedia (OS X and iOS) ***
1800 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
1801 HAVE_APPLE_MEDIA="no"
1802 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
1803 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
1804   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
1805   dnl OSX 10.7 and earlier lack VideoToolbox/VideoToolbox.h
1806   if test "x$HAVE_IOS" = "xno"; then
1807     AC_CHECK_HEADER(VideoToolbox/VideoToolbox.h,, HAVE_APPLE_MEDIA="no")
1808   fi
1809 ])
1810
1811 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
1812 case "$host" in
1813   *-*darwin*)
1814     ;;
1815   *)
1816     HAVE_APPLE_MEDIA="no"
1817     ;;
1818 esac
1819
1820 dnl *** bluez ***
1821 translit(dnm, m, l) AM_CONDITIONAL(USE_BLUEZ, true)
1822 AG_GST_CHECK_FEATURE(BLUEZ, [Bluez], bluez, [
1823   PKG_CHECK_MODULES([BLUEZ5], [bluez >= 5.0], [
1824     PKG_CHECK_MODULES([GIO_UNIX], gio-unix-2.0 > 2.24, [
1825       AC_CHECK_PROG([GDBUS_CODEGEN],[gdbus-codegen],[gdbus-codegen])
1826       HAVE_BLUEZ=yes
1827       AC_DEFINE(HAVE_BLUEZ5,[1],[Bluez5 detected])
1828     ], [
1829       HAVE_BLUEZ=no
1830     ])
1831   ], [
1832     HAVE_BLUEZ=no
1833   ])
1834 ])
1835
1836 dnl *** OS/X AVCVideoServices ***
1837 translit(dnm, m, l) AM_CONDITIONAL(USE_AVC, true)
1838 HAVE_AVC="no"
1839 AG_GST_CHECK_FEATURE(AVC, [AVC Video Services], avcsrc, [
1840   AC_LANG_PUSH([C++])
1841   save_CPPFLAGS="$CPPFLAGS"
1842   CPPFLAGS="$CPPFLAGS -framework AVCVideoServices -framework CoreFoundation"
1843   save_LIBS="$LIBS"
1844   LIBS="$LIBS -framework AVCVideoServices -framework CoreFoundation"
1845   AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[HAVE_AVC=yes],[HAVE_AVC=no])
1846   LIBS=$save_LIBS
1847   CPPFLAGS=$save_CPPFLAGS
1848   AC_LANG_POP([C++])
1849 ])
1850 dnl in case header AVCVideoServices/AVCVideoServices.h is found on other platforms
1851 case "$host" in
1852   *-*darwin*)
1853     ;;
1854   *)
1855     HAVE_AVC="no"
1856     ;;
1857 esac
1858
1859 dnl check for shm_open (for shm plugin)
1860 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
1861 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
1862     if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
1863         case $host in
1864         *-darwin* | *-macos10*)
1865             AC_DEFINE(HAVE_OSX,[1],[Apple Mac OS X operating system detected])
1866             HAVE_SHM=yes
1867             ;;
1868         *-*-OpenBSD*)
1869             HAVE_SHM=yes
1870             ;;
1871         *)
1872             AC_CHECK_LIB([rt], [shm_open],
1873                 AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
1874                 #include <sys/socket.h>
1875                     ]),
1876                 HAVE_SHM=no)
1877             AC_SUBST(SHM_LIBS, "-lrt")
1878             ;;
1879         esac
1880     else
1881         HAVE_SHM=no
1882     fi
1883 ])
1884
1885 dnl check for Video CD
1886 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
1887 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
1888   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
1889 ])
1890
1891 dnl check for OpenSL ES
1892 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENSLES, true)
1893 AG_GST_CHECK_FEATURE(OPENSLES, [OpenSL ES], opensl, [
1894   AC_CHECK_HEADER(SLES/OpenSLES.h, HAVE_OPENSLES="yes", HAVE_OPENSLES="no")
1895 ])
1896
1897 dnl *** UVC H264 ***
1898 translit(dnm, m, l) AM_CONDITIONAL(USE_UVCH264, true)
1899 AG_GST_CHECK_FEATURE(UVCH264, [UVC H264], uvch264, [
1900   AC_CHECK_HEADER(linux/uvcvideo.h, HAVE_UVCVIDEO_H=yes, HAVE_UVCVIDEO_H=no)
1901   PKG_CHECK_MODULES(G_UDEV, gudev-1.0 , [
1902           AC_DEFINE([HAVE_GUDEV], 1, [Define if gudev is installed])
1903           HAVE_GUDEV="yes" ],
1904           [HAVE_GUDEV="no"])
1905   PKG_CHECK_MODULES(LIBUSB, libusb-1.0 , [
1906           AC_DEFINE([HAVE_LIBUSB], 1, [Define if libusb 1.x is installed])
1907           HAVE_LIBUSB="yes" ],
1908           [HAVE_LIBUSB="no"])
1909   if test "x$HAVE_UVCVIDEO_H" = "xyes" && \
1910      test "x$HAVE_GUDEV" = "xyes" && \
1911      test "x$HAVE_LIBUSB" = "xyes"; then
1912     HAVE_UVCH264=yes
1913   else
1914     HAVE_UVCH264=no
1915   fi
1916 ])
1917 AC_SUBST(LIBUDEV_CFLAGS)
1918 AC_SUBST(LIBUDEV_LIBS)
1919 AC_SUBST(LIBUSB_CFLAGS)
1920 AC_SUBST(LIBUSB_LIBS)
1921
1922 dnl *** NVENC ***
1923 translit(dnm, m, l) AM_CONDITIONAL(USE_NVENC, true)
1924 AG_GST_CHECK_FEATURE(NVENC, [NVIDIA Encode API], nvenc, [
1925   AC_ARG_WITH([cuda-prefix],
1926           AS_HELP_STRING([--with-cuda-prefix],
1927           [Use the provided prefix for detecting the cuda installation]),
1928           [AS_IF([test "x$with_cuda_prefix" != "x"],
1929                  [CUDA_PREFIX="$with_cuda_prefix"])],
1930           [CUDA_PREFIX=""])
1931
1932   HAVE_CUDA="yes"
1933   if test "x$CUDA_PREFIX" != "x"; then
1934     dnl only override if not already set
1935     if test "x$CUDA_CFLAGS" = "x" -a "x$CUDA_LIBS" = "x"; then
1936       dnl this is an educated guess, user can always override these
1937       CUDA_CFLAGS="-I$CUDA_PREFIX/include"
1938       CUDA_LIBS="-L$CUDA_PREFIX/lib -L$CUDA_PREFIX/lib64 -L$CUDA_PREFIX/lib/stubs -L$CUDA_PREFIX/lib64/stubs -lcuda -lcudart"
1939     fi
1940   else
1941     PKG_CHECK_MODULES([CUDA], [cuda-7.5 cudart-7.5],, [
1942       PKG_CHECK_MODULES([CUDA], [cuda-7.0 cudart-7.0],, [
1943         PKG_CHECK_MODULES([CUDA], [cuda-6.5 cudart-6.5],, [
1944           AC_MSG_WARN([Could not find cuda headers/libraries])])])])
1945   fi
1946
1947   HAVE_CUDA_H=no
1948   HAVE_CUDART_H=no
1949   save_CPPFLAGS="$CPPFLAGS"
1950   CPPFLAGS="$CUDA_CFLAGS $save_CPPFLAGS "
1951   AC_CHECK_HEADER([cuda.h], [HAVE_CUDA_H=yes],
1952       AC_MSG_WARN([Could not find cuda.h]))
1953   AC_CHECK_HEADER([cuda_runtime_api.h], [HAVE_CUDART_H=yes],
1954       AC_MSG_WARN([Could not find cuda_runtime_api.h]))
1955   CPPFLAGS=$save_CPPFLAGS
1956
1957   dnl libcuda and libcudart libraries
1958   save_LIBS="$LIBS"
1959   LIBS="$CUDA_LIBS $save_LIBS"
1960   HAVE_CUDART_LIB="no"
1961   AC_CHECK_LIB(cudart,cudaGetErrorString,[HAVE_CUDART_LIB="yes"], [
1962       AC_MSG_WARN([Could not find cudart library])])
1963   HAVE_CUDA_LIB="no"
1964   AC_CHECK_LIB(cuda,cuInit,[HAVE_CUDA_LIB="yes"], [
1965       AC_MSG_WARN([Could not find cuda library])])
1966   LIBS="$save_LIBS"
1967
1968   dnl nvEncodeAPI.h header
1969   HAVE_NVENCODEAPI_H=no
1970   AC_ARG_VAR(NVENCODE_CFLAGS, [C compiler flags for NvEncodeAPI.h])
1971   save_CPPFLAGS="$CPPFLAGS"
1972   CPPFLAGS="$NVENCODE_CFLAGS $save_CPPFLAGS"
1973   AC_CHECK_HEADER([nvEncodeAPI.h], [
1974       AC_PREPROC_IFELSE([AC_LANG_SOURCE([[#include <nvEncodeAPI.h>
1975           #if NVENCAPI_MAJOR_VERSION < 5
1976           #error "Need nvEncodeAPI.h >= 5.0"
1977           #endif
1978           ]])], [
1979           HAVE_NVENCODEAPI_H=yes
1980           ], [
1981           AC_MSG_WARN([nvEncodeAPI.h must be >= 5.0])
1982           ])
1983       ],
1984       AC_MSG_WARN([Could not find nvEncodeAPI.h]))
1985   AC_SUBST(NVENCODE_CFLAGS)
1986   CPPFLAGS="$save_CPPFLAGS"
1987
1988   dnl libnvnidia-encode library
1989   HAVE_NVENCODE_LIB=no
1990   AC_ARG_VAR(NVENCODE_LIBS, [linker flags for nvidia-encode])
1991   saved_LIBS="$LIBS"
1992   LIBS="$NVENCODE_LIBS $saved_LIBS"
1993   AC_CHECK_LIB(nvidia-encode, NvEncodeAPICreateInstance, [HAVE_NVENCODE_LIB="yes"],
1994       AC_MSG_WARN([Could not find library nvidia-encode]))
1995   NVENCODE_LIBS="$NVENCODE_LIBS -lnvidia-encode"
1996   AC_SUBST(NVENCODE_LIBS)
1997   LIBS="$saved_LIBS"
1998
1999   USE_NVENC_GST_GL=no
2000   if test "x$HAVE_CUDA_H" = "xyes" \
2001       -a "x$HAVE_CUDART_H" = "xyes" \
2002       -a "x$HAVE_CUDA_LIB" = "xyes" \
2003       -a "x$HAVE_CUDART_LIB" = "xyes" \
2004       -a "x$HAVE_NVENCODEAPI_H" = "xyes" \
2005       -a "x$HAVE_NVENCODE_LIB" = "xyes"; then
2006     HAVE_NVENC="yes"
2007     if test x"$USE_OPENGL" = x"yes"; then
2008       dnl cuda-gl interop header
2009       save_CPPFLAGS="$CPPFLAGS"
2010       CPPFLAGS="$save_CPPFLAGS $CUDA_CFLAGS"
2011       AC_CHECK_HEADER([cuda_gl_interop.h], [
2012         USE_NVENC_GST_GL="yes"
2013         AC_DEFINE(HAVE_NVENC_GST_GL, [1] , [NVENC GStreamer OpenGL support available])
2014         ])
2015       CPPFLAGS="$save_CPPFLAGS"
2016     fi
2017   else
2018     HAVE_NVENC="no"
2019   fi
2020 ])
2021 AM_CONDITIONAL(USE_NVENC_GST_GL, test "x$USE_NVENC_GST_GL" = "xyes")
2022
2023 dnl check for tinyalsa
2024 translit(dnm, m, l) AM_CONDITIONAL(USE_TINYALSA, true)
2025 AG_GST_CHECK_FEATURE(TINYALSA, [tinyalsa], tinyalsa, [
2026   AC_CHECK_HEADER(tinyalsa/asoundlib.h, HAVE_TINYALSA="yes", HAVE_TINYALSA="no")
2027 ])
2028
2029 dnl check for intel mediasdk
2030 translit(dnm, m, l) AM_CONDITIONAL(USE_MSDK, true)
2031 AG_GST_CHECK_FEATURE(MSDK, [Intel MediaSDK], msdk, [
2032   AC_ARG_WITH([msdk-prefix],
2033           AS_HELP_STRING([--with-msdk-prefix],
2034           [Use the provided prefix for detecting the Intel MediaSDK]),
2035           [AS_IF([test "x$with_msdk_prefix" != "x"],
2036                  [MSDK_PREFIX="$with_msdk_prefix"])],
2037           [AS_IF([test "x$MFX_HOME" != "x"],
2038                  [MSDK_PREFIX="$MFX_HOME"],
2039                  [MSDK_PREFIX="/opt/intel/media"])])
2040   MSDK_CFLAGS="-I$MSDK_PREFIX/include"
2041   MSDK_LIBS="-L$MSDK_PREFIX/lib/lin_x64 -lmfx -ldl"
2042   AC_SUBST(MSDK_CFLAGS)
2043   AC_SUBST(MSDK_LIBS)
2044
2045   save_CPPFLAGS="$CPPFLAGS"
2046   CPPFLAGS="$MSDK_CFLAGS $save_CPPFLAGS"
2047   AC_CHECK_HEADER(mfxdefs.h, HAVE_MFXDEFS_H="yes", HAVE_MFXDEFS_H="no")
2048   CPPFLAGS="$save_CPPFLAGS"
2049
2050   save_LIBS="$LIBS"
2051   LIBS="$MSDK_LIBS $LIBS"
2052   AC_LANG_PUSH([C++])
2053   AC_CHECK_LIB(mfx,MFXInit,HAVE_MFX_LIB="yes",HAVE_MFX_LIB="no")
2054   AC_LANG_POP([C++])
2055   LIBS="$save_LIBS"
2056
2057   PKG_CHECK_MODULES(LIBVA_DRM, libva-drm, HAVE_LIBVA_DRM="yes", HAVE_LIBVA_DRM="no")
2058
2059   if test "x$HAVE_MFXDEFS_H" = "xyes" \
2060       -a "x$HAVE_MFX_LIB" = "xyes" \
2061       -a "x$HAVE_LIBVA_DRM" = "xyes"; then
2062     HAVE_MSDK="yes"
2063   else
2064     HAVE_MSDK="no"
2065   fi
2066 ])
2067 AM_CONDITIONAL(USE_MSDK_LIBVA,
2068     test "x$HAVE_MSDK" = "xyes" -a "x$HAVE_LIBVA_DRM" = "xyes")
2069
2070 dnl *** ext plug-ins ***
2071 dnl keep this list sorted alphabetically !
2072
2073 if test "x$BUILD_EXTERNAL" = "xyes"; then
2074
2075 dnl *** assrender ***
2076 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
2077 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
2078   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.10.2, [
2079     HAVE_ASSRENDER="yes" ], [
2080     HAVE_ASSRENDER="no"
2081   ])
2082 ])
2083 AC_SUBST(ASSRENDER_CFLAGS)
2084 AC_SUBST(ASSRENDER_LIBS)
2085
2086 dnl *** vo-amrwbenc ***
2087 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAMRWBENC, true)
2088 AG_GST_CHECK_FEATURE(VOAMRWBENC, [vo-amrwbenc library], vo-amrwbenc, [
2089   AG_GST_PKG_CHECK_MODULES(VOAMRWBENC, vo-amrwbenc >= 0.1.0)
2090 ])
2091
2092 dnl *** vo-aacenc ***
2093 translit(dnm, m, l) AM_CONDITIONAL(USE_VOAACENC, true)
2094 AG_GST_CHECK_FEATURE(VOAACENC, [vo-aacenc library], vo-aacenc, [
2095   AG_GST_PKG_CHECK_MODULES(VOAACENC, vo-aacenc >= 0.1.0)
2096 ])
2097
2098 dnl *** bs2b ***
2099 translit(dnm, m, l) AM_CONDITIONAL(USE_BS2B, true)
2100 AG_GST_CHECK_FEATURE(BS2B, [bs2b], bs2b, [
2101   PKG_CHECK_MODULES(BS2B, libbs2b >= 3.1.0, HAVE_BS2B="yes", [
2102     HAVE_BS2B="no"
2103   ])
2104   AC_SUBST(BS2B_CFLAGS)
2105   AC_SUBST(BS2B_LIBS)
2106 ])
2107
2108 dnl *** BZ2 ***
2109 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
2110 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
2111   save_LIBS=$LIBS
2112   LIBS="$LIBS -lbz2"
2113   AC_MSG_CHECKING([for BZ2_bzlibVersion in -lbz2])
2114   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <bzlib.h>]], [[const char *version = BZ2_bzlibVersion ();]])],[HAVE_BZ2=yes],[HAVE_BZ2=no])
2115   AC_MSG_RESULT($HAVE_BZ2)
2116   LIBS=$save_LIBS
2117   if test "x$HAVE_BZ2" = "xyes"; then
2118     BZ2_LIBS="-lbz2"
2119   fi
2120   AC_SUBST(BZ2_LIBS)
2121
2122 ])
2123
2124 #dnl *** cairo ***
2125 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
2126 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
2127 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
2128 #    HAVE_CAIRO=no
2129 #  ])
2130 #  AC_SUBST(CAIRO_CFLAGS)
2131 #  AC_SUBST(CAIRO_LIBS)
2132 #])
2133
2134 dnl *** chromaprint ***
2135 translit(dnm, m, l) AM_CONDITIONAL(USE_CHROMAPRINT, true)
2136 AG_GST_CHECK_FEATURE(CHROMAPRINT, [chromaprint], chromaprint, [
2137   PKG_CHECK_MODULES(CHROMAPRINT, libchromaprint, HAVE_CHROMAPRINT="yes", [
2138     HAVE_CHROMAPRINT="no"
2139   ])
2140   AC_SUBST(CHROMAPRINT_CFLAGS)
2141   AC_SUBST(CHROMAPRINT_LIBS)
2142 ])
2143
2144 dnl *** Curl ***
2145 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
2146 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
2147   PKG_CHECK_MODULES(CURL, libcurl >= 7.35.0, [
2148     HAVE_CURL="yes"
2149     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/tcp.h fcntl.h], [ ], [
2150       AC_CHECK_HEADERS([unistd.h sys/types.h winsock2.h ws2tcpip.h fcntl.h], [ ], [HAVE_CURL="no"])
2151     ])
2152     AC_CHECK_HEADERS([netinet/ip.h], [], [HAVE_CURL="no"],
2153     [[#ifdef HAVE_SYS_TYPES_H
2154      # include <sys/types.h>
2155      #endif
2156      #ifdef HAVE_NETINET_IN_H
2157      # include <netinet/in.h>
2158      #endif
2159     ]])
2160     AC_MSG_CHECKING([for socket support needed by curlsink])
2161     AC_MSG_RESULT($HAVE_CURL)
2162   ], [
2163     HAVE_CURL="no"
2164   ])
2165   AC_SUBST(CURL_CFLAGS)
2166   AC_SUBST(CURL_LIBS)
2167   PKG_CHECK_MODULES(SSH2, libssh2 >= 1.4.3, [
2168     HAVE_SSH2="yes"
2169     AC_DEFINE(HAVE_SSH2, 1, [Define if libssh2 is available])
2170   ], [
2171     HAVE_SSH2="no"
2172   ])
2173   AM_CONDITIONAL(USE_SSH2, test "x$HAVE_SSH2" = "xyes")
2174   AC_SUBST(SSH2_CFLAGS)
2175   AC_SUBST(SSH2_LIBS)
2176 ],,,[AM_CONDITIONAL(USE_SSH2, false)])
2177
2178 dnl **** DASH ****
2179 translit(dnm, m, l) AM_CONDITIONAL(USE_DASH, true)
2180 AG_GST_CHECK_FEATURE(DASH, [DASH plug-in], dash, [
2181   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.8, [HAVE_LIBXML2="yes"
2182     HAVE_DASH="yes"], [HAVE_LIBXML2="no"
2183     HAVE_DASH="no"])
2184   AC_SUBST(LIBXML2_CFLAGS)
2185   AC_SUBST(LIBXML2_LIBS)
2186 ])
2187
2188 dnl *** dc1394  ***
2189 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
2190 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
2191    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
2192         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
2193                 HAVE_DC1394="yes"
2194         else
2195                 HAVE_DC1394="no"
2196         fi
2197    ], [
2198         HAVE_DC1394="no"
2199         AC_MSG_RESULT(no)
2200    ])
2201    AC_SUBST(LIBDC1394_CFLAGS)
2202    AC_SUBST(LIBDC1394_LIBS)
2203 ])
2204
2205 dnl *** decklink  ***
2206 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
2207 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
2208    HAVE_DECKLINK=no
2209    case "$host" in
2210      *android*)
2211        HAVE_DECKLINK=no
2212        ;;
2213      *-*linux*)
2214        if test "x$HAVE_PTHREAD_H" = "xyes"; then
2215          AC_CHECK_LIB(dl, dlopen,
2216            [
2217             HAVE_DECKLINK=yes
2218             DECKLINK_CXXFLAGS=
2219             DECKLINK_LIBS="-lpthread -ldl"
2220            ])
2221        fi
2222        ;;
2223      *-*darwin*)
2224        if test "x$HAVE_PTHREAD_H" = "xyes"; then
2225          AC_CHECK_LIB(dl, dlopen,
2226            [
2227             HAVE_DECKLINK=yes
2228             DECKLINK_CXXFLAGS=
2229             DECKLINK_LIBS="-lpthread -ldl"
2230             HAVE_DECKLINK_OSX=yes
2231            ])
2232        fi
2233        ;;
2234      *)
2235        HAVE_DECKLINK=no
2236        ;;
2237    esac
2238
2239    AC_SUBST(DECKLINK_CXXFLAGS)
2240    AC_SUBST(DECKLINK_LIBS)
2241 ])
2242 AM_CONDITIONAL(DECKLINK_OSX, test "x$HAVE_DECKLINK_OSX" = xyes)
2243
2244 dnl **** DirectFB ****
2245 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
2246 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
2247   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
2248     HAVE_DIRECTFB="no"
2249   ])
2250 ])
2251
2252 dnl **** Wayland ****
2253 translit(dnm, m, l) AM_CONDITIONAL(USE_WAYLAND, true)
2254 AC_PATH_PROG([wayland_scanner], [wayland-scanner])
2255 AG_GST_CHECK_FEATURE(WAYLAND, [wayland sink], wayland , [
2256   PKG_CHECK_MODULES(WAYLAND, wayland-client >= 1.4.0 libdrm >= 2.4.55 wayland-protocols >= 1.4, [
2257     if test "x$wayland_scanner" != "x"; then
2258       HAVE_WAYLAND="yes"
2259       AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, `$PKG_CONFIG --variable=pkgdatadir wayland-protocols`)
2260     else
2261       AC_MSG_RESULT([wayland-scanner is required to build the wayland plugin])
2262       HAVE_WAYLAND="no"
2263     fi
2264     ],
2265     [ HAVE_WAYLAND="no"
2266   ])
2267 ])
2268
2269 dnl **** WebP ****
2270 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBP, true)
2271 AG_GST_CHECK_FEATURE(WEBP, [WebP], webp , [
2272   PKG_CHECK_MODULES(WEBP, libwebp >= 0.2.1, [
2273     HAVE_WEBP="yes" ], [ HAVE_WEBP="no"
2274   ])
2275   AC_SUBST(WEBP_CFLAGS)
2276   AC_SUBST(WEBP_LIBS)
2277 ])
2278
2279 dnl *** Daala ***
2280 translit(dnm, m, l) AM_CONDITIONAL(USE_DAALA, true)
2281 AG_GST_CHECK_FEATURE(DAALA, [daala], daala, [
2282   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2283     PKG_CHECK_MODULES(DAALA, daalaenc daaladec, [
2284             HAVE_DAALA="yes"
2285     ], [
2286             HAVE_DAALA="no"
2287     ])
2288     AC_SUBST(DAALA_CFLAGS)
2289     AC_SUBST(DAALA_LIBS)
2290   fi
2291 ])
2292
2293 dnl *** DTS ***
2294 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
2295 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
2296   HAVE_DTS="yes"
2297   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
2298     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
2299   if test $HAVE_DTS = "no"; then
2300     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
2301       [ DTS_LIBS="-ldts_pic $LIBM"
2302         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
2303       ])
2304   fi
2305   AC_SUBST(DTS_LIBS)
2306 ])
2307
2308 dnl *** resindvd ***
2309 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
2310 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
2311   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
2312     HAVE_RESINDVD="no"
2313   ])
2314 ])
2315
2316 dnl **** Free AAC Encoder (FAAC) ****
2317 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
2318 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
2319   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
2320     FAAC_LIBS="-lfaac $LIBM")
2321   AC_SUBST(FAAC_LIBS)
2322 ])
2323
2324 dnl **** Free AAC Decoder (FAAD2) ****
2325 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
2326 AG_GST_CHECK_FEATURE(FAAD, [FAAD2 AAC decoder plug-in], faad, [
2327   AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, [
2328     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <faad.h>]], [[
2329       #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
2330       #error Not faad2
2331       #elif !defined(LATM)
2332       #error Not faad2 >= 2.7
2333       #endif
2334     ]])],[
2335       HAVE_FAAD="yes"
2336       FAAD_LIBS="-lfaad"
2337     ], [
2338       AC_MSG_WARN([Found libfaad, but version not recent enough. Need faad2 >= 2.7])
2339       HAVE_FAAD="no"
2340     ])
2341   ], [
2342       HAVE_FAAD="no"
2343   ])
2344   AC_SUBST(FAAD_LIBS)
2345 ])
2346
2347 dnl *** fbdev ***
2348 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
2349 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
2350   if test "x$HAVE_FBDEV" != "xyes"; then
2351     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
2352   fi
2353 ])
2354
2355 dnl *** fdkaac ***
2356 translit(dnm, m, l) AM_CONDITIONAL(USE_FDK_AAC, true)
2357 AG_GST_CHECK_FEATURE(FDK_AAC, [fdkaac plugin], fdkaac, [
2358   PKG_CHECK_MODULES(FDK_AAC, fdk-aac >= 0.1.4, [
2359     HAVE_FDK_AAC="yes",
2360     HAVE_FDK_AAC_0_1_4="yes"
2361     AC_DEFINE(HAVE_FDK_AAC_0_1_4 1, [Define if we have fdk-aac >= 0.1.4])
2362   ],[
2363     PKG_CHECK_MODULES(FDK_AAC, fdk-aac, HAVE_FDK_AAC="yes", HAVE_FDK_AAC="no")
2364   ])
2365 ])
2366
2367 dnl *** flite ***
2368 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
2369 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
2370   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
2371     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
2372
2373   AC_SUBST(FLITE_CFLAGS)
2374   AC_SUBST(FLITE_LIBS)
2375 ])
2376
2377 dnl *** gsm ***
2378 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
2379 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
2380   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
2381   if test $HAVE_GSM != "yes"; then
2382     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
2383     if test $HAVE_GSM = "yes"; then
2384       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
2385     fi
2386   fi
2387   AC_SUBST(GSM_LIBS)
2388 ])
2389
2390 dnl *** fluidSynth ***
2391 translit(dnm, m, l) AM_CONDITIONAL(USE_FLUIDSYNTH, true)
2392 AG_GST_CHECK_FEATURE(FLUIDSYNTH, [fluidsynth], fluidsynth, [
2393   PKG_CHECK_MODULES(FLUIDSYNTH, fluidsynth >= 1.0, HAVE_FLUIDSYNTH="yes", [
2394     HAVE_FLUIDSYNTH="no"
2395   ])
2396 ])
2397
2398 dnl *** kate ***
2399 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
2400 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
2401   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
2402     HAVE_KATE="no"
2403   ])
2404   AC_SUBST(KATE_CFLAGS)
2405   AC_SUBST(KATE_LIBS)
2406   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
2407     [
2408       HAVE_TIGER="yes"
2409       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
2410     ],
2411     [
2412       HAVE_TIGER="no"
2413     ]
2414   )
2415   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
2416   AC_SUBST(TIGER_CFLAGS)
2417   AC_SUBST(TIGER_LIBS)
2418 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
2419
2420 dnl *** kms ***
2421 translit(dnm, m, l) AM_CONDITIONAL(USE_KMS, true)
2422 AG_GST_CHECK_FEATURE(KMS, [drm/kms libraries], kms, [
2423   AG_GST_PKG_CHECK_MODULES(GST_ALLOCATORS, gstreamer-allocators-1.0)
2424   PKG_CHECK_MODULES([KMS_DRM], [libdrm >= 2.4.55], HAVE_KMS=yes, HAVE_KMS=no)
2425 ])
2426
2427 dnl *** ladspa ***
2428 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
2429 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
2430   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
2431
2432   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
2433   if test $HAVE_LRDF = "yes"; then
2434     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
2435   fi
2436   AC_SUBST(LRDF_LIBS)
2437   AC_SUBST(LRDF_CFLAGS)
2438 ])
2439
2440 dnl *** LV2 ***
2441 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
2442 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
2443   PKG_CHECK_MODULES(LILV, lilv-0 >= 0.22, [
2444     HAVE_LV2="yes",
2445     HAVE_LILV_0_22="yes"
2446     AC_DEFINE(HAVE_LILV_0_22, 1, [Define if we have liblilv >= 0.22])
2447   ],[
2448     PKG_CHECK_MODULES(LILV, lilv-0 >= 0.16, HAVE_LV2="yes", HAVE_LV2="no")
2449   ])
2450   AC_SUBST(LILV_CFLAGS)
2451   AC_SUBST(LILV_LIBS)
2452 ])
2453
2454 dnl *** libde265 ***
2455 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDE265, true)
2456 AG_GST_CHECK_FEATURE(LIBDE265, [libde265 HEVC/H.265 decoder], libde265, [
2457   PKG_CHECK_MODULES(LIBDE265, libde265 >= 0.9, HAVE_LIBDE265="yes", HAVE_LIBDE265="no")
2458   AC_SUBST(LIBDE265_CFLAGS)
2459   AC_SUBST(LIBDE265_LIBS)
2460 ])
2461
2462 dnl *** libmms ***
2463 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
2464 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
2465   dnl check with pkg-config first
2466   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
2467     HAVE_LIBMMS="no"
2468   ])
2469 ])
2470 AC_SUBST(LIBMMS_LIBS)
2471
2472
2473 dnl *** libsrtp ***
2474 translit(dnm, m, l) AM_CONDITIONAL(USE_SRTP, true)
2475 AG_GST_CHECK_FEATURE(SRTP, [srtp library], srtp, [
2476   PKG_CHECK_MODULES(SRTP, libsrtp, HAVE_SRTP="yes",
2477     AG_GST_CHECK_LIBHEADER(SRTP, srtp, srtp_init, , srtp/srtp.h, SRTP_LIBS="-lsrtp")
2478   )
2479   AC_SUBST(SRTP_LIBS)
2480   AC_SUBST(SRTP_CFLAGS)
2481 ])
2482
2483 dnl *** dtls ***
2484 translit(dnm, m, l) AM_CONDITIONAL(USE_DTLS, true)
2485 AG_GST_CHECK_FEATURE(DTLS, [DTLS plugin], dtls, [
2486   PKG_CHECK_MODULES(DTLS, [ openssl >= 1.0.1  libcrypto ], [
2487     HAVE_DTLS="yes"
2488     AC_SUBST(DTLS_CFLAGS)
2489     AC_SUBST(DTLS_LIBS)
2490   ], [
2491     HAVE_DTLS="no"
2492   ])
2493 ])
2494
2495 dnl *** ttml ***
2496 translit(dnm, m, l) AM_CONDITIONAL(USE_TTML, true)
2497 AG_GST_CHECK_FEATURE(TTML, [TTML plugin], ttml, [
2498   if test "x$BUILD_EXPERIMENTAL" = "xyes"; then
2499     PKG_CHECK_MODULES(TTML, [ libxml-2.0 >= 2.9.2 pango cairo pangocairo ], [
2500       HAVE_TTML="yes"
2501     ], [
2502       HAVE_TTML="no"
2503     ])
2504   fi
2505 ])
2506
2507 dnl *** modplug ***
2508 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
2509 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
2510   if test "x$HAVE_CXX" != "xyes"; then
2511     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
2512     HAVE_MODPLUG="no"
2513   else
2514     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
2515   fi
2516   AC_SUBST(MODPLUG_CFLAGS)
2517   AC_SUBST(MODPLUG_LIBS)
2518 ])
2519
2520 dnl *** mjpegtools version info ***
2521 dnl some may prefer older version (given quirks above)
2522 dnl hm, no version info seems available within mjpegtools headers
2523 dnl and API really moves along
2524 echo
2525 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
2526   mjpegtools_api=10601
2527 ], [
2528   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
2529     mjpegtools_api=10800
2530   ], [
2531     PKG_CHECK_EXISTS(mjpegtools >= 2.0.0, [
2532       mjpegtools_api=20000
2533     ], [
2534       PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0 mjpegtools < 2.0.0, [
2535         dnl logging API changed in release candidates
2536         OLD_CFLAGS="$CFLAGS"
2537         OLD_LIBS="$LIBS"
2538         CFLAGS="$MJPEG_CFLAGS"
2539         LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM $PTHREAD_LIBS"
2540         AC_CHECK_FUNC(mjpeg_loglev_t, [
2541           mjpegtools_api=10903
2542           ], [
2543           mjpegtools_api=10900
2544           ])
2545         CFLAGS="$OLD_CFLAGS"
2546         LIBS="$OLD_LIBS"
2547       ], [
2548         mjpegtools_api=0
2549       ])
2550     ])
2551   ])
2552 ])
2553 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
2554   [mjpegtools API evolution])
2555
2556 dnl *** mpeg2enc ***
2557 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
2558 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
2559   HAVE_MPEG2ENC="no"
2560   dnl we require a c++ compiler for this one
2561   if [ test x$HAVE_CXX = xyes ]; then
2562     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
2563     dnl since many distros include mjpegtools specifically without mplex
2564     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
2565     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
2566       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
2567       touch config.h
2568       dnl switch over to c++ to test things
2569       AC_LANG([C++])
2570       OLD_CPPFLAGS="$CPPFLAGS"
2571       dnl HACK as above
2572       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
2573       CPPFLAGS="$CPPFLAGS_GOOD -I."
2574       dnl check headers
2575       mpeg2enc_headers_ok=no
2576       AC_CHECK_HEADER([mpeg2encoder.hh], [
2577         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM $PTHREAD_LIBS"
2578         OLD_LIBS="$LIBS"
2579         LIBS="$LIBS $MPEG2ENC_LIBS"
2580         AC_MSG_CHECKING([for valid mpeg2enc objects])
2581         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2582           #include <mpeg2encoder.hh>
2583           #include <mpeg2encoptions.hh>
2584
2585           int
2586           main (int   argc,
2587                 char *argv[])
2588           {
2589             MPEG2EncOptions *options = new MPEG2EncOptions ();
2590             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
2591             return 0;
2592           }
2593         ]])],[
2594           AC_MSG_RESULT(yes)
2595           dnl so far so good, let's check more things:
2596           dnl mjpegtools-1.8.0 does not install the required
2597           dnl mpeg2syntaxcodes.h header by default, and a new release
2598           dnl is not in sight, so check for this oversight in case
2599           dnl distros or folks have fixed this themselves
2600           if test "$mjpegtools_api" -ge "10800"; then
2601             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
2602                 mpeg2enc_headers_ok=yes
2603               ], [
2604                 mpeg2enc_headers_ok=no
2605               ])
2606           else
2607             mpeg2enc_headers_ok=yes
2608           fi
2609           if test "x$mpeg2enc_headers_ok" = "xyes"; then
2610             HAVE_MPEG2ENC="yes"
2611           fi
2612           CPPFLAGS="$CPPFLAGS_GOOD"
2613           AC_SUBST(MPEG2ENC_CFLAGS)
2614           AC_SUBST(MPEG2ENC_LIBS)
2615         ],[
2616           AC_MSG_RESULT(no)
2617         ],[])
2618         LIBS="$OLD_LIBS"
2619       ])
2620
2621       CPPFLAGS="$OLD_CPPFLAGS"
2622       AC_LANG([C])
2623     ], [
2624       HAVE_MPEG2ENC="no"
2625     ])
2626   fi
2627 ])
2628
2629 dnl *** mplex ***
2630 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
2631 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
2632   HAVE_MPLEX="no"
2633   dnl we require a c++ compiler for this one
2634   if [ test x$HAVE_CXX = xyes ]; then
2635     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
2636     dnl since many distros include mjpegtools specifically without mplex
2637     dnl and mpeg2enc, we check for mplex on its own, too.
2638     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
2639     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
2640       dnl HACK because mplex 2.0.0 header files have a spurious 'include config.h'
2641       touch config.h
2642       dnl switch over to c++ to test things
2643       AC_LANG([C++])
2644       OLD_CPPFLAGS="$CPPFLAGS"
2645       dnl HACK as above
2646       CPPFLAGS_GOOD="$CPPFLAGS $MPLEX_CFLAGS"
2647       CPPFLAGS="$CPPFLAGS_GOOD -I."
2648       AC_CHECK_HEADER(interact.hpp, [
2649         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
2650         OLD_LIBS="$LIBS"
2651         LIBS="$LIBS $MPLEX_LIBS"
2652         OLD_LDFLAGS="$LDFLAGS"
2653         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
2654         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
2655         dnl don't want this here
2656         AC_MSG_CHECKING([for valid mplex objects])
2657         AC_RUN_IFELSE([AC_LANG_SOURCE([[
2658
2659 #include <interact.hpp>
2660 #include <outputstrm.hpp>
2661 #include <multiplexor.hpp>
2662 int
2663 main (int   argc,
2664       char *argv[])
2665 {
2666   class TestOutputStream : public OutputStream {
2667   public:
2668     TestOutputStream () : OutputStream () { }
2669     void Write (uint8_t *a, unsigned int b) { }
2670     void NextSegment () { }
2671     uint64_t SegmentSize () { }
2672     void Close () { }
2673     int Open () { }
2674 };
2675   MultiplexJob *job = new MultiplexJob ();
2676   vector<IBitStream *> inputs;
2677   job->SetupInputStreams (inputs);
2678   TestOutputStream *out = new TestOutputStream ();
2679   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
2680   return 0;
2681 }
2682         ]])],[
2683           HAVE_MPLEX="yes"
2684           CPPFLAGS="$CPPFLAGS_GOOD"
2685           AC_SUBST(MPLEX_CFLAGS)
2686           AC_SUBST(MPLEX_LIBS)
2687           AC_SUBST(MPLEX_LDFLAGS)
2688           AC_MSG_RESULT(yes)
2689         ],[AC_MSG_RESULT(no)],[])
2690         LIBS="$OLD_LIBS"
2691         LDFLAGS="$OLD_LDFLAGS"
2692       ])
2693       CPPFLAGS="$OLD_CPPFLAGS"
2694       AC_LANG([C])
2695     ], HAVE_MPLEX="no")
2696   fi
2697 ])
2698
2699 dnl *** musepack ***
2700 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
2701 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
2702   AC_CHECK_HEADER([mpc/mpcdec.h], [
2703     HAVE_MUSEPACK="yes"
2704     MUSEPACK_LIBS="-lmpcdec"
2705     AC_SUBST(MUSEPACK_LIBS)
2706     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
2707       HAVE_MUSEPACK="yes"
2708       MUSEPACK_LIBS="-lmpcdec"
2709       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
2710       AC_SUBST(MUSEPACK_LIBS)
2711     ], [HAVE_MUSEPACK="no"])])
2712 ])
2713
2714 dnl *** neon ***
2715 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
2716 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
2717   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.30.99, HAVE_NEON="yes", [
2718     HAVE_NEON="no"
2719   ])
2720   AC_SUBST(NEON_CFLAGS)
2721   AC_SUBST(NEON_LIBS)
2722 ])
2723
2724 dnl *** ofa ***
2725 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
2726 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
2727   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
2728     HAVE_OFA="no"
2729   ])
2730   AC_SUBST(OFA_CFLAGS)
2731   AC_SUBST(OFA_LIBS)
2732 ])
2733
2734 dnl *** OpenAL ***
2735 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENAL, true)
2736 AG_GST_CHECK_FEATURE(OPENAL, [OpenAL plugin], openal, [
2737   PKG_CHECK_MODULES(OPENAL, openal >= 1.14, HAVE_OPENAL="yes", [
2738     HAVE_OPENAL="no"
2739   ])
2740   AC_SUBST(OPENAL_CFLAGS)
2741   AC_SUBST(OPENAL_LIBS)
2742 ])
2743
2744 dnl *** opencv ***
2745 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
2746 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
2747   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
2748   dnl and don't want the build to break when a new opencv version comes out.
2749   dnl Need to adjust this upwards once we know that our code compiles fine with
2750   dnl a new version and the no-backward-compatibility define. (There doesn't
2751   dnl seem to be a switch to suppress the warnings the cvcompat.h header
2752   dnl causes.)
2753   PKG_CHECK_MODULES(OPENCV, opencv >= 2.3.0 opencv <= 3.2.0 , [
2754     AC_PROG_CXX
2755     AC_LANG([C++])
2756     OLD_CPPFLAGS=$CPPFLAGS
2757     CPPFLAGS=$OPENCV_CFLAGS
2758     something_not_found=no
2759     AC_CHECK_HEADERS([opencv2/core/core_c.h \
2760                       opencv2/core/version.hpp \
2761                       opencv2/highgui/highgui_c.h \
2762                       opencv2/imgproc/imgproc.hpp \
2763                       opencv2/imgproc/imgproc_c.h \
2764                       opencv2/objdetect/objdetect.hpp \
2765                       opencv2/video/background_segm.hpp], [], [something_not_found=yes])
2766
2767     dnl Only required for OpenCV >= 3, we have compat code for older versions
2768     PKG_CHECK_MODULES(OPENCV_3, opencv >= 3, [
2769       dnl check opencv_contrib headers (not always present in opencv distributions)
2770       AC_CHECK_HEADERS([opencv2/bgsegm.hpp], [], [something_not_found=yes])],
2771       [NOT_A_PROBLEM=yes])
2772
2773     CPPFLAGS=$OLD_CPPFLAGS
2774     AC_LANG([C])
2775
2776     if test $something_not_found = "yes"; then
2777       AC_MSG_RESULT([not all opencv2 headers were found])
2778       HAVE_OPENCV="no"
2779     else
2780       HAVE_OPENCV="yes"
2781     fi
2782   ], [
2783     HAVE_OPENCV="no"
2784   ])
2785   OPENCV_PREFIX="`$PKG_CONFIG --variable=prefix opencv`"
2786   AC_DEFINE_UNQUOTED(OPENCV_PREFIX, "$OPENCV_PREFIX", [opencv install prefix])
2787   AC_SUBST(OPENCV_PREFIX)
2788   AC_SUBST(OPENCV_CFLAGS)
2789   AC_SUBST(OPENCV_LIBS)
2790   dnl the OpenCV prefix is used at runtime for some object properties, and also
2791   dnl used here to detect which directory is the correct one. For the second
2792   dnl case, make sure the right sysroot is used, ensuring correct behavior
2793   dnl during cross compilation.
2794   if test -d "$PKG_CONFIG_SYSROOT_DIR/$OPENCV_PREFIX/share/opencv/"; then
2795     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["opencv"], [OpenCV path name])
2796   else
2797     AC_DEFINE_UNQUOTED(OPENCV_PATH_NAME, ["OpenCV"], [OpenCV path name])
2798   fi
2799 ])
2800
2801 dnl *** OpenEXR ***
2802 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENEXR, true)
2803 AG_GST_CHECK_FEATURE(OPENEXR, [openexr library], openexr, [
2804   AG_GST_PKG_CHECK_MODULES(OPENEXR, OpenEXR)
2805 ])
2806
2807 dnl *** openh264 ***
2808 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENH264, true)
2809 AG_GST_CHECK_FEATURE(OPENH264, [openh264 library], openh264, [
2810   AG_GST_PKG_CHECK_MODULES(OPENH264, openh264 >= 1.3.0)
2811 ])
2812
2813 dnl *** OpenJPEG ***
2814 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENJPEG, true)
2815 AG_GST_CHECK_FEATURE(OPENJPEG, [openjpeg library], openjpeg, [
2816   HAVE_OPENJPEG="no"
2817   AG_GST_PKG_CHECK_MODULES(OPENJPEG, libopenjp2 >= 2.0)
2818   if test x"$HAVE_OPENJPEG" = x"yes"; then
2819     dnl minor API changes in v2.1
2820     AG_GST_PKG_CHECK_MODULES(OPENJPEG_2_1, libopenjp2 >= 2.1)
2821     if test x"$HAVE_OPENJPEG" = x"yes"; then
2822       AC_DEFINE([HAVE_OPENJPEG_2_1], 1, [Define if OpenJPEG 2.1 is used])
2823     fi
2824   else
2825     # Fallback to v1.5
2826     OPENJPEG_LIBS=""
2827     PKG_CHECK_MODULES(OPENJPEG, libopenjpeg1,
2828       HAVE_OPENJPEG="yes",
2829       AG_GST_CHECK_LIBHEADER(OPENJPEG, openjpeg, opj_version, , openjpeg.h, OPENJPEG_LIBS="-lopenjpeg")
2830     )
2831     if test x"$HAVE_OPENJPEG" = x"yes"; then
2832       AC_DEFINE([HAVE_OPENJPEG_1], 1, [Define if OpenJPEG 1 is used])
2833     fi
2834   fi
2835   AC_SUBST(OPENJPEG_CFLAGS)
2836   AC_SUBST(OPENJPEG_LIBS)
2837 ])
2838
2839 dnl *** OpenNI2 ***
2840 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENNI2, true)
2841 AG_GST_CHECK_FEATURE(OPENNI2, [openni2 library], openni2, [
2842   PKG_CHECK_MODULES(OPENNI2, libopenni2 >= 0.26, HAVE_OPENNI2="yes", [ HAVE_OPENNI2="no" ] )
2843   AC_SUBST(OPENNI2_CFLAGS)
2844   AC_SUBST(OPENNI2_LIBS)
2845 ])
2846
2847 dnl *** Opus ***
2848 translit(dnm, m, l) AM_CONDITIONAL(USE_OPUS, true)
2849 AG_GST_CHECK_FEATURE(OPUS, [opus], opus, [
2850   PKG_CHECK_MODULES(OPUS, opus >= 0.9.4, [
2851           AC_DEFINE([HAVE_OPUS], 1, [Define if Opus >= 0.9.4 is installed])
2852           HAVE_OPUS="yes"
2853   ], [
2854           HAVE_OPUS="no"
2855   ])
2856   AC_SUBST(OPUS_CFLAGS)
2857   AC_SUBST(OPUS_LIBS)
2858 ])
2859
2860 dnl *** rsvg ***
2861 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
2862 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
2863   AG_GST_PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.36.2)
2864 ])
2865
2866 dnl *** gl ***
2867 translit(dnm, m, l) AM_CONDITIONAL(USE_GL, true)
2868 AG_GST_CHECK_FEATURE(GL, [gl elements], gl, [
2869   HAVE_GL="no"
2870
2871   if test x"$USE_OPENGL" = x"yes" -o x"$USE_GLES2" = x"yes"; then
2872     HAVE_GL="yes"
2873   fi
2874 ])
2875
2876 dnl *** gtk+ ***
2877 HAVE_GTK3_GL="no"
2878 translit(dnm, m, l) AM_CONDITIONAL(USE_GTK3, true)
2879 AG_GST_CHECK_FEATURE(GTK3, [Gtk+ elements], gtk, [
2880   PKG_CHECK_MODULES(GTK3, gtk+-3.0, [
2881     AC_DEFINE([HAVE_GTK3], 1, [Define if Gtk+ 3.0 is installed])
2882     HAVE_GTK3="yes"
2883   ], [
2884     HAVE_GTK3="no"
2885   ])
2886   PKG_CHECK_MODULES(GTK3_GL, gtk+-3.0 >= 3.15.0, [
2887     GDK_WINDOWING="no"
2888     if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2889       PKG_CHECK_MODULES(GTK3_X11, gtk+-x11-3.0, [
2890         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_X11_CFLAGS"
2891         GTK3_LIBS="$GTK3_LIBS $GTK3_X11_LIBS"
2892         GDK_WINDOWING="yes"
2893       ], [AC_MSG_NOTICE([Could not find Gtk X11 integration])])
2894     fi
2895     if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2896       PKG_CHECK_MODULES(GTK3_WAYLAND, gtk+-wayland-3.0, [
2897         GTK3_CFLAGS="$GTK3_CFLAGS $GTK3_WAYLAND_CFLAGS"
2898         GTK3_LIBS="$GTK3_LIBS $GTK3_WAYLAND_LIBS"
2899         GDK_WINDOWING="yes"
2900       ], [AC_MSG_NOTICE([Could not find Gtk Wayland integration])])
2901     fi
2902     if test "x$GDK_WINDOWING" = "xyes"; then
2903       AC_DEFINE([HAVE_GTK3_GL], 1, [Define if Gtk+ 3.0 GL is installed])
2904       HAVE_GTK3_GL="yes"
2905     fi
2906   ], [
2907       HAVE_GTK3_GL="no"
2908   ])
2909 ])
2910 AM_CONDITIONAL(USE_GTK3_GL, test "x$HAVE_GTK3_GL" = "xyes")
2911
2912 dnl *** Qt ***
2913 translit(dnm, m, l) AM_CONDITIONAL(USE_QT, true)
2914 AG_GST_CHECK_FEATURE(QT, [Qt elements], qt, [
2915   PKG_CHECK_MODULES(QT, Qt5Core Qt5Gui Qt5Qml Qt5Quick >= 5.4.0, [
2916       QT_PATH=`$PKG_CONFIG --variable=exec_prefix Qt5Core`
2917       QT_HOST_PATH=`$PKG_CONFIG --variable=host_bins Qt5Core`
2918       AC_PATH_PROGS(MOC, [moc-qt5 moc], moc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2919       AC_PATH_PROGS(RCC, [rcc-qt5 rcc], rcc, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2920       AC_PATH_PROGS(UIC, [uic-qt5 uic], uic, ["${QT_HOST_PATH}" "${QT_PATH}/bin"])
2921       if test "x$MOC" = "x" || test "x$UIC" = "x" || test "x$RCC" = "x"; then
2922         AC_MSG_WARN([One of the required qt build programs was not found])
2923         HAVE_QT="no"
2924       else
2925         HAVE_QT="yes"
2926         HAVE_QT_WINDOWING="no"
2927         QT_VERSION="`$PKG_CONFIG --define-prefix --modversion Qt5Core`"
2928         QPA_INCLUDE_PATH=`$PKG_CONFIG --variable=includedir Qt5Core`/QtGui/${QT_VERSION}/QtGui
2929         AS_IF([test -f "$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH/qpa/qplatformnativeinterface.h"], [
2930           QT_CFLAGS="$QT_CFLAGS -I$PKG_CONFIG_SYSROOT_DIR/$QPA_INCLUDE_PATH"
2931           HAVE_QT_QPA_HEADER="yes"
2932         ], [AC_MSG_NOTICE([Cannot find QPA])])
2933         if test "x$GST_GL_HAVE_WINDOW_X11" = "x1" -a "x$GST_GL_HAVE_PLATFORM_GLX" = "x1"; then
2934           PKG_CHECK_MODULES(QT_X11, Qt5X11Extras, [
2935             AC_DEFINE([HAVE_QT_X11], [], [Define if Qt X11 integration is installed])
2936             QT_CFLAGS="$QT_CFLAGS $QT_X11_CFLAGS"
2937             QT_LIBS="$QT_LIBS $QT_X11_LIBS"
2938             HAVE_QT_WINDOWING="yes"
2939           ], [AC_MSG_NOTICE([Could not find Qt X11 integration])])
2940         fi
2941         if test "x$GST_GL_HAVE_WINDOW_WAYLAND" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EGL" = "x1" -a "x$HAVE_QT_QPA_HEADER" = "xyes"; then
2942           PKG_CHECK_MODULES(QT_WAYLAND, Qt5WaylandClient, [
2943             AC_DEFINE([HAVE_QT_WAYLAND], [],
2944                 [Define if Qt Wayland integration is installed])
2945             QT_CFLAGS="$QT_CFLAGS $QT_WAYLAND_CFLAGS"
2946             QT_LIBS="$QT_LIBS $QT_WAYLAND_LIBS"
2947             HAVE_QT_WINDOWING="yes"
2948           ], [AC_MSG_NOTICE([Could not find Qt Wayland integration])])
2949         fi
2950         if test "x$GST_GL_HAVE_PLATFORM_EGL" = "x1"; then
2951           if test "x$GST_GL_HAVE_WINDOW_ANDROID" = "x1"; then
2952             PKG_CHECK_MODULES(QT_ANDROID, Qt5AndroidExtras, [
2953               # c++ on android requires a standard library and there are multiple
2954               # choices.  cerbero provides a pkg-config file the describes a choice
2955               # so try to use that.  Outside cerbero one has to pass these flags
2956               # manually for the library one is using
2957               PKG_CHECK_MODULES(GNUSTL, gnustl, [
2958                 QT_CFLAGS="$QT_CFLAGS $GNUSTL_CFLAGS"
2959                 QT_LIBS="$QT_LIBS $GNUSTL_LIBS"
2960                 ], [
2961                 AC_MSG_NOTICE([Could not find Standard C++ library])])
2962               AC_DEFINE([HAVE_QT_EGLFS], [],
2963                 [Define if Qt eglfs integration is installed])
2964               QT_CFLAGS="$QT_CFLAGS $QT_ANDROID_CFLAGS"
2965               QT_LIBS="$QT_LIBS $QT_ANDROID_LIBS"
2966               HAVE_QT_WINDOWING="yes"
2967             ], [AC_MSG_NOTICE([Could not find Qt Android integration])])
2968           else
2969               AC_DEFINE([HAVE_QT_EGLFS], [],
2970                 [Define if Qt eglfs integration is installed])
2971               HAVE_QT_WINDOWING="yes"
2972           fi
2973         fi
2974         if test "x$GST_GL_HAVE_WINDOW_COCOA" = "x1" -a "x$GST_GL_HAVE_PLATFORM_CGL" = "x1"; then
2975           PKG_CHECK_MODULES(QT_MAC, Qt5MacExtras, [
2976             AC_DEFINE([HAVE_QT_MAC], [],
2977                 [Define if Qt Mac integration is installed])
2978             QT_LIBDIR=`$PKG_CONFIG --variable=libdir Qt5Core`
2979             QT_CFLAGS="$QT_CFLAGS $QT_MAC_CFLAGS -F$QT_LIBDIR -framework QtCore -framework QtGui -framework QtQuick -framework QtQml -framework QtMacExtras"
2980             QT_LIBS="$QT_LIBS $QT_MAC_LIBS"
2981             HAVE_QT_WINDOWING="yes"
2982           ], [AC_MSG_NOTICE([Could not find Qt Mac integration])])
2983         fi
2984         if test "x$GST_GL_HAVE_WINDOW_EAGL" = "x1" -a "x$GST_GL_HAVE_PLATFORM_EAGL" = "x1"; then
2985           if test "x$HAVE_IOS" = "xyes"; then
2986             # iOS doesn't have its own extras package so if we have the core
2987             # modules we are good to go
2988             AC_DEFINE([HAVE_QT_IOS], [],
2989                 [Define if Qt iOS integration is installed])
2990             HAVE_QT_WINDOWING="yes"
2991           fi
2992         fi
2993         if test "x$HAVE_QT_WINDOWING" = "xno"; then
2994           AC_MSG_WARN([Could not find any Qt Windowing integration])
2995           HAVE_QT="no"
2996         fi
2997         AC_SUBST([QT_CFLAGS])
2998         AC_SUBST([QT_LIBS])
2999       fi
3000   ], [
3001       HAVE_QT="no"
3002   ])
3003 ])
3004
3005 dnl *** Vulkan ***
3006 translit(dnm, m, l) AM_CONDITIONAL(USE_VULKAN, true)
3007 AG_GST_CHECK_FEATURE(VULKAN, [Vulkan elements], vulkan, [
3008   AC_CHECK_HEADER(vulkan/vulkan.h, [
3009     AC_CHECK_LIB(vulkan, vkCreateDevice, [
3010       VULKAN_LIBS="-lvulkan"
3011       AC_SUBST(VULKAN_LIBS)
3012       if test "x$GST_VULKAN_HAVE_WINDOW_XCB" = "x1"; then
3013         HAVE_VULKAN="yes"
3014       fi
3015       if test "x$GST_VULKAN_HAVE_WINDOW_WAYLAND" = "x1"; then
3016         HAVE_VULKAN="yes"
3017       fi
3018     ], [])
3019   ], [])
3020 ])
3021
3022 dnl *** teletextdec ***
3023 translit(dnm, m, l) AM_CONDITIONAL(USE_TELETEXTDEC, true)
3024 AG_GST_CHECK_FEATURE(TELETEXTDEC, [Teletext decoder], teletextdec, [
3025   AG_GST_PKG_CHECK_MODULES(TELETEXTDEC, zvbi-0.2)
3026  ])
3027
3028 dnl *** wildmidi ***
3029 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
3030 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
3031   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
3032                          WildMidi_Init, ,
3033                          wildmidi_lib.h,
3034                          WILDMIDI_LIBS="-lWildMidi")
3035   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
3036
3037   if test "x$HAVE_WILDMIDI" = "xyes"; then
3038          WILDMIDI_CFLAGS=
3039          WILDMIDI_LIBS=-lWildMidi
3040          AC_MSG_NOTICE(compiling gstWildMidi)
3041   else
3042          WILDMIDI_CFLAGS=
3043          WILDMIDI_LIBS=
3044          AC_MSG_WARN(no WildMidi library found (libWildMidi))
3045   fi
3046   AC_SUBST(WILDMIDI_CFLAGS)
3047   AC_SUBST(WILDMIDI_LIBS)
3048 ])
3049
3050 dnl **** Smooth Streaming ****
3051 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHSTREAMING, true)
3052 AG_GST_CHECK_FEATURE(SMOOTHSTREAMING, [Smooth Streaming plug-in], smoothstreaming, [
3053   PKG_CHECK_MODULES(LIBXML2, libxml-2.0 >= 2.4,
3054     [HAVE_LIBXML2="yes"
3055      HAVE_SMOOTHSTREAMING="yes"],
3056     [HAVE_LIBXML2="no"
3057      HAVE_SMOOTHSTREAMING="no"])
3058   AC_SUBST(LIBXML2_CFLAGS)
3059   AC_SUBST(LIBXML2_LIBS)
3060 ])
3061
3062 dnl *** sndfile ***
3063 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
3064 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfdec sfenc, [
3065   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
3066   AC_SUBST(SNDFILE_CFLAGS)
3067   AC_SUBST(SNDFILE_LIBS)
3068 ])
3069
3070 dnl *** soundtouch ***
3071 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
3072 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
3073   dnl We only need -lBPM on soundtouch < 1.4
3074   dnl We check for libSoundTouch since Debian used it before upstream
3075   dnl added a pkgconfig file.
3076   HAVE_SOUNDTOUCH_1_4=yes
3077   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
3078     [HAVE_SOUNDTOUCH=yes],
3079     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
3080       [HAVE_SOUNDTOUCH=yes],
3081       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
3082         [HAVE_SOUNDTOUCH=yes
3083           HAVE_SOUNDTOUCH_1_4=no
3084           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3085         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
3086           [HAVE_SOUNDTOUCH=yes],
3087           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
3088             [HAVE_SOUNDTOUCH=yes
3089               HAVE_SOUNDTOUCH_1_4=no
3090               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
3091             HAVE_SOUNDTOUCH=no)])])])])
3092   AC_SUBST(SOUNDTOUCH_CFLAGS)
3093   AC_SUBST(SOUNDTOUCH_LIBS)
3094   if test "x$HAVE_CXX" != "xyes"; then
3095     USE_SOUNDTOUCH=false
3096     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
3097   fi
3098   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
3099      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
3100          [Defined if the available libSoundTouch is >= 1.4])
3101   fi
3102 ])
3103
3104 dnl *** spc ***
3105 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
3106 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
3107   AC_CHECK_HEADER(openspc.h, [
3108     AC_CHECK_LIB(openspc, OSPC_Init, [
3109       SPC_LIBS="-lopenspc"
3110       AC_SUBST(SPC_LIBS)
3111       HAVE_SPC=yes
3112     ], [
3113       HAVE_SPC=no
3114     ])
3115   ], [
3116     HAVE_SPC=no
3117   ])
3118 ])
3119
3120 dnl *** gme ***
3121 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
3122 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
3123   AC_CHECK_HEADER(gme/gme.h, [
3124     AC_CHECK_LIB(gme, gme_new_emu, [
3125       GME_LIBS="-lgme"
3126       AC_SUBST(GME_LIBS)
3127       HAVE_GME=yes
3128     ], [
3129       HAVE_GME=no
3130     ])
3131   ], [
3132     HAVE_GME=no
3133   ])
3134
3135   if test "x$HAVE_GME" = "xyes"; then
3136     AC_CHECK_LIB(gme, gme_enable_accuracy, [
3137       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
3138       ])
3139   fi
3140 ])
3141
3142 dnl *** dvb ***
3143 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
3144 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
3145   AC_MSG_CHECKING([Checking for up to date dvb installation])
3146   AC_CHECK_HEADER(linux/dvb/version.h, [
3147     AC_MSG_CHECKING([for up-to-date dvb API])
3148     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <linux/dvb/version.h>]], [[
3149         #if DVB_API_VERSION < 5 || (DVB_API_VERSION == 5 && DVB_API_VERSION_MINOR <= 4)
3150         #error "Incompatible dvb API"
3151         #endif
3152     ]])], [ AC_MSG_RESULT(yes)
3153       HAVE_DVB="yes"
3154     ], [ AC_MSG_RESULT(no)
3155       HAVE_DVB="no"
3156     ])
3157   ], [HAVE_DVB="no"])
3158 ])
3159
3160 dnl *** acm ***
3161 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
3162 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
3163   AC_MSG_CHECKING([Checking for ACM support])
3164   AC_CHECK_HEADERS([windows.h msacm.h],
3165       [HAVE_ACM="yes"
3166        AC_SUBST(ACMENC_CFLAGS)
3167        AC_SUBST(ACMMP3DEC_CFLAGS)
3168       ], [HAVE_ACM="no"],
3169       [AC_INCLUDES_DEFAULT
3170 #include <windows.h>])
3171 ])
3172
3173 dnl *** vdpau ***
3174 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
3175 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
3176   VDPAU_CFLAGS=
3177   VDPAU_LIBS=-lvdpau
3178   HAVE_VDPAU=no
3179
3180   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
3181   [
3182     if test "$HAVE_VDPAU" = "no"; then
3183       saved_CPPFLAGS="$CPPFLAGS"
3184       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3185
3186       if test -z "$HAVE_VDPAU_H"; then
3187         dnl Didn't find VDPAU header straight away.
3188         dnl Try /usr/include/nvidia. Need to clear caching vars first
3189         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
3190         unset ac_cv_header_vdpau_vdpau_h
3191         unset ac_cv_header_vdpau_vdpau_x11_h
3192         VDPAU_CFLAGS="-I/usr/include/nvidia"
3193         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
3194         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
3195         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
3196       fi
3197
3198       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
3199
3200       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
3201         dnl Found the headers - look for the lib
3202         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
3203         saved_LIBS="$LIBS"
3204         LIBS="$VDPAU_LIBS $saved_LIBS"
3205         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
3206         LIBS="$saved_LIBS"
3207       fi
3208     fi
3209   ])
3210
3211   if test "$HAVE_VDPAU" = "yes"; then
3212     AC_MSG_NOTICE([Found up to date VDPAU installation])
3213     AC_SUBST(VDPAU_CFLAGS)
3214     AC_SUBST(VDPAU_LIBS)
3215   fi
3216 ])
3217
3218 dnl *** sbc ***
3219 translit(dnm, m, l) AM_CONDITIONAL(USE_SBC, true)
3220 AG_GST_CHECK_FEATURE(SBC, [SBC bluetooth audio codec], sbc, [
3221   AG_GST_PKG_CHECK_MODULES(SBC, [sbc >= 1.0])
3222 ])
3223
3224 dnl *** schroedinger ***
3225 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
3226 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
3227   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.10)
3228 ])
3229
3230 dnl *** zbar ***
3231 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
3232 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
3233   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
3234 ])
3235
3236 dnl *** rtmp ***
3237 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
3238 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
3239   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
3240 ])
3241
3242 dnl *** spandsp ***
3243 translit(dnm, m, l) AM_CONDITIONAL(USE_SPANDSP, true)
3244 AG_GST_CHECK_FEATURE(SPANDSP, [Spandsp], spandsp, [
3245   PKG_CHECK_MODULES(SPANDSP, spandsp >= 0.0.6, [
3246     HAVE_SPANDSP="yes" ], [
3247     HAVE_SPANDSP="no"
3248   ])
3249 ])
3250 AC_SUBST(SPANDSP_CFLAGS)
3251 AC_SUBST(SPANDSP_LIBS)
3252
3253 dnl *** hls-crypto ***
3254 AC_ARG_WITH([hls-crypto],
3255   AS_HELP_STRING([--with-hls-crypto=auto|nettle|libgcrypt|openssl], [
3256     which cryptographic library version to compile against for hls (default: auto)
3257   ]), [
3258     AS_CASE([$with_hls_crypto],
3259       [nettle],[],
3260       [libgcrypt],[],
3261       [openssl],[],
3262       [with_hls_crypto=auto]
3263     )
3264   ]
3265 )
3266
3267 dnl *** hls ***
3268 translit(dnm, m, l) AM_CONDITIONAL(USE_HLS, true)
3269 AG_GST_CHECK_FEATURE(HLS, [http live streaming plugin], hls, [
3270   AS_CASE([$with_hls_crypto],
3271     [nettle], [
3272       PKG_CHECK_MODULES(NETTLE, nettle, [
3273         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3274         HAVE_HLS="yes"
3275       ],[AC_MSG_ERROR([Could not find nettle library])])
3276     ],
3277     [libgcrypt], [
3278       AM_PATH_LIBGCRYPT([1.2.0], [
3279         AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3280         HAVE_HLS="yes"
3281       ],[AC_MSG_ERROR([Could not find libgcrypt library])])
3282     ],
3283     [openssl], [
3284       PKG_CHECK_MODULES(OPENSSL, openssl, [
3285         AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3286         HAVE_HLS="yes"
3287       ],[AC_MSG_ERROR([Could not find openssl library])])
3288     ],
3289     [
3290       dnl Try to find a valid crypto library
3291       PKG_CHECK_MODULES(NETTLE, nettle, [
3292         AC_DEFINE(HAVE_NETTLE, 1, [Define if nettle is available])
3293         HAVE_HLS="yes"
3294       ],[
3295         AM_PATH_LIBGCRYPT([1.2.0], [
3296           AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if libgcrypt is available])
3297           HAVE_HLS="yes"
3298         ],[
3299           PKG_CHECK_MODULES(OPENSSL, openssl, [
3300             AC_DEFINE(HAVE_OPENSSL, 1, [Define if openssl is available])
3301             HAVE_HLS="yes"
3302           ],[
3303             HAVE_HLS="no"
3304           ])
3305         ])
3306       ])
3307     ]
3308   )
3309 ])
3310
3311 dnl *** x265 (H.265/HEVC encoder) ***
3312 translit(dnm, m, l) AM_CONDITIONAL(USE_X265, true)
3313 AG_GST_CHECK_FEATURE(X265, [x265 plug-in], x265, [
3314   AG_GST_PKG_CHECK_MODULES(X265, x265)
3315 ])
3316
3317 dnl *** WebRTC Audio Processing ***
3318 dnl Note: We test for a specific version as there is no API stability
3319 translit(dnm, m, l) AM_CONDITIONAL(USE_WEBRTCDSP, true)
3320 AG_GST_CHECK_FEATURE(WEBRTCDSP, [WebRTC Audio Processing], webrtcdsp, [
3321
3322   AG_GST_PKG_CHECK_MODULES(WEBRTCDSP, webrtc-audio-processing >= 0.2 webrtc-audio-processing < 0.4)
3323
3324   # On Android, C++ headers comes with the STL implementation
3325   AS_CASE(["${host}"],
3326     [*android*],
3327       [
3328         PKG_CHECK_MODULES(GNUSTL, gnustl, [
3329           WEBRTCDSP_CFLAGS="$WEBRTCDSP_CFLAGS $GNUSTL_CFLAGS"
3330           WEBRTCDSP_LIBS="$WEBRTCDSP_LIBS $GNUSTL_LIBS"])
3331       ])
3332   AC_SUBST([WEBRTCDSP_CFLAGS])
3333   AC_SUBST([WEBRTCDSP_LIBS])
3334
3335   AC_LANG_PUSH([C++])
3336   old_CPPFLAGS=$CPPFLAGS
3337   CPPFLAGS="-std=c++11 $CPPFLAGS $GNUSTL_CFLAGS"
3338   AC_CHECK_HEADER([vector],[],[HAVE_WEBRTCDSP=no])
3339   CPPFLAGS=$old_CPPFLAGS
3340   AC_LANG_POP([C++])
3341 ])
3342
3343 else
3344
3345 dnl not building plugins with external dependencies,
3346 dnl but we still need to set the conditionals
3347
3348 AM_CONDITIONAL(USE_ASSRENDER, false)
3349 AM_CONDITIONAL(USE_VOAMRWBENC, false)
3350 AM_CONDITIONAL(USE_VOAACENC, false)
3351 AM_CONDITIONAL(USE_BS2B, false)
3352 AM_CONDITIONAL(USE_BZ2, false)
3353 AM_CONDITIONAL(USE_CHROMAPRINT, false)
3354 AM_CONDITIONAL(USE_CURL, false)
3355 AM_CONDITIONAL(USE_SSH2, false)
3356 AM_CONDITIONAL(USE_DASH, false)
3357 AM_CONDITIONAL(USE_DC1394, false)
3358 AM_CONDITIONAL(USE_DECKLINK, false)
3359 AM_CONDITIONAL(DECKLINK_OSX, false)
3360 AM_CONDITIONAL(USE_DIRECTFB, false)
3361 AM_CONDITIONAL(USE_WAYLAND, false)
3362 AM_CONDITIONAL(USE_DAALA, false)
3363 AM_CONDITIONAL(USE_DTS, false)
3364 AM_CONDITIONAL(USE_EXIF, false)
3365 AM_CONDITIONAL(USE_RESINDVD, false)
3366 AM_CONDITIONAL(USE_FAAC, false)
3367 AM_CONDITIONAL(USE_FAAD, false)
3368 AM_CONDITIONAL(USE_FBDEV, false)
3369 AM_CONDITIONAL(USE_FDK_AAC, false)
3370 AM_CONDITIONAL(USE_FLITE, false)
3371 AM_CONDITIONAL(USE_FLUIDSYNTH, false)
3372 AM_CONDITIONAL(USE_GL, false)
3373 AM_CONDITIONAL(USE_GSM, false)
3374 AM_CONDITIONAL(USE_GTK3, false)
3375 AM_CONDITIONAL(USE_GTK3_GL, false)
3376 AM_CONDITIONAL(USE_HLS, false)
3377 AM_CONDITIONAL(USE_IQA, false)
3378 AM_CONDITIONAL(USE_KATE, false)
3379 AM_CONDITIONAL(USE_KMS, false)
3380 AM_CONDITIONAL(USE_TIGER, false)
3381 AM_CONDITIONAL(USE_LADSPA, false)
3382 AM_CONDITIONAL(USE_LV2, false)
3383 AM_CONDITIONAL(USE_LIBDE265, false)
3384 AM_CONDITIONAL(USE_LIBMMS, false)
3385 AM_CONDITIONAL(USE_MODPLUG, false)
3386 AM_CONDITIONAL(USE_MPEG2ENC, false)
3387 AM_CONDITIONAL(USE_MPLEX, false)
3388 AM_CONDITIONAL(USE_MUSEPACK, false)
3389 AM_CONDITIONAL(USE_NEON, false)
3390 AM_CONDITIONAL(USE_OFA, false)
3391 AM_CONDITIONAL(USE_OPENAL, false)
3392 AM_CONDITIONAL(USE_OPENCV, false)
3393 AM_CONDITIONAL(USE_OPENEXR, false)
3394 AM_CONDITIONAL(USE_OPENJPEG, false)
3395 AM_CONDITIONAL(USE_OPENNI2, false)
3396 AM_CONDITIONAL(USE_OPUS, false)
3397 AM_CONDITIONAL(USE_QT, false)
3398 AM_CONDITIONAL(USE_WILDMIDI, false)
3399 AM_CONDITIONAL(USE_SMOOTHSTREAMING, false)
3400 AM_CONDITIONAL(USE_SNDFILE, false)
3401 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
3402 AM_CONDITIONAL(USE_SPANDSP, false)
3403 AM_CONDITIONAL(USE_SPC, false)
3404 AM_CONDITIONAL(USE_SRTP, false)
3405 AM_CONDITIONAL(USE_GME, false)
3406 AM_CONDITIONAL(USE_DVB, false)
3407 AM_CONDITIONAL(USE_ACM, false)
3408 AM_CONDITIONAL(USE_VDPAU, false)
3409 AM_CONDITIONAL(USE_SBC, false)
3410 AM_CONDITIONAL(USE_SCHRO, false)
3411 AM_CONDITIONAL(USE_ZBAR, false)
3412 AM_CONDITIONAL(USE_RSVG, false)
3413 AM_CONDITIONAL(USE_RTMP, false)
3414 AM_CONDITIONAL(USE_TELETEXTDEC, false)
3415 AM_CONDITIONAL(USE_UVCH264, false)
3416 AM_CONDITIONAL(USE_WEBP, false)
3417 AM_CONDITIONAL(USE_WEBRTCDSP, false)
3418 AM_CONDITIONAL(USE_OPENH264, false)
3419 AM_CONDITIONAL(USE_X265, false)
3420 AM_CONDITIONAL(USE_DTLS, false)
3421 AM_CONDITIONAL(USE_VULKAN, false)
3422 AM_CONDITIONAL(USE_TTML, false)
3423
3424 fi dnl of EXT plugins
3425
3426 dnl *** finalize CFLAGS, LDFLAGS, LIBS
3427
3428 dnl Overview:
3429 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
3430 dnl GST_*:              flags shared by built objects to link against GStreamer
3431 dnl GST_ALL_LDFLAGS:    linker flags shared by all
3432 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
3433 dnl GST_LT_LDFLAGS:     library versioning of our libraries
3434 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
3435
3436 dnl GST_OPTION_CFLAGS
3437 if test "x$USE_DEBUG" = xyes; then
3438    PROFILE_CFLAGS="-g"
3439 fi
3440 AC_SUBST(PROFILE_CFLAGS)
3441
3442 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
3443   dnl Define _only_ during CVS (not pre-releases or releases)
3444   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
3445 else
3446   DEPRECATED_CFLAGS=""
3447 fi
3448 AC_SUBST(DEPRECATED_CFLAGS)
3449
3450 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
3451 dnl at make time with e.g. make ERROR_CFLAGS=""
3452 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3453 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3454 GST_OPTION_OBJCFLAGS="\$(WARNING_OBJCFLAGS) \$(ERROR_OBJCFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
3455 AC_SUBST(GST_OPTION_CFLAGS)
3456 AC_SUBST(GST_OPTION_CXXFLAGS)
3457 AC_SUBST(GST_OPTION_OBJCFLAGS)
3458
3459 dnl FIXME: do we want to rename to GST_ALL_* ?
3460 dnl prefer internal headers to already installed ones
3461 dnl also add builddir include for enumtypes and marshal
3462 dnl add GST_OPTION_CFLAGS, but overridable
3463 GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS -DGST_USE_UNSTABLE_API"
3464 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
3465 GST_OBJCFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_OBJCFLAGS)"
3466 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
3467 AC_SUBST(GST_CFLAGS)
3468 AC_SUBST(GST_CXXFLAGS)
3469 AC_SUBST(GST_OBJCFLAGS)
3470 AC_SUBST(GST_LIBS)
3471 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3472 GST_PLUGINS_BAD_OBJCFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3473 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
3474 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
3475 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
3476 AC_SUBST(GST_PLUGINS_BAD_OBJCFLAGS)
3477
3478 dnl LDFLAGS really should only contain flags, not libs - they get added before
3479 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3480 GST_ALL_LDFLAGS="-no-undefined"
3481 if test "x${enable_Bsymbolic}" = "xyes"; then
3482   GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
3483 fi
3484 AC_SUBST(GST_ALL_LDFLAGS)
3485
3486 dnl GST_LIB_LDFLAGS
3487 dnl linker flags shared by all libraries
3488 dnl LDFLAGS modifier defining exported symbols from built libraries
3489 dnl (export _gst_foo but not __gst_foo)
3490 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
3491 AC_SUBST(GST_LIB_LDFLAGS)
3492
3493 dnl this really should only contain flags, not libs - they get added before
3494 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
3495 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
3496 AC_SUBST(GST_PLUGIN_LDFLAGS)
3497
3498 dnl *** output files ***
3499
3500 $MKDIR_P tests/check/orc
3501
3502 dnl po/Makefile.in
3503
3504 AC_CONFIG_FILES(
3505 Makefile
3506 common/Makefile
3507 common/m4/Makefile
3508 gst/Makefile
3509 gst/accurip/Makefile
3510 gst/adpcmdec/Makefile
3511 gst/adpcmenc/Makefile
3512 gst/aiff/Makefile
3513 gst/videoframe_audiolevel/Makefile
3514 gst/asfmux/Makefile
3515 gst/audiobuffersplit/Makefile
3516 gst/audiofxbad/Makefile
3517 gst/audiomixer/Makefile
3518 gst/audiomixmatrix/Makefile
3519 gst/audiovisualizers/Makefile
3520 gst/autoconvert/Makefile
3521 gst/bayer/Makefile
3522 gst/camerabin2/Makefile
3523 gst/coloreffects/Makefile
3524 gst/debugutils/Makefile
3525 gst/dvbsuboverlay/Makefile
3526 gst/dvdspu/Makefile
3527 gst/festival/Makefile
3528 gst/fieldanalysis/Makefile
3529 gst/freeverb/Makefile
3530 gst/frei0r/Makefile
3531 gst/gaudieffects/Makefile
3532 gst/geometrictransform/Makefile
3533 gst/gdp/Makefile
3534 gst/id3tag/Makefile
3535 gst/inter/Makefile
3536 gst/interlace/Makefile
3537 gst/ivfparse/Makefile
3538 gst/ivtc/Makefile
3539 gst/jp2kdecimator/Makefile
3540 gst/jpegformat/Makefile
3541 gst/librfb/Makefile
3542 gst/midi/Makefile
3543 gst/mpegdemux/Makefile
3544 gst/mpegtsdemux/Makefile
3545 gst/mpegtsmux/Makefile
3546 gst/mpegtsmux/tsmux/Makefile
3547 gst/mpegpsmux/Makefile
3548 gst/mxf/Makefile
3549 gst/netsim/Makefile
3550 gst/onvif/Makefile
3551 gst/pcapparse/Makefile
3552 gst/pnm/Makefile
3553 gst/rawparse/Makefile
3554 gst/removesilence/Makefile
3555 gst/sdp/Makefile
3556 gst/segmentclip/Makefile
3557 gst/siren/Makefile
3558 gst/smooth/Makefile
3559 gst/speed/Makefile
3560 gst/subenc/Makefile
3561 gst/stereo/Makefile
3562 gst/timecode/Makefile
3563 gst/videofilters/Makefile
3564 gst/videoparsers/Makefile
3565 gst/videosignal/Makefile
3566 gst/vmnc/Makefile
3567 gst/y4m/Makefile
3568 gst/yadif/Makefile
3569 gst/compositor/Makefile
3570 gst-libs/Makefile
3571 gst-libs/gst/Makefile
3572 gst-libs/gst/adaptivedemux/Makefile
3573 gst-libs/gst/basecamerabinsrc/Makefile
3574 gst-libs/gst/gl/Makefile
3575 gst-libs/gst/gl/android/Makefile
3576 gst-libs/gst/gl/cocoa/Makefile
3577 gst-libs/gst/gl/dispmanx/Makefile
3578 gst-libs/gst/gl/glprototypes/Makefile
3579 gst-libs/gst/gl/eagl/Makefile
3580 gst-libs/gst/gl/egl/Makefile
3581 gst-libs/gst/gl/wayland/Makefile
3582 gst-libs/gst/gl/win32/Makefile
3583 gst-libs/gst/gl/x11/Makefile
3584 gst-libs/gst/gl/viv-fb/Makefile
3585 gst-libs/gst/insertbin/Makefile
3586 gst-libs/gst/interfaces/Makefile
3587 gst-libs/gst/codecparsers/Makefile
3588 gst-libs/gst/mpegts/Makefile
3589 gst-libs/gst/uridownloader/Makefile
3590 gst-libs/gst/wayland/Makefile
3591 gst-libs/gst/base/Makefile
3592 gst-libs/gst/player/Makefile
3593 gst-libs/gst/video/Makefile
3594 gst-libs/gst/audio/Makefile
3595 gst-libs/gst/opencv/Makefile
3596 gst-libs/gst/allocators/Makefile
3597 sys/Makefile
3598 sys/dshowdecwrapper/Makefile
3599 sys/acmenc/Makefile
3600 sys/acmmp3dec/Makefile
3601 sys/androidmedia/Makefile
3602 sys/applemedia/Makefile
3603 sys/bluez/Makefile
3604 sys/d3dvideosink/Makefile
3605 sys/decklink/Makefile
3606 sys/directsound/Makefile
3607 sys/dshowsrcwrapper/Makefile
3608 sys/dshowvideosink/Makefile
3609 sys/dvb/Makefile
3610 sys/fbdev/Makefile
3611 sys/kms/Makefile
3612 sys/msdk/Makefile
3613 sys/nvenc/Makefile
3614 sys/opensles/Makefile
3615 sys/shm/Makefile
3616 sys/tinyalsa/Makefile
3617 sys/uvch264/Makefile
3618 sys/vcd/Makefile
3619 sys/vdpau/Makefile
3620 sys/wasapi/Makefile
3621 sys/winks/Makefile
3622 sys/winscreencap/Makefile
3623 tests/Makefile
3624 tests/check/Makefile
3625 tests/files/Makefile
3626 tests/examples/Makefile
3627 tests/examples/avsamplesink/Makefile
3628 tests/examples/camerabin2/Makefile
3629 tests/examples/codecparsers/Makefile
3630 tests/examples/directfb/Makefile
3631 tests/examples/audiomixmatrix/Makefile
3632 tests/examples/gl/Makefile
3633 tests/examples/gl/cocoa/Makefile
3634 tests/examples/gl/clutter/Makefile
3635 tests/examples/gl/generic/Makefile
3636 tests/examples/gl/generic/cube/Makefile
3637 tests/examples/gl/generic/cubeyuv/Makefile
3638 tests/examples/gl/generic/doublecube/Makefile
3639 tests/examples/gl/generic/recordgraphic/Makefile
3640 tests/examples/gl/gtk/Makefile
3641 tests/examples/gl/gtk/3dvideo/Makefile
3642 tests/examples/gl/gtk/filternovideooverlay/Makefile
3643 tests/examples/gl/gtk/filtervideooverlay/Makefile
3644 tests/examples/gl/gtk/fxtest/Makefile
3645 tests/examples/gl/gtk/switchvideooverlay/Makefile
3646 tests/examples/gl/qt/Makefile
3647 tests/examples/gl/sdl/Makefile
3648 tests/examples/gtk/Makefile
3649 tests/examples/mpegts/Makefile
3650 tests/examples/mxf/Makefile
3651 tests/examples/opencv/Makefile
3652 tests/examples/uvch264/Makefile
3653 tests/examples/waylandsink/Makefile
3654 tests/icles/Makefile
3655 ext/voamrwbenc/Makefile
3656 ext/voaacenc/Makefile
3657 ext/assrender/Makefile
3658 ext/bs2b/Makefile
3659 ext/bz2/Makefile
3660 ext/chromaprint/Makefile
3661 ext/curl/Makefile
3662 ext/dash/Makefile
3663 ext/dc1394/Makefile
3664 ext/directfb/Makefile
3665 ext/wayland/Makefile
3666 ext/daala/Makefile
3667 ext/dts/Makefile
3668 ext/gl/Makefile
3669 ext/gtk/Makefile
3670 ext/faac/Makefile
3671 ext/faad/Makefile
3672 ext/fdkaac/Makefile
3673 ext/flite/Makefile
3674 ext/fluidsynth/Makefile
3675 ext/gsm/Makefile
3676 ext/hls/Makefile
3677 ext/iqa/Makefile
3678 ext/kate/Makefile
3679 ext/ladspa/Makefile
3680 ext/lv2/Makefile
3681 ext/libde265/Makefile
3682 ext/libmms/Makefile
3683 ext/Makefile
3684 ext/modplug/Makefile
3685 ext/mpeg2enc/Makefile
3686 ext/mplex/Makefile
3687 ext/musepack/Makefile
3688 ext/neon/Makefile
3689 ext/ofa/Makefile
3690 ext/openal/Makefile
3691 ext/opencv/Makefile
3692 ext/openexr/Makefile
3693 ext/openh264/Makefile
3694 ext/openjpeg/Makefile
3695 ext/openni2/Makefile
3696 ext/opus/Makefile
3697 ext/qt/Makefile
3698 ext/rsvg/Makefile
3699 ext/resindvd/Makefile
3700 ext/rtmp/Makefile
3701 ext/sbc/Makefile
3702 ext/schroedinger/Makefile
3703 ext/smoothstreaming/Makefile
3704 ext/sndfile/Makefile
3705 ext/soundtouch/Makefile
3706 ext/spandsp/Makefile
3707 ext/srtp/Makefile
3708 ext/teletextdec/Makefile
3709 ext/gme/Makefile
3710 ext/spc/Makefile
3711 ext/wildmidi/Makefile
3712 ext/vulkan/Makefile
3713 ext/vulkan/xcb/Makefile
3714 ext/vulkan/wayland/Makefile
3715 ext/webp/Makefile
3716 ext/x265/Makefile
3717 ext/zbar/Makefile
3718 ext/dtls/Makefile
3719 ext/webrtcdsp/Makefile
3720 ext/ttml/Makefile
3721 po/Makefile.in
3722 docs/Makefile
3723 docs/plugins/Makefile
3724 docs/libs/Makefile
3725 docs/version.entities
3726 pkgconfig/Makefile
3727 pkgconfig/gstreamer-plugins-bad.pc
3728 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
3729 pkgconfig/gstreamer-codecparsers.pc
3730 pkgconfig/gstreamer-codecparsers-uninstalled.pc
3731 pkgconfig/gstreamer-insertbin.pc
3732 pkgconfig/gstreamer-insertbin-uninstalled.pc
3733 pkgconfig/gstreamer-gl.pc
3734 pkgconfig/gstreamer-gl-uninstalled.pc
3735 pkgconfig/gstreamer-mpegts.pc
3736 pkgconfig/gstreamer-mpegts-uninstalled.pc
3737 pkgconfig/gstreamer-player.pc
3738 pkgconfig/gstreamer-player-uninstalled.pc
3739 pkgconfig/gstreamer-wayland.pc
3740 pkgconfig/gstreamer-wayland-uninstalled.pc
3741 pkgconfig/gstreamer-bad-base.pc
3742 pkgconfig/gstreamer-bad-base-uninstalled.pc
3743 pkgconfig/gstreamer-bad-video.pc
3744 pkgconfig/gstreamer-bad-video-uninstalled.pc
3745 pkgconfig/gstreamer-bad-audio.pc
3746 pkgconfig/gstreamer-bad-audio-uninstalled.pc
3747 pkgconfig/gstreamer-bad-allocators.pc
3748 pkgconfig/gstreamer-bad-allocators-uninstalled.pc
3749 tools/Makefile
3750 m4/Makefile
3751 )
3752
3753 AC_OUTPUT
3754
3755 AG_GST_OUTPUT_PLUGINS
3756 ORC_OUTPUT
3757