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