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