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