resindvd: Fix silly typo in button state tracking.
[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.20.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 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.31
54 GSTPB_REQ=0.10.31
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 AC_PROG_CC_STDC
106
107 dnl determine c++ compiler
108 AC_PROG_CXX
109 dnl determine if c++ is available on this system
110 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
111
112 AS_PROG_OBJC
113
114 dnl check if the compiler supports '-c' and '-o' options
115 AM_PROG_CC_C_O
116
117 dnl check if the compiler supports do while(0) macros
118 AG_GST_CHECK_DOWHILE_MACROS
119
120 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
121 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
122
123 dnl check for documentation tools
124 GTK_DOC_CHECK([1.3])
125 AS_PATH_PYTHON([2.1])
126 AG_GST_PLUGIN_DOCS([1.3],[2.1])
127
128 dnl *** checks for libraries ***
129
130 dnl check for libm, for sin() etc.
131 AC_CHECK_LIBM
132 AC_SUBST(LIBM)
133
134 AC_FUNC_MMAP
135
136 dnl *** checks for header files ***
137
138 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
139 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
140
141 if test "x$HAVE_UNISTD_H" != "xyes"; then
142   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
143 fi
144
145 dnl used by camerabin
146 AC_CHECK_HEADERS([sys/time.h])
147
148 dnl used by ext/dts
149 AX_CREATE_STDINT_H
150
151 AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes)
152 AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
153
154 if test "x$HAVE_PTHREAD_H" != "xyes"; then
155   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//`
156 fi
157
158 dnl *** checks for types/defines ***
159
160 dnl Check for FIONREAD ioctl declaration
161 dnl used in gst/dccp
162 GST_CHECK_FIONREAD
163
164 dnl *** checks for structures ***
165
166 dnl *** checks for compiler characteristics ***
167
168 dnl *** checks for library functions ***
169 AC_CHECK_FUNCS([gmtime_r])
170
171 dnl *** checks for headers ***
172 AC_CHECK_HEADERS([sys/utsname.h])
173
174 dnl *** checks for dependency libraries ***
175
176 dnl *** checks for socket and nsl libraries ***
177 AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)])
178 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
179
180 dnl GLib is required
181 AG_GST_GLIB_CHECK([2.20])
182
183 dnl checks for gstreamer
184 dnl uninstalled is selected preferentially -- see pkg-config(1)
185 AG_GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ], yes)
186 AG_GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ], yes)
187 AG_GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ], yes)
188 AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
189 AG_GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ], yes)
190 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
191
192 AG_GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ], yes)
193
194 dnl check for uninstalled plugin directories for unit tests
195 AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.10.25])
196 AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.10.16])
197 AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.10.11])
198
199 dnl Check for documentation xrefs
200 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
201 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
202 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`"
203 AC_SUBST(GLIB_PREFIX)
204 AC_SUBST(GST_PREFIX)
205 AC_SUBST(GSTPB_PREFIX)
206
207 dnl GTK is optional and used in examples
208 HAVE_GTK=NO
209 GTK2_REQ=2.14.0
210 GTK3_REQ=2.91.3
211 if test "x$BUILD_EXAMPLES" = "xyes"; then
212   AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)])
213   AC_ARG_WITH([gtk],
214     AC_HELP_STRING([--with-gtk=3.0|2.0],
215                    [which gtk+ version to compile against (default: 2.0)]),
216     [case "$with_gtk" in
217         2.0) GTK_REQ=$GTK2_REQ ;;
218         3.0) GTK_REQ=$GTK3_REQ ;;
219         *) AC_MSG_ERROR([invalid gtk+ version specified]);;
220     esac],
221     [with_gtk=2.0
222      GTK_REQ=$GTK2_REQ])
223   AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)])
224   PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no)
225   AC_SUBST(GTK_LIBS)
226   AC_SUBST(GTK_CFLAGS)
227 fi
228 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
229
230 dnl Needed for GtkBuilder to autoconnect signals
231 PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no)
232
233 dnl x11 is optional for librfb
234 HAVE_X11=NO
235 PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no)
236 AC_SUBST(X11_LIBS)
237 AC_SUBST(X11_CFLAGS)
238 AC_SUBST(HAVE_X11)
239 AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes")
240 if test "x$HAVE_X11" = "xyes"; then
241   AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library])
242 fi
243
244 dnl Orc
245 ORC_CHECK([0.4.7])
246
247 dnl set license and copyright notice
248 GST_LICENSE="LGPL"
249 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
250 AC_SUBST(GST_LICENSE)
251
252 dnl define LIBDIR so we can inform people where we live
253 AS_AC_EXPAND(LIBDIR, $libdir)
254 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
255
256 dnl set location of plugin directory
257 AG_GST_SET_PLUGINDIR
258
259 dnl set release date/time
260 AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
261   ["${srcdir}/gst-plugins-bad.doap"],
262   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
263
264 dnl define an ERROR_CFLAGS Makefile variable
265 dnl -Waggregate-return - libexif returns aggregates
266 dnl -Wundef - Windows headers check _MSC_VER unconditionally
267 AG_GST_SET_ERROR_CFLAGS($GST_GIT, [
268     -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls
269     -Wwrite-strings -Wformat-security -Wold-style-definition
270     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar
271     -Wnested-externs])
272
273 dnl define an ERROR_CXXFLAGS Makefile variable
274 AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [
275     -Wmissing-declarations -Wredundant-decls
276     -Wwrite-strings -Wformat-nonliteral -Wformat-security
277     -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar ])
278
279 dnl define correct level for debugging messages
280 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
281
282 dnl used in examples
283 AG_GST_DEFAULT_ELEMENTS
284
285 dnl *** plug-ins to include ***
286
287 dnl these are all the gst plug-ins, compilable without additional libs
288 AG_GST_CHECK_PLUGIN(adpcmdec)
289 AG_GST_CHECK_PLUGIN(adpcmenc)
290 AG_GST_CHECK_PLUGIN(aiff)
291 AG_GST_CHECK_PLUGIN(asfmux)
292 AG_GST_CHECK_PLUGIN(audioparsers)
293 AG_GST_CHECK_PLUGIN(autoconvert)
294 AG_GST_CHECK_PLUGIN(bayer)
295 AG_GST_CHECK_PLUGIN(camerabin)
296 AG_GST_CHECK_PLUGIN(camerabin2)
297 AG_GST_CHECK_PLUGIN(cdxaparse)
298 AG_GST_CHECK_PLUGIN(coloreffects)
299 AG_GST_CHECK_PLUGIN(colorspace)
300 AG_GST_CHECK_PLUGIN(dataurisrc)
301 AG_GST_CHECK_PLUGIN(dccp)
302 AG_GST_CHECK_PLUGIN(debugutils)
303 AG_GST_CHECK_PLUGIN(dtmf)
304 AG_GST_CHECK_PLUGIN(dvbsuboverlay)
305 AG_GST_CHECK_PLUGIN(dvdspu)
306 AG_GST_CHECK_PLUGIN(festival)
307 AG_GST_CHECK_PLUGIN(freeze)
308 AG_GST_CHECK_PLUGIN(frei0r)
309 AG_GST_CHECK_PLUGIN(gaudieffects)
310 AG_GST_CHECK_PLUGIN(geometrictransform)
311 AG_GST_CHECK_PLUGIN(h264parse)
312 AG_GST_CHECK_PLUGIN(hdvparse)
313 AG_GST_CHECK_PLUGIN(id3tag)
314 AG_GST_CHECK_PLUGIN(interlace)
315 AG_GST_CHECK_PLUGIN(invtelecine)
316 AG_GST_CHECK_PLUGIN(ivfparse)
317 AG_GST_CHECK_PLUGIN(jp2kdecimator)
318 AG_GST_CHECK_PLUGIN(jpegformat)
319 AG_GST_CHECK_PLUGIN(legacyresample)
320 AG_GST_CHECK_PLUGIN(librfb)
321 AG_GST_CHECK_PLUGIN(liveadder)
322 AG_GST_CHECK_PLUGIN(mpegdemux)
323 AG_GST_CHECK_PLUGIN(mpegtsmux)
324 AG_GST_CHECK_PLUGIN(mpegpsmux)
325 AG_GST_CHECK_PLUGIN(mpeg4videoparse)
326 AG_GST_CHECK_PLUGIN(mpegvideoparse)
327 AG_GST_CHECK_PLUGIN(mve)
328 AG_GST_CHECK_PLUGIN(mxf)
329 AG_GST_CHECK_PLUGIN(nsf)
330 AG_GST_CHECK_PLUGIN(nuvdemux)
331 AG_GST_CHECK_PLUGIN(pcapparse)
332 AG_GST_CHECK_PLUGIN(pnm)
333 AG_GST_CHECK_PLUGIN(qtmux)
334 AG_GST_CHECK_PLUGIN(rawparse)
335 AG_GST_CHECK_PLUGIN(real)
336 AG_GST_CHECK_PLUGIN(rtpmux)
337 AG_GST_CHECK_PLUGIN(scaletempo)
338 AG_GST_CHECK_PLUGIN(sdp)
339 AG_GST_CHECK_PLUGIN(segmentclip)
340 AG_GST_CHECK_PLUGIN(selector)
341 AG_GST_CHECK_PLUGIN(siren)
342 AG_GST_CHECK_PLUGIN(speed)
343 AG_GST_CHECK_PLUGIN(subenc)
344 AG_GST_CHECK_PLUGIN(stereo)
345 AG_GST_CHECK_PLUGIN(tta)
346 AG_GST_CHECK_PLUGIN(valve)
347 AG_GST_CHECK_PLUGIN(videomaxrate)
348 AG_GST_CHECK_PLUGIN(videomeasure)
349 AG_GST_CHECK_PLUGIN(videosignal)
350 AG_GST_CHECK_PLUGIN(vmnc)
351
352 dnl *** plug-ins to exclude ***
353
354 dnl real plugin only works on i386 and x86_64 for the time being.
355 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
356   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
357   AG_GST_DISABLE_PLUGIN(real)
358 fi
359
360 dnl disable experimental plug-ins
361 if test "x$BUILD_EXPERIMENTAL" != "xyes"; then
362   AG_GST_DISABLE_PLUGIN(camerabin2)
363 fi
364
365 # This will always succeed because we depend on GLib >= 2.16
366 PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.16, HAVE_GIO=yes, HAVE_GIO=no)
367 AC_SUBST(GIO_CFLAGS)
368 AC_SUBST(GIO_LIBS)
369
370 dnl disable gst plugins we might not be able to build on this
371 dnl platform: librfb (ugly but minimally invasive)
372 dnl FIXME: maybe move to sys, or make work with winsock2
373 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
374 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
375
376 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
377   WIN32_LIBS="-lws2_32"
378   AC_SUBST(WIN32_LIBS)
379 fi
380
381 dnl needed for festival
382 AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
383
384 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
385   DCCP_LIBS="$DCCP_LIBS -lws2_32"
386   XDG_LIBS="$XDG_LIBS -lws2_32"
387   AC_SUBST(DCCP_LIBS)
388   AC_SUBST(XDG_LIBS)
389 fi
390
391 if test "x$HAVE_PTHREAD_H" = "xyes"; then
392   DCCP_LIBS="$DCCP_LIBS -lpthread"
393   AC_SUBST(DCCP_LIBS)
394 fi
395
396 if test "x$HAVE_PTHREAD_H" != "xyes"; then
397   AG_GST_DISABLE_PLUGIN(dccp)
398 fi
399
400 dnl *** sys plug-ins ***
401
402 dnl DirectSound
403 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
404 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
405   HAVE_DIRECTSOUND="no"
406   save_CFLAGS="$CFLAGS"
407   save_LDFLAGS="$LDFLAGS"
408   save_LIBS="$LIBS"
409   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
410   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
411   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
412   AC_MSG_CHECKING(for DirectSound LDFLAGS)
413   AC_LINK_IFELSE([
414 #include <windows.h>
415 #include <dxerr9.h>
416 #include <dsound.h>
417
418 int main ()
419 {
420   DXGetErrorString9 (0);
421   DirectSoundCreate(NULL, NULL, NULL);
422
423   return 0;
424 }
425 ],
426     [HAVE_DIRECTSOUND="yes"],
427     [HAVE_DIRECTSOUND="no"])
428   AC_MSG_RESULT($HAVE_DIRECTSOUND)
429   CFLAGS=$save_CFLAGS
430   LDFLAGS=$save_LDFLAGS
431   LIBS=$save_LIBS
432
433   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
434     dnl this is much more than we want
435     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
436     AC_SUBST(DIRECTX_CFLAGS)
437     AC_SUBST(DIRECTX_LDFLAGS)
438     AC_SUBST(DIRECTSOUND_LIBS)
439   fi
440   AC_SUBST(HAVE_DIRECTSOUND)
441 ])
442
443 dnl DirectDraw
444 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
445 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
446   HAVE_DIRECTDRAW="no"
447   save_CFLAGS="$CFLAGS"
448   save_LDFLAGS="$LDFLAGS"
449   save_LIBS="$LIBS"
450   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
451   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
452   LIBS="$LIBS -lddraw -lgdi32"
453   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
454   AC_LINK_IFELSE([
455 #include <windows.h>
456 #include <ddraw.h>
457
458 int main ()
459 {
460   GetStockObject(0);
461   DirectDrawCreate(NULL, NULL, NULL);
462
463   return 0;
464 }
465 ],
466     [HAVE_DIRECTDRAW="yes"],
467     [HAVE_DIRECTDRAW="no"])
468   AC_MSG_RESULT($HAVE_DIRECTDRAW)
469   CFLAGS=$save_CFLAGS
470   LDFLAGS=$save_LDFLAGS
471   LIBS=$save_LIBS
472
473   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
474     dnl this is much more than we want
475     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
476     AC_SUBST(DIRECTX_CFLAGS)
477     AC_SUBST(DIRECTX_LDFLAGS)
478     AC_SUBST(DIRECTDRAW_LIBS)
479   fi
480   AC_SUBST(HAVE_DIRECTDRAW)
481 ])
482
483 dnl *** AppleMedia (OS X and iOS) ***
484 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
485 HAVE_APPLE_MEDIA="no"
486 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
487 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
488   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
489 ])
490 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
491 case "$host" in
492   *-*darwin*)
493     ;;
494   *)
495     HAVE_APPLE_MEDIA="no"
496     ;;
497 esac
498 HAVE_IOS="no"
499 if test "x$HAVE_APPLE_MEDIA" = "xyes"; then
500   AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
501 fi
502
503 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
504 if test "x$HAVE_IOS" = "xyes"; then
505   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
506 fi
507
508 dnl *** OS X videosrc ***
509 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
510 HAVE_OSX_VIDEO="no"
511 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
512   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
513       [#include <Quicktime/Quicktime.h>])
514 ])
515 dnl in case header Quicktime/Quicktime.h is found on other platforms
516 case "$host" in
517   *-*darwin*)
518     ;;
519   *)
520     HAVE_OSX_VIDEO="no"
521     ;;
522 esac
523
524 dnl check for QuickTime
525 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
526 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
527   AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no",
528       [#include <Quicktime/Quicktime.h>])
529 ])
530
531 dnl check for shm_open (for shm plugin)
532 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
533 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
534   AC_CHECK_LIB(rt, shm_open, HAVE_SHM=yes, HAVE_SHM=no)
535 ])
536
537 dnl check for Video CD
538 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
539 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
540   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
541 ])
542
543 dnl *** ext plug-ins ***
544 dnl keep this list sorted alphabetically !
545
546 if test "x$BUILD_EXTERNAL" = "xyes"; then
547
548 dnl *** assrender ***
549 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
550 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
551   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
552     HAVE_ASSRENDER="yes" ], [
553     HAVE_ASSRENDER="no"
554     AC_MSG_RESULT(no)
555   ])
556 ])
557 AC_SUBST(ASSRENDER_CFLAGS)
558 AC_SUBST(ASSRENDER_LIBS)
559
560 dnl *** amrwb ***
561 translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true)
562 AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwbenc, [
563   AG_GST_CHECK_LIBHEADER(AMRWB, amrwb,
564                         GP3E_IF_encode, ,
565                         amrwb/enc.h,
566                         AMRWB_LIBS="-lamrwb"
567                         AC_SUBST(AMRWB_LIBS))
568 ])
569
570 dnl *** apexsink ***
571 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
572 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
573   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
574     HAVE_APEXSINK="yes"
575     saved_LIBS="$LIBS"
576     LIBS=""
577     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
578     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
579     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
580     LIBS="$saved_LIBS"
581     AC_SUBST(APEXSINK_CFLAGS)
582     AC_SUBST(APEXSINK_LIBS)
583   ], [
584     APEXSINK="no"
585   ])
586 ])
587
588 dnl *** BZ2 ***
589 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
590 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
591   AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2")
592   AC_SUBST(BZ2_LIBS)
593 ])
594
595 #dnl *** cairo ***
596 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
597 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
598 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
599 #    HAVE_CAIRO=no
600 #    AC_MSG_RESULT(no)
601 #  ])
602 #  AC_SUBST(CAIRO_CFLAGS)
603 #  AC_SUBST(CAIRO_LIBS)
604 #])
605
606 dnl *** cdaudio ***
607 translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true)
608 AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [
609   AG_GST_CHECK_CONFIGPROG(CDAUDIO, libcdaudio-config)
610   AC_SUBST(CDAUDIO_CFLAGS)
611   AC_SUBST(CDAUDIO_LIBS)
612 ])
613
614 dnl *** celt ***
615 translit(dnm, m, l) AM_CONDITIONAL(USE_CELT, true)
616 AG_GST_CHECK_FEATURE(CELT, [celt], celt, [
617   PKG_CHECK_MODULES(CELT, celt >= 0.5.0, [
618           AC_DEFINE([HAVE_CELT], 1, [Define if libcelt 0.5 is installed])
619           HAVE_CELT="yes"
620   ], [
621           HAVE_CELT="no"
622   ])
623
624   PKG_CHECK_MODULES(CELT_0_7, celt >= 0.7.0, [
625           AC_DEFINE([HAVE_CELT_0_7], 1, [Define if libcelt 0.7 is installed])
626   ], [
627           dnl to prevent an error
628           true
629   ])
630
631   PKG_CHECK_MODULES(CELT_0_8, celt >= 0.8.0, [
632           AC_DEFINE([HAVE_CELT_0_8], 1, [Define if libcelt 0.8 is installed])
633   ], [
634           dnl to prevent an error
635           true
636   ])
637   AC_SUBST(CELT_CFLAGS)
638   AC_SUBST(CELT_LIBS)
639 ])
640
641 dnl *** Cog ***
642 translit(dnm, m, l) AM_CONDITIONAL(USE_COG, true)
643 AG_GST_CHECK_FEATURE(COG, [Cog plugin], cog, [
644   PKG_CHECK_MODULES(COG, libpng >= 1.2, HAVE_COG="yes", [
645     HAVE_COG="no"
646     AC_MSG_RESULT(no)
647   ])
648   AC_SUBST(COG_CFLAGS)
649   AC_SUBST(COG_LIBS)
650 ])
651
652 dnl *** dc1394  ***
653 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
654 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
655    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
656         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
657                 HAVE_DC1394="yes"
658         else
659                 HAVE_DC1394="no"
660                 AC_MSG_RESULT(no)
661         fi
662    ], [
663         HAVE_DC1394="no"
664         AC_MSG_RESULT(no)
665    ])
666    AC_SUBST(LIBDC1394_CFLAGS)
667    AC_SUBST(LIBDC1394_LIBS)
668 ])
669
670
671 dnl **** DirectFB ****
672 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
673 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
674   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
675     HAVE_DIRECTFB="no"
676     AC_MSG_RESULT(no)
677   ])
678 ])
679
680 dnl **** Dirac ****
681 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true)
682 AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [
683   PKG_CHECK_MODULES(DIRAC, dirac >= 0.10, HAVE_DIRAC="yes", [
684     HAVE_DIRAC="no"
685     AC_MSG_RESULT(no)
686   ])
687 ])
688
689 dnl *** DTS ***
690 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
691 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
692   HAVE_DTS="yes"
693   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, -lm, dca.h,
694     DTS_LIBS="-ldca -lm", HAVE_DTS="no")
695   if test $HAVE_DTS = "no"; then
696     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, -lm, dts.h,
697       [ DTS_LIBS="-ldts_pic -lm"
698         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
699       ])
700   fi
701   AC_SUBST(DTS_LIBS)
702 ])
703
704 dnl *** DIVX ***
705 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
706 AG_GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
707   HAVE_DIVX=yes
708   AC_CHECK_HEADER(encore2.h, , [
709     AC_MSG_WARN([Divx4linux encore headers not found])
710     HAVE_DIVX=no
711   ])
712   if [ test x$HAVE_DIVX = xyes ]; then
713     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
714     AC_TRY_COMPILE([
715 #include <encore2.h>
716 #if ENCORE_VERSION != 20021024
717 #error Wrong version of divx encore libraries
718 #endif
719     ], [
720 return 0;
721     ], [
722       HAVE_DIVX=yes
723       AC_MSG_RESULT(yes)
724     ], [
725       HAVE_DIVX=no
726       AC_MSG_RESULT(no)
727       AC_MSG_WARN([Wrong version of divx4linux installed])
728     ])
729   fi
730   if [ test x$HAVE_DIVX = xyes ]; then
731     AC_CHECK_HEADER(decore.h, , [
732       AC_MSG_WARN([Divx4linux decoder headers not found])
733       HAVE_DIVX=no
734     ])
735   fi
736   if [ test x$HAVE_DIVX = xyes ]; then
737     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
738     AC_TRY_COMPILE([
739 #include <decore.h>
740 #if DECORE_VERSION != 20021112
741 #error Wrong version of divx decore libraries
742 #endif
743     ], [
744 return 0;
745     ], [
746       HAVE_DIVX=yes
747       AC_MSG_RESULT(yes)
748     ], [
749       HAVE_DIVX=no
750       AC_MSG_RESULT(no)
751       AC_MSG_WARN([Wrong version of divx4linux installed])
752     ])
753   fi
754   LIBS="-lm"
755   if test x$HAVE_DIVX = xyes; then
756     AC_CHECK_LIB(divxencore, encore, , [
757       AC_MSG_WARN([Divx4linux encore libs not found])
758       HAVE_DIVX=no
759     ])
760   fi
761   if test x$HAVE_DIVX = xyes; then
762     AC_CHECK_LIB(divxdecore, decore, , [
763       AC_MSG_WARN([Divx4linux decore libs not found])
764       HAVE_DIVX=no
765   ])
766   fi
767   if test x$HAVE_DIVX = xyes; then
768     DIVXENC_LIBS="-ldivxencore -lm"
769     DIVXDEC_LIBS="-ldivxdecore -lm"
770     AC_SUBST(DIVXENC_LIBS)
771     AC_SUBST(DIVXDEC_LIBS)
772   fi
773 ])
774
775 dnl *** resindvd ***
776 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
777 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
778   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
779     HAVE_RESINDVD="no"
780     AC_MSG_RESULT(no)
781   ])
782 ])
783
784 dnl **** exif (used on jifmux tests) ****
785 translit(dnm, m, l) AM_CONDITIONAL(USE_EXIF, true)
786 AG_GST_CHECK_FEATURE(EXIF, [exif], exif, [
787   PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", [
788     HAVE_EXIF="no"
789     AC_MSG_RESULT(no)
790   ])
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         OLD_LDFLAGS="$LDFLAGS"
1112         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1113         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1114         dnl don't want this here
1115         AC_MSG_CHECKING([for valid mplex objects])
1116         AC_TRY_RUN([
1117
1118 #include <interact.hpp>
1119 #include <outputstrm.hpp>
1120 #include <multiplexor.hpp>
1121 int
1122 main (int   argc,
1123       char *argv[])
1124 {
1125   class TestOutputStream : public OutputStream {
1126   public:
1127     TestOutputStream () : OutputStream () { }
1128     void Write (uint8_t *a, unsigned int b) { }
1129     void NextSegment () { }
1130     uint64_t SegmentSize () { }
1131     void Close () { }
1132     int Open () { }
1133 };
1134   MultiplexJob *job = new MultiplexJob ();
1135   vector<IBitStream *> inputs;
1136   job->SetupInputStreams (inputs);
1137   TestOutputStream *out = new TestOutputStream ();
1138   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1139   return 0;
1140 }
1141         ],[
1142           HAVE_MPLEX="yes"
1143           AC_SUBST(MPLEX_CFLAGS)
1144           AC_SUBST(MPLEX_LIBS)
1145           AC_SUBST(MPLEX_LDFLAGS)
1146           AC_MSG_RESULT(yes)
1147         ], AC_MSG_RESULT(no))
1148         LIBS="$OLD_LIBS"
1149         LDFLAGS="$OLD_LDFLAGS"
1150       ])
1151       CPPFLAGS="$OLD_CPPFLAGS"
1152       AC_LANG_C
1153     ], HAVE_MPLEX="no")
1154   fi
1155 ])
1156
1157 dnl *** musepack ***
1158 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1159 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1160   AC_CHECK_HEADER([mpc/mpcdec.h], [
1161     HAVE_MUSEPACK="yes"
1162     MUSEPACK_LIBS="-lmpcdec"
1163     AC_SUBST(MUSEPACK_LIBS)
1164     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1165       HAVE_MUSEPACK="yes"
1166       MUSEPACK_LIBS="-lmpcdec"
1167       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1168       AC_SUBST(MUSEPACK_LIBS)
1169     ], [HAVE_MUSEPACK="no"])])
1170 ])
1171
1172 dnl *** musicbrainz ***
1173 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
1174 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
1175   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
1176   AC_SUBST(MUSICBRAINZ_CFLAGS)
1177   AC_SUBST(MUSICBRAINZ_LIBS)
1178 ])
1179
1180 dnl *** MythTV ***
1181 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
1182 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
1183   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
1184     HAVE_MYTHTV="no"
1185     AC_MSG_RESULT(no)
1186   ])
1187   AC_SUBST(GMYTH_CFLAGS)
1188   AC_SUBST(GMYTH_LIBS)
1189 ])
1190
1191 dnl *** nas ***
1192 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1193 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1194   HAVE_NAS="no"
1195   AG_GST_CHECK_X
1196   if test "x$HAVE_X" = "xyes"; then
1197     save_cppflags=$CFLAGS
1198     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1199     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1200       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1201     CPPFLAGS="$save_cppflags"
1202   fi
1203   AC_SUBST(NAS_CFLAGS)
1204   AC_SUBST(NAS_LIBS)
1205 ])
1206
1207 dnl *** neon ***
1208 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1209 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1210   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.29.99, HAVE_NEON="yes", [
1211     HAVE_NEON="no"
1212     AC_MSG_RESULT(no)
1213   ])
1214   AC_SUBST(NEON_CFLAGS)
1215   AC_SUBST(NEON_LIBS)
1216 ])
1217
1218 dnl *** ofa ***
1219 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1220 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1221   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1222     HAVE_OFA="no"
1223     AC_MSG_RESULT(no)
1224   ])
1225   AC_SUBST(OFA_CFLAGS)
1226   AC_SUBST(OFA_LIBS)
1227 ])
1228
1229 dnl *** opencv ***
1230 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1231 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1232   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1233   dnl and don't want the build to break when a new opencv version comes out.
1234   dnl Need to adjust this upwards once we know that our code compiles fine with
1235   dnl a new version and the no-backward-compatibility define. (There doesn't
1236   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1237   dnl causes.)
1238   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.1.0 , [
1239     AC_PROG_CXX
1240     AC_LANG_CPLUSPLUS
1241     OLD_CPPFLAGS=$CPPFLAGS
1242     CPPFLAGS=$OPENCV_CFLAGS
1243     AC_CHECK_HEADER(highgui.h, HAVE_HIGHGUI="yes", HAVE_HIGHGUI="no")
1244     AC_CHECK_HEADER(cvaux.h, HAVE_CVAUX="yes", HAVE_CVAUX="no")
1245     CPPFLAGS=$OLD_CPPFLAGS
1246     AC_LANG_C
1247     if test "x$HAVE_HIGHGUI" = "xno"; then
1248       AC_MSG_RESULT(highgui.h could not be found.)
1249       HAVE_OPENCV="no"
1250     elif test "x$HAVE_CVAUX" = "xno"; then
1251       AC_MSG_RESULT(cvaux.h could not be found.)
1252       HAVE_OPENCV="no"
1253     else
1254       HAVE_OPENCV="yes"
1255     fi
1256   ], [
1257     HAVE_OPENCV="no"
1258     AC_MSG_RESULT(no)
1259   ])
1260   AC_SUBST(OPENCV_CFLAGS)
1261   AC_SUBST(OPENCV_LIBS)
1262 ])
1263
1264 dnl *** rsvg ***
1265 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1266 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1267   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.14 cairo, HAVE_RSVG="yes", [
1268     HAVE_RSVG="no"
1269     AC_MSG_RESULT(no)
1270   ])
1271   AC_SUBST(RSVG_CFLAGS)
1272   AC_SUBST(RSVG_LIBS)
1273 ])
1274
1275 dnl *** timidity ***
1276 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
1277 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
1278   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
1279     HAVE_TIMIDITY="yes",
1280         AC_MSG_CHECKING([for timidity.cfg])
1281         timidity_cfg=""
1282         if test -r /etc/timidity.cfg; then
1283           timidity_cfg=/etc/timidity.cfg
1284         elif test -r /etc/timidity/timidity.cfg; then
1285           timidity_cfg=/etc/timidity/timidity.cfg
1286         elif test -r /usr/share/timidity/timidity.cfg; then
1287           timidity_cfg=/usr/share/timidity/timidity.cfg
1288         elif test -r /usr/local/share/timidity/timidity.cfg; then
1289           timidity_cfg=/usr/local/share/timidity/timidity.cfg
1290         fi
1291         if test "x$timidity_cfg" != "x"; then
1292           AC_MSG_RESULT($timidity_cfg)
1293       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
1294         else
1295           AC_MSG_RESULT([not found])
1296         fi
1297   ], [
1298     HAVE_TIMIDITY="no"
1299     AC_MSG_RESULT(no)
1300   ])
1301   AC_SUBST(TIMIDITY_CFLAGS)
1302   AC_SUBST(TIMIDITY_LIBS)
1303 ])
1304
1305 dnl *** wildmidi ***
1306 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1307 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1308   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1309                          WildMidi_Init, ,
1310                          wildmidi_lib.h,
1311                          WILDMIDI_LIBS="-lWildMidi")
1312   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
1313
1314   if test "x$HAVE_WILDMIDI" = "xyes"; then
1315          WILDMIDI_CFLAGS=
1316          WILDMIDI_LIBS=-lWildMidi
1317          AC_MSG_NOTICE(compiling gstWildMidi)
1318   else
1319          WILDMIDI_CFLAGS=
1320          WILDMIDI_LIBS=
1321          AC_MSG_WARN(no WildMidi library found (libWildMidi))
1322   fi
1323   AC_SUBST(WILDMIDI_CFLAGS)
1324   AC_SUBST(WILDMIDI_LIBS)
1325 ])
1326
1327 dnl *** SDL ***
1328 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1329 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
1330     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1331 ])
1332
1333 dnl *** sndfile ***
1334 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1335 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1336   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1337   AC_SUBST(SNDFILE_CFLAGS)
1338   AC_SUBST(SNDFILE_LIBS)
1339 ])
1340
1341 dnl *** soundtouch ***
1342 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
1343 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
1344   dnl We only need -lBPM on soundtouch < 1.4
1345   dnl We check for libSoundTouch since Debian used it before upstream
1346   dnl added a pkgconfig file.
1347   HAVE_SOUNDTOUCH_1_4=yes
1348   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
1349     [HAVE_SOUNDTOUCH=yes],
1350     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
1351       [HAVE_SOUNDTOUCH=yes
1352         HAVE_SOUNDTOUCH_1_4=no
1353         SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], 
1354       [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
1355         [HAVE_SOUNDTOUCH=yes],
1356         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
1357           [HAVE_SOUNDTOUCH=yes
1358             HAVE_SOUNDTOUCH_1_4=no
1359             SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1360           HAVE_SOUNDTOUCH=no)])])])
1361   AC_SUBST(SOUNDTOUCH_CFLAGS)
1362   AC_SUBST(SOUNDTOUCH_LIBS)
1363   if test "x$HAVE_CXX" != "xyes"; then
1364     USE_SOUNDTOUCH=false
1365     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
1366   fi
1367   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
1368      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
1369          [Defined if the available libSoundTouch is >= 1.4])
1370   fi
1371 ])
1372
1373 dnl *** spc ***
1374 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
1375 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
1376   AC_CHECK_HEADER(openspc.h, [
1377     AC_CHECK_LIB(openspc, OSPC_Init, [
1378       SPC_LIBS="-lopenspc"
1379       AC_SUBST(SPC_LIBS)
1380       HAVE_SPC=yes
1381     ], [
1382       HAVE_SPC=no
1383     ])
1384   ], [
1385     HAVE_SPC=no
1386   ])
1387 ])
1388
1389 dnl *** gme ***
1390 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
1391 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
1392   AC_CHECK_HEADER(gme/gme.h, [
1393     AC_CHECK_LIB(gme, gme_new_emu, [
1394       GME_LIBS="-lgme"
1395       AC_SUBST(GME_LIBS)
1396       HAVE_GME=yes
1397     ], [
1398       HAVE_GME=no
1399     ])
1400   ], [
1401     HAVE_GME=no
1402   ])
1403
1404   if test "x$HAVE_GME" = "xyes"; then
1405     AC_CHECK_LIB(gme, gme_enable_accuracy, [
1406       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
1407       ])
1408   fi
1409 ])
1410
1411 dnl *** swfdec ***
1412 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1413 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1414   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
1415     HAVE_SWFDEC=no
1416     AC_MSG_RESULT(no)
1417   ])
1418   AC_SUBST(SWFDEC_CFLAGS)
1419   AC_SUBST(SWFDEC_LIBS)
1420 ])
1421
1422 dnl *** theora ***
1423 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORADEC, true)
1424 AG_GST_CHECK_FEATURE(THEORADEC, [ogg theora codec], theoraexpdec, [
1425   PKG_CHECK_MODULES(THEORADEC, theoradec, HAVE_THEORADEC="yes", [
1426     HAVE_THEORADEC="no"
1427     AC_MSG_RESULT(no)
1428   ])
1429   AC_SUBST(THEORADEC_LIBS)
1430   AC_SUBST(THEORADEC_CFLAGS)
1431 ])
1432
1433 dnl *** XVID ***
1434 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1435 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1436   HAVE_XVID=no
1437   AC_CHECK_HEADER(xvid.h, [
1438     OLD_LIBS="$LIBS"
1439     LIBS="-lm"
1440     AC_CHECK_LIB(xvidcore, xvid_encore, [
1441       AC_CHECK_LIB(xvidcore, xvid_decore, [
1442         AC_CHECK_LIB(xvidcore, xvid_global, [
1443           AC_MSG_CHECKING([for uptodate XviD API version])
1444           AC_TRY_COMPILE([#include <xvid.h>], [
1445               #if XVID_API_MAJOR(XVID_API) != 4
1446               #error "Incompatible XviD API version"
1447               #endif
1448           ],[ AC_MSG_RESULT(yes)
1449             XVID_LIBS="-lxvidcore -lm"
1450             AC_SUBST(XVID_LIBS)
1451             HAVE_XVID=yes
1452           ], AC_MSG_RESULT(no) )
1453         ], )
1454       ], )
1455     ], )
1456     LIBS="$OLD_LIBS"
1457   ], )
1458 ])
1459
1460 dnl *** dvb ***
1461 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1462 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1463   AC_MSG_CHECKING([Checking for up to date dvb installation])
1464   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1465 ])
1466
1467 dnl *** wininet ***
1468 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1469 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1470   AC_MSG_CHECKING([Checking for windows internet support])
1471   AC_CHECK_HEADERS([windows.h wininet.h],
1472       [HAVE_WININET="yes"], [HAVE_WININET="no"])
1473 ])
1474
1475 dnl *** acm ***
1476 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
1477 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
1478   AC_MSG_CHECKING([Checking for ACM support])
1479   AC_CHECK_HEADERS([windows.h msacm.h],
1480       [HAVE_ACM="yes"
1481        AC_SUBST(ACMENC_CFLAGS)
1482        AC_SUBST(ACMMP3DEC_CFLAGS)
1483       ], [HAVE_ACM="no"],
1484       [AC_INCLUDES_DEFAULT
1485 #include <windows.h>])
1486 ])
1487
1488 dnl *** vdpau ***
1489 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
1490 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
1491   VDPAU_CFLAGS=
1492   VDPAU_LIBS=-lvdpau
1493   HAVE_VDPAU=no
1494
1495   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
1496   [
1497     if test "$HAVE_VDPAU" = "no"; then
1498       saved_CPPFLAGS="$CPPFLAGS"
1499       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1500       
1501       if test -z "$HAVE_VDPAU_H"; then
1502         dnl Didn't find VDPAU header straight away.
1503         dnl Try /usr/include/nvidia. Need to clear caching vars first
1504         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
1505         unset ac_cv_header_vdpau_vdpau_h
1506         unset ac_cv_header_vdpau_vdpau_x11_h
1507         VDPAU_CFLAGS="-I/usr/include/nvidia"
1508         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
1509         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
1510         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1511       fi
1512       
1513       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
1514   
1515       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
1516         dnl Found the headers - look for the lib
1517         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
1518         saved_LIBS="$LIBS"
1519         LIBS="$VDPAU_LIBS $saved_LIBS"
1520         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
1521         LIBS="$saved_LIBS"
1522       fi
1523     fi
1524   ])
1525
1526   if test "$HAVE_VDPAU" = "yes"; then
1527     AC_MSG_NOTICE([Found up to date VDPAU installation])
1528     AC_SUBST(VDPAU_CFLAGS)
1529     AC_SUBST(VDPAU_LIBS)
1530   fi
1531 ])
1532
1533 dnl *** schroedinger ***
1534 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
1535 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
1536   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.7)
1537 ])
1538
1539 dnl *** zbar ***
1540 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
1541 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
1542   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
1543 ])
1544
1545 dnl *** vp8 ***
1546 translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8)
1547 AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [
1548   VPX_LIBS=""
1549   AG_GST_CHECK_LIBHEADER(VPX, vpx,
1550                         vpx_codec_version, ,
1551                         vpx/vpx_codec.h, [
1552     HAVE_VP8_ENCODER=no
1553     HAVE_VP8_DECODER=no
1554
1555     OLD_LIBS="$LIBS"
1556     LIBS="$LIBS -lm -lpthread"
1557     AC_CHECK_LIB(vpx, vpx_codec_vp8_cx_algo, [
1558       HAVE_VP8=yes
1559       AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available])
1560       VPX_LIBS="-lvpx"
1561     ])
1562     AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [
1563       HAVE_VP8=yes
1564       AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available])
1565       VPX_LIBS="-lvpx"
1566     ])
1567     LIBS="$OLD_LIBS"
1568   ])
1569   AC_SUBST(VPX_LIBS)
1570 ])
1571
1572 dnl *** rtmp ***
1573 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
1574 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
1575   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
1576 ])
1577
1578 dnl *** GSettings ***
1579 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
1580 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
1581   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
1582   if test "x$HAVE_GSETTINGS" = "xyes"; then
1583     GLIB_GSETTINGS
1584   fi
1585 ])
1586
1587 else
1588
1589 dnl not building plugins with external dependencies,
1590 dnl but we still need to set the conditionals
1591
1592 AM_CONDITIONAL(USE_ASSRENDER, false)
1593 AM_CONDITIONAL(USE_AMRWB, false)
1594 AM_CONDITIONAL(USE_APEXSINK, false)
1595 AM_CONDITIONAL(USE_BZ2, false)
1596 AM_CONDITIONAL(USE_CDAUDIO, false)
1597 AM_CONDITIONAL(USE_CELT, false)
1598 AM_CONDITIONAL(USE_COG, false)
1599 AM_CONDITIONAL(USE_DC1394, false)
1600 AM_CONDITIONAL(USE_DIRECTFB, false)
1601 AM_CONDITIONAL(USE_DIRAC, false)
1602 AM_CONDITIONAL(USE_DTS, false)
1603 AM_CONDITIONAL(USE_DIVX, false)
1604 AM_CONDITIONAL(USE_EXIF, false)
1605 AM_CONDITIONAL(USE_RESINDVD, false)
1606 AM_CONDITIONAL(USE_FAAC, false)
1607 AM_CONDITIONAL(USE_FAAD, false)
1608 AM_CONDITIONAL(USE_FBDEV, false)
1609 AM_CONDITIONAL(USE_FLITE, false)
1610 AM_CONDITIONAL(USE_GSM, false)
1611 AM_CONDITIONAL(USE_JACK, false)
1612 AM_CONDITIONAL(USE_JP2K, false)
1613 AM_CONDITIONAL(USE_KATE, false)
1614 AM_CONDITIONAL(USE_TIGER, false)
1615 AM_CONDITIONAL(USE_LADSPA, false)
1616 AM_CONDITIONAL(USE_LV2, false)
1617 AM_CONDITIONAL(USE_LIBMMS, false)
1618 AM_CONDITIONAL(USE_MODPLUG, false)
1619 AM_CONDITIONAL(USE_MIMIC, false)
1620 AM_CONDITIONAL(USE_MPEG2ENC, false)
1621 AM_CONDITIONAL(USE_MPLEX, false)
1622 AM_CONDITIONAL(USE_MUSEPACK, false)
1623 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1624 AM_CONDITIONAL(USE_MYTHTV, false)
1625 AM_CONDITIONAL(USE_NAS, false)
1626 AM_CONDITIONAL(USE_NEON, false)
1627 AM_CONDITIONAL(USE_OFA, false)
1628 AM_CONDITIONAL(USE_RSVG, false)
1629 AM_CONDITIONAL(USE_TIMIDITY, false)
1630 AM_CONDITIONAL(USE_WILDMIDI, false)
1631 AM_CONDITIONAL(USE_SDL, false)
1632 AM_CONDITIONAL(USE_SNDFILE, false)
1633 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1634 AM_CONDITIONAL(USE_SPC, false)
1635 AM_CONDITIONAL(USE_GME, false)
1636 AM_CONDITIONAL(USE_GSETTINGS, false)
1637 AM_CONDITIONAL(USE_SWFDEC, false)
1638 AM_CONDITIONAL(USE_THEORADEC, false)
1639 AM_CONDITIONAL(USE_XVID, false)
1640 AM_CONDITIONAL(USE_DVB, false)
1641 AM_CONDITIONAL(USE_WININET, false)
1642 AM_CONDITIONAL(USE_ACM, false)
1643 AM_CONDITIONAL(USE_VDPAU, false)
1644 AM_CONDITIONAL(USE_SCHRO, false)
1645 AM_CONDITIONAL(USE_ZBAR, false)
1646 AM_CONDITIONAL(USE_VP8, false)
1647 AM_CONDITIONAL(USE_RTMP, false)
1648
1649 fi dnl of EXT plugins
1650
1651 dnl *** finalize CFLAGS, LDFLAGS, LIBS
1652
1653 dnl Overview:
1654 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
1655 dnl GST_*:              flags shared by built objects to link against GStreamer
1656 dnl GST_ALL_LDFLAGS:    linker flags shared by all
1657 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
1658 dnl GST_LT_LDFLAGS:     library versioning of our libraries
1659 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
1660
1661 dnl GST_OPTION_CFLAGS
1662 if test "x$USE_DEBUG" = xyes; then
1663    PROFILE_CFLAGS="-g"
1664 fi
1665 AC_SUBST(PROFILE_CFLAGS)
1666
1667 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
1668   dnl Define _only_ during CVS (not pre-releases or releases)
1669   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
1670 else
1671   DEPRECATED_CFLAGS=""
1672 fi
1673 AC_SUBST(DEPRECATED_CFLAGS)
1674
1675 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
1676 dnl at make time with e.g. make ERROR_CFLAGS=""
1677 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1678 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1679 AC_SUBST(GST_OPTION_CFLAGS)
1680 AC_SUBST(GST_OPTION_CXXFLAGS)
1681
1682 dnl FIXME: do we want to rename to GST_ALL_* ?
1683 dnl prefer internal headers to already installed ones
1684 dnl also add builddir include for enumtypes and marshal
1685 dnl add GST_OPTION_CFLAGS, but overridable
1686 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
1687 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
1688 AC_SUBST(GST_CFLAGS)
1689 AC_SUBST(GST_CXXFLAGS)
1690 AC_SUBST(GST_LIBS)
1691 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1692 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1693 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
1694 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
1695
1696 dnl LDFLAGS really should only contain flags, not libs - they get added before
1697 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1698 GST_ALL_LDFLAGS="-no-undefined"
1699 AC_SUBST(GST_ALL_LDFLAGS)
1700
1701 dnl this really should only contain flags, not libs - they get added before
1702 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1703 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
1704 AC_SUBST(GST_PLUGIN_LDFLAGS)
1705
1706 dnl *** output files ***
1707
1708 dnl po/Makefile.in
1709
1710 AC_CONFIG_FILES(
1711 Makefile
1712 common/Makefile
1713 common/m4/Makefile
1714 gst-plugins-bad.spec
1715 gst/Makefile
1716 gst/adpcmdec/Makefile
1717 gst/adpcmenc/Makefile
1718 gst/aiff/Makefile
1719 gst/asfmux/Makefile
1720 gst/audioparsers/Makefile
1721 gst/autoconvert/Makefile
1722 gst/bayer/Makefile
1723 gst/camerabin/Makefile
1724 gst/camerabin2/Makefile
1725 gst/cdxaparse/Makefile
1726 gst/colorspace/Makefile
1727 gst/coloreffects/Makefile
1728 gst/dataurisrc/Makefile
1729 gst/dccp/Makefile
1730 gst/debugutils/Makefile
1731 gst/dtmf/Makefile
1732 gst/dvbsuboverlay/Makefile
1733 gst/dvdspu/Makefile
1734 gst/festival/Makefile
1735 gst/freeze/Makefile
1736 gst/frei0r/Makefile
1737 gst/gaudieffects/Makefile
1738 gst/geometrictransform/Makefile
1739 gst/h264parse/Makefile
1740 gst/hdvparse/Makefile
1741 gst/id3tag/Makefile
1742 gst/interlace/Makefile
1743 gst/invtelecine/Makefile
1744 gst/ivfparse/Makefile
1745 gst/jp2kdecimator/Makefile
1746 gst/jpegformat/Makefile
1747 gst/legacyresample/Makefile
1748 gst/librfb/Makefile
1749 gst/liveadder/Makefile
1750 gst/mpegdemux/Makefile
1751 gst/mpegtsmux/Makefile
1752 gst/mpegtsmux/tsmux/Makefile
1753 gst/mpegpsmux/Makefile
1754 gst/mpeg4videoparse/Makefile
1755 gst/mpegvideoparse/Makefile
1756 gst/mve/Makefile
1757 gst/mxf/Makefile
1758 gst/nsf/Makefile
1759 gst/nuvdemux/Makefile
1760 gst/pcapparse/Makefile
1761 gst/pnm/Makefile
1762 gst/qtmux/Makefile
1763 gst/rawparse/Makefile
1764 gst/real/Makefile
1765 gst/rtpmux/Makefile
1766 gst/scaletempo/Makefile
1767 gst/sdp/Makefile
1768 gst/segmentclip/Makefile
1769 gst/selector/Makefile
1770 gst/siren/Makefile
1771 gst/speed/Makefile
1772 gst/subenc/Makefile
1773 gst/stereo/Makefile
1774 gst/tta/Makefile
1775 gst/valve/Makefile
1776 gst/videomaxrate/Makefile
1777 gst/videomeasure/Makefile
1778 gst/videosignal/Makefile
1779 gst/vmnc/Makefile
1780 gst-libs/Makefile
1781 gst-libs/gst/Makefile
1782 gst-libs/gst/interfaces/Makefile
1783 gst-libs/gst/signalprocessor/Makefile
1784 gst-libs/gst/video/Makefile
1785 sys/Makefile
1786 sys/dshowdecwrapper/Makefile
1787 sys/acmenc/Makefile
1788 sys/acmmp3dec/Makefile
1789 sys/applemedia/Makefile
1790 sys/directdraw/Makefile
1791 sys/directsound/Makefile
1792 sys/dshowsrcwrapper/Makefile
1793 sys/dshowvideosink/Makefile
1794 sys/dvb/Makefile
1795 sys/fbdev/Makefile
1796 sys/osxvideo/Makefile
1797 sys/qtwrapper/Makefile
1798 sys/shm/Makefile
1799 sys/vcd/Makefile
1800 sys/vdpau/Makefile
1801 sys/vdpau/gstvdp/Makefile
1802 sys/vdpau/basevideodecoder/Makefile
1803 sys/wasapi/Makefile
1804 sys/wininet/Makefile
1805 sys/winks/Makefile
1806 sys/winscreencap/Makefile
1807 tests/Makefile
1808 tests/check/Makefile
1809 tests/files/Makefile
1810 tests/examples/Makefile
1811 tests/examples/camerabin/Makefile
1812 tests/examples/camerabin2/Makefile
1813 tests/examples/directfb/Makefile
1814 tests/examples/mxf/Makefile
1815 tests/examples/scaletempo/Makefile
1816 tests/examples/switch/Makefile
1817 tests/examples/jack/Makefile
1818 tests/icles/Makefile
1819 ext/amrwbenc/Makefile
1820 ext/assrender/Makefile
1821 ext/apexsink/Makefile
1822 ext/bz2/Makefile
1823 ext/cdaudio/Makefile
1824 ext/celt/Makefile
1825 ext/cog/Makefile
1826 ext/dc1394/Makefile
1827 ext/dirac/Makefile
1828 ext/directfb/Makefile
1829 ext/divx/Makefile
1830 ext/dts/Makefile
1831 ext/faac/Makefile
1832 ext/faad/Makefile
1833 ext/flite/Makefile
1834 ext/gsm/Makefile
1835 ext/jack/Makefile
1836 ext/jp2k/Makefile
1837 ext/kate/Makefile
1838 ext/ladspa/Makefile
1839 ext/lv2/Makefile
1840 ext/libmms/Makefile
1841 ext/Makefile
1842 ext/modplug/Makefile
1843 ext/mpeg2enc/Makefile
1844 ext/mimic/Makefile
1845 ext/mplex/Makefile
1846 ext/musepack/Makefile
1847 ext/musicbrainz/Makefile
1848 ext/mythtv/Makefile
1849 ext/nas/Makefile
1850 ext/neon/Makefile
1851 ext/ofa/Makefile
1852 ext/opencv/Makefile
1853 ext/rsvg/Makefile
1854 ext/resindvd/Makefile
1855 ext/rtmp/Makefile
1856 ext/schroedinger/Makefile
1857 ext/sdl/Makefile
1858 ext/sndfile/Makefile
1859 ext/soundtouch/Makefile
1860 ext/gme/Makefile
1861 ext/gsettings/Makefile
1862 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
1863 ext/spc/Makefile
1864 ext/swfdec/Makefile
1865 ext/theora/Makefile
1866 ext/timidity/Makefile
1867 ext/vp8/Makefile
1868 ext/xvid/Makefile
1869 ext/zbar/Makefile
1870 po/Makefile.in
1871 docs/Makefile
1872 docs/plugins/Makefile
1873 docs/version.entities
1874 pkgconfig/Makefile
1875 pkgconfig/gstreamer-plugins-bad.pc
1876 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
1877 tools/Makefile
1878 m4/Makefile
1879 win32/common/config.h
1880 )
1881 AC_OUTPUT
1882
1883 AG_GST_OUTPUT_PLUGINS
1884 ORC_OUTPUT
1885