configure.ac: Require CVS core and base for new audio clock reset method.
[platform/upstream/gstreamer.git] / configure.ac
1 AC_PREREQ(2.52)
2
3 dnl initialize autoconf
4 dnl when going to/from release please set the nano (fourth number) right !
5 dnl releases only do Wall, cvs and prerelease does Werror too
6 AC_INIT(GStreamer Bad Plug-ins, 0.10.7.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
14
15 dnl define PACKAGE_VERSION_* variables
16 AS_VERSION
17
18 dnl check if this is a release version
19 AS_NANO(GST_CVS="no", GST_CVS="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 our libraries and install dirs use major.minor as a version
34 GST_MAJORMINOR=$GST_PLUGINS_BAD_VERSION_MAJOR.$GST_PLUGINS_BAD_VERSION_MINOR
35 dnl we override it here if we need to for the release candidate of new series
36 GST_MAJORMINOR=0.10
37 AC_SUBST(GST_MAJORMINOR)
38
39 dnl FIXME: this macro doesn't actually work;
40 dnl the generated libtool script has no support for the listed tags.
41 dnl So this needs to be fixed first if we want to use this
42 dnl AS_LIBTOOL_TAGS([CXX])
43
44 AC_LIBTOOL_WIN32_DLL
45 AM_PROG_LIBTOOL
46
47 dnl *** required versions of GStreamer stuff ***
48 GST_REQ=0.10.19.1
49 GSTPB_REQ=0.10.19.1
50
51 dnl *** autotools stuff ****
52
53 dnl allow for different autotools
54 AS_AUTOTOOLS_ALTERNATE
55
56 dnl Add parameters for aclocal
57 AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4")
58
59 dnl set up gettext
60 dnl the version check needs to stay here because autopoint greps for it
61 AM_GNU_GETTEXT_VERSION([0.11.5])
62 AM_GNU_GETTEXT([external])
63 AG_GST_GETTEXT([gst-plugins-bad-$GST_MAJORMINOR])
64
65 dnl *** check for arguments to configure ***
66
67 AG_GST_ARG_DEBUG
68 AG_GST_ARG_PROFILING
69 AG_GST_ARG_VALGRIND
70 AG_GST_ARG_GCOV
71
72 AG_GST_ARG_EXAMPLES
73
74 AG_GST_ARG_WITH_PKG_CONFIG_PATH
75 AG_GST_ARG_WITH_PACKAGE_NAME
76 AG_GST_ARG_WITH_PACKAGE_ORIGIN
77
78 AG_GST_ARG_WITH_PLUGINS
79
80 AG_GST_ARG_ENABLE_EXTERNAL
81
82 AG_GST_ARG_ENABLE_EXPERIMENTAL
83
84 dnl *** checks for platform ***
85
86 dnl * hardware/architecture *
87
88 dnl common/m4/gst-arch.m4
89 dnl check CPU type
90 AG_GST_ARCH
91
92 dnl Determine endianness
93 AC_C_BIGENDIAN
94
95 dnl *** checks for programs ***
96
97 dnl find a compiler
98 AC_PROG_CC
99
100 dnl determine c++ compiler
101 AC_PROG_CXX
102 dnl determine if c++ is available on this system
103 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
104
105 AS_PROG_OBJC
106
107 dnl check if the compiler supports '-c' and '-o' options
108 AM_PROG_CC_C_O
109
110 dnl check if the compiler supports do while(0) macros
111 AG_GST_CHECK_DOWHILE_MACROS
112
113 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
114 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
115
116 dnl check for documentation tools
117 GTK_DOC_CHECK([1.3])
118 AS_PATH_PYTHON([2.1])
119 AG_GST_PLUGIN_DOCS([1.3],[2.1])
120
121 dnl *** checks for libraries ***
122
123 dnl check for libm, for sin() etc.
124 AC_CHECK_LIBM
125 AC_SUBST(LIBM)
126
127 dnl *** checks for header files ***
128
129 AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes)
130 AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes")
131
132 if test "x$HAVE_UNISTD_H" != "xyes"; then
133   GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//`
134 fi
135
136 dnl used by ext/dts
137 AX_CREATE_STDINT_H
138
139 dnl *** checks for types/defines ***
140
141 dnl *** checks for structures ***
142
143 dnl *** checks for compiler characteristics ***
144
145 dnl *** checks for library functions ***
146
147 dnl *** checks for dependency libraries ***
148
149 dnl GLib is required
150 AG_GST_GLIB_CHECK([2.6])
151
152 dnl liboil is required
153 PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.8, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
154 if test "x$HAVE_LIBOIL" != "xyes"; then
155   AC_ERROR([liboil-0.3.8 or later is required])
156 fi
157
158 dnl checks for gstreamer
159 dnl uninstalled is selected preferentially -- see pkg-config(1)
160 AG_GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ], yes)
161 AG_GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ], yes)
162 AG_GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ], yes)
163 AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no)
164 AG_GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ], yes)
165 AG_GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ], yes)
166 AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
167
168 GSTPB_PLUGINS_DIR=`$PKG_CONFIG gstreamer-plugins-base-$GST_MAJORMINOR --variable pluginsdir`
169 AC_SUBST(GSTPB_PLUGINS_DIR)
170 AC_MSG_NOTICE(Using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR)
171
172 dnl Check for documentation xrefs
173 GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
174 GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`"
175 GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`"
176 AC_SUBST(GLIB_PREFIX)
177 AC_SUBST(GST_PREFIX)
178 AC_SUBST(GSTPB_PREFIX)
179
180 dnl GTK is optional and used in examples
181 HAVE_GTK=NO
182 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
183 if test "x$HAVE_GTK_22" = "xyes"; then
184   HAVE_GTK=yes
185   GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
186   AC_SUBST(GTK_VERSION)
187   GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
188   AC_SUBST(GTK_BASE_DIR)
189   GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0`
190   GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
191   AC_SUBST(GTK_BASE_DIR)
192 else
193   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
194 fi
195 if test "x$HAVE_GTK_20" = "xyes"; then
196   HAVE_GTK=yes
197 fi
198 GTK_CFLAGS=$GTK2_CFLAGS
199 GTK_LIBS=$GTK2_LIBS
200 AC_SUBST(GTK_LIBS)
201 AC_SUBST(GTK_CFLAGS)
202 AC_SUBST(HAVE_GTK)
203 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
204
205 dnl libglade is optional and only used in examples
206 HAVE_GLADE=NO
207 PKG_CHECK_MODULES(GLADE, libglade-2.0 >= 2.6.0, HAVE_GLADE=yes, HAVE_GLADE=no)
208 AC_SUBST(GLADE_LIBS)
209 AC_SUBST(GLADE_CFLAGS)
210 AC_SUBST(HAVE_GLADE)
211 AM_CONDITIONAL(HAVE_GLADE, test "x$HAVE_GLADE" = "xyes")
212
213 dnl set license and copyright notice
214 GST_LICENSE="LGPL"
215 AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license])
216 AC_SUBST(GST_LICENSE)
217
218 dnl set location of plugin directory
219 AG_GST_SET_PLUGINDIR
220
221 dnl define an ERROR_CFLAGS Makefile variable
222 AG_GST_SET_ERROR_CFLAGS($GST_CVS)
223
224 dnl define an ERROR_CXXFLAGS Makefile variable
225 AG_GST_SET_ERROR_CXXFLAGS($GST_CVS)
226
227 dnl define correct level for debugging messages
228 AG_GST_SET_LEVEL_DEFAULT($GST_CVS)
229
230 dnl *** plug-ins to include ***
231
232 dnl these are all the gst plug-ins, compilable without additional libs
233 AG_GST_CHECK_PLUGIN(app)
234 AG_GST_CHECK_PLUGIN(bayer)
235 AG_GST_CHECK_PLUGIN(cdxaparse)
236 AG_GST_CHECK_PLUGIN(deinterlace)
237 AG_GST_CHECK_PLUGIN(dvdspu)
238 AG_GST_CHECK_PLUGIN(festival)
239 AG_GST_CHECK_PLUGIN(filter)
240 AG_GST_CHECK_PLUGIN(flv)
241 AG_GST_CHECK_PLUGIN(freeze)
242 AG_GST_CHECK_PLUGIN(h264parse)
243 AG_GST_CHECK_PLUGIN(interleave)
244 AG_GST_CHECK_PLUGIN(librfb)
245 AG_GST_CHECK_PLUGIN(modplug)
246 AG_GST_CHECK_PLUGIN(mpegtsparse)
247 AG_GST_CHECK_PLUGIN(mpeg4videoparse)
248 AG_GST_CHECK_PLUGIN(mpegvideoparse)
249 AG_GST_CHECK_PLUGIN(mve)
250 AG_GST_CHECK_PLUGIN(nsf)
251 AG_GST_CHECK_PLUGIN(nuvdemux)
252 AG_GST_CHECK_PLUGIN(rawparse)
253 AG_GST_CHECK_PLUGIN(real)
254 AG_GST_CHECK_PLUGIN(replaygain)
255 AG_GST_CHECK_PLUGIN(rtpmanager)
256 AG_GST_CHECK_PLUGIN(sdp)
257 AG_GST_CHECK_PLUGIN(selector)
258 AG_GST_CHECK_PLUGIN(speed)
259 AG_GST_CHECK_PLUGIN(speexresample)
260 AG_GST_CHECK_PLUGIN(subenc)
261 AG_GST_CHECK_PLUGIN(stereo)
262 AG_GST_CHECK_PLUGIN(tta)
263 AG_GST_CHECK_PLUGIN(videosignal)
264 AG_GST_CHECK_PLUGIN(vmnc)
265 AG_GST_CHECK_PLUGIN(y4m)
266
267 dnl *** plug-ins to exclude ***
268
269 dnl see if we can build C++ plug-ins
270 if test "x$HAVE_CXX" != "xyes"; then
271   AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
272   AG_GST_DISABLE_PLUGIN(modplug)
273 fi
274
275 dnl real plugin only works on i386 and x86_64 for the time being.
276 if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then
277   AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms])
278   AG_GST_DISABLE_PLUGIN(real)
279 fi
280
281 dnl disable gst plugins we might not be able to build on this
282 dnl platform: librfb (ugly but minimally invasive)
283 dnl FIXME: maybe move to sys, or make work with winsock2
284 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
285 AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes)
286
287 if test "x$HAVE_SYS_SOCKET_H" != "xyes"; then
288   AG_GST_DISABLE_PLUGIN(librfb)
289 fi
290
291 dnl *** sys plug-ins ***
292
293 dnl check for QuickTime
294 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
295 AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [
296   AC_CHECK_HEADER(QuickTime/Movies.h, HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no")
297 ])
298
299 dnl check for Video CD
300 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
301 AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
302   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
303 ])
304
305 dnl *** ext plug-ins ***
306 dnl keep this list sorted alphabetically !
307
308 if test "x$BUILD_EXTERNAL" = "xyes"; then
309
310 dnl *** alsa ***
311 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
312 AG_GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
313   PKG_CHECK_MODULES(ALSA, alsa >= 0.9.1, [
314     HAVE_ALSA="yes"
315     AC_SUBST(ALSA_CFLAGS)
316     AC_SUBST(ALSA_LIBS)
317   ], [
318     AM_PATH_ALSA(0.9.1, HAVE_ALSA="yes", HAVE_ALSA="no")
319   ])
320 ])
321
322 dnl *** amrwb ***
323 translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true)
324 AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwb, [
325   AG_GST_CHECK_LIBHEADER(AMRWB, amrwb,
326                         GP3D_IF_decode, ,
327                         amrwb/dec.h,
328                         AMRWB_LIBS="-lamrwb"
329                         AC_SUBST(AMRWB_LIBS))
330 ])
331
332 dnl *** BZ2 ***
333 translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true)
334 AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [
335   AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2")
336   AC_SUBST(BZ2_LIBS)
337 ])
338
339 #dnl *** cairo ***
340 #translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true)
341 #AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [
342 #  PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [
343 #    HAVE_CAIRO=no
344 #    AC_MSG_RESULT(no)
345 #  ])
346 #  AC_SUBST(CAIRO_CFLAGS)
347 #  AC_SUBST(CAIRO_LIBS)
348 #])
349
350 dnl *** cdaudio ***
351 translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true)
352 AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [
353   AG_GST_CHECK_CONFIGPROG(CDAUDIO, libcdaudio-config)
354   AC_SUBST(CDAUDIO_CFLAGS)
355   AC_SUBST(CDAUDIO_LIBS)
356 ])
357
358
359 dnl *** dc1394  ***
360 translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true)
361 AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [
362    PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [
363         if test -z "`pkg-config --modversion libdc1394-2 | grep 2.0.0-rc`"; then
364                 HAVE_DC1394="yes"
365         else
366                 HAVE_DC1394="no"
367                 AC_MSG_RESULT(no)
368         fi
369    ], [
370         HAVE_DC1394="no"
371         AC_MSG_RESULT(no)
372    ])
373    AC_SUBST(LIBDC1394_CFLAGS)
374    AC_SUBST(LIBDC1394_LIBS)
375 ])
376
377
378 dnl **** DirectFB ****
379 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true)
380 AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [
381   PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [
382     HAVE_DIRECTFB="no"
383     AC_MSG_RESULT(no)
384   ])
385 ])
386
387 dnl **** Dirac ****
388 translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true)
389 AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [
390   PKG_CHECK_MODULES(DIRAC, dirac >= 0.9, HAVE_DIRAC="yes", [
391     HAVE_DIRAC="no"
392     AC_MSG_RESULT(no)
393   ])
394 ])
395
396 dnl *** DTS ***
397 translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true)
398 AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [
399   HAVE_DTS="yes"
400   AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, -lm, dts.h,
401     DTS_LIBS="-ldts_pic -lm", HAVE_DTS="no")
402   if test $HAVE_DTS = "no"; then
403     AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, -lm, dts.h,
404       DTS_LIBS="-ldca -lm")
405   fi
406   AC_SUBST(DTS_LIBS)
407 ])
408
409 dnl *** DIVX ***
410 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
411 AG_GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
412   HAVE_DIVX=yes
413   AC_CHECK_HEADER(encore2.h, , [
414     AC_MSG_WARN([Divx4linux encore headers not found])
415     HAVE_DIVX=no
416   ])
417   if [ test x$HAVE_DIVX = xyes ]; then
418     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
419     AC_TRY_COMPILE([
420 #include <encore2.h>
421 #if ENCORE_VERSION != 20021024
422 #error Wrong version of divx encore libraries
423 #endif
424     ], [
425 return 0;
426     ], [
427       HAVE_DIVX=yes
428       AC_MSG_RESULT(yes)
429     ], [
430       HAVE_DIVX=no
431       AC_MSG_RESULT(no)
432       AC_MSG_WARN([Wrong version of divx4linux installed])
433     ])
434   fi
435   if [ test x$HAVE_DIVX = xyes ]; then
436     AC_CHECK_HEADER(decore.h, , [
437       AC_MSG_WARN([Divx4linux decoder headers not found])
438       HAVE_DIVX=no
439     ])
440   fi
441   if [ test x$HAVE_DIVX = xyes ]; then
442     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
443     AC_TRY_COMPILE([
444 #include <decore.h>
445 #if DECORE_VERSION != 20021112
446 #error Wrong version of divx decore libraries
447 #endif
448     ], [
449 return 0;
450     ], [
451       HAVE_DIVX=yes
452       AC_MSG_RESULT(yes)
453     ], [
454       HAVE_DIVX=no
455       AC_MSG_RESULT(no)
456       AC_MSG_WARN([Wrong version of divx4linux installed])
457     ])
458   fi
459   LIBS="-lm"
460   if test x$HAVE_DIVX = xyes; then
461     AC_CHECK_LIB(divxencore, encore, , [
462       AC_MSG_WARN([Divx4linux encore libs not found])
463       HAVE_DIVX=no
464     ])
465   fi
466   if test x$HAVE_DIVX = xyes; then
467     AC_CHECK_LIB(divxdecore, decore, , [
468       AC_MSG_WARN([Divx4linux decore libs not found])
469       HAVE_DIVX=no
470   ])
471   fi
472   if test x$HAVE_DIVX = xyes; then
473     DIVXENC_LIBS="-ldivxencore -lm"
474     DIVXDEC_LIBS="-ldivxdecore -lm"
475     AC_SUBST(DIVXENC_LIBS)
476     AC_SUBST(DIVXDEC_LIBS)
477   fi
478 ])
479
480 dnl *** METADATA ***
481 translit(dnm, m, l) AM_CONDITIONAL(USE_METADATA, true)
482 AG_GST_CHECK_FEATURE(METADATA, [METADATA muxer and demuxer], metadata, [
483   HAVE_METADATA="no"
484   PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", [
485     HAVE_EXIF="no"
486   ])
487   PKG_CHECK_MODULES(IPTC, libiptcdata >= 1.0.2, HAVE_IPTC="yes", [
488     HAVE_IPTC="no"
489   ])
490   PKG_CHECK_MODULES(XMP, exempi-2.0, HAVE_XMP="yes", [
491     HAVE_XMP="no"
492   ])
493   PKG_CHECK_MODULES(XMP_1_99_5, exempi-2.0 >= 1.99.5, XMP_CFLAGS="-DXMP_1_99_5 $XMP_CFLAGS", AC_MSG_RESULT(no))
494   if test x$HAVE_EXIF = xyes; then
495     METADATA_CFLAGS="-DHAVE_EXIF $EXIF_CFLAGS $METADATA_CFLAGS"
496     METADATA_LIBS="$EXIF_LIBS $METADATA_LIBS -lm"
497     HAVE_METADATA="yes"
498   fi
499   if test x$HAVE_IPTC = xyes; then
500     METADATA_CFLAGS="-DHAVE_IPTC $IPTC_CFLAGS $METADATA_CFLAGS"
501     METADATA_LIBS="$IPTC_LIBS $METADATA_LIBS"
502     HAVE_METADATA="yes"
503   fi
504   if test x$HAVE_XMP = xyes; then
505     METADATA_CFLAGS="-DHAVE_XMP $XMP_CFLAGS $METADATA_CFLAGS"
506     METADATA_LIBS="$XMP_LIBS $METADATA_LIBS"
507     HAVE_METADATA="yes"
508   fi
509   if test x$HAVE_METADATA = xno; then
510     AC_MSG_WARN(no of metadata libraries (exif, iptc or xmp) found)
511   fi
512   dnl metadata plugin will parse whole chunks anyway
513   HAVE_METADATA="yes"
514   AC_SUBST(METADATA_CFLAGS)
515   AC_SUBST(METADATA_LIBS)
516 ])
517
518 dnl **** Free AAC Encoder (FAAC) ****
519 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
520 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
521   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h,
522     FAAC_LIBS="-lfaac -lm")
523   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
524   AC_SUBST(FAAC_LIBS)
525 ])
526
527 dnl **** Free AAC Decoder (FAAD) ****
528 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
529 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
530   HAVE_FAAD="yes"
531   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h,
532     FAAD_LIBS="-lfaad -lm", HAVE_FAAD="no")
533   if test $HAVE_FAAD = "no"; then
534     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, -lm, neaacdec.h,
535       [ FAAD_LIBS="-lfaad -lm"
536                 AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
537           ],
538           HAVE_FAAD="no",)
539   fi
540   if test $HAVE_FAAD = "yes"; then
541     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
542     AC_TRY_COMPILE([#include <faad.h>], [
543         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
544         #error Not faad2
545         #else
546         /* Release candidate of 2.0 is not good enough for us. This field
547          * was added only in 2.0 final and does not exist in 2.0-RC3 */
548         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
549         #endif
550     ], [
551       HAVE_FAAD="yes"
552       AC_MSG_RESULT(yes)
553     ], [
554       HAVE_FAAD="no"
555       AC_MSG_RESULT(no)
556     ])
557   fi
558   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
559   AC_SUBST(FAAD_LIBS)
560   AC_SUBST(FAAD_IS_NEAAC)
561 ])
562
563 dnl *** fbdev ***
564 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
565 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
566   if test "x$HAVE_FBDEV" != "xyes"; then
567     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
568   fi
569 ])
570
571 dnl *** gsm ***
572 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
573 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
574   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
575   if test $HAVE_GSM != "yes"; then
576     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
577     if test $HAVE_GSM = "yes"; then
578       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
579     fi
580   fi
581   AC_SUBST(GSM_LIBS)
582 ])
583
584 dnl *** ivorbis ***
585 dnl AM_PATH_IVORBIS only takes two options
586 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
587 AG_GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
588   IVORBIS_LIBS=
589   IVORBIS_CFLAGS=
590   AC_CHECK_LIB(vorbisidec, vorbis_block_init,
591     [IVORBIS_LIBS=-lvorbisidec
592      HAVE_IVORBIS=yes
593      case $host in
594      arm-*-*)
595        IVORBIS_CFLAGS="-D_ARM_ASSEM_ $IVORBIS_CFLAGS"
596      esac
597     ],
598     HAVE_IVORBIS=no)
599   AC_SUBST(IVORBIS_LIBS)
600   AC_SUBST(IVORBIS_CFLAGS)
601 ])
602
603 dnl *** Jack ***
604 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
605 AG_GST_CHECK_FEATURE(JACK, Jack, jack, [
606   PKG_CHECK_MODULES(JACK, jack >= 0.99.10, HAVE_JACK="yes", HAVE_JACK="no")
607   AC_SUBST(JACK_CFLAGS)
608   AC_SUBST(JACK_LIBS)
609 ])
610
611 dnl *** ladspa ***
612 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
613 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
614   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
615 ])
616
617 dnl *** libmms ***
618 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
619 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
620   dnl check with pkg-config first
621   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.2, HAVE_LIBMMS="yes", [
622     HAVE_LIBMMS="no"
623     AC_MSG_RESULT(no)
624   ])
625 ])
626 AC_SUBST(LIBMMS_LIBS)
627
628 dnl *** mjpegtools version info ***
629 dnl some may prefer older version (given quirks above)
630 dnl hm, no version info seems available within mjpegtools headers
631 dnl and API really moves along
632 echo
633 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
634   mjpegtools_api=10601
635 ], [
636   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
637     mjpegtools_api=10800
638   ], [
639     PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0, [
640       dnl logging API changed in release candidates
641       OLD_CFLAGS="$CFLAGS"
642       OLD_LIBS="$LIBS"
643       CFLAGS="$MJPEG_CFLAGS"
644       LIBS="$LIBS $MJPEG_LIBS -lmjpegutils -lm -lpthread"
645       AC_CHECK_FUNC(mjpeg_loglev_t, [
646         mjpegtools_api=10903
647         ], [
648         mjpegtools_api=10900
649         ])
650       CFLAGS="$OLD_CFLAGS"
651       LIBS="$OLD_LIBS"
652     ], [
653       mjpegtools_api=0
654     ])
655   ])
656 ])
657 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
658   [mjpegtools API evolution])
659
660 dnl *** mpeg2enc ***
661 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
662 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
663   HAVE_MPEG2ENC="no"
664   dnl we require a c++ compiler for this one
665   if [ test x$HAVE_CXX = xyes ]; then
666     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
667     dnl since many distros include mjpegtools specifically without mplex
668     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
669     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
670       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
671       touch config.h
672       dnl switch over to c++ to test things
673       AC_LANG_CPLUSPLUS
674       OLD_CPPFLAGS="$CPPFLAGS"
675       dnl HACK as above
676       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
677       CPPFLAGS="$CPPFLAGS_GOOD -I."
678       dnl check headers
679       mpeg2enc_headers_ok=no
680       AC_CHECK_HEADER([mpeg2encoder.hh], [
681         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread"
682         OLD_LIBS="$LIBS"
683         LIBS="$LIBS $MPEG2ENC_LIBS"
684         AC_MSG_CHECKING([for valid mpeg2enc objects])
685         AC_TRY_RUN([
686           #include <mpeg2encoder.hh>
687           #include <mpeg2encoptions.hh>
688
689           int
690           main (int   argc,
691                 char *argv[])
692           {
693             MPEG2EncOptions *options = new MPEG2EncOptions ();
694             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
695             return 0;
696           }
697         ],[
698           AC_MSG_RESULT(yes)
699           dnl so far so good, let's check more things:
700           dnl mjpegtools-1.8.0 does not install the required
701           dnl mpeg2syntaxcodes.h header by default, and a new release
702           dnl is not in sight, so check for this oversight in case
703           dnl distros or folks have fixed this themselves
704           if test "$mjpegtools_api" -ge "10800"; then
705             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
706                 mpeg2enc_headers_ok=yes
707               ], [
708                 mpeg2enc_headers_ok=no
709               ])
710           else
711             mpeg2enc_headers_ok=yes
712           fi
713           if test "x$mpeg2enc_headers_ok" = "xyes"; then
714             HAVE_MPEG2ENC="yes"
715           fi
716           CPP_FLAGS="$CPPFLAGS_GOOD"
717           AC_SUBST(MPEG2ENC_CFLAGS)
718           AC_SUBST(MPEG2ENC_LIBS)
719         ], [
720           AC_MSG_RESULT(no)
721         ])
722         LIBS="$OLD_LIBS"
723       ])
724
725       CPPFLAGS="$OLD_CPPFLAGS"
726       AC_LANG_C
727     ], [
728       HAVE_MPEG2ENC="no"
729     ])
730   fi
731 ])
732
733 dnl *** mplex ***
734 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
735 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
736   HAVE_MPLEX="no"
737   dnl we require a c++ compiler for this one
738   if [ test x$HAVE_CXX = xyes ]; then
739     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
740     dnl since many distros include mjpegtools specifically without mplex
741     dnl and mpeg2enc, we check for mplex on its own, too.
742     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
743     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
744       dnl switch over to c++ to test things
745       AC_LANG_CPLUSPLUS
746       OLD_CPPFLAGS="$CPPFLAGS"
747       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
748       AC_CHECK_HEADER(interact.hpp, [
749         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
750         OLD_LIBS="$LIBS"
751         LIBS="$LIBS $MPLEX_LIBS"
752         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
753         dnl don't want this here
754         AC_MSG_CHECKING([for valid mplex objects])
755         AC_TRY_RUN([
756
757 #include <interact.hpp>
758 #include <outputstrm.hpp>
759 #include <multiplexor.hpp>
760 int
761 main (int   argc,
762       char *argv[])
763 {
764   class TestOutputStream : public OutputStream {
765   public:
766     TestOutputStream () : OutputStream () { }
767     void Write (uint8_t *a, unsigned int b) { }
768     void NextSegment () { }
769     uint64_t SegmentSize () { }
770     void Close () { }
771     int Open () { }
772 };
773   MultiplexJob *job = new MultiplexJob ();
774   vector<IBitStream *> inputs;
775   job->SetupInputStreams (inputs);
776   TestOutputStream *out = new TestOutputStream ();
777   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
778   return 0;
779 }
780         ],[
781           HAVE_MPLEX="yes"
782           AC_SUBST(MPLEX_CFLAGS)
783           AC_SUBST(MPLEX_LIBS)
784           AC_MSG_RESULT(yes)
785         ], AC_MSG_RESULT(no))
786         LIBS="$OLD_LIBS"
787       ])
788       CPPFLAGS="$OLD_CPPFLAGS"
789       AC_LANG_C
790     ], HAVE_MPLEX="no")
791   fi
792 ])
793
794 dnl *** musepack ***
795 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
796 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
797   AC_CHECK_HEADER([mpc/mpcdec.h], [
798     HAVE_MUSEPACK="yes"
799     MUSEPACK_LIBS="-lmpcdec"
800     AC_SUBST(MUSEPACK_LIBS)
801     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
802       HAVE_MUSEPACK="yes"
803       MUSEPACK_LIBS="-lmpcdec"
804       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
805       AC_SUBST(MUSEPACK_LIBS)
806     ], [HAVE_MUSEPACK="no"])])
807 ])
808
809 dnl *** musicbrainz ***
810 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
811 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
812   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
813   AC_SUBST(MUSICBRAINZ_CFLAGS)
814   AC_SUBST(MUSICBRAINZ_LIBS)
815 ])
816
817 dnl *** MythTV ***
818 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
819 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
820   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
821     HAVE_MYTHTV="no"
822     AC_MSG_RESULT(no)
823   ])
824   AC_SUBST(GMYTH_CFLAGS)
825   AC_SUBST(GMYTH_LIBS)
826 ])
827
828 dnl *** nas ***
829 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
830 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
831   HAVE_NAS="no"
832   AG_GST_CHECK_X
833   if test "x$HAVE_X" = "xyes"; then
834     save_cppflags=$CFLAGS
835     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
836     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
837       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
838     CPPFLAGS="$save_cppflags"
839   fi
840   AC_SUBST(NAS_CFLAGS)
841   AC_SUBST(NAS_LIBS)
842 ])
843
844 dnl *** neon ***
845 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
846 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
847   PKG_CHECK_MODULES(NEON, neon >= 0.26.0  neon <= 0.28.99, HAVE_NEON="yes", [
848     HAVE_NEON="no"
849     AC_MSG_RESULT(no)
850   ])
851   AC_SUBST(NEON_CFLAGS)
852   AC_SUBST(NEON_LIBS)
853 ])
854
855 dnl *** ofa ***
856 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
857 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
858   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
859     HAVE_OFA="no"
860     AC_MSG_RESULT(no)
861   ])
862   AC_SUBST(OFA_CFLAGS)
863   AC_SUBST(OFA_LIBS)
864 ])
865
866 dnl *** timidity ***
867 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
868 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
869   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
870     HAVE_TIMIDITY="yes",
871         AC_MSG_CHECKING([for timidity.cfg])
872         timidity_cfg=""
873         if test -r /etc/timidity.cfg; then
874           timidity_cfg=/etc/timidity.cfg
875         elif test -r /etc/timidity/timidity.cfg; then
876           timidity_cfg=/etc/timidity/timidity.cfg
877         elif test -r /usr/share/timidity/timidity.cfg; then
878           timidity_cfg=/usr/share/timidity/timidity.cfg
879         elif test -r /usr/local/share/timidity/timidity.cfg; then
880           timidity_cfg=/usr/local/share/timidity/timidity.cfg
881         fi
882         if test "x$timidity_cfg" != "x"; then
883           AC_MSG_RESULT($timidity_cfg)
884       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
885         else
886           AC_MSG_RESULT([not found])
887         fi
888   ], [
889     HAVE_TIMIDITY="no"
890     AC_MSG_RESULT(no)
891   ])
892   AC_SUBST(TIMIDITY_CFLAGS)
893   AC_SUBST(TIMIDITY_LIBS)
894 ])
895
896 dnl *** wildmidi ***
897 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
898 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
899   AC_CHECK_HEADER([wildmidi_lib.h],HAVE_WILDMIDI=yes, HAVE_WILDMIDI=no)
900   if test "x$HAVE_WILDMIDI" = "xyes"; then
901          WILDMIDI_CFLAGS=
902          WILDMIDI_LIBS=-lWildMidi
903          AC_MSG_NOTICE(compiling gstWildMidi)
904   else
905          WILDMIDI_CFLAGS=
906          WILDMIDI_LIBS=
907          AC_MSG_WARN(no WildMidi library found (libWildMidi))
908   fi
909   AC_SUBST(WILDMIDI_CFLAGS)
910   AC_SUBST(WILDMIDI_LIBS)
911 ])
912
913 dnl *** SDL ***
914 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
915 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
916     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
917 ])
918
919 dnl *** sndfile ***
920 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
921 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
922   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
923   AC_SUBST(SNDFILE_CFLAGS)
924   AC_SUBST(SNDFILE_LIBS)
925 ])
926
927 dnl *** soundtouch ***
928 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
929 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
930   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
931     HAVE_SOUNDTOUCH=yes, 
932     [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
933       HAVE_SOUNDTOUCH=yes,
934       HAVE_SOUNDTOUCH=no)])
935   AC_SUBST(SOUNDTOUCH_CFLAGS)
936   AC_SUBST(SOUNDTOUCH_LIBS)
937   if test "x$HAVE_CXX" != "xyes"; then
938     USE_SOUNDTOUCH=false
939     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
940   fi
941 ])
942
943 dnl *** spc ***
944 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
945 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
946   AC_CHECK_HEADER(openspc.h, [
947     AC_CHECK_LIB(openspc, OSPC_Init, [
948       SPC_LIBS="-lopenspc"
949       AC_SUBST(SPC_LIBS)
950       HAVE_SPC=yes
951     ], [
952       HAVE_SPC=no
953     ])
954   ], [
955     HAVE_SPC=no
956   ])
957 ])
958
959 dnl *** swfdec ***
960 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
961 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
962   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
963     HAVE_SWFDEC=no
964     AC_MSG_RESULT(no)
965   ])
966   AC_SUBST(SWFDEC_CFLAGS)
967   AC_SUBST(SWFDEC_LIBS)
968 ])
969
970 dnl *** theora ***
971 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORADEC, true)
972 AG_GST_CHECK_FEATURE(THEORADEC, [ogg theora codec], theoraexpdec, [
973   PKG_CHECK_MODULES(THEORADEC, theoradec, HAVE_THEORADEC="yes", [
974     HAVE_THEORADEC="no"
975     AC_MSG_RESULT(no)
976   ])
977   AC_SUBST(THEORADEC_LIBS)
978   AC_SUBST(THEORADEC_CFLAGS)
979 ])
980
981 dnl *** x264 (MPEG-4 part 10/h.264/AVC encoder) ***
982 translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
983 AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
984   AG_GST_CHECK_LIBHEADER(X264, x264, x264_nal_encode, -lm, x264.h,
985       X264_LIBS="$LDFLAGS -lx264 -lm"
986       X264_CFLAGS="$CFLAGS"
987       AC_SUBST(X264_LIBS)
988       AC_SUBST(X264_CFLAGS))
989 ])
990
991 dnl *** XVID ***
992 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
993 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
994   HAVE_XVID=no
995   AC_CHECK_HEADER(xvid.h, [
996     OLD_LIBS="$LIBS"
997     LIBS="-lm"
998     AC_CHECK_LIB(xvidcore, xvid_encore, [
999       AC_CHECK_LIB(xvidcore, xvid_decore, [
1000         AC_CHECK_LIB(xvidcore, xvid_global, [
1001           AC_MSG_CHECKING([for uptodate XviD API version])
1002           AC_TRY_COMPILE([#include <xvid.h>], [
1003               #if XVID_API_MAJOR(XVID_API) != 4
1004               #error "Incompatible XviD API version"
1005               #endif
1006           ],[ AC_MSG_RESULT(yes)
1007             XVID_LIBS="-lxvidcore -lm"
1008             AC_SUBST(XVID_LIBS)
1009             HAVE_XVID=yes
1010           ], AC_MSG_RESULT(no) )
1011         ], )
1012       ], )
1013     ], )
1014     LIBS="$OLD_LIBS"
1015   ], )
1016 ])
1017
1018 dnl *** dvb ***
1019 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1020 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1021   AC_MSG_CHECKING([Checking for up to date dvb installation])
1022   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1023 ])
1024
1025 dnl *** oss4 ***
1026 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS4, true)
1027 AG_GST_CHECK_FEATURE(OSS4, [Open Sound System 4], oss4, [
1028   AC_MSG_CHECKING([Checking if we can build the OSS4 elements])
1029   AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/stat.h sys/types.h],
1030       [HAVE_OSS4="yes"], [HAVE_OSS4="no"])
1031 ])
1032
1033 dnl *** wininet ***
1034 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1035 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1036   AC_MSG_CHECKING([Checking for windows internet support])
1037   AC_CHECK_HEADERS([windows.h wininet.h],
1038       [HAVE_WININET="yes"], [HAVE_WININET="no"])
1039 ])
1040
1041 else
1042
1043 dnl not building plugins with external dependencies,
1044 dnl but we still need to set the conditionals
1045
1046 AM_CONDITIONAL(USE_QUICKTIME, false)
1047 AM_CONDITIONAL(USE_VCD, false)
1048 AM_CONDITIONAL(USE_ALSA, false)
1049 AM_CONDITIONAL(USE_AMRWB, false)
1050 AM_CONDITIONAL(USE_BZ2, false)
1051 AM_CONDITIONAL(USE_CDAUDIO, false)
1052 AM_CONDITIONAL(USE_DC1394, false)
1053 AM_CONDITIONAL(USE_DIRECTFB, false)
1054 AM_CONDITIONAL(USE_DTS, false)
1055 AM_CONDITIONAL(USE_DIRAC, false)
1056 AM_CONDITIONAL(USE_DIVX, false)
1057 AM_CONDITIONAL(USE_DVB, false)
1058 AM_CONDITIONAL(USE_FAAC, false)
1059 AM_CONDITIONAL(USE_FAAD, false)
1060 AM_CONDITIONAL(USE_FBDEV, false)
1061 AM_CONDITIONAL(USE_GSM, false)
1062 AM_CONDITIONAL(USE_IVORBIS, false)
1063 AM_CONDITIONAL(USE_JACK, false)
1064 AM_CONDITIONAL(USE_LADSPA, false)
1065 AM_CONDITIONAL(USE_LIBMMS, false)
1066 AM_CONDITIONAL(USE_METADATA, false)
1067 AM_CONDITIONAL(USE_MPEG2ENC, false)
1068 AM_CONDITIONAL(USE_MPLEX, false)
1069 AM_CONDITIONAL(USE_MUSEPACK, false)
1070 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1071 AM_CONDITIONAL(USE_MYTHTV, false)
1072 AM_CONDITIONAL(USE_NAS, false)
1073 AM_CONDITIONAL(USE_NEON, false)
1074 AM_CONDITIONAL(USE_OFA, false)
1075 AM_CONDITIONAL(USE_OSS4, false)
1076 AM_CONDITIONAL(USE_SDL, false)
1077 AM_CONDITIONAL(USE_SNDFILE, false)
1078 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1079 AM_CONDITIONAL(USE_SPC, false)
1080 AM_CONDITIONAL(USE_SWFDEC, false)
1081 AM_CONDITIONAL(USE_THEORADEC, false)
1082 AM_CONDITIONAL(USE_TIMIDITY, false)
1083 AM_CONDITIONAL(USE_X264, false)
1084 AM_CONDITIONAL(USE_XVID, false)
1085 AM_CONDITIONAL(USE_WILDMIDI, false)
1086 AM_CONDITIONAL(USE_WININET, false)
1087
1088 fi dnl of EXT plugins
1089
1090 dnl *** finalize CFLAGS, LDFLAGS, LIBS
1091
1092 dnl Overview:
1093 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
1094 dnl GST_*:              flags shared by built objects to link against GStreamer
1095 dnl GST_ALL_LDFLAGS:    linker flags shared by all
1096 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
1097 dnl GST_LT_LDFLAGS:     library versioning of our libraries
1098 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
1099
1100 dnl GST_OPTION_CFLAGS
1101 if test "x$USE_DEBUG" = xyes; then
1102    PROFILE_CFLAGS="-g"
1103 fi
1104 AC_SUBST(PROFILE_CFLAGS)
1105
1106 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
1107   dnl Define _only_ during CVS (not pre-releases or releases)
1108   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
1109 else
1110   DEPRECATED_CFLAGS=""
1111 fi
1112 AC_SUBST(DEPRECATED_CFLAGS)
1113
1114 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
1115 dnl at make time with e.g. make ERROR_CFLAGS=""
1116 GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1117 GST_OPTION_CXXFLAGS="\$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1118 AC_SUBST(GST_OPTION_CFLAGS)
1119 AC_SUBST(GST_OPTION_CXXFLAGS)
1120
1121 dnl FIXME: do we want to rename to GST_ALL_* ?
1122 dnl prefer internal headers to already installed ones
1123 dnl also add builddir include for enumtypes and marshal
1124 dnl add GST_OPTION_CFLAGS, but overridable
1125 GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CFLAGS)"
1126 GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CXXFLAGS)"
1127 AC_SUBST(GST_CFLAGS)
1128 AC_SUBST(GST_CXXFLAGS)
1129 AC_SUBST(GST_LIBS)
1130
1131 dnl LDFLAGS really should only contain flags, not libs - they get added before
1132 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1133 GST_ALL_LDFLAGS="-no-undefined"
1134 AC_SUBST(GST_ALL_LDFLAGS)
1135
1136 dnl this really should only contain flags, not libs - they get added before
1137 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1138 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
1139 AC_SUBST(GST_PLUGIN_LDFLAGS)
1140
1141 dnl *** output files ***
1142
1143 dnl po/Makefile.in
1144
1145
1146 AC_CONFIG_FILES(
1147 Makefile
1148 gst-plugins-bad.spec
1149 gst/Makefile
1150 gst/app/Makefile
1151 gst/bayer/Makefile
1152 gst/cdxaparse/Makefile
1153 gst/deinterlace/Makefile
1154 gst/dvdspu/Makefile
1155 gst/festival/Makefile
1156 gst/filter/Makefile
1157 gst/flv/Makefile
1158 gst/freeze/Makefile
1159 gst/h264parse/Makefile
1160 gst/interleave/Makefile
1161 gst/librfb/Makefile
1162 gst/modplug/Makefile
1163 gst/modplug/libmodplug/Makefile
1164 gst/mpegtsparse/Makefile
1165 gst/mpeg4videoparse/Makefile
1166 gst/mpegvideoparse/Makefile
1167 gst/mve/Makefile
1168 gst/nsf/Makefile
1169 gst/nuvdemux/Makefile
1170 gst/rawparse/Makefile
1171 gst/replaygain/Makefile
1172 gst/rtpmanager/Makefile
1173 gst/sdp/Makefile
1174 gst/selector/Makefile
1175 gst/speed/Makefile
1176 gst/speexresample/Makefile
1177 gst/subenc/Makefile
1178 gst/stereo/Makefile
1179 gst/tta/Makefile
1180 gst/videosignal/Makefile
1181 gst/vmnc/Makefile
1182 gst/real/Makefile
1183 gst/y4m/Makefile
1184 gst-libs/Makefile
1185 gst-libs/gst/Makefile
1186 gst-libs/gst/app/Makefile
1187 gst-libs/gst/dshow/Makefile
1188 sys/Makefile
1189 sys/dshowdecwrapper/Makefile
1190 sys/dshowsrcwrapper/Makefile
1191 sys/dvb/Makefile
1192 sys/fbdev/Makefile
1193 sys/oss4/Makefile
1194 sys/qtwrapper/Makefile
1195 sys/vcd/Makefile
1196 sys/wininet/Makefile
1197 examples/Makefile
1198 examples/app/Makefile
1199 examples/directfb/Makefile
1200 examples/switch/Makefile
1201 ext/amrwb/Makefile
1202 ext/alsaspdif/Makefile
1203 ext/bz2/Makefile
1204 ext/cdaudio/Makefile
1205 ext/dc1394/Makefile
1206 ext/dirac/Makefile
1207 ext/directfb/Makefile
1208 ext/divx/Makefile
1209 ext/dts/Makefile
1210 ext/metadata/Makefile
1211 ext/faac/Makefile
1212 ext/faad/Makefile
1213 ext/gsm/Makefile
1214 ext/ivorbis/Makefile
1215 ext/jack/Makefile
1216 ext/ladspa/Makefile
1217 ext/libmms/Makefile
1218 ext/Makefile
1219 ext/nas/Makefile
1220 ext/mpeg2enc/Makefile
1221 ext/mplex/Makefile
1222 ext/musepack/Makefile
1223 ext/musicbrainz/Makefile
1224 ext/mythtv/Makefile
1225 ext/neon/Makefile
1226 ext/ofa/Makefile
1227 ext/sdl/Makefile
1228 ext/sndfile/Makefile
1229 ext/soundtouch/Makefile
1230 ext/spc/Makefile
1231 ext/swfdec/Makefile
1232 ext/theora/Makefile
1233 ext/timidity/Makefile
1234 ext/x264/Makefile
1235 ext/xvid/Makefile
1236 po/Makefile.in
1237 docs/Makefile
1238 docs/plugins/Makefile
1239 docs/version.entities
1240 common/Makefile
1241 common/m4/Makefile
1242 m4/Makefile
1243 tests/Makefile
1244 tests/check/Makefile
1245 tests/icles/Makefile
1246 win32/common/config.h
1247 )
1248 AC_OUTPUT
1249
1250 AG_GST_OUTPUT_PLUGINS