autocolorspace: Add unit test
[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 AG_GST_CHECK_PLUGIN(y4m)
352
353 dnl *** plug-ins to exclude ***
354
355 dnl real plugin only works on i386 and x86_64 for the time being.
356 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
357   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
358   AG_GST_DISABLE_PLUGIN(real)
359 fi
360
361 dnl disable experimental plug-ins
362 if test "x$BUILD_EXPERIMENTAL" != "xyes"; then
363   AG_GST_DISABLE_PLUGIN(camerabin2)
364 fi
365
366 # This will always succeed because we depend on GLib >= 2.16
367 PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.16, HAVE_GIO=yes, HAVE_GIO=no)
368 AC_SUBST(GIO_CFLAGS)
369 AC_SUBST(GIO_LIBS)
370
371 dnl disable gst plugins we might not be able to build on this
372 dnl platform: librfb (ugly but minimally invasive)
373 dnl FIXME: maybe move to sys, or make work with winsock2
374 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
375 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
376
377 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
378   WIN32_LIBS="-lws2_32"
379   AC_SUBST(WIN32_LIBS)
380 fi
381
382 dnl needed for festival
383 AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes")
384
385 if test "x$HAVE_WINSOCK2_H" = "xyes"; then
386   DCCP_LIBS="$DCCP_LIBS -lws2_32"
387   XDG_LIBS="$XDG_LIBS -lws2_32"
388   AC_SUBST(DCCP_LIBS)
389   AC_SUBST(XDG_LIBS)
390 fi
391
392 if test "x$HAVE_PTHREAD_H" = "xyes"; then
393   DCCP_LIBS="$DCCP_LIBS -lpthread"
394   AC_SUBST(DCCP_LIBS)
395 fi
396
397 if test "x$HAVE_PTHREAD_H" != "xyes"; then
398   AG_GST_DISABLE_PLUGIN(dccp)
399 fi
400
401 dnl *** sys plug-ins ***
402
403 dnl DirectSound
404 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true)
405 AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [
406   HAVE_DIRECTSOUND="no"
407   save_CFLAGS="$CFLAGS"
408   save_LDFLAGS="$LDFLAGS"
409   save_LIBS="$LIBS"
410   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
411   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
412   LIBS="$LIBS -ldsound -ldxerr9 -luser32"
413   AC_MSG_CHECKING(for DirectSound LDFLAGS)
414   AC_LINK_IFELSE([
415 #include <windows.h>
416 #include <dxerr9.h>
417 #include <dsound.h>
418
419 int main ()
420 {
421   DXGetErrorString9 (0);
422   DirectSoundCreate(NULL, NULL, NULL);
423
424   return 0;
425 }
426 ],
427     [HAVE_DIRECTSOUND="yes"],
428     [HAVE_DIRECTSOUND="no"])
429   AC_MSG_RESULT($HAVE_DIRECTSOUND)
430   CFLAGS=$save_CFLAGS
431   LDFLAGS=$save_LDFLAGS
432   LIBS=$save_LIBS
433
434   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
435     dnl this is much more than we want
436     DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
437     AC_SUBST(DIRECTX_CFLAGS)
438     AC_SUBST(DIRECTX_LDFLAGS)
439     AC_SUBST(DIRECTSOUND_LIBS)
440   fi
441   AC_SUBST(HAVE_DIRECTSOUND)
442 ])
443
444 dnl DirectDraw
445 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true)
446 AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [
447   HAVE_DIRECTDRAW="no"
448   save_CFLAGS="$CFLAGS"
449   save_LDFLAGS="$LDFLAGS"
450   save_LIBS="$LIBS"
451   CFLAGS="$CFLAGS $DIRECTX_CFLAGS"
452   LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS"
453   LIBS="$LIBS -lddraw -lgdi32"
454   AC_MSG_CHECKING(for DirectDraw LDFLAGS)
455   AC_LINK_IFELSE([
456 #include <windows.h>
457 #include <ddraw.h>
458
459 int main ()
460 {
461   GetStockObject(0);
462   DirectDrawCreate(NULL, NULL, NULL);
463
464   return 0;
465 }
466 ],
467     [HAVE_DIRECTDRAW="yes"],
468     [HAVE_DIRECTDRAW="no"])
469   AC_MSG_RESULT($HAVE_DIRECTDRAW)
470   CFLAGS=$save_CFLAGS
471   LDFLAGS=$save_LDFLAGS
472   LIBS=$save_LIBS
473
474   if test "x$HAVE_DIRECTDRAW" = "xyes";  then
475     dnl this is much more than we want
476     DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32"
477     AC_SUBST(DIRECTX_CFLAGS)
478     AC_SUBST(DIRECTX_LDFLAGS)
479     AC_SUBST(DIRECTDRAW_LIBS)
480   fi
481   AC_SUBST(HAVE_DIRECTDRAW)
482 ])
483
484 dnl *** AppleMedia (OS X and iOS) ***
485 translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true)
486 HAVE_APPLE_MEDIA="no"
487 dnl SystemConfiguration.h is common to OS X and iOS, so we check for that
488 AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [
489   AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no")
490 ])
491 dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms
492 case "$host" in
493   *-*darwin*)
494     ;;
495   *)
496     HAVE_APPLE_MEDIA="no"
497     ;;
498 esac
499 HAVE_IOS="no"
500 if test "x$HAVE_APPLE_MEDIA" = "xyes"; then
501   AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-])
502 fi
503
504 AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes")
505 if test "x$HAVE_IOS" = "xyes"; then
506   AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS])
507 fi
508
509 dnl *** OS X videosrc ***
510 translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true)
511 HAVE_OSX_VIDEO="no"
512 AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [
513   AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no",
514       [#include <Quicktime/Quicktime.h>])
515 ])
516 dnl in case header Quicktime/Quicktime.h is found on other platforms
517 case "$host" in
518   *-*darwin*)
519     ;;
520   *)
521     HAVE_OSX_VIDEO="no"
522     ;;
523 esac
524
525 dnl check for QuickTime
526 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
527 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
528   AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no",
529       [#include <Quicktime/Quicktime.h>])
530 ])
531
532 dnl check for shm_open (for shm plugin)
533 translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true)
534 AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [
535   AC_CHECK_LIB(rt, shm_open, HAVE_SHM=yes, HAVE_SHM=no)
536 ])
537
538 dnl check for Video CD
539 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
540 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
541   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
542 ])
543
544 dnl *** ext plug-ins ***
545 dnl keep this list sorted alphabetically !
546
547 if test "x$BUILD_EXTERNAL" = "xyes"; then
548
549 dnl *** assrender ***
550 translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true)
551 AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [
552   PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [
553     HAVE_ASSRENDER="yes" ], [
554     HAVE_ASSRENDER="no"
555     AC_MSG_RESULT(no)
556   ])
557 ])
558 AC_SUBST(ASSRENDER_CFLAGS)
559 AC_SUBST(ASSRENDER_LIBS)
560
561 dnl *** amrwb ***
562 translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true)
563 AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwbenc, [
564   AG_GST_CHECK_LIBHEADER(AMRWB, amrwb,
565                         GP3E_IF_encode, ,
566                         amrwb/enc.h,
567                         AMRWB_LIBS="-lamrwb"
568                         AC_SUBST(AMRWB_LIBS))
569 ])
570
571 dnl *** apexsink ***
572 translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true)
573 AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [
574   PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5  libcrypto ], [
575     HAVE_APEXSINK="yes"
576     saved_LIBS="$LIBS"
577     LIBS=""
578     AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ])
579     AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ])
580     APEXSINK_LIBS="$APEXSINK_LIBS $LIBS"
581     LIBS="$saved_LIBS"
582     AC_SUBST(APEXSINK_CFLAGS)
583     AC_SUBST(APEXSINK_LIBS)
584   ], [
585     APEXSINK="no"
586   ])
587 ])
588
589 dnl *** BZ2 ***
590 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
591 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
592   AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2")
593   AC_SUBST(BZ2_LIBS)
594 ])
595
596 #dnl *** cairo ***
597 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
598 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
599 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
600 #    HAVE_CAIRO=no
601 #    AC_MSG_RESULT(no)
602 #  ])
603 #  AC_SUBST(CAIRO_CFLAGS)
604 #  AC_SUBST(CAIRO_LIBS)
605 #])
606
607 dnl *** cdaudio ***
608 translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true)
609 AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [
610   AG_GST_CHECK_CONFIGPROG(CDAUDIO, libcdaudio-config)
611   AC_SUBST(CDAUDIO_CFLAGS)
612   AC_SUBST(CDAUDIO_LIBS)
613 ])
614
615 dnl *** celt ***
616 translit(dnm, m, l) AM_CONDITIONAL(USE_CELT, true)
617 AG_GST_CHECK_FEATURE(CELT, [celt], celt, [
618   PKG_CHECK_MODULES(CELT, celt >= 0.5.0, [
619           AC_DEFINE([HAVE_CELT], 1, [Define if libcelt 0.5 is installed])
620           HAVE_CELT="yes"
621   ], [
622           HAVE_CELT="no"
623   ])
624
625   PKG_CHECK_MODULES(CELT_0_7, celt >= 0.7.0, [
626           AC_DEFINE([HAVE_CELT_0_7], 1, [Define if libcelt 0.7 is installed])
627   ], [
628           dnl to prevent an error
629           true
630   ])
631
632   PKG_CHECK_MODULES(CELT_0_8, celt >= 0.8.0, [
633           AC_DEFINE([HAVE_CELT_0_8], 1, [Define if libcelt 0.8 is installed])
634   ], [
635           dnl to prevent an error
636           true
637   ])
638   AC_SUBST(CELT_CFLAGS)
639   AC_SUBST(CELT_LIBS)
640 ])
641
642 dnl *** Cog ***
643 translit(dnm, m, l) AM_CONDITIONAL(USE_COG, true)
644 AG_GST_CHECK_FEATURE(COG, [Cog plugin], cog, [
645   PKG_CHECK_MODULES(COG, libpng >= 1.2, HAVE_COG="yes", [
646     HAVE_COG="no"
647     AC_MSG_RESULT(no)
648   ])
649   AC_SUBST(COG_CFLAGS)
650   AC_SUBST(COG_LIBS)
651 ])
652
653 dnl *** dc1394  ***
654 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
655 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
656    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
657         if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then
658                 HAVE_DC1394="yes"
659         else
660                 HAVE_DC1394="no"
661                 AC_MSG_RESULT(no)
662         fi
663    ], [
664         HAVE_DC1394="no"
665         AC_MSG_RESULT(no)
666    ])
667    AC_SUBST(LIBDC1394_CFLAGS)
668    AC_SUBST(LIBDC1394_LIBS)
669 ])
670
671
672 dnl **** DirectFB ****
673 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
674 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
675   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
676     HAVE_DIRECTFB="no"
677     AC_MSG_RESULT(no)
678   ])
679 ])
680
681 dnl **** Dirac ****
682 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true)
683 AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [
684   PKG_CHECK_MODULES(DIRAC, dirac >= 0.10, HAVE_DIRAC="yes", [
685     HAVE_DIRAC="no"
686     AC_MSG_RESULT(no)
687   ])
688 ])
689
690 dnl *** DTS ***
691 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
692 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
693   HAVE_DTS="yes"
694   AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, -lm, dca.h,
695     DTS_LIBS="-ldca -lm", HAVE_DTS="no")
696   if test $HAVE_DTS = "no"; then
697     AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, -lm, dts.h,
698       [ DTS_LIBS="-ldts_pic -lm"
699         AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used])
700       ])
701   fi
702   AC_SUBST(DTS_LIBS)
703 ])
704
705 dnl *** DIVX ***
706 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
707 AG_GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
708   HAVE_DIVX=yes
709   AC_CHECK_HEADER(encore2.h, , [
710     AC_MSG_WARN([Divx4linux encore headers not found])
711     HAVE_DIVX=no
712   ])
713   if [ test x$HAVE_DIVX = xyes ]; then
714     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
715     AC_TRY_COMPILE([
716 #include <encore2.h>
717 #if ENCORE_VERSION != 20021024
718 #error Wrong version of divx encore libraries
719 #endif
720     ], [
721 return 0;
722     ], [
723       HAVE_DIVX=yes
724       AC_MSG_RESULT(yes)
725     ], [
726       HAVE_DIVX=no
727       AC_MSG_RESULT(no)
728       AC_MSG_WARN([Wrong version of divx4linux installed])
729     ])
730   fi
731   if [ test x$HAVE_DIVX = xyes ]; then
732     AC_CHECK_HEADER(decore.h, , [
733       AC_MSG_WARN([Divx4linux decoder headers not found])
734       HAVE_DIVX=no
735     ])
736   fi
737   if [ test x$HAVE_DIVX = xyes ]; then
738     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
739     AC_TRY_COMPILE([
740 #include <decore.h>
741 #if DECORE_VERSION != 20021112
742 #error Wrong version of divx decore libraries
743 #endif
744     ], [
745 return 0;
746     ], [
747       HAVE_DIVX=yes
748       AC_MSG_RESULT(yes)
749     ], [
750       HAVE_DIVX=no
751       AC_MSG_RESULT(no)
752       AC_MSG_WARN([Wrong version of divx4linux installed])
753     ])
754   fi
755   LIBS="-lm"
756   if test x$HAVE_DIVX = xyes; then
757     AC_CHECK_LIB(divxencore, encore, , [
758       AC_MSG_WARN([Divx4linux encore libs not found])
759       HAVE_DIVX=no
760     ])
761   fi
762   if test x$HAVE_DIVX = xyes; then
763     AC_CHECK_LIB(divxdecore, decore, , [
764       AC_MSG_WARN([Divx4linux decore libs not found])
765       HAVE_DIVX=no
766   ])
767   fi
768   if test x$HAVE_DIVX = xyes; then
769     DIVXENC_LIBS="-ldivxencore -lm"
770     DIVXDEC_LIBS="-ldivxdecore -lm"
771     AC_SUBST(DIVXENC_LIBS)
772     AC_SUBST(DIVXDEC_LIBS)
773   fi
774 ])
775
776 dnl *** resindvd ***
777 translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true)
778 AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [
779   PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [
780     HAVE_RESINDVD="no"
781     AC_MSG_RESULT(no)
782   ])
783 ])
784
785 dnl **** exif (used on jifmux tests) ****
786 translit(dnm, m, l) AM_CONDITIONAL(USE_EXIF, true)
787 AG_GST_CHECK_FEATURE(EXIF, [exif], exif, [
788   PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", [
789     HAVE_EXIF="no"
790     AC_MSG_RESULT(no)
791   ])
792 ])
793
794 dnl **** Free AAC Encoder (FAAC) ****
795 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
796 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
797   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h,
798     FAAC_LIBS="-lfaac -lm")
799   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
800   AC_SUBST(FAAC_LIBS)
801 ])
802
803 dnl **** Free AAC Decoder (FAAD) ****
804 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
805 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
806   HAVE_FAAD="yes"
807   faad_hdr=""
808   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h,
809     FAAD_LIBS="-lfaad -lm", HAVE_FAAD="no")
810   if test $HAVE_FAAD = "no"; then
811     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, -lm, neaacdec.h,
812       [ FAAD_LIBS="-lfaad -lm"
813         AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
814         faad_hdr="neaacdec.h"
815       ], [
816         HAVE_FAAD="no"
817       ],)
818   else
819     faad_hdr="faad.h"
820   fi
821   if test $HAVE_FAAD = "yes"; then
822     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
823     AC_TRY_COMPILE([#include <faad.h>], [
824         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
825         #error Not faad2
826         #else
827         /* Release candidate of 2.0 is not good enough for us. This field
828          * was added only in 2.0 final and does not exist in 2.0-RC3 */
829         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
830         #endif
831     ], [
832       HAVE_FAAD="yes"
833       AC_MSG_RESULT(yes)
834
835       AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr])
836       for minor in 10 9 8 7 6 5 0; do
837         if test x$faad2_minor_version = "x"; then
838           AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [
839               #include <$faad_hdr>
840               GST_CHECK_FAAD_VERSION FAAD2_VERSION
841             ], [
842               faad2_minor_version=$minor
843             ])
844         fi
845       done
846       if test x$faad2_minor_version = "x"; then
847         AC_MSG_RESULT([no idea])
848       else
849         AC_MSG_RESULT([2.$faad2_minor_version])
850         AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x])
851       fi
852     ], [
853       HAVE_FAAD="no"
854       AC_MSG_RESULT(no)
855     ])
856   fi
857   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
858   AC_SUBST(FAAD_LIBS)
859   AC_SUBST(FAAD_IS_NEAAC)
860 ])
861
862 dnl *** fbdev ***
863 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
864 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
865   if test "x$HAVE_FBDEV" != "xyes"; then
866     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
867   fi
868 ])
869
870 dnl *** flite ***
871 translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true)
872 AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [
873   AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, -lm, flite/flite.h,
874     FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex -lm")
875
876   AC_SUBST(FLITE_CFLAGS)
877   AC_SUBST(FLITE_LIBS)
878 ])
879
880 dnl *** gsm ***
881 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
882 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
883   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
884   if test $HAVE_GSM != "yes"; then
885     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
886     if test $HAVE_GSM = "yes"; then
887       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
888     fi
889   fi
890   AC_SUBST(GSM_LIBS)
891 ])
892
893 dnl *** Jack ***
894 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
895 AG_GST_CHECK_FEATURE(JACK, Jack, jack, [
896   PKG_CHECK_MODULES(JACK, jack >= 0.99.10, HAVE_JACK="yes", HAVE_JACK="no")
897   AC_SUBST(JACK_CFLAGS)
898   AC_SUBST(JACK_LIBS)
899 ])
900
901 dnl *** jp2k ***
902 translit(dnm, m, l) AM_CONDITIONAL(USE_JP2K, true)
903 AG_GST_CHECK_FEATURE(JP2K, [jp2k], jp2kdec jp2kenc, [
904   AG_GST_CHECK_LIBHEADER(JP2K, jasper, jas_stream_fopen, , jasper/jasper.h,
905     JP2K_LIBS="-ljasper")
906   AC_SUBST(JP2K_LIBS)
907 ])
908
909 dnl *** kate ***
910 translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true)
911 AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [
912   PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [
913     HAVE_KATE="no"
914     AC_MSG_RESULT(no)
915   ])
916   AC_SUBST(KATE_CFLAGS)
917   AC_SUBST(KATE_LIBS)
918   PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2,
919     [
920       HAVE_TIGER="yes"
921       AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available])
922     ],
923     [
924       HAVE_TIGER="no"
925       AC_MSG_RESULT(no)
926     ]
927   )
928   AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes")
929   AC_SUBST(TIGER_CFLAGS)
930   AC_SUBST(TIGER_LIBS)
931 ],,,[AM_CONDITIONAL(USE_TIGER, false)])
932
933 dnl *** ladspa ***
934 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
935 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
936   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
937   
938   PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no)
939   if test $HAVE_LRDF = "yes"; then
940     AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf])
941   fi
942   AC_SUBST(LRDF_LIBS)
943   AC_SUBST(LRDF_CFLAGS)
944 ])
945
946 dnl *** LV2 ***
947 translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true)
948 AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [
949   PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no")
950   AC_SUBST(SLV2_CFLAGS)
951   AC_SUBST(SLV2_LIBS)
952 ])
953
954 dnl *** libmms ***
955 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
956 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
957   dnl check with pkg-config first
958   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [
959     HAVE_LIBMMS="no"
960     AC_MSG_RESULT(no)
961   ])
962 ])
963 AC_SUBST(LIBMMS_LIBS)
964
965 dnl *** modplug ***
966 translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true)
967 AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [
968   if test "x$HAVE_CXX" != "xyes"; then
969     AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler])
970     HAVE_MODPLUG="no"
971   else
972     PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no")
973   fi
974   AC_SUBST(MODPLUG_CFLAGS)
975   AC_SUBST(MODPLUG_LIBS)
976 ])
977
978 dnl *** mimic ***
979 translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true)
980 AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [
981   MIMDEC_REQUIRED=1.0
982   PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMDEC_REQUIRED,
983       HAVE_MIMIC=yes, HAVE_MIMIC=no)
984   AC_SUBST(MIMIC_CFLAGS)
985   AC_SUBST(MIMIC_LIBS)
986 ])
987
988 dnl *** mjpegtools version info ***
989 dnl some may prefer older version (given quirks above)
990 dnl hm, no version info seems available within mjpegtools headers
991 dnl and API really moves along
992 echo
993 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
994   mjpegtools_api=10601
995 ], [
996   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
997     mjpegtools_api=10800
998   ], [
999     PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0, [
1000       dnl logging API changed in release candidates
1001       OLD_CFLAGS="$CFLAGS"
1002       OLD_LIBS="$LIBS"
1003       CFLAGS="$MJPEG_CFLAGS"
1004       LIBS="$LIBS $MJPEG_LIBS -lmjpegutils -lm -lpthread"
1005       AC_CHECK_FUNC(mjpeg_loglev_t, [
1006         mjpegtools_api=10903
1007         ], [
1008         mjpegtools_api=10900
1009         ])
1010       CFLAGS="$OLD_CFLAGS"
1011       LIBS="$OLD_LIBS"
1012     ], [
1013       mjpegtools_api=0
1014     ])
1015   ])
1016 ])
1017 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
1018   [mjpegtools API evolution])
1019
1020 dnl *** mpeg2enc ***
1021 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1022 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1023   HAVE_MPEG2ENC="no"
1024   dnl we require a c++ compiler for this one
1025   if [ test x$HAVE_CXX = xyes ]; then
1026     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1027     dnl since many distros include mjpegtools specifically without mplex
1028     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1029     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1030       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
1031       touch config.h
1032       dnl switch over to c++ to test things
1033       AC_LANG_CPLUSPLUS
1034       OLD_CPPFLAGS="$CPPFLAGS"
1035       dnl HACK as above
1036       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
1037       CPPFLAGS="$CPPFLAGS_GOOD -I."
1038       dnl check headers
1039       mpeg2enc_headers_ok=no
1040       AC_CHECK_HEADER([mpeg2encoder.hh], [
1041         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread"
1042         OLD_LIBS="$LIBS"
1043         LIBS="$LIBS $MPEG2ENC_LIBS"
1044         AC_MSG_CHECKING([for valid mpeg2enc objects])
1045         AC_TRY_RUN([
1046           #include <mpeg2encoder.hh>
1047           #include <mpeg2encoptions.hh>
1048
1049           int
1050           main (int   argc,
1051                 char *argv[])
1052           {
1053             MPEG2EncOptions *options = new MPEG2EncOptions ();
1054             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
1055             return 0;
1056           }
1057         ],[
1058           AC_MSG_RESULT(yes)
1059           dnl so far so good, let's check more things:
1060           dnl mjpegtools-1.8.0 does not install the required
1061           dnl mpeg2syntaxcodes.h header by default, and a new release
1062           dnl is not in sight, so check for this oversight in case
1063           dnl distros or folks have fixed this themselves
1064           if test "$mjpegtools_api" -ge "10800"; then
1065             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
1066                 mpeg2enc_headers_ok=yes
1067               ], [
1068                 mpeg2enc_headers_ok=no
1069               ])
1070           else
1071             mpeg2enc_headers_ok=yes
1072           fi
1073           if test "x$mpeg2enc_headers_ok" = "xyes"; then
1074             HAVE_MPEG2ENC="yes"
1075           fi
1076           CPP_FLAGS="$CPPFLAGS_GOOD"
1077           AC_SUBST(MPEG2ENC_CFLAGS)
1078           AC_SUBST(MPEG2ENC_LIBS)
1079         ], [
1080           AC_MSG_RESULT(no)
1081         ])
1082         LIBS="$OLD_LIBS"
1083       ])
1084
1085       CPPFLAGS="$OLD_CPPFLAGS"
1086       AC_LANG_C
1087     ], [
1088       HAVE_MPEG2ENC="no"
1089     ])
1090   fi
1091 ])
1092
1093 dnl *** mplex ***
1094 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1095 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1096   HAVE_MPLEX="no"
1097   dnl we require a c++ compiler for this one
1098   if [ test x$HAVE_CXX = xyes ]; then
1099     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1100     dnl since many distros include mjpegtools specifically without mplex
1101     dnl and mpeg2enc, we check for mplex on its own, too.
1102     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
1103     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
1104       dnl switch over to c++ to test things
1105       AC_LANG_CPLUSPLUS
1106       OLD_CPPFLAGS="$CPPFLAGS"
1107       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
1108       AC_CHECK_HEADER(interact.hpp, [
1109         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
1110         OLD_LIBS="$LIBS"
1111         LIBS="$LIBS $MPLEX_LIBS"
1112         OLD_LDFLAGS="$LDFLAGS"
1113         LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS"
1114         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
1115         dnl don't want this here
1116         AC_MSG_CHECKING([for valid mplex objects])
1117         AC_TRY_RUN([
1118
1119 #include <interact.hpp>
1120 #include <outputstrm.hpp>
1121 #include <multiplexor.hpp>
1122 int
1123 main (int   argc,
1124       char *argv[])
1125 {
1126   class TestOutputStream : public OutputStream {
1127   public:
1128     TestOutputStream () : OutputStream () { }
1129     void Write (uint8_t *a, unsigned int b) { }
1130     void NextSegment () { }
1131     uint64_t SegmentSize () { }
1132     void Close () { }
1133     int Open () { }
1134 };
1135   MultiplexJob *job = new MultiplexJob ();
1136   vector<IBitStream *> inputs;
1137   job->SetupInputStreams (inputs);
1138   TestOutputStream *out = new TestOutputStream ();
1139   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
1140   return 0;
1141 }
1142         ],[
1143           HAVE_MPLEX="yes"
1144           AC_SUBST(MPLEX_CFLAGS)
1145           AC_SUBST(MPLEX_LIBS)
1146           AC_SUBST(MPLEX_LDFLAGS)
1147           AC_MSG_RESULT(yes)
1148         ], AC_MSG_RESULT(no))
1149         LIBS="$OLD_LIBS"
1150         LDFLAGS="$OLD_LDFLAGS"
1151       ])
1152       CPPFLAGS="$OLD_CPPFLAGS"
1153       AC_LANG_C
1154     ], HAVE_MPLEX="no")
1155   fi
1156 ])
1157
1158 dnl *** musepack ***
1159 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
1160 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
1161   AC_CHECK_HEADER([mpc/mpcdec.h], [
1162     HAVE_MUSEPACK="yes"
1163     MUSEPACK_LIBS="-lmpcdec"
1164     AC_SUBST(MUSEPACK_LIBS)
1165     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
1166       HAVE_MUSEPACK="yes"
1167       MUSEPACK_LIBS="-lmpcdec"
1168       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
1169       AC_SUBST(MUSEPACK_LIBS)
1170     ], [HAVE_MUSEPACK="no"])])
1171 ])
1172
1173 dnl *** musicbrainz ***
1174 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
1175 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
1176   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
1177   AC_SUBST(MUSICBRAINZ_CFLAGS)
1178   AC_SUBST(MUSICBRAINZ_LIBS)
1179 ])
1180
1181 dnl *** MythTV ***
1182 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
1183 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
1184   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
1185     HAVE_MYTHTV="no"
1186     AC_MSG_RESULT(no)
1187   ])
1188   AC_SUBST(GMYTH_CFLAGS)
1189   AC_SUBST(GMYTH_LIBS)
1190 ])
1191
1192 dnl *** nas ***
1193 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1194 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1195   HAVE_NAS="no"
1196   AG_GST_CHECK_X
1197   if test "x$HAVE_X" = "xyes"; then
1198     save_cppflags=$CFLAGS
1199     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1200     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1201       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1202     CPPFLAGS="$save_cppflags"
1203   fi
1204   AC_SUBST(NAS_CFLAGS)
1205   AC_SUBST(NAS_LIBS)
1206 ])
1207
1208 dnl *** neon ***
1209 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
1210 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
1211   PKG_CHECK_MODULES(NEON, neon >= 0.27.0  neon <= 0.29.99, HAVE_NEON="yes", [
1212     HAVE_NEON="no"
1213     AC_MSG_RESULT(no)
1214   ])
1215   AC_SUBST(NEON_CFLAGS)
1216   AC_SUBST(NEON_LIBS)
1217 ])
1218
1219 dnl *** ofa ***
1220 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
1221 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
1222   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
1223     HAVE_OFA="no"
1224     AC_MSG_RESULT(no)
1225   ])
1226   AC_SUBST(OFA_CFLAGS)
1227   AC_SUBST(OFA_LIBS)
1228 ])
1229
1230 dnl *** opencv ***
1231 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true)
1232 AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [
1233   dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY
1234   dnl and don't want the build to break when a new opencv version comes out.
1235   dnl Need to adjust this upwards once we know that our code compiles fine with
1236   dnl a new version and the no-backward-compatibility define. (There doesn't
1237   dnl seem to be a switch to suppress the warnings the cvcompat.h header
1238   dnl causes.)
1239   PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.1.0 , [
1240     AC_PROG_CXX
1241     AC_LANG_CPLUSPLUS
1242     OLD_CPPFLAGS=$CPPFLAGS
1243     CPPFLAGS=$OPENCV_CFLAGS
1244     AC_CHECK_HEADER(highgui.h, HAVE_HIGHGUI="yes", HAVE_HIGHGUI="no")
1245     AC_CHECK_HEADER(cvaux.h, HAVE_CVAUX="yes", HAVE_CVAUX="no")
1246     CPPFLAGS=$OLD_CPPFLAGS
1247     AC_LANG_C
1248     if test "x$HAVE_HIGHGUI" = "xno"; then
1249       AC_MSG_RESULT(highgui.h could not be found.)
1250       HAVE_OPENCV="no"
1251     elif test "x$HAVE_CVAUX" = "xno"; then
1252       AC_MSG_RESULT(cvaux.h could not be found.)
1253       HAVE_OPENCV="no"
1254     else
1255       HAVE_OPENCV="yes"
1256     fi
1257   ], [
1258     HAVE_OPENCV="no"
1259     AC_MSG_RESULT(no)
1260   ])
1261   AC_SUBST(OPENCV_CFLAGS)
1262   AC_SUBST(OPENCV_LIBS)
1263 ])
1264
1265 dnl *** rsvg ***
1266 translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true)
1267 AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [
1268   PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.14 cairo, HAVE_RSVG="yes", [
1269     HAVE_RSVG="no"
1270     AC_MSG_RESULT(no)
1271   ])
1272   AC_SUBST(RSVG_CFLAGS)
1273   AC_SUBST(RSVG_LIBS)
1274 ])
1275
1276 dnl *** timidity ***
1277 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
1278 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
1279   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
1280     HAVE_TIMIDITY="yes",
1281         AC_MSG_CHECKING([for timidity.cfg])
1282         timidity_cfg=""
1283         if test -r /etc/timidity.cfg; then
1284           timidity_cfg=/etc/timidity.cfg
1285         elif test -r /etc/timidity/timidity.cfg; then
1286           timidity_cfg=/etc/timidity/timidity.cfg
1287         elif test -r /usr/share/timidity/timidity.cfg; then
1288           timidity_cfg=/usr/share/timidity/timidity.cfg
1289         elif test -r /usr/local/share/timidity/timidity.cfg; then
1290           timidity_cfg=/usr/local/share/timidity/timidity.cfg
1291         fi
1292         if test "x$timidity_cfg" != "x"; then
1293           AC_MSG_RESULT($timidity_cfg)
1294       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
1295         else
1296           AC_MSG_RESULT([not found])
1297         fi
1298   ], [
1299     HAVE_TIMIDITY="no"
1300     AC_MSG_RESULT(no)
1301   ])
1302   AC_SUBST(TIMIDITY_CFLAGS)
1303   AC_SUBST(TIMIDITY_LIBS)
1304 ])
1305
1306 dnl *** wildmidi ***
1307 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
1308 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
1309   AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi,
1310                          WildMidi_Init, ,
1311                          wildmidi_lib.h,
1312                          WILDMIDI_LIBS="-lWildMidi")
1313   AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library]))
1314
1315   if test "x$HAVE_WILDMIDI" = "xyes"; then
1316          WILDMIDI_CFLAGS=
1317          WILDMIDI_LIBS=-lWildMidi
1318          AC_MSG_NOTICE(compiling gstWildMidi)
1319   else
1320          WILDMIDI_CFLAGS=
1321          WILDMIDI_LIBS=
1322          AC_MSG_WARN(no WildMidi library found (libWildMidi))
1323   fi
1324   AC_SUBST(WILDMIDI_CFLAGS)
1325   AC_SUBST(WILDMIDI_LIBS)
1326 ])
1327
1328 dnl *** SDL ***
1329 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1330 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
1331     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1332 ])
1333
1334 dnl *** sndfile ***
1335 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1336 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1337   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1338   AC_SUBST(SNDFILE_CFLAGS)
1339   AC_SUBST(SNDFILE_LIBS)
1340 ])
1341
1342 dnl *** soundtouch ***
1343 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
1344 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
1345   dnl We only need -lBPM on soundtouch < 1.4
1346   dnl We check for libSoundTouch since Debian used it before upstream
1347   dnl added a pkgconfig file.
1348   HAVE_SOUNDTOUCH_1_4=yes
1349   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4,
1350     [HAVE_SOUNDTOUCH=yes],
1351     [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
1352       [HAVE_SOUNDTOUCH=yes
1353         HAVE_SOUNDTOUCH_1_4=no
1354         SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], 
1355       [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4,
1356         [HAVE_SOUNDTOUCH=yes],
1357         [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
1358           [HAVE_SOUNDTOUCH=yes
1359             HAVE_SOUNDTOUCH_1_4=no
1360             SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"],
1361           HAVE_SOUNDTOUCH=no)])])])
1362   AC_SUBST(SOUNDTOUCH_CFLAGS)
1363   AC_SUBST(SOUNDTOUCH_LIBS)
1364   if test "x$HAVE_CXX" != "xyes"; then
1365     USE_SOUNDTOUCH=false
1366     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
1367   fi
1368   if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then
1369      AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1],
1370          [Defined if the available libSoundTouch is >= 1.4])
1371   fi
1372 ])
1373
1374 dnl *** spc ***
1375 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
1376 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
1377   AC_CHECK_HEADER(openspc.h, [
1378     AC_CHECK_LIB(openspc, OSPC_Init, [
1379       SPC_LIBS="-lopenspc"
1380       AC_SUBST(SPC_LIBS)
1381       HAVE_SPC=yes
1382     ], [
1383       HAVE_SPC=no
1384     ])
1385   ], [
1386     HAVE_SPC=no
1387   ])
1388 ])
1389
1390 dnl *** gme ***
1391 translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true)
1392 AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [
1393   AC_CHECK_HEADER(gme/gme.h, [
1394     AC_CHECK_LIB(gme, gme_new_emu, [
1395       GME_LIBS="-lgme"
1396       AC_SUBST(GME_LIBS)
1397       HAVE_GME=yes
1398     ], [
1399       HAVE_GME=no
1400     ])
1401   ], [
1402     HAVE_GME=no
1403   ])
1404
1405   if test "x$HAVE_GME" = "xyes"; then
1406     AC_CHECK_LIB(gme, gme_enable_accuracy, [
1407       AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available])
1408       ])
1409   fi
1410 ])
1411
1412 dnl *** swfdec ***
1413 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1414 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1415   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
1416     HAVE_SWFDEC=no
1417     AC_MSG_RESULT(no)
1418   ])
1419   AC_SUBST(SWFDEC_CFLAGS)
1420   AC_SUBST(SWFDEC_LIBS)
1421 ])
1422
1423 dnl *** theora ***
1424 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORADEC, true)
1425 AG_GST_CHECK_FEATURE(THEORADEC, [ogg theora codec], theoraexpdec, [
1426   PKG_CHECK_MODULES(THEORADEC, theoradec, HAVE_THEORADEC="yes", [
1427     HAVE_THEORADEC="no"
1428     AC_MSG_RESULT(no)
1429   ])
1430   AC_SUBST(THEORADEC_LIBS)
1431   AC_SUBST(THEORADEC_CFLAGS)
1432 ])
1433
1434 dnl *** XVID ***
1435 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1436 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1437   HAVE_XVID=no
1438   AC_CHECK_HEADER(xvid.h, [
1439     OLD_LIBS="$LIBS"
1440     LIBS="-lm"
1441     AC_CHECK_LIB(xvidcore, xvid_encore, [
1442       AC_CHECK_LIB(xvidcore, xvid_decore, [
1443         AC_CHECK_LIB(xvidcore, xvid_global, [
1444           AC_MSG_CHECKING([for uptodate XviD API version])
1445           AC_TRY_COMPILE([#include <xvid.h>], [
1446               #if XVID_API_MAJOR(XVID_API) != 4
1447               #error "Incompatible XviD API version"
1448               #endif
1449           ],[ AC_MSG_RESULT(yes)
1450             XVID_LIBS="-lxvidcore -lm"
1451             AC_SUBST(XVID_LIBS)
1452             HAVE_XVID=yes
1453           ], AC_MSG_RESULT(no) )
1454         ], )
1455       ], )
1456     ], )
1457     LIBS="$OLD_LIBS"
1458   ], )
1459 ])
1460
1461 dnl *** dvb ***
1462 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1463 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1464   AC_MSG_CHECKING([Checking for up to date dvb installation])
1465   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1466 ])
1467
1468 dnl *** wininet ***
1469 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1470 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1471   AC_MSG_CHECKING([Checking for windows internet support])
1472   AC_CHECK_HEADERS([windows.h wininet.h],
1473       [HAVE_WININET="yes"], [HAVE_WININET="no"])
1474 ])
1475
1476 dnl *** acm ***
1477 translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true)
1478 AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [
1479   AC_MSG_CHECKING([Checking for ACM support])
1480   AC_CHECK_HEADERS([windows.h msacm.h],
1481       [HAVE_ACM="yes"
1482        AC_SUBST(ACMENC_CFLAGS)
1483        AC_SUBST(ACMMP3DEC_CFLAGS)
1484       ], [HAVE_ACM="no"],
1485       [AC_INCLUDES_DEFAULT
1486 #include <windows.h>])
1487 ])
1488
1489 dnl *** vdpau ***
1490 translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true)
1491 AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [
1492   VDPAU_CFLAGS=
1493   VDPAU_LIBS=-lvdpau
1494   HAVE_VDPAU=no
1495
1496   PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"],
1497   [
1498     if test "$HAVE_VDPAU" = "no"; then
1499       saved_CPPFLAGS="$CPPFLAGS"
1500       AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1501       
1502       if test -z "$HAVE_VDPAU_H"; then
1503         dnl Didn't find VDPAU header straight away.
1504         dnl Try /usr/include/nvidia. Need to clear caching vars first
1505         AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia])
1506         unset ac_cv_header_vdpau_vdpau_h
1507         unset ac_cv_header_vdpau_vdpau_x11_h
1508         VDPAU_CFLAGS="-I/usr/include/nvidia"
1509         VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau"
1510         CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS"
1511         AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes])
1512       fi
1513       
1514       AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes])
1515   
1516       if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then
1517         dnl Found the headers - look for the lib
1518         AC_MSG_NOTICE([VDPAU headers found. Checking libraries])
1519         saved_LIBS="$LIBS"
1520         LIBS="$VDPAU_LIBS $saved_LIBS"
1521         AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"])
1522         LIBS="$saved_LIBS"
1523       fi
1524     fi
1525   ])
1526
1527   if test "$HAVE_VDPAU" = "yes"; then
1528     AC_MSG_NOTICE([Found up to date VDPAU installation])
1529     AC_SUBST(VDPAU_CFLAGS)
1530     AC_SUBST(VDPAU_LIBS)
1531   fi
1532 ])
1533
1534 dnl *** schroedinger ***
1535 translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true)
1536 AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [
1537   AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.7)
1538 ])
1539
1540 dnl *** zbar ***
1541 translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true)
1542 AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [
1543   AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9)
1544 ])
1545
1546 dnl *** vp8 ***
1547 translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8)
1548 AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [
1549   VPX_LIBS=""
1550   AG_GST_CHECK_LIBHEADER(VPX, vpx,
1551                         vpx_codec_version, ,
1552                         vpx/vpx_codec.h, [
1553     HAVE_VP8_ENCODER=no
1554     HAVE_VP8_DECODER=no
1555
1556     OLD_LIBS="$LIBS"
1557     LIBS="$LIBS -lm -lpthread"
1558     AC_CHECK_LIB(vpx, vpx_codec_vp8_cx_algo, [
1559       HAVE_VP8=yes
1560       AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available])
1561       VPX_LIBS="-lvpx"
1562     ])
1563     AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [
1564       HAVE_VP8=yes
1565       AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available])
1566       VPX_LIBS="-lvpx"
1567     ])
1568     LIBS="$OLD_LIBS"
1569   ])
1570   AC_SUBST(VPX_LIBS)
1571 ])
1572
1573 dnl *** rtmp ***
1574 translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true)
1575 AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [
1576   AG_GST_PKG_CHECK_MODULES(RTMP, librtmp)
1577 ])
1578
1579 dnl *** GSettings ***
1580 translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true)
1581 AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [
1582   AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0)
1583   if test "x$HAVE_GSETTINGS" = "xyes"; then
1584     GLIB_GSETTINGS
1585   fi
1586 ])
1587
1588 else
1589
1590 dnl not building plugins with external dependencies,
1591 dnl but we still need to set the conditionals
1592
1593 AM_CONDITIONAL(USE_ASSRENDER, false)
1594 AM_CONDITIONAL(USE_AMRWB, false)
1595 AM_CONDITIONAL(USE_APEXSINK, false)
1596 AM_CONDITIONAL(USE_BZ2, false)
1597 AM_CONDITIONAL(USE_CDAUDIO, false)
1598 AM_CONDITIONAL(USE_CELT, false)
1599 AM_CONDITIONAL(USE_COG, false)
1600 AM_CONDITIONAL(USE_DC1394, false)
1601 AM_CONDITIONAL(USE_DIRECTFB, false)
1602 AM_CONDITIONAL(USE_DIRAC, false)
1603 AM_CONDITIONAL(USE_DTS, false)
1604 AM_CONDITIONAL(USE_DIVX, false)
1605 AM_CONDITIONAL(USE_EXIF, false)
1606 AM_CONDITIONAL(USE_RESINDVD, false)
1607 AM_CONDITIONAL(USE_FAAC, false)
1608 AM_CONDITIONAL(USE_FAAD, false)
1609 AM_CONDITIONAL(USE_FBDEV, false)
1610 AM_CONDITIONAL(USE_FLITE, false)
1611 AM_CONDITIONAL(USE_GSM, false)
1612 AM_CONDITIONAL(USE_JACK, false)
1613 AM_CONDITIONAL(USE_JP2K, false)
1614 AM_CONDITIONAL(USE_KATE, false)
1615 AM_CONDITIONAL(USE_TIGER, false)
1616 AM_CONDITIONAL(USE_LADSPA, false)
1617 AM_CONDITIONAL(USE_LV2, false)
1618 AM_CONDITIONAL(USE_LIBMMS, false)
1619 AM_CONDITIONAL(USE_MODPLUG, false)
1620 AM_CONDITIONAL(USE_MIMIC, false)
1621 AM_CONDITIONAL(USE_MPEG2ENC, false)
1622 AM_CONDITIONAL(USE_MPLEX, false)
1623 AM_CONDITIONAL(USE_MUSEPACK, false)
1624 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1625 AM_CONDITIONAL(USE_MYTHTV, false)
1626 AM_CONDITIONAL(USE_NAS, false)
1627 AM_CONDITIONAL(USE_NEON, false)
1628 AM_CONDITIONAL(USE_OFA, false)
1629 AM_CONDITIONAL(USE_RSVG, false)
1630 AM_CONDITIONAL(USE_TIMIDITY, false)
1631 AM_CONDITIONAL(USE_WILDMIDI, false)
1632 AM_CONDITIONAL(USE_SDL, false)
1633 AM_CONDITIONAL(USE_SNDFILE, false)
1634 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1635 AM_CONDITIONAL(USE_SPC, false)
1636 AM_CONDITIONAL(USE_GME, false)
1637 AM_CONDITIONAL(USE_GSETTINGS, false)
1638 AM_CONDITIONAL(USE_SWFDEC, false)
1639 AM_CONDITIONAL(USE_THEORADEC, false)
1640 AM_CONDITIONAL(USE_XVID, false)
1641 AM_CONDITIONAL(USE_DVB, false)
1642 AM_CONDITIONAL(USE_WININET, false)
1643 AM_CONDITIONAL(USE_ACM, false)
1644 AM_CONDITIONAL(USE_VDPAU, false)
1645 AM_CONDITIONAL(USE_SCHRO, false)
1646 AM_CONDITIONAL(USE_ZBAR, false)
1647 AM_CONDITIONAL(USE_VP8, false)
1648 AM_CONDITIONAL(USE_RTMP, false)
1649
1650 fi dnl of EXT plugins
1651
1652 dnl *** finalize CFLAGS, LDFLAGS, LIBS
1653
1654 dnl Overview:
1655 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
1656 dnl GST_*:              flags shared by built objects to link against GStreamer
1657 dnl GST_ALL_LDFLAGS:    linker flags shared by all
1658 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
1659 dnl GST_LT_LDFLAGS:     library versioning of our libraries
1660 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
1661
1662 dnl GST_OPTION_CFLAGS
1663 if test "x$USE_DEBUG" = xyes; then
1664    PROFILE_CFLAGS="-g"
1665 fi
1666 AC_SUBST(PROFILE_CFLAGS)
1667
1668 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
1669   dnl Define _only_ during CVS (not pre-releases or releases)
1670   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
1671 else
1672   DEPRECATED_CFLAGS=""
1673 fi
1674 AC_SUBST(DEPRECATED_CFLAGS)
1675
1676 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
1677 dnl at make time with e.g. make ERROR_CFLAGS=""
1678 GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1679 GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1680 AC_SUBST(GST_OPTION_CFLAGS)
1681 AC_SUBST(GST_OPTION_CXXFLAGS)
1682
1683 dnl FIXME: do we want to rename to GST_ALL_* ?
1684 dnl prefer internal headers to already installed ones
1685 dnl also add builddir include for enumtypes and marshal
1686 dnl add GST_OPTION_CFLAGS, but overridable
1687 GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)"
1688 GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)"
1689 AC_SUBST(GST_CFLAGS)
1690 AC_SUBST(GST_CXXFLAGS)
1691 AC_SUBST(GST_LIBS)
1692 GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1693 GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
1694 AC_SUBST(GST_PLUGINS_BAD_CFLAGS)
1695 AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS)
1696
1697 dnl LDFLAGS really should only contain flags, not libs - they get added before
1698 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1699 GST_ALL_LDFLAGS="-no-undefined"
1700 AC_SUBST(GST_ALL_LDFLAGS)
1701
1702 dnl this really should only contain flags, not libs - they get added before
1703 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1704 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
1705 AC_SUBST(GST_PLUGIN_LDFLAGS)
1706
1707 dnl *** output files ***
1708
1709 dnl po/Makefile.in
1710
1711 AC_CONFIG_FILES(
1712 Makefile
1713 common/Makefile
1714 common/m4/Makefile
1715 gst-plugins-bad.spec
1716 gst/Makefile
1717 gst/adpcmdec/Makefile
1718 gst/adpcmenc/Makefile
1719 gst/aiff/Makefile
1720 gst/asfmux/Makefile
1721 gst/audioparsers/Makefile
1722 gst/autoconvert/Makefile
1723 gst/bayer/Makefile
1724 gst/camerabin/Makefile
1725 gst/camerabin2/Makefile
1726 gst/cdxaparse/Makefile
1727 gst/colorspace/Makefile
1728 gst/coloreffects/Makefile
1729 gst/dataurisrc/Makefile
1730 gst/dccp/Makefile
1731 gst/debugutils/Makefile
1732 gst/dtmf/Makefile
1733 gst/dvbsuboverlay/Makefile
1734 gst/dvdspu/Makefile
1735 gst/festival/Makefile
1736 gst/freeze/Makefile
1737 gst/frei0r/Makefile
1738 gst/gaudieffects/Makefile
1739 gst/geometrictransform/Makefile
1740 gst/h264parse/Makefile
1741 gst/hdvparse/Makefile
1742 gst/id3tag/Makefile
1743 gst/interlace/Makefile
1744 gst/invtelecine/Makefile
1745 gst/ivfparse/Makefile
1746 gst/jp2kdecimator/Makefile
1747 gst/jpegformat/Makefile
1748 gst/legacyresample/Makefile
1749 gst/librfb/Makefile
1750 gst/liveadder/Makefile
1751 gst/mpegdemux/Makefile
1752 gst/mpegtsmux/Makefile
1753 gst/mpegtsmux/tsmux/Makefile
1754 gst/mpegpsmux/Makefile
1755 gst/mpeg4videoparse/Makefile
1756 gst/mpegvideoparse/Makefile
1757 gst/mve/Makefile
1758 gst/mxf/Makefile
1759 gst/nsf/Makefile
1760 gst/nuvdemux/Makefile
1761 gst/pcapparse/Makefile
1762 gst/pnm/Makefile
1763 gst/qtmux/Makefile
1764 gst/rawparse/Makefile
1765 gst/real/Makefile
1766 gst/rtpmux/Makefile
1767 gst/scaletempo/Makefile
1768 gst/sdp/Makefile
1769 gst/segmentclip/Makefile
1770 gst/selector/Makefile
1771 gst/siren/Makefile
1772 gst/speed/Makefile
1773 gst/subenc/Makefile
1774 gst/stereo/Makefile
1775 gst/tta/Makefile
1776 gst/valve/Makefile
1777 gst/videomaxrate/Makefile
1778 gst/videomeasure/Makefile
1779 gst/videosignal/Makefile
1780 gst/vmnc/Makefile
1781 gst/y4m/Makefile
1782 gst-libs/Makefile
1783 gst-libs/gst/Makefile
1784 gst-libs/gst/interfaces/Makefile
1785 gst-libs/gst/signalprocessor/Makefile
1786 gst-libs/gst/video/Makefile
1787 sys/Makefile
1788 sys/dshowdecwrapper/Makefile
1789 sys/acmenc/Makefile
1790 sys/acmmp3dec/Makefile
1791 sys/applemedia/Makefile
1792 sys/directdraw/Makefile
1793 sys/directsound/Makefile
1794 sys/dshowsrcwrapper/Makefile
1795 sys/dshowvideosink/Makefile
1796 sys/dvb/Makefile
1797 sys/fbdev/Makefile
1798 sys/osxvideo/Makefile
1799 sys/qtwrapper/Makefile
1800 sys/shm/Makefile
1801 sys/vcd/Makefile
1802 sys/vdpau/Makefile
1803 sys/vdpau/gstvdp/Makefile
1804 sys/vdpau/basevideodecoder/Makefile
1805 sys/wasapi/Makefile
1806 sys/wininet/Makefile
1807 sys/winks/Makefile
1808 sys/winscreencap/Makefile
1809 tests/Makefile
1810 tests/check/Makefile
1811 tests/files/Makefile
1812 tests/examples/Makefile
1813 tests/examples/camerabin/Makefile
1814 tests/examples/camerabin2/Makefile
1815 tests/examples/directfb/Makefile
1816 tests/examples/mxf/Makefile
1817 tests/examples/scaletempo/Makefile
1818 tests/examples/switch/Makefile
1819 tests/examples/jack/Makefile
1820 tests/icles/Makefile
1821 ext/amrwbenc/Makefile
1822 ext/assrender/Makefile
1823 ext/apexsink/Makefile
1824 ext/bz2/Makefile
1825 ext/cdaudio/Makefile
1826 ext/celt/Makefile
1827 ext/cog/Makefile
1828 ext/dc1394/Makefile
1829 ext/dirac/Makefile
1830 ext/directfb/Makefile
1831 ext/divx/Makefile
1832 ext/dts/Makefile
1833 ext/faac/Makefile
1834 ext/faad/Makefile
1835 ext/flite/Makefile
1836 ext/gsm/Makefile
1837 ext/jack/Makefile
1838 ext/jp2k/Makefile
1839 ext/kate/Makefile
1840 ext/ladspa/Makefile
1841 ext/lv2/Makefile
1842 ext/libmms/Makefile
1843 ext/Makefile
1844 ext/modplug/Makefile
1845 ext/mpeg2enc/Makefile
1846 ext/mimic/Makefile
1847 ext/mplex/Makefile
1848 ext/musepack/Makefile
1849 ext/musicbrainz/Makefile
1850 ext/mythtv/Makefile
1851 ext/nas/Makefile
1852 ext/neon/Makefile
1853 ext/ofa/Makefile
1854 ext/opencv/Makefile
1855 ext/rsvg/Makefile
1856 ext/resindvd/Makefile
1857 ext/rtmp/Makefile
1858 ext/schroedinger/Makefile
1859 ext/sdl/Makefile
1860 ext/sndfile/Makefile
1861 ext/soundtouch/Makefile
1862 ext/gme/Makefile
1863 ext/gsettings/Makefile
1864 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml
1865 ext/spc/Makefile
1866 ext/swfdec/Makefile
1867 ext/theora/Makefile
1868 ext/timidity/Makefile
1869 ext/vp8/Makefile
1870 ext/xvid/Makefile
1871 ext/zbar/Makefile
1872 po/Makefile.in
1873 docs/Makefile
1874 docs/plugins/Makefile
1875 docs/version.entities
1876 pkgconfig/Makefile
1877 pkgconfig/gstreamer-plugins-bad.pc
1878 pkgconfig/gstreamer-plugins-bad-uninstalled.pc
1879 tools/Makefile
1880 m4/Makefile
1881 win32/common/config.h
1882 )
1883 AC_OUTPUT
1884
1885 AG_GST_OUTPUT_PLUGINS
1886 ORC_OUTPUT
1887