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