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