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