dshowvideosink: update for latest GstXOverlay changes
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ(2.60)
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, 0.10.21.1,
7     http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
8     gst-plugins-bad)
9
10 AG_GST_INIT
11
12 dnl initialize automake
13 AM_INIT_AUTOMAKE([-Wno-portability 1.10])
14
15 dnl define PACKAGE_VERSION_* variables
16 AS_VERSION
17
18 dnl check if this is a release version
19 AS_NANO(GST_GIT="no", GST_GIT="yes")
20
21 dnl can autoconf find the source ?
22 AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml])
23
24 dnl define the output header for config
25 AM_CONFIG_HEADER([config.h])
26
27 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
28 AM_MAINTAINER_MODE
29
30 dnl sets host_* variables
31 AC_CANONICAL_HOST
32
33 dnl use pretty build output with automake >= 1.11
34 m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
35   [AM_DEFAULT_VERBOSITY=1
36    AC_SUBST(AM_DEFAULT_VERBOSITY)])
37
38 dnl our libraries and install dirs use major.minor as a version
39 GST_MAJORMINOR=$GST_PLUGINS_BAD_VERSION_MAJOR.$GST_PLUGINS_BAD_VERSION_MINOR
40 dnl we override it here if we need to for the release candidate of new series
41 GST_MAJORMINOR=0.10
42 AC_SUBST(GST_MAJORMINOR)
43
44 AG_GST_LIBTOOL_PREPARE
45
46 dnl FIXME: this macro doesn't actually work;
47 dnl the generated libtool script has no support for the listed tags.
48 dnl So this needs to be fixed first if we want to use this
49 dnl AS_LIBTOOL_TAGS([CXX])
50
51 AC_LIBTOOL_WIN32_DLL
52 AM_PROG_LIBTOOL
53
54 dnl *** required versions of GStreamer stuff ***
55 GST_REQ=0.10.32.1
56 GSTPB_REQ=0.10.32.1
57
58 dnl *** autotools stuff ****
59
60 dnl allow for different autotools
61 AS_AUTOTOOLS_ALTERNATE
62
63 dnl Add parameters for aclocal
64 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
65
66 dnl set up gettext
67 dnl the version check needs to stay here because autopoint greps for it
68 AM_GNU_GETTEXT_VERSION([0.17])
69 AM_GNU_GETTEXT([external])
70 AG_GST_GETTEXT([gst-plugins-bad-$GST_MAJORMINOR])
71
72 dnl *** check for arguments to configure ***
73
74 AG_GST_ARG_DEBUG
75 AG_GST_ARG_PROFILING
76 AG_GST_ARG_VALGRIND
77 AG_GST_ARG_GCOV
78
79 AG_GST_ARG_EXAMPLES
80
81 AG_GST_ARG_WITH_PKG_CONFIG_PATH
82 AG_GST_ARG_WITH_PACKAGE_NAME
83 AG_GST_ARG_WITH_PACKAGE_ORIGIN
84
85 AG_GST_ARG_WITH_PLUGINS
86
87 AG_GST_ARG_ENABLE_EXTERNAL
88
89 AG_GST_ARG_ENABLE_EXPERIMENTAL
90
91 dnl *** checks for platform ***
92 AG_GST_PLATFORM
93
94 dnl * hardware/architecture *
95
96 dnl common/m4/gst-arch.m4
97 dnl check CPU type
98 AG_GST_ARCH
99
100 dnl Determine endianness
101 AC_C_BIGENDIAN
102
103 dnl *** checks for programs ***
104
105 dnl find a compiler
106 AC_PROG_CC
107 AC_PROG_CC_STDC
108
109 dnl determine c++ compiler
110 AC_PROG_CXX
111 dnl determine if c++ is available on this system
112 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
113
114 AS_PROG_OBJC
115
116 dnl check if the compiler supports '-c' and '-o' options
117 AM_PROG_CC_C_O
118
119 dnl check if the compiler supports do while(0) macros
120 AG_GST_CHECK_DOWHILE_MACROS
121
122 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
123 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
124
125 dnl check for documentation tools
126 GTK_DOC_CHECK([1.3])
127 AS_PATH_PYTHON([2.1])
128 AG_GST_PLUGIN_DOCS([1.3],[2.1])
129
130 dnl *** checks for libraries ***
131
132 dnl check for libm, for sin() etc.
133 AC_CHECK_LIBM
134 AC_SUBST(LIBM)
135
136 AC_FUNC_MMAP
137
138 dnl *** checks for header files ***
139
140 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
141 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
142
143 if test "x$HAVE_UNISTD_H" != "xyes"; then
144   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
145 fi
146
147 dnl used by camerabin
148 AC_CHECK_HEADERS([sys/time.h])
149
150 dnl used by ext/dts
151 AX_CREATE_STDINT_H
152
153 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
154 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
155
156 if test "x$HAVE_PTHREAD_H" != "xyes"; then
157   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
158 fi
159
160 dnl *** checks for types/defines ***
161
162 dnl Check for FIONREAD ioctl declaration
163 dnl used in gst/dccp
164 GST_CHECK_FIONREAD
165
166 dnl *** checks for structures ***
167
168 dnl *** checks for compiler characteristics ***
169
170 dnl *** checks for library functions ***
171 AC_CHECK_FUNCS([gmtime_r])
172
173 dnl *** checks for headers ***
174 AC_CHECK_HEADERS([sys/utsname.h])
175
176 dnl *** checks for dependency libraries ***
177
178 dnl *** checks for socket and nsl libraries ***
179 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
180 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
181
182 dnl GLib is required
183 AG_GST_GLIB_CHECK([2.22])
184
185 dnl checks for gstreamer
186 dnl uninstalled is selected preferentially -- see pkg-config(1)
187 AG_GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ], yes)
188 AG_GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ], yes)
189 AG_GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ], yes)
190 AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
191 AG_GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ], yes)
192 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
193
194 AG_GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ], yes)
195
196 dnl check for uninstalled plugin directories for unit tests
197 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.10.25])
198 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.10.16])
199 AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.10.11])
200
201 dnl Check for documentation xrefs
202 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
203 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
204 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`"
205 AC_SUBST(GLIB_PREFIX)
206 AC_SUBST(GST_PREFIX)
207 AC_SUBST(GSTPB_PREFIX)
208
209 dnl GTK is optional and used in examples
210 HAVE_GTK=NO
211 GTK2_REQ=2.14.0
212 GTK3_REQ=2.91.3
213 if test "x$BUILD_EXAMPLES" = "xyes"; then
214   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
215   AC_ARG_WITH([gtk],
216     AC_HELP_STRING([--with-gtk=3.0|2.0],
217                    [which gtk+ version to compile against (default: 2.0)]),
218     [case "$with_gtk" in
219         2.0) GTK_REQ=$GTK2_REQ ;;
220         3.0) GTK_REQ=$GTK3_REQ ;;
221         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
222     esac],
223     [with_gtk=2.0
224      GTK_REQ=$GTK2_REQ])
225   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
226   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
227   AC_SUBST(GTK_LIBS)
228   AC_SUBST(GTK_CFLAGS)
229 fi
230 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
231
232 dnl Needed for GtkBuilder to autoconnect signals
233 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
234
235 dnl x11 is optional for librfb
236 HAVE_X11=NO
237 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
238 AC_SUBST(X11_LIBS)
239 AC_SUBST(X11_CFLAGS)
240 AC_SUBST(HAVE_X11)
241 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
242 if test "x$HAVE_X11" = "xyes"; then
243   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
244 fi
245
246 dnl Orc
247 ORC_CHECK([0.4.7])
248
249 dnl set license and copyright notice
250 GST_LICENSE="LGPL"
251 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
252 AC_SUBST(GST_LICENSE)
253
254 dnl define LIBDIR so we can inform people where we live
255 AS_AC_EXPAND(LIBDIR, $libdir)
256 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
257
258 dnl set location of plugin directory
259 AG_GST_SET_PLUGINDIR
260
261 dnl set release date/time
262 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
263   ["${srcdir}/gst-plugins-bad.doap"],
264   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
265
266 dnl define an ERROR_CFLAGS Makefile variable
267 dnl -Waggregate-return - libexif returns aggregates
268 dnl -Wundef - Windows headers check _MSC_VER unconditionally
269 AG_GST_SET_ERROR_CFLAGS($GST_GIT, [
270     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
271     -Wwrite-strings -Wformat-security -Wold-style-definition
272     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
273     -Wnested-externs])
274
275 dnl define an ERROR_CXXFLAGS Makefile variable
276 AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [
277     -Wmissing-declarations -Wredundant-decls
278     -Wwrite-strings -Wformat-nonliteral -Wformat-security
279     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar ])
280
281 dnl define correct level for debugging messages
282 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
283
284 dnl used in examples
285 AG_GST_DEFAULT_ELEMENTS
286
287 dnl *** plug-ins to include ***
288
289 dnl these are all the gst plug-ins, compilable without additional libs
290 AG_GST_CHECK_PLUGIN(adpcmdec)
291 AG_GST_CHECK_PLUGIN(adpcmenc)
292 AG_GST_CHECK_PLUGIN(aiff)
293 AG_GST_CHECK_PLUGIN(asfmux)
294 AG_GST_CHECK_PLUGIN(audioparsers)
295 AG_GST_CHECK_PLUGIN(autoconvert)
296 AG_GST_CHECK_PLUGIN(bayer)
297 AG_GST_CHECK_PLUGIN(camerabin)
298 AG_GST_CHECK_PLUGIN(camerabin2)
299 AG_GST_CHECK_PLUGIN(cdxaparse)
300 AG_GST_CHECK_PLUGIN(coloreffects)
301 AG_GST_CHECK_PLUGIN(colorspace)
302 AG_GST_CHECK_PLUGIN(dataurisrc)
303 AG_GST_CHECK_PLUGIN(dccp)
304 AG_GST_CHECK_PLUGIN(debugutils)
305 AG_GST_CHECK_PLUGIN(dtmf)
306 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
307 AG_GST_CHECK_PLUGIN(dvdspu)
308 AG_GST_CHECK_PLUGIN(festival)
309 AG_GST_CHECK_PLUGIN(fieldanalysis)
310 AG_GST_CHECK_PLUGIN(freeze)
311 AG_GST_CHECK_PLUGIN(frei0r)
312 AG_GST_CHECK_PLUGIN(gaudieffects)
313 AG_GST_CHECK_PLUGIN(geometrictransform)
314 AG_GST_CHECK_PLUGIN(h264parse)
315 AG_GST_CHECK_PLUGIN(hdvparse)
316 AG_GST_CHECK_PLUGIN(hls)
317 AG_GST_CHECK_PLUGIN(id3tag)
318 AG_GST_CHECK_PLUGIN(interlace)
319 AG_GST_CHECK_PLUGIN(invtelecine)
320 AG_GST_CHECK_PLUGIN(ivfparse)
321 AG_GST_CHECK_PLUGIN(jp2kdecimator)
322 AG_GST_CHECK_PLUGIN(jpegformat)
323 AG_GST_CHECK_PLUGIN(legacyresample)
324 AG_GST_CHECK_PLUGIN(librfb)
325 AG_GST_CHECK_PLUGIN(liveadder)
326 AG_GST_CHECK_PLUGIN(mpegdemux)
327 AG_GST_CHECK_PLUGIN(mpegtsdemux)
328 AG_GST_CHECK_PLUGIN(mpegtsmux)
329 AG_GST_CHECK_PLUGIN(mpegpsmux)
330 AG_GST_CHECK_PLUGIN(mpeg4videoparse)
331 AG_GST_CHECK_PLUGIN(mpegvideoparse)
332 AG_GST_CHECK_PLUGIN(mve)
333 AG_GST_CHECK_PLUGIN(mxf)
334 AG_GST_CHECK_PLUGIN(nsf)
335 AG_GST_CHECK_PLUGIN(nuvdemux)
336 AG_GST_CHECK_PLUGIN(patchdetect)
337 AG_GST_CHECK_PLUGIN(pcapparse)
338 AG_GST_CHECK_PLUGIN(pnm)
339 AG_GST_CHECK_PLUGIN(qtmux)
340 AG_GST_CHECK_PLUGIN(rawparse)
341 AG_GST_CHECK_PLUGIN(real)
342 AG_GST_CHECK_PLUGIN(rtpmux)
343 AG_GST_CHECK_PLUGIN(rtpvp8)
344 AG_GST_CHECK_PLUGIN(scaletempo)
345 AG_GST_CHECK_PLUGIN(sdi)
346 AG_GST_CHECK_PLUGIN(sdp)
347 AG_GST_CHECK_PLUGIN(segmentclip)
348 AG_GST_CHECK_PLUGIN(siren)
349 AG_GST_CHECK_PLUGIN(speed)
350 AG_GST_CHECK_PLUGIN(subenc)
351 AG_GST_CHECK_PLUGIN(stereo)
352 AG_GST_CHECK_PLUGIN(tta)
353 AG_GST_CHECK_PLUGIN(videofilters)
354 AG_GST_CHECK_PLUGIN(videomaxrate)
355 AG_GST_CHECK_PLUGIN(videomeasure)
356 AG_GST_CHECK_PLUGIN(videoparsers)
357 AG_GST_CHECK_PLUGIN(videosignal)
358 AG_GST_CHECK_PLUGIN(vmnc)
359 AG_GST_CHECK_PLUGIN(y4m)
360
361 dnl *** plug-ins to exclude ***
362
363 dnl real plugin only works on i386 and x86_64 for the time being.
364 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
365   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
366   AG_GST_DISABLE_PLUGIN(real)
367 fi
368
369 dnl disable experimental plug-ins
370 if test "x$BUILD_EXPERIMENTAL" != "xyes"; then
371   AG_GST_DISABLE_PLUGIN(camerabin2)
372 fi
373
374 # This will always succeed because we depend on GLib >= 2.16
375 PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.16, HAVE_GIO=yes, HAVE_GIO=no)
376 AC_SUBST(GIO_CFLAGS)
377 AC_SUBST(GIO_LIBS)
378
379 dnl disable gst plugins we might not be able to build on this
380 dnl platform: librfb (ugly but minimally invasive)
381 dnl FIXME: maybe move to sys, or make work with winsock2
382 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
383 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
384
385 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
386   WIN32_LIBS="-lws2_32"
387   AC_SUBST(WIN32_LIBS)
388 fi
389
390 dnl needed for festival
391 AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
392
393 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
394   DCCP_LIBS="$DCCP_LIBS -lws2_32"
395   XDG_LIBS="$XDG_LIBS -lws2_32"
396   AC_SUBST(DCCP_LIBS)
397   AC_SUBST(XDG_LIBS)
398 fi
399
400 if test "x$HAVE_PTHREAD_H" = "xyes"; then
401   DCCP_LIBS="$DCCP_LIBS -lpthread"
402   AC_SUBST(DCCP_LIBS)
403 fi
404
405 if test "x$HAVE_PTHREAD_H" != "xyes"; then
406   AG_GST_DISABLE_PLUGIN(dccp)
407 fi
408
409 dnl *** sys plug-ins ***
410
411 dnl DirectSound
412 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
413 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
414   HAVE_DIRECTSOUND="no"
415   save_CFLAGS="$CFLAGS"
416   save_LDFLAGS="$LDFLAGS"
417   save_LIBS="$LIBS"
418   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
419   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
420   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
421   AC_MSG_CHECKING(for DirectSound LDFLAGS)
422   AC_LINK_IFELSE([
423 #include <windows.h>
424 #include <dxerr9.h>
425 #include <dsound.h>
426
427 int main ()
428 {
429   DXGetErrorString9 (0);
430   DirectSoundCreate(NULL, NULL, NULL);
431
432   return 0;
433 }
434 ],
435     [HAVE_DIRECTSOUND="yes"],
436     [HAVE_DIRECTSOUND="no"])
437   AC_MSG_RESULT($HAVE_DIRECTSOUND)
438   CFLAGS=$save_CFLAGS
439   LDFLAGS=$save_LDFLAGS
440   LIBS=$save_LIBS
441
442   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
443     dnl this is much more than we want
444     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
445     AC_SUBST(DIRECTX_CFLAGS)
446     AC_SUBST(DIRECTX_LDFLAGS)
447     AC_SUBST(DIRECTSOUND_LIBS)
448   fi
449   AC_SUBST(HAVE_DIRECTSOUND)
450 ])
451
452 dnl DirectDraw
453 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
454 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
455   HAVE_DIRECTDRAW="no"
456   save_CFLAGS="$CFLAGS"
457   save_LDFLAGS="$LDFLAGS"
458   save_LIBS="$LIBS"
459   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
460   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
461   LIBS="$LIBS -lddraw -lgdi32"
462   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
463   AC_LINK_IFELSE([
464 #include <windows.h>
465 #include <ddraw.h>
466
467 int main ()
468 {
469   GetStockObject(0);
470   DirectDrawCreate(NULL, NULL, NULL);
471
472   return 0;
473 }
474 ],
475     [HAVE_DIRECTDRAW="yes"],
476     [HAVE_DIRECTDRAW="no"])
477   AC_MSG_RESULT($HAVE_DIRECTDRAW)
478   CFLAGS=$save_CFLAGS
479   LDFLAGS=$save_LDFLAGS
480   LIBS=$save_LIBS
481
482   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
483     dnl this is much more than we want
484     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
485     AC_SUBST(DIRECTX_CFLAGS)
486     AC_SUBST(DIRECTX_LDFLAGS)
487     AC_SUBST(DIRECTDRAW_LIBS)
488   fi
489   AC_SUBST(HAVE_DIRECTDRAW)
490 ])
491
492 dnl *** AppleMedia (OS X and iOS) ***
493 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
494 HAVE_APPLE_MEDIA="no"
495 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
496 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
497   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
498 ])
499 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
500 case "$host" in
501   *-*darwin*)
502     ;;
503   *)
504     HAVE_APPLE_MEDIA="no"
505     ;;
506 esac
507 HAVE_IOS="no"
508 if test "x$HAVE_APPLE_MEDIA" = "xyes"; then
509   AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
510 fi
511
512 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
513 if test "x$HAVE_IOS" = "xyes"; then
514   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
515 fi
516
517 dnl *** OS X videosrc ***
518 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
519 HAVE_OSX_VIDEO="no"
520 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
521   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
522       [#include <Quicktime/Quicktime.h>])
523 ])
524 dnl in case header Quicktime/Quicktime.h is found on other platforms
525 case "$host" in
526   *-*darwin*)
527     ;;
528   *)
529     HAVE_OSX_VIDEO="no"
530     ;;
531 esac
532
533 dnl check for QuickTime
534 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
535 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
536   AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no",
537       [#include <Quicktime/Quicktime.h>])
538 ])
539
540 dnl check for shm_open (for shm plugin)
541 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
542 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
543   if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then
544     AC_CHECK_LIB([rt], [shm_open],
545        AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [
546 #include <sys/socket.h>
547          ]),
548          HAVE_SHM=no)
549   else
550     HAVE_SHM=no
551   fi
552 ])
553
554 dnl check for Video CD
555 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
556 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
557   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
558 ])
559
560 dnl *** ext plug-ins ***
561 dnl keep this list sorted alphabetically !
562
563 if test "x$BUILD_EXTERNAL" = "xyes"; then
564
565 dnl *** assrender ***
566 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
567 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
568   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
569     HAVE_ASSRENDER="yes" ], [
570     HAVE_ASSRENDER="no"
571   ])
572 ])
573 AC_SUBST(ASSRENDER_CFLAGS)
574 AC_SUBST(ASSRENDER_LIBS)
575
576 dnl *** amrwb ***
577 translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true)
578 AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwbenc, [
579   AG_GST_CHECK_LIBHEADER(AMRWB, amrwb,
580                         GP3E_IF_encode, ,
581                         amrwb/enc.h,
582                         AMRWB_LIBS="-lamrwb"
583                         AC_SUBST(AMRWB_LIBS))
584 ])
585
586 dnl *** apexsink ***
587 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
588 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
589   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
590     HAVE_APEXSINK="yes"
591     saved_LIBS="$LIBS"
592     LIBS=""
593     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
594     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
595     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
596     LIBS="$saved_LIBS"
597     AC_SUBST(APEXSINK_CFLAGS)
598     AC_SUBST(APEXSINK_LIBS)
599   ], [
600     APEXSINK="no"
601   ])
602 ])
603
604 dnl *** BZ2 ***
605 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
606 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
607   AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2")
608   AC_SUBST(BZ2_LIBS)
609 ])
610
611 #dnl *** cairo ***
612 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
613 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
614 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
615 #    HAVE_CAIRO=no
616 #  ])
617 #  AC_SUBST(CAIRO_CFLAGS)
618 #  AC_SUBST(CAIRO_LIBS)
619 #])
620
621 dnl *** cdaudio ***
622 translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true)
623 AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [
624   AG_GST_CHECK_CONFIGPROG(CDAUDIO, libcdaudio-config)
625   AC_SUBST(CDAUDIO_CFLAGS)
626   AC_SUBST(CDAUDIO_LIBS)
627 ])
628
629 dnl *** celt ***
630 translit(dnm, m, l) AM_CONDITIONAL(USE_CELT, true)
631 AG_GST_CHECK_FEATURE(CELT, [celt], celt, [
632   PKG_CHECK_MODULES(CELT, celt >= 0.5.0, [
633           AC_DEFINE([HAVE_CELT], 1, [Define if libcelt 0.5 is installed])
634           HAVE_CELT="yes"
635   ], [
636           HAVE_CELT="no"
637   ])
638
639   PKG_CHECK_MODULES(CELT_0_7, celt >= 0.7.0, [
640           AC_DEFINE([HAVE_CELT_0_7], 1, [Define if libcelt 0.7 is installed])
641   ], [
642           dnl to prevent an error
643           true
644   ])
645
646   PKG_CHECK_MODULES(CELT_0_8, celt >= 0.8.0, [
647           AC_DEFINE([HAVE_CELT_0_8], 1, [Define if libcelt 0.8 is installed])
648   ], [
649           dnl to prevent an error
650           true
651   ])
652
653   PKG_CHECK_MODULES(CELT_0_11, celt >= 0.11.0, [
654           AC_DEFINE([HAVE_CELT_0_11], 1, [Define if libcelt 0.11 is installed])
655   ], [
656           dnl to prevent an error
657           true
658   ])
659   AC_SUBST(CELT_CFLAGS)
660   AC_SUBST(CELT_LIBS)
661 ])
662
663 dnl *** Cog ***
664 translit(dnm, m, l) AM_CONDITIONAL(USE_COG, true)
665 AG_GST_CHECK_FEATURE(COG, [Cog plugin], cog, [
666   PKG_CHECK_MODULES(COG, libpng >= 1.2, HAVE_COG="yes", [
667     HAVE_COG="no"
668   ])
669   AC_SUBST(COG_CFLAGS)
670   AC_SUBST(COG_LIBS)
671 ])
672
673 dnl *** Curl ***
674 translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true)
675 AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [
676   PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [
677     HAVE_CURL="yes"
678     AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h],
679         [ ], [HAVE_CURL="no"])
680     AC_MSG_CHECKING([for socket support needed by curlsink])
681     AC_MSG_RESULT($HAVE_CURL)
682   ], [
683     HAVE_CURL="no"
684   ])
685   AC_SUBST(CURL_CFLAGS)
686   AC_SUBST(CURL_LIBS)
687 ])
688
689 dnl *** dc1394  ***
690 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
691 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
692    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
693         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
694                 HAVE_DC1394="yes"
695         else
696                 HAVE_DC1394="no"
697         fi
698    ], [
699         HAVE_DC1394="no"
700         AC_MSG_RESULT(no)
701    ])
702    AC_SUBST(LIBDC1394_CFLAGS)
703    AC_SUBST(LIBDC1394_LIBS)
704 ])
705
706 dnl *** decklink  ***
707 translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true)
708 AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [
709    if test "x$host" = "xlinux" ; then
710      HAVE_DECKLINK=yes
711    fi
712    DECKLINK_CXXFLAGS=
713    DECKLINK_LIBS=
714    AC_SUBST(DECKLINK_CXXFLAGS)
715    AC_SUBST(DECKLINK_LIBS)
716 ])
717
718 dnl **** DirectFB ****
719 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
720 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
721   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
722     HAVE_DIRECTFB="no"
723   ])
724 ])
725
726 dnl **** Dirac ****
727 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true)
728 AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [
729   PKG_CHECK_MODULES(DIRAC, dirac >= 0.10, HAVE_DIRAC="yes", [
730     HAVE_DIRAC="no"
731   ])
732 ])
733
734 dnl *** DTS ***
735 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
736 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
737   HAVE_DTS="yes"
738   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h,
739     DTS_LIBS="-ldca $LIBM", HAVE_DTS="no")
740   if test $HAVE_DTS = "no"; then
741     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h,
742       [ DTS_LIBS="-ldts_pic $LIBM"
743         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
744       ])
745   fi
746   AC_SUBST(DTS_LIBS)
747 ])
748
749 dnl *** DIVX ***
750 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
751 AG_GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
752   HAVE_DIVX=yes
753   AC_CHECK_HEADER(encore2.h, , [
754     AC_MSG_WARN([Divx4linux encore headers not found])
755     HAVE_DIVX=no
756   ])
757   if [ test x$HAVE_DIVX = xyes ]; then
758     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
759     AC_TRY_COMPILE([
760 #include <encore2.h>
761 #if ENCORE_VERSION != 20021024
762 #error Wrong version of divx encore libraries
763 #endif
764     ], [
765 return 0;
766     ], [
767       HAVE_DIVX=yes
768     ], [
769       HAVE_DIVX=no
770       AC_MSG_WARN([Wrong version of divx4linux installed])
771     ])
772   fi
773   if [ test x$HAVE_DIVX = xyes ]; then
774     AC_CHECK_HEADER(decore.h, , [
775       AC_MSG_WARN([Divx4linux decoder headers not found])
776       HAVE_DIVX=no
777     ])
778   fi
779   if [ test x$HAVE_DIVX = xyes ]; then
780     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
781     AC_TRY_COMPILE([
782 #include <decore.h>
783 #if DECORE_VERSION != 20021112
784 #error Wrong version of divx decore libraries
785 #endif
786     ], [
787 return 0;
788     ], [
789       HAVE_DIVX=yes
790     ], [
791       HAVE_DIVX=no
792       AC_MSG_WARN([Wrong version of divx4linux installed])
793     ])
794   fi
795   LIBS="$LIBM"
796   if test x$HAVE_DIVX = xyes; then
797     AC_CHECK_LIB(divxencore, encore, , [
798       AC_MSG_WARN([Divx4linux encore libs not found])
799       HAVE_DIVX=no
800     ])
801   fi
802   if test x$HAVE_DIVX = xyes; then
803     AC_CHECK_LIB(divxdecore, decore, , [
804       AC_MSG_WARN([Divx4linux decore libs not found])
805       HAVE_DIVX=no
806   ])
807   fi
808   if test x$HAVE_DIVX = xyes; then
809     DIVXENC_LIBS="-ldivxencore $LIBM"
810     DIVXDEC_LIBS="-ldivxdecore $LIBM"
811     AC_SUBST(DIVXENC_LIBS)
812     AC_SUBST(DIVXDEC_LIBS)
813   fi
814 ])
815
816 dnl *** resindvd ***
817 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
818 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
819   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
820     HAVE_RESINDVD="no"
821   ])
822 ])
823
824 dnl **** exif (used on jifmux tests) ****
825 translit(dnm, m, l) AM_CONDITIONAL(USE_EXIF, true)
826 AG_GST_CHECK_FEATURE(EXIF, [exif], exif, [
827   PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", [
828     HAVE_EXIF="no"
829   ])
830 ])
831
832 dnl **** Free AAC Encoder (FAAC) ****
833 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
834 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
835   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h,
836     FAAC_LIBS="-lfaac $LIBM")
837   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
838   AC_SUBST(FAAC_LIBS)
839 ])
840
841 dnl **** Free AAC Decoder (FAAD) ****
842 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
843 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
844   HAVE_FAAD="yes"
845   faad_hdr=""
846   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h,
847     FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no")
848   if test $HAVE_FAAD = "no"; then
849     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h,
850       [ FAAD_LIBS="-lfaad $LIBM"
851         AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
852         faad_hdr="neaacdec.h"
853       ], [
854         HAVE_FAAD="no"
855       ],)
856   else
857     faad_hdr="faad.h"
858   fi
859   if test $HAVE_FAAD = "yes"; then
860     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
861     AC_TRY_COMPILE([#include <faad.h>], [
862         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
863         #error Not faad2
864         #else
865         /* Release candidate of 2.0 is not good enough for us. This field
866          * was added only in 2.0 final and does not exist in 2.0-RC3 */
867         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
868         #endif
869     ], [
870       HAVE_FAAD="yes"
871
872       AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
873       for minor in 10 9 8 7 6 5 0; do
874         if test x$faad2_minor_version = "x"; then
875           AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
876               #include <$faad_hdr>
877               GST_CHECK_FAAD_VERSION FAAD2_VERSION
878             ], [
879               faad2_minor_version=$minor
880             ])
881         fi
882       done
883       if test x$faad2_minor_version = "x"; then
884         AC_MSG_RESULT([no idea])
885       else
886         AC_MSG_RESULT([2.$faad2_minor_version])
887         AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
888       fi
889     ], [
890       HAVE_FAAD="no"
891     ])
892   fi
893   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
894   AC_SUBST(FAAD_LIBS)
895   AC_SUBST(FAAD_IS_NEAAC)
896 ])
897
898 dnl *** fbdev ***
899 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
900 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
901   if test "x$HAVE_FBDEV" != "xyes"; then
902     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
903   fi
904 ])
905
906 dnl *** flite ***
907 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
908 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
909   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h,
910     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM")
911
912   AC_SUBST(FLITE_CFLAGS)
913   AC_SUBST(FLITE_LIBS)
914 ])
915
916 dnl *** gsm ***
917 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
918 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
919   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
920   if test $HAVE_GSM != "yes"; then
921     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
922     if test $HAVE_GSM = "yes"; then
923       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
924     fi
925   fi
926   AC_SUBST(GSM_LIBS)
927 ])
928
929 dnl *** jp2k ***
930 translit(dnm, m, l) AM_CONDITIONAL(USE_JP2K, true)
931 AG_GST_CHECK_FEATURE(JP2K, [jp2k], jp2kdec jp2kenc, [
932   AG_GST_CHECK_LIBHEADER(JP2K, jasper, jas_stream_fopen, , jasper/jasper.h,
933     JP2K_LIBS="-ljasper")
934   AC_SUBST(JP2K_LIBS)
935 ])
936
937 dnl *** kate ***
938 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
939 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
940   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
941     HAVE_KATE="no"
942   ])
943   AC_SUBST(KATE_CFLAGS)
944   AC_SUBST(KATE_LIBS)
945   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
946     [
947       HAVE_TIGER="yes"
948       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
949     ],
950     [
951       HAVE_TIGER="no"
952     ]
953   )
954   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
955   AC_SUBST(TIGER_CFLAGS)
956   AC_SUBST(TIGER_LIBS)
957 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
958
959 dnl *** ladspa ***
960 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
961 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
962   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
963   
964   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
965   if test $HAVE_LRDF = "yes"; then
966     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
967   fi
968   AC_SUBST(LRDF_LIBS)
969   AC_SUBST(LRDF_CFLAGS)
970 ])
971
972 dnl *** LV2 ***
973 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
974 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
975   PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
976   AC_SUBST(SLV2_CFLAGS)
977   AC_SUBST(SLV2_LIBS)
978 ])
979
980 dnl *** libmms ***
981 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
982 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
983   dnl check with pkg-config first
984   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
985     HAVE_LIBMMS="no"
986   ])
987 ])
988 AC_SUBST(LIBMMS_LIBS)
989
990 dnl *** linsys ***
991 translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true)
992 AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [
993   if test "x$host" = "xlinux" ; then
994     HAVE_LINSYS="yes"
995   fi
996 ])
997
998 dnl *** modplug ***
999 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
1000 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
1001   if test "x$HAVE_CXX" != "xyes"; then
1002     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
1003     HAVE_MODPLUG="no"
1004   else
1005     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
1006   fi
1007   AC_SUBST(MODPLUG_CFLAGS)
1008   AC_SUBST(MODPLUG_LIBS)
1009 ])
1010
1011 dnl *** mimic ***
1012 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
1013 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
1014   MIMDEC_REQUIRED=1.0
1015   PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMDEC_REQUIRED,
1016       HAVE_MIMIC=yes, HAVE_MIMIC=no)
1017   AC_SUBST(MIMIC_CFLAGS)
1018   AC_SUBST(MIMIC_LIBS)
1019 ])
1020
1021 dnl *** mjpegtools version info ***
1022 dnl some may prefer older version (given quirks above)
1023 dnl hm, no version info seems available within mjpegtools headers
1024 dnl and API really moves along
1025 echo
1026 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
1027   mjpegtools_api=10601
1028 ], [
1029   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
1030     mjpegtools_api=10800
1031   ], [
1032     PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0, [
1033       dnl logging API changed in release candidates
1034       OLD_CFLAGS="$CFLAGS"
1035       OLD_LIBS="$LIBS"
1036       CFLAGS="$MJPEG_CFLAGS"
1037       LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM -lpthread"
1038       AC_CHECK_FUNC(mjpeg_loglev_t, [
1039         mjpegtools_api=10903
1040         ], [
1041         mjpegtools_api=10900
1042         ])
1043       CFLAGS="$OLD_CFLAGS"
1044       LIBS="$OLD_LIBS"
1045     ], [
1046       mjpegtools_api=0
1047     ])
1048   ])
1049 ])
1050 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1051   [mjpegtools API evolution])
1052
1053 dnl *** mpeg2enc ***
1054 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1055 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1056   HAVE_MPEG2ENC="no"
1057   dnl we require a c++ compiler for this one
1058   if [ test x$HAVE_CXX = xyes ]; then
1059     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1060     dnl since many distros include mjpegtools specifically without mplex
1061     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1062     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1063       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1064       touch config.h
1065       dnl switch over to c++ to test things
1066       AC_LANG_CPLUSPLUS
1067       OLD_CPPFLAGS="$CPPFLAGS"
1068       dnl HACK as above
1069       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1070       CPPFLAGS="$CPPFLAGS_GOOD -I."
1071       dnl check headers
1072       mpeg2enc_headers_ok=no
1073       AC_CHECK_HEADER([mpeg2encoder.hh], [
1074         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread"
1075         OLD_LIBS="$LIBS"
1076         LIBS="$LIBS $MPEG2ENC_LIBS"
1077         AC_MSG_CHECKING([for valid mpeg2enc objects])
1078         AC_TRY_RUN([
1079           #include <mpeg2encoder.hh>
1080           #include <mpeg2encoptions.hh>
1081
1082           int
1083           main (int   argc,
1084                 char *argv[])
1085           {
1086             MPEG2EncOptions *options = new MPEG2EncOptions ();
1087             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1088             return 0;
1089           }
1090         ],[
1091           AC_MSG_RESULT(yes)
1092           dnl so far so good, let's check more things:
1093           dnl mjpegtools-1.8.0 does not install the required
1094           dnl mpeg2syntaxcodes.h header by default, and a new release
1095           dnl is not in sight, so check for this oversight in case
1096           dnl distros or folks have fixed this themselves
1097           if test "$mjpegtools_api" -ge "10800"; then
1098             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1099                 mpeg2enc_headers_ok=yes
1100               ], [
1101                 mpeg2enc_headers_ok=no
1102               ])
1103           else
1104             mpeg2enc_headers_ok=yes
1105           fi
1106           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1107             HAVE_MPEG2ENC="yes"
1108           fi
1109           CPP_FLAGS="$CPPFLAGS_GOOD"
1110           AC_SUBST(MPEG2ENC_CFLAGS)
1111           AC_SUBST(MPEG2ENC_LIBS)
1112         ], [
1113           AC_MSG_RESULT(no)
1114         ])
1115         LIBS="$OLD_LIBS"
1116       ])
1117
1118       CPPFLAGS="$OLD_CPPFLAGS"
1119       AC_LANG_C
1120     ], [
1121       HAVE_MPEG2ENC="no"
1122     ])
1123   fi
1124 ])
1125
1126 dnl *** mplex ***
1127 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1128 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1129   HAVE_MPLEX="no"
1130   dnl we require a c++ compiler for this one
1131   if [ test x$HAVE_CXX = xyes ]; then
1132     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1133     dnl since many distros include mjpegtools specifically without mplex
1134     dnl and mpeg2enc, we check for mplex on its own, too.
1135     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1136     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1137       dnl switch over to c++ to test things
1138       AC_LANG_CPLUSPLUS
1139       OLD_CPPFLAGS="$CPPFLAGS"
1140       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
1141       AC_CHECK_HEADER(interact.hpp, [
1142         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM"
1143         OLD_LIBS="$LIBS"
1144         LIBS="$LIBS $MPLEX_LIBS"
1145         OLD_LDFLAGS="$LDFLAGS"
1146         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1147         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1148         dnl don't want this here
1149         AC_MSG_CHECKING([for valid mplex objects])
1150         AC_TRY_RUN([
1151
1152 #include <interact.hpp>
1153 #include <outputstrm.hpp>
1154 #include <multiplexor.hpp>
1155 int
1156 main (int   argc,
1157       char *argv[])
1158 {
1159   class TestOutputStream : public OutputStream {
1160   public:
1161     TestOutputStream () : OutputStream () { }
1162     void Write (uint8_t *a, unsigned int b) { }
1163     void NextSegment () { }
1164     uint64_t SegmentSize () { }
1165     void Close () { }
1166     int Open () { }
1167 };
1168   MultiplexJob *job = new MultiplexJob ();
1169   vector<IBitStream *> inputs;
1170   job->SetupInputStreams (inputs);
1171   TestOutputStream *out = new TestOutputStream ();
1172   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1173   return 0;
1174 }
1175         ],[
1176           HAVE_MPLEX="yes"
1177           AC_SUBST(MPLEX_CFLAGS)
1178           AC_SUBST(MPLEX_LIBS)
1179           AC_SUBST(MPLEX_LDFLAGS)
1180           AC_MSG_RESULT(yes)
1181         ], AC_MSG_RESULT(no))
1182         LIBS="$OLD_LIBS"
1183         LDFLAGS="$OLD_LDFLAGS"
1184       ])
1185       CPPFLAGS="$OLD_CPPFLAGS"
1186       AC_LANG_C
1187     ], HAVE_MPLEX="no")
1188   fi
1189 ])
1190
1191 dnl *** musepack ***
1192 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1193 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1194   AC_CHECK_HEADER([mpc/mpcdec.h], [
1195     HAVE_MUSEPACK="yes"
1196     MUSEPACK_LIBS="-lmpcdec"
1197     AC_SUBST(MUSEPACK_LIBS)
1198     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1199       HAVE_MUSEPACK="yes"
1200       MUSEPACK_LIBS="-lmpcdec"
1201       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1202       AC_SUBST(MUSEPACK_LIBS)
1203     ], [HAVE_MUSEPACK="no"])])
1204 ])
1205
1206 dnl *** musicbrainz ***
1207 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
1208 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
1209   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
1210   AC_SUBST(MUSICBRAINZ_CFLAGS)
1211   AC_SUBST(MUSICBRAINZ_LIBS)
1212 ])
1213
1214 dnl *** MythTV ***
1215 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
1216 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
1217   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
1218     HAVE_MYTHTV="no"
1219   ])
1220   AC_SUBST(GMYTH_CFLAGS)
1221   AC_SUBST(GMYTH_LIBS)
1222 ])
1223
1224 dnl *** nas ***
1225 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1226 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1227   HAVE_NAS="no"
1228   AG_GST_CHECK_X
1229   if test "x$HAVE_X" = "xyes"; then
1230     save_cppflags=$CFLAGS
1231     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1232     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1233       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1234     CPPFLAGS="$save_cppflags"
1235   fi
1236   AC_SUBST(NAS_CFLAGS)
1237   AC_SUBST(NAS_LIBS)
1238 ])
1239
1240 dnl *** neon ***
1241 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1242 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1243   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.29.99, HAVE_NEON="yes", [
1244     HAVE_NEON="no"
1245   ])
1246   AC_SUBST(NEON_CFLAGS)
1247   AC_SUBST(NEON_LIBS)
1248 ])
1249
1250 dnl *** ofa ***
1251 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1252 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1253   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1254     HAVE_OFA="no"
1255   ])
1256   AC_SUBST(OFA_CFLAGS)
1257   AC_SUBST(OFA_LIBS)
1258 ])
1259
1260 dnl *** opencv ***
1261 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1262 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1263   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1264   dnl and don't want the build to break when a new opencv version comes out.
1265   dnl Need to adjust this upwards once we know that our code compiles fine with
1266   dnl a new version and the no-backward-compatibility define. (There doesn't
1267   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1268   dnl causes.)
1269   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.1.0 , [
1270     AC_PROG_CXX
1271     AC_LANG_CPLUSPLUS
1272     OLD_CPPFLAGS=$CPPFLAGS
1273     CPPFLAGS=$OPENCV_CFLAGS
1274     AC_CHECK_HEADER(highgui.h, HAVE_HIGHGUI="yes", HAVE_HIGHGUI="no")
1275     AC_CHECK_HEADER(cvaux.h, HAVE_CVAUX="yes", HAVE_CVAUX="no")
1276     CPPFLAGS=$OLD_CPPFLAGS
1277     AC_LANG_C
1278     if test "x$HAVE_HIGHGUI" = "xno"; then
1279       AC_MSG_RESULT(highgui.h could not be found.)
1280       HAVE_OPENCV="no"
1281     elif test "x$HAVE_CVAUX" = "xno"; then
1282       AC_MSG_RESULT(cvaux.h could not be found.)
1283       HAVE_OPENCV="no"
1284     else
1285       HAVE_OPENCV="yes"
1286     fi
1287   ], [
1288     HAVE_OPENCV="no"
1289   ])
1290   AC_SUBST(OPENCV_CFLAGS)
1291   AC_SUBST(OPENCV_LIBS)
1292 ])
1293
1294 dnl *** rsvg ***
1295 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1296 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1297   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.14 cairo, HAVE_RSVG="yes", [
1298     HAVE_RSVG="no"
1299   ])
1300   AC_SUBST(RSVG_CFLAGS)
1301   AC_SUBST(RSVG_LIBS)
1302 ])
1303
1304 dnl *** timidity ***
1305 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
1306 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
1307   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
1308     HAVE_TIMIDITY="yes",
1309         AC_MSG_CHECKING([for timidity.cfg])
1310         timidity_cfg=""
1311         if test -r /etc/timidity.cfg; then
1312           timidity_cfg=/etc/timidity.cfg
1313         elif test -r /etc/timidity/timidity.cfg; then
1314           timidity_cfg=/etc/timidity/timidity.cfg
1315         elif test -r /usr/share/timidity/timidity.cfg; then
1316           timidity_cfg=/usr/share/timidity/timidity.cfg
1317         elif test -r /usr/local/share/timidity/timidity.cfg; then
1318           timidity_cfg=/usr/local/share/timidity/timidity.cfg
1319         fi
1320         if test "x$timidity_cfg" != "x"; then
1321           AC_MSG_RESULT($timidity_cfg)
1322       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
1323         else
1324           AC_MSG_RESULT([not found])
1325         fi
1326   ], [
1327     HAVE_TIMIDITY="no"
1328   ])
1329   AC_SUBST(TIMIDITY_CFLAGS)
1330   AC_SUBST(TIMIDITY_LIBS)
1331 ])
1332
1333 dnl *** wildmidi ***
1334 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1335 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1336   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1337                          WildMidi_Init, ,
1338                          wildmidi_lib.h,
1339                          WILDMIDI_LIBS="-lWildMidi")
1340   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
1341
1342   if test "x$HAVE_WILDMIDI" = "xyes"; then
1343          WILDMIDI_CFLAGS=
1344          WILDMIDI_LIBS=-lWildMidi
1345          AC_MSG_NOTICE(compiling gstWildMidi)
1346   else
1347          WILDMIDI_CFLAGS=
1348          WILDMIDI_LIBS=
1349          AC_MSG_WARN(no WildMidi library found (libWildMidi))
1350   fi
1351   AC_SUBST(WILDMIDI_CFLAGS)
1352   AC_SUBST(WILDMIDI_LIBS)
1353 ])
1354
1355 dnl *** SDL ***
1356 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1357 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
1358     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1359 ])
1360
1361 dnl *** sndfile ***
1362 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1363 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1364   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1365   AC_SUBST(SNDFILE_CFLAGS)
1366   AC_SUBST(SNDFILE_LIBS)
1367 ])
1368
1369 dnl *** soundtouch ***
1370 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
1371 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
1372   dnl We only need -lBPM on soundtouch < 1.4
1373   dnl We check for libSoundTouch since Debian used it before upstream
1374   dnl added a pkgconfig file.
1375   HAVE_SOUNDTOUCH_1_4=yes
1376   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch,
1377     [HAVE_SOUNDTOUCH=yes],
1378     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
1379       [HAVE_SOUNDTOUCH=yes],
1380       [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
1381         [HAVE_SOUNDTOUCH=yes
1382           HAVE_SOUNDTOUCH_1_4=no
1383           SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], 
1384         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
1385           [HAVE_SOUNDTOUCH=yes],
1386           [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
1387             [HAVE_SOUNDTOUCH=yes
1388               HAVE_SOUNDTOUCH_1_4=no
1389               SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1390             HAVE_SOUNDTOUCH=no)])])])])
1391   AC_SUBST(SOUNDTOUCH_CFLAGS)
1392   AC_SUBST(SOUNDTOUCH_LIBS)
1393   if test "x$HAVE_CXX" != "xyes"; then
1394     USE_SOUNDTOUCH=false
1395     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
1396   fi
1397   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
1398      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
1399          [Defined if the available libSoundTouch is >= 1.4])
1400   fi
1401 ])
1402
1403 dnl *** spc ***
1404 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
1405 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
1406   AC_CHECK_HEADER(openspc.h, [
1407     AC_CHECK_LIB(openspc, OSPC_Init, [
1408       SPC_LIBS="-lopenspc"
1409       AC_SUBST(SPC_LIBS)
1410       HAVE_SPC=yes
1411     ], [
1412       HAVE_SPC=no
1413     ])
1414   ], [
1415     HAVE_SPC=no
1416   ])
1417 ])
1418
1419 dnl *** gme ***
1420 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
1421 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
1422   AC_CHECK_HEADER(gme/gme.h, [
1423     AC_CHECK_LIB(gme, gme_new_emu, [
1424       GME_LIBS="-lgme"
1425       AC_SUBST(GME_LIBS)
1426       HAVE_GME=yes
1427     ], [
1428       HAVE_GME=no
1429     ])
1430   ], [
1431     HAVE_GME=no
1432   ])
1433
1434   if test "x$HAVE_GME" = "xyes"; then
1435     AC_CHECK_LIB(gme, gme_enable_accuracy, [
1436       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
1437       ])
1438   fi
1439 ])
1440
1441 dnl *** swfdec ***
1442 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1443 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1444   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
1445     HAVE_SWFDEC=no
1446   ])
1447   AC_SUBST(SWFDEC_CFLAGS)
1448   AC_SUBST(SWFDEC_LIBS)
1449 ])
1450
1451 dnl *** XVID ***
1452 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1453 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1454   HAVE_XVID=no
1455   AC_CHECK_HEADER(xvid.h, [
1456     OLD_LIBS="$LIBS"
1457     LIBS="-lpthread $LIBM"
1458     AC_CHECK_LIB(xvidcore, xvid_encore, [
1459       AC_CHECK_LIB(xvidcore, xvid_decore, [
1460         AC_CHECK_LIB(xvidcore, xvid_global, [
1461           AC_MSG_CHECKING([for uptodate XviD API version])
1462           AC_TRY_COMPILE([#include <xvid.h>], [
1463               #if XVID_API_MAJOR(XVID_API) != 4
1464               #error "Incompatible XviD API version"
1465               #endif
1466           ],[ AC_MSG_RESULT(yes)
1467             XVID_LIBS="-lxvidcore $LIBM"
1468             AC_SUBST(XVID_LIBS)
1469             HAVE_XVID=yes
1470           ], AC_MSG_RESULT(no) )
1471         ], )
1472       ], )
1473     ], )
1474     LIBS="$OLD_LIBS"
1475   ], )
1476 ])
1477
1478 dnl *** dvb ***
1479 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1480 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1481   AC_MSG_CHECKING([Checking for up to date dvb installation])
1482   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1483 ])
1484
1485 dnl *** wininet ***
1486 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1487 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1488   AC_MSG_CHECKING([Checking for windows internet support])
1489   AC_CHECK_HEADERS([windows.h wininet.h],
1490       [HAVE_WININET="yes"], [HAVE_WININET="no"])
1491 ])
1492
1493 dnl *** acm ***
1494 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
1495 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
1496   AC_MSG_CHECKING([Checking for ACM support])
1497   AC_CHECK_HEADERS([windows.h msacm.h],
1498       [HAVE_ACM="yes"
1499        AC_SUBST(ACMENC_CFLAGS)
1500        AC_SUBST(ACMMP3DEC_CFLAGS)
1501       ], [HAVE_ACM="no"],
1502       [AC_INCLUDES_DEFAULT
1503 #include <windows.h>])
1504 ])
1505
1506 dnl *** vdpau ***
1507 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
1508 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
1509   VDPAU_CFLAGS=
1510   VDPAU_LIBS=-lvdpau
1511   HAVE_VDPAU=no
1512
1513   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
1514   [
1515     if test "$HAVE_VDPAU" = "no"; then
1516       saved_CPPFLAGS="$CPPFLAGS"
1517       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1518       
1519       if test -z "$HAVE_VDPAU_H"; then
1520         dnl Didn't find VDPAU header straight away.
1521         dnl Try /usr/include/nvidia. Need to clear caching vars first
1522         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
1523         unset ac_cv_header_vdpau_vdpau_h
1524         unset ac_cv_header_vdpau_vdpau_x11_h
1525         VDPAU_CFLAGS="-I/usr/include/nvidia"
1526         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
1527         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
1528         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1529       fi
1530       
1531       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
1532   
1533       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
1534         dnl Found the headers - look for the lib
1535         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
1536         saved_LIBS="$LIBS"
1537         LIBS="$VDPAU_LIBS $saved_LIBS"
1538         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
1539         LIBS="$saved_LIBS"
1540       fi
1541     fi
1542   ])
1543
1544   if test "$HAVE_VDPAU" = "yes"; then
1545     AC_MSG_NOTICE([Found up to date VDPAU installation])
1546     AC_SUBST(VDPAU_CFLAGS)
1547     AC_SUBST(VDPAU_LIBS)
1548   fi
1549 ])
1550
1551 dnl *** schroedinger ***
1552 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
1553 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
1554   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.7)
1555 ])
1556
1557 dnl *** zbar ***
1558 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
1559 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
1560   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
1561 ])
1562
1563 dnl *** vp8 ***
1564 translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8)
1565 AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [
1566   VPX_LIBS=""
1567   AG_GST_CHECK_LIBHEADER(VPX, vpx,
1568                         vpx_codec_version, ,
1569                         vpx/vpx_codec.h, [
1570     HAVE_VP8_ENCODER=no
1571     HAVE_VP8_DECODER=no
1572
1573     OLD_LIBS="$LIBS"
1574     LIBS="$LIBS $LIBM -lpthread"
1575     AC_CHECK_LIB(vpx, vpx_codec_vp8_cx_algo, [
1576       HAVE_VP8=yes
1577       AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available])
1578       VPX_LIBS="-lvpx"
1579     ])
1580     AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [
1581       HAVE_VP8=yes
1582       AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available])
1583       VPX_LIBS="-lvpx"
1584     ])
1585     LIBS="$OLD_LIBS"
1586   ])
1587   AC_SUBST(VPX_LIBS)
1588 ])
1589
1590 dnl *** rtmp ***
1591 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
1592 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
1593   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
1594 ])
1595
1596 dnl *** GSettings ***
1597 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
1598 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
1599   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
1600   if test "x$HAVE_GSETTINGS" = "xyes"; then
1601     GLIB_GSETTINGS
1602   fi
1603 ])
1604
1605 else
1606
1607 dnl not building plugins with external dependencies,
1608 dnl but we still need to set the conditionals
1609
1610 AM_CONDITIONAL(USE_ASSRENDER, false)
1611 AM_CONDITIONAL(USE_AMRWB, false)
1612 AM_CONDITIONAL(USE_APEXSINK, false)
1613 AM_CONDITIONAL(USE_BZ2, false)
1614 AM_CONDITIONAL(USE_CDAUDIO, false)
1615 AM_CONDITIONAL(USE_CELT, false)
1616 AM_CONDITIONAL(USE_COG, false)
1617 AM_CONDITIONAL(USE_CURL, false)
1618 AM_CONDITIONAL(USE_DC1394, false)
1619 AM_CONDITIONAL(USE_DIRECTFB, false)
1620 AM_CONDITIONAL(USE_DIRAC, false)
1621 AM_CONDITIONAL(USE_DTS, false)
1622 AM_CONDITIONAL(USE_DIVX, false)
1623 AM_CONDITIONAL(USE_EXIF, false)
1624 AM_CONDITIONAL(USE_RESINDVD, false)
1625 AM_CONDITIONAL(USE_FAAC, false)
1626 AM_CONDITIONAL(USE_FAAD, false)
1627 AM_CONDITIONAL(USE_FBDEV, false)
1628 AM_CONDITIONAL(USE_FLITE, false)
1629 AM_CONDITIONAL(USE_GSM, false)
1630 AM_CONDITIONAL(USE_JP2K, false)
1631 AM_CONDITIONAL(USE_KATE, false)
1632 AM_CONDITIONAL(USE_TIGER, false)
1633 AM_CONDITIONAL(USE_LADSPA, false)
1634 AM_CONDITIONAL(USE_LV2, false)
1635 AM_CONDITIONAL(USE_LIBMMS, false)
1636 AM_CONDITIONAL(USE_MODPLUG, false)
1637 AM_CONDITIONAL(USE_MIMIC, false)
1638 AM_CONDITIONAL(USE_MPEG2ENC, false)
1639 AM_CONDITIONAL(USE_MPLEX, false)
1640 AM_CONDITIONAL(USE_MUSEPACK, false)
1641 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1642 AM_CONDITIONAL(USE_MYTHTV, false)
1643 AM_CONDITIONAL(USE_NAS, false)
1644 AM_CONDITIONAL(USE_NEON, false)
1645 AM_CONDITIONAL(USE_OFA, false)
1646 AM_CONDITIONAL(USE_OPENCV, false)
1647 AM_CONDITIONAL(USE_RSVG, false)
1648 AM_CONDITIONAL(USE_TIMIDITY, false)
1649 AM_CONDITIONAL(USE_WILDMIDI, false)
1650 AM_CONDITIONAL(USE_SDL, false)
1651 AM_CONDITIONAL(USE_SNDFILE, false)
1652 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1653 AM_CONDITIONAL(USE_SPC, false)
1654 AM_CONDITIONAL(USE_GME, false)
1655 AM_CONDITIONAL(USE_GSETTINGS, false)
1656 AM_CONDITIONAL(USE_SWFDEC, false)
1657 AM_CONDITIONAL(USE_XVID, false)
1658 AM_CONDITIONAL(USE_DVB, false)
1659 AM_CONDITIONAL(USE_WININET, false)
1660 AM_CONDITIONAL(USE_ACM, false)
1661 AM_CONDITIONAL(USE_VDPAU, false)
1662 AM_CONDITIONAL(USE_SCHRO, false)
1663 AM_CONDITIONAL(USE_ZBAR, false)
1664 AM_CONDITIONAL(USE_VP8, false)
1665 AM_CONDITIONAL(USE_RTMP, false)
1666
1667 fi dnl of EXT plugins
1668
1669 dnl *** finalize CFLAGS, LDFLAGS, LIBS
1670
1671 dnl Overview:
1672 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
1673 dnl GST_*:              flags shared by built objects to link against GStreamer
1674 dnl GST_ALL_LDFLAGS:    linker flags shared by all
1675 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
1676 dnl GST_LT_LDFLAGS:     library versioning of our libraries
1677 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
1678
1679 dnl GST_OPTION_CFLAGS
1680 if test "x$USE_DEBUG" = xyes; then
1681    PROFILE_CFLAGS="-g"
1682 fi
1683 AC_SUBST(PROFILE_CFLAGS)
1684
1685 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
1686   dnl Define _only_ during CVS (not pre-releases or releases)
1687   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
1688 else
1689   DEPRECATED_CFLAGS=""
1690 fi
1691 AC_SUBST(DEPRECATED_CFLAGS)
1692
1693 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
1694 dnl at make time with e.g. make ERROR_CFLAGS=""
1695 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1696 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1697 AC_SUBST(GST_OPTION_CFLAGS)
1698 AC_SUBST(GST_OPTION_CXXFLAGS)
1699
1700 dnl FIXME: do we want to rename to GST_ALL_* ?
1701 dnl prefer internal headers to already installed ones
1702 dnl also add builddir include for enumtypes and marshal
1703 dnl add GST_OPTION_CFLAGS, but overridable
1704 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
1705 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
1706 AC_SUBST(GST_CFLAGS)
1707 AC_SUBST(GST_CXXFLAGS)
1708 AC_SUBST(GST_LIBS)
1709 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1710 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1711 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
1712 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
1713
1714 dnl LDFLAGS really should only contain flags, not libs - they get added before
1715 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1716 GST_ALL_LDFLAGS="-no-undefined"
1717 AC_SUBST(GST_ALL_LDFLAGS)
1718
1719 dnl GST_LIB_LDFLAGS
1720 dnl linker flags shared by all libraries
1721 dnl LDFLAGS modifier defining exported symbols from built libraries
1722 dnl (export _gst_foo but not __gst_foo)
1723 GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*"
1724 AC_SUBST(GST_LIB_LDFLAGS)
1725
1726 dnl this really should only contain flags, not libs - they get added before
1727 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1728 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS"
1729 AC_SUBST(GST_PLUGIN_LDFLAGS)
1730
1731 dnl *** output files ***
1732
1733 dnl po/Makefile.in
1734
1735 AC_CONFIG_FILES(
1736 Makefile
1737 common/Makefile
1738 common/m4/Makefile
1739 gst-plugins-bad.spec
1740 gst/Makefile
1741 gst/adpcmdec/Makefile
1742 gst/adpcmenc/Makefile
1743 gst/aiff/Makefile
1744 gst/asfmux/Makefile
1745 gst/audioparsers/Makefile
1746 gst/autoconvert/Makefile
1747 gst/bayer/Makefile
1748 gst/camerabin/Makefile
1749 gst/camerabin2/Makefile
1750 gst/cdxaparse/Makefile
1751 gst/colorspace/Makefile
1752 gst/coloreffects/Makefile
1753 gst/dataurisrc/Makefile
1754 gst/dccp/Makefile
1755 gst/debugutils/Makefile
1756 gst/dtmf/Makefile
1757 gst/dvbsuboverlay/Makefile
1758 gst/dvdspu/Makefile
1759 gst/festival/Makefile
1760 gst/fieldanalysis/Makefile
1761 gst/freeze/Makefile
1762 gst/frei0r/Makefile
1763 gst/gaudieffects/Makefile
1764 gst/geometrictransform/Makefile
1765 gst/h264parse/Makefile
1766 gst/hdvparse/Makefile
1767 gst/hls/Makefile
1768 gst/id3tag/Makefile
1769 gst/interlace/Makefile
1770 gst/invtelecine/Makefile
1771 gst/ivfparse/Makefile
1772 gst/jp2kdecimator/Makefile
1773 gst/jpegformat/Makefile
1774 gst/legacyresample/Makefile
1775 gst/librfb/Makefile
1776 gst/liveadder/Makefile
1777 gst/mpegdemux/Makefile
1778 gst/mpegtsdemux/Makefile
1779 gst/mpegtsmux/Makefile
1780 gst/mpegtsmux/tsmux/Makefile
1781 gst/mpegpsmux/Makefile
1782 gst/mpeg4videoparse/Makefile
1783 gst/mpegvideoparse/Makefile
1784 gst/mve/Makefile
1785 gst/mxf/Makefile
1786 gst/nsf/Makefile
1787 gst/nuvdemux/Makefile
1788 gst/patchdetect/Makefile
1789 gst/pcapparse/Makefile
1790 gst/pnm/Makefile
1791 gst/qtmux/Makefile
1792 gst/rawparse/Makefile
1793 gst/real/Makefile
1794 gst/rtpmux/Makefile
1795 gst/rtpvp8/Makefile
1796 gst/scaletempo/Makefile
1797 gst/sdi/Makefile
1798 gst/sdp/Makefile
1799 gst/segmentclip/Makefile
1800 gst/siren/Makefile
1801 gst/speed/Makefile
1802 gst/subenc/Makefile
1803 gst/stereo/Makefile
1804 gst/tta/Makefile
1805 gst/videofilters/Makefile
1806 gst/videomaxrate/Makefile
1807 gst/videomeasure/Makefile
1808 gst/videoparsers/Makefile
1809 gst/videosignal/Makefile
1810 gst/vmnc/Makefile
1811 gst/y4m/Makefile
1812 gst-libs/Makefile
1813 gst-libs/gst/Makefile
1814 gst-libs/gst/basecamerabinsrc/Makefile
1815 gst-libs/gst/baseparse/Makefile
1816 gst-libs/gst/interfaces/Makefile
1817 gst-libs/gst/signalprocessor/Makefile
1818 gst-libs/gst/video/Makefile
1819 sys/Makefile
1820 sys/dshowdecwrapper/Makefile
1821 sys/acmenc/Makefile
1822 sys/acmmp3dec/Makefile
1823 sys/applemedia/Makefile
1824 sys/decklink/Makefile
1825 sys/directdraw/Makefile
1826 sys/directsound/Makefile
1827 sys/dshowsrcwrapper/Makefile
1828 sys/dshowvideosink/Makefile
1829 sys/dvb/Makefile
1830 sys/fbdev/Makefile
1831 sys/linsys/Makefile
1832 sys/osxvideo/Makefile
1833 sys/qtwrapper/Makefile
1834 sys/shm/Makefile
1835 sys/vcd/Makefile
1836 sys/vdpau/Makefile
1837 sys/vdpau/gstvdp/Makefile
1838 sys/vdpau/basevideodecoder/Makefile
1839 sys/wasapi/Makefile
1840 sys/wininet/Makefile
1841 sys/winks/Makefile
1842 sys/winscreencap/Makefile
1843 tests/Makefile
1844 tests/check/Makefile
1845 tests/files/Makefile
1846 tests/examples/Makefile
1847 tests/examples/camerabin/Makefile
1848 tests/examples/camerabin2/Makefile
1849 tests/examples/directfb/Makefile
1850 tests/examples/mxf/Makefile
1851 tests/examples/scaletempo/Makefile
1852 tests/icles/Makefile
1853 ext/amrwbenc/Makefile
1854 ext/assrender/Makefile
1855 ext/apexsink/Makefile
1856 ext/bz2/Makefile
1857 ext/cdaudio/Makefile
1858 ext/celt/Makefile
1859 ext/cog/Makefile
1860 ext/curl/Makefile
1861 ext/dc1394/Makefile
1862 ext/dirac/Makefile
1863 ext/directfb/Makefile
1864 ext/divx/Makefile
1865 ext/dts/Makefile
1866 ext/faac/Makefile
1867 ext/faad/Makefile
1868 ext/flite/Makefile
1869 ext/gsm/Makefile
1870 ext/jp2k/Makefile
1871 ext/kate/Makefile
1872 ext/ladspa/Makefile
1873 ext/lv2/Makefile
1874 ext/libmms/Makefile
1875 ext/Makefile
1876 ext/modplug/Makefile
1877 ext/mpeg2enc/Makefile
1878 ext/mimic/Makefile
1879 ext/mplex/Makefile
1880 ext/musepack/Makefile
1881 ext/musicbrainz/Makefile
1882 ext/mythtv/Makefile
1883 ext/nas/Makefile
1884 ext/neon/Makefile
1885 ext/ofa/Makefile
1886 ext/opencv/Makefile
1887 ext/rsvg/Makefile
1888 ext/resindvd/Makefile
1889 ext/rtmp/Makefile
1890 ext/schroedinger/Makefile
1891 ext/sdl/Makefile
1892 ext/sndfile/Makefile
1893 ext/soundtouch/Makefile
1894 ext/gme/Makefile
1895 ext/gsettings/Makefile
1896 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
1897 ext/spc/Makefile
1898 ext/swfdec/Makefile
1899 ext/timidity/Makefile
1900 ext/vp8/Makefile
1901 ext/xvid/Makefile
1902 ext/zbar/Makefile
1903 po/Makefile.in
1904 docs/Makefile
1905 docs/plugins/Makefile
1906 docs/version.entities
1907 pkgconfig/Makefile
1908 pkgconfig/gstreamer-plugins-bad.pc
1909 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
1910 tools/Makefile
1911 m4/Makefile
1912 win32/common/config.h
1913 )
1914 AC_OUTPUT
1915
1916 AG_GST_OUTPUT_PLUGINS
1917 ORC_OUTPUT
1918