configure.ac: Disable deinterlace2 plugin again which was accidently enabled with...
[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.10, 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 *** dvdnav for resindvd ***
481 USE_DVDNAV=$BUILD_EXPERIMENTAL
482 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
483 AG_GST_CHECK_FEATURE(DVDNAV, [dvdnav library], resindvd, [
484   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
485   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
486   AG_GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
487   if test x"$HAVE_DVDNAV" = x"yes"; then
488     dnl check version
489     DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
490     DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
491     DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
492     DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
493     if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
494        [[ "$DVDNAV_MINOR" -lt "1" ]]; then
495       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
496       HAVE_DVDNAV="no"
497     elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
498          [[ "$DVDNAV_MINOR" -eq "1" ]] && \
499          [[ "$DVDNAV_MICRO" -lt "7" ]]; then
500       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
501       HAVE_DVDNAV="no"
502     elif [[ "$DVDNAV_MAJOR" -eq "0" ]]; then
503       AC_DEFINE(DVDNAV_OLD, 1, [Define if an old libdvdnav is used])      
504     fi
505   fi
506   dnl now check for dvdread/nav_print.h - see #133002
507   AC_CHECK_HEADER(dvdread/nav_print.h, , [
508       AC_MSG_WARN([header dvdread/nav_print.h from dvdread missing])
509       HAVE_DVDNAV="no"
510   ], [ #include "_stdint.h" ])
511   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
512 ])
513
514 dnl *** METADATA ***
515 translit(dnm, m, l) AM_CONDITIONAL(USE_METADATA, true)
516 AG_GST_CHECK_FEATURE(METADATA, [METADATA muxer and demuxer], metadata, [
517   HAVE_METADATA="no"
518   PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", [
519     HAVE_EXIF="no"
520   ])
521   PKG_CHECK_MODULES(IPTC, libiptcdata >= 1.0.2, HAVE_IPTC="yes", [
522     HAVE_IPTC="no"
523   ])
524   PKG_CHECK_MODULES(XMP, exempi-2.0, HAVE_XMP="yes", [
525     HAVE_XMP="no"
526   ])
527   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))
528   if test x$HAVE_EXIF = xyes; then
529     METADATA_CFLAGS="-DHAVE_EXIF $EXIF_CFLAGS $METADATA_CFLAGS"
530     METADATA_LIBS="$EXIF_LIBS $METADATA_LIBS -lm"
531     HAVE_METADATA="yes"
532   fi
533   if test x$HAVE_IPTC = xyes; then
534     METADATA_CFLAGS="-DHAVE_IPTC $IPTC_CFLAGS $METADATA_CFLAGS"
535     METADATA_LIBS="$IPTC_LIBS $METADATA_LIBS"
536     HAVE_METADATA="yes"
537   fi
538   if test x$HAVE_XMP = xyes; then
539     METADATA_CFLAGS="-DHAVE_XMP $XMP_CFLAGS $METADATA_CFLAGS"
540     METADATA_LIBS="$XMP_LIBS $METADATA_LIBS"
541     HAVE_METADATA="yes"
542   fi
543   if test x$HAVE_METADATA = xno; then
544     AC_MSG_WARN(no of metadata libraries (exif, iptc or xmp) found)
545   fi
546   dnl metadata plugin will parse whole chunks anyway
547   HAVE_METADATA="yes"
548   AC_SUBST(METADATA_CFLAGS)
549   AC_SUBST(METADATA_LIBS)
550 ])
551
552 dnl **** Free AAC Encoder (FAAC) ****
553 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
554 AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
555   AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h,
556     FAAC_LIBS="-lfaac -lm")
557   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
558   AC_SUBST(FAAC_LIBS)
559 ])
560
561 dnl **** Free AAC Decoder (FAAD) ****
562 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
563 AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
564   HAVE_FAAD="yes"
565   AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h,
566     FAAD_LIBS="-lfaad -lm", HAVE_FAAD="no")
567   if test $HAVE_FAAD = "no"; then
568     AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, -lm, neaacdec.h,
569       [ FAAD_LIBS="-lfaad -lm"
570                 AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix])
571           ],
572           HAVE_FAAD="no",)
573   fi
574   if test $HAVE_FAAD = "yes"; then
575     AC_MSG_CHECKING([Checking for FAAD >= 2.0])
576     AC_TRY_COMPILE([#include <faad.h>], [
577         #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
578         #error Not faad2
579         #else
580         /* Release candidate of 2.0 is not good enough for us. This field
581          * was added only in 2.0 final and does not exist in 2.0-RC3 */
582         faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1;
583         #endif
584     ], [
585       HAVE_FAAD="yes"
586       AC_MSG_RESULT(yes)
587     ], [
588       HAVE_FAAD="no"
589       AC_MSG_RESULT(no)
590     ])
591   fi
592   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
593   AC_SUBST(FAAD_LIBS)
594   AC_SUBST(FAAD_IS_NEAAC)
595 ])
596
597 dnl *** fbdev ***
598 translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true)
599 AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [
600   if test "x$HAVE_FBDEV" != "xyes"; then
601     AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no)
602   fi
603 ])
604
605 dnl *** gsm ***
606 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
607 AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
608   AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
609   if test $HAVE_GSM != "yes"; then
610     AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
611     if test $HAVE_GSM = "yes"; then
612       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
613     fi
614   fi
615   AC_SUBST(GSM_LIBS)
616 ])
617
618 dnl *** ivorbis ***
619 dnl AM_PATH_IVORBIS only takes two options
620 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
621 AG_GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
622   IVORBIS_LIBS=
623   IVORBIS_CFLAGS=
624   AC_CHECK_LIB(vorbisidec, vorbis_block_init,
625     [IVORBIS_LIBS=-lvorbisidec
626      HAVE_IVORBIS=yes
627      case $host in
628      arm-*-*)
629        IVORBIS_CFLAGS="-D_ARM_ASSEM_ $IVORBIS_CFLAGS"
630      esac
631     ],
632     HAVE_IVORBIS=no)
633   AC_SUBST(IVORBIS_LIBS)
634   AC_SUBST(IVORBIS_CFLAGS)
635 ])
636
637 dnl *** Jack ***
638 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
639 AG_GST_CHECK_FEATURE(JACK, Jack, jack, [
640   PKG_CHECK_MODULES(JACK, jack >= 0.99.10, HAVE_JACK="yes", HAVE_JACK="no")
641   AC_SUBST(JACK_CFLAGS)
642   AC_SUBST(JACK_LIBS)
643 ])
644
645 dnl *** ladspa ***
646 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
647 AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
648   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
649 ])
650
651 dnl *** libmms ***
652 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true)
653 AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [
654   dnl check with pkg-config first
655   PKG_CHECK_MODULES(LIBMMS, libmms >= 0.2, HAVE_LIBMMS="yes", [
656     HAVE_LIBMMS="no"
657     AC_MSG_RESULT(no)
658   ])
659 ])
660 AC_SUBST(LIBMMS_LIBS)
661
662 dnl *** mjpegtools version info ***
663 dnl some may prefer older version (given quirks above)
664 dnl hm, no version info seems available within mjpegtools headers
665 dnl and API really moves along
666 echo
667 PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [
668   mjpegtools_api=10601
669 ], [
670   PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [
671     mjpegtools_api=10800
672   ], [
673     PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0, [
674       dnl logging API changed in release candidates
675       OLD_CFLAGS="$CFLAGS"
676       OLD_LIBS="$LIBS"
677       CFLAGS="$MJPEG_CFLAGS"
678       LIBS="$LIBS $MJPEG_LIBS -lmjpegutils -lm -lpthread"
679       AC_CHECK_FUNC(mjpeg_loglev_t, [
680         mjpegtools_api=10903
681         ], [
682         mjpegtools_api=10900
683         ])
684       CFLAGS="$OLD_CFLAGS"
685       LIBS="$OLD_LIBS"
686     ], [
687       mjpegtools_api=0
688     ])
689   ])
690 ])
691 AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api,
692   [mjpegtools API evolution])
693
694 dnl *** mpeg2enc ***
695 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
696 AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
697   HAVE_MPEG2ENC="no"
698   dnl we require a c++ compiler for this one
699   if [ test x$HAVE_CXX = xyes ]; then
700     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
701     dnl since many distros include mjpegtools specifically without mplex
702     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
703     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
704       dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h'
705       touch config.h
706       dnl switch over to c++ to test things
707       AC_LANG_CPLUSPLUS
708       OLD_CPPFLAGS="$CPPFLAGS"
709       dnl HACK as above
710       CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS"
711       CPPFLAGS="$CPPFLAGS_GOOD -I."
712       dnl check headers
713       mpeg2enc_headers_ok=no
714       AC_CHECK_HEADER([mpeg2encoder.hh], [
715         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread"
716         OLD_LIBS="$LIBS"
717         LIBS="$LIBS $MPEG2ENC_LIBS"
718         AC_MSG_CHECKING([for valid mpeg2enc objects])
719         AC_TRY_RUN([
720           #include <mpeg2encoder.hh>
721           #include <mpeg2encoptions.hh>
722
723           int
724           main (int   argc,
725                 char *argv[])
726           {
727             MPEG2EncOptions *options = new MPEG2EncOptions ();
728             MPEG2Encoder *encoder = new MPEG2Encoder (*options);
729             return 0;
730           }
731         ],[
732           AC_MSG_RESULT(yes)
733           dnl so far so good, let's check more things:
734           dnl mjpegtools-1.8.0 does not install the required
735           dnl mpeg2syntaxcodes.h header by default, and a new release
736           dnl is not in sight, so check for this oversight in case
737           dnl distros or folks have fixed this themselves
738           if test "$mjpegtools_api" -ge "10800"; then
739             AC_CHECK_HEADER([mpeg2syntaxcodes.h], [
740                 mpeg2enc_headers_ok=yes
741               ], [
742                 mpeg2enc_headers_ok=no
743               ])
744           else
745             mpeg2enc_headers_ok=yes
746           fi
747           if test "x$mpeg2enc_headers_ok" = "xyes"; then
748             HAVE_MPEG2ENC="yes"
749           fi
750           CPP_FLAGS="$CPPFLAGS_GOOD"
751           AC_SUBST(MPEG2ENC_CFLAGS)
752           AC_SUBST(MPEG2ENC_LIBS)
753         ], [
754           AC_MSG_RESULT(no)
755         ])
756         LIBS="$OLD_LIBS"
757       ])
758
759       CPPFLAGS="$OLD_CPPFLAGS"
760       AC_LANG_C
761     ], [
762       HAVE_MPEG2ENC="no"
763     ])
764   fi
765 ])
766
767 dnl *** mplex ***
768 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
769 AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
770   HAVE_MPLEX="no"
771   dnl we require a c++ compiler for this one
772   if [ test x$HAVE_CXX = xyes ]; then
773     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
774     dnl since many distros include mjpegtools specifically without mplex
775     dnl and mpeg2enc, we check for mplex on its own, too.
776     dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems
777     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [
778       dnl switch over to c++ to test things
779       AC_LANG_CPLUSPLUS
780       OLD_CPPFLAGS="$CPPFLAGS"
781       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
782       AC_CHECK_HEADER(interact.hpp, [
783         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
784         OLD_LIBS="$LIBS"
785         LIBS="$LIBS $MPLEX_LIBS"
786         dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI;
787         dnl don't want this here
788         AC_MSG_CHECKING([for valid mplex objects])
789         AC_TRY_RUN([
790
791 #include <interact.hpp>
792 #include <outputstrm.hpp>
793 #include <multiplexor.hpp>
794 int
795 main (int   argc,
796       char *argv[])
797 {
798   class TestOutputStream : public OutputStream {
799   public:
800     TestOutputStream () : OutputStream () { }
801     void Write (uint8_t *a, unsigned int b) { }
802     void NextSegment () { }
803     uint64_t SegmentSize () { }
804     void Close () { }
805     int Open () { }
806 };
807   MultiplexJob *job = new MultiplexJob ();
808   vector<IBitStream *> inputs;
809   job->SetupInputStreams (inputs);
810   TestOutputStream *out = new TestOutputStream ();
811   Multiplexor *mux = new Multiplexor(*job, *out, NULL);
812   return 0;
813 }
814         ],[
815           HAVE_MPLEX="yes"
816           AC_SUBST(MPLEX_CFLAGS)
817           AC_SUBST(MPLEX_LIBS)
818           AC_MSG_RESULT(yes)
819         ], AC_MSG_RESULT(no))
820         LIBS="$OLD_LIBS"
821       ])
822       CPPFLAGS="$OLD_CPPFLAGS"
823       AC_LANG_C
824     ], HAVE_MPLEX="no")
825   fi
826 ])
827
828 dnl *** musepack ***
829 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true)
830 AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [
831   AC_CHECK_HEADER([mpc/mpcdec.h], [
832     HAVE_MUSEPACK="yes"
833     MUSEPACK_LIBS="-lmpcdec"
834     AC_SUBST(MUSEPACK_LIBS)
835     ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [
836       HAVE_MUSEPACK="yes"
837       MUSEPACK_LIBS="-lmpcdec"
838       AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used])
839       AC_SUBST(MUSEPACK_LIBS)
840     ], [HAVE_MUSEPACK="no"])])
841 ])
842
843 dnl *** musicbrainz ***
844 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
845 AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [
846   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
847   AC_SUBST(MUSICBRAINZ_CFLAGS)
848   AC_SUBST(MUSICBRAINZ_LIBS)
849 ])
850
851 dnl *** MythTV ***
852 translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true)
853 AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [
854   PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [
855     HAVE_MYTHTV="no"
856     AC_MSG_RESULT(no)
857   ])
858   AC_SUBST(GMYTH_CFLAGS)
859   AC_SUBST(GMYTH_LIBS)
860 ])
861
862 dnl *** nas ***
863 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
864 AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
865   HAVE_NAS="no"
866   AG_GST_CHECK_X
867   if test "x$HAVE_X" = "xyes"; then
868     save_cppflags=$CFLAGS
869     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
870     AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
871       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
872     CPPFLAGS="$save_cppflags"
873   fi
874   AC_SUBST(NAS_CFLAGS)
875   AC_SUBST(NAS_LIBS)
876 ])
877
878 dnl *** neon ***
879 translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true)
880 AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [
881   PKG_CHECK_MODULES(NEON, neon >= 0.26.0  neon <= 0.28.99, HAVE_NEON="yes", [
882     HAVE_NEON="no"
883     AC_MSG_RESULT(no)
884   ])
885   AC_SUBST(NEON_CFLAGS)
886   AC_SUBST(NEON_LIBS)
887 ])
888
889 dnl *** ofa ***
890 translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true)
891 AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [
892   PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [
893     HAVE_OFA="no"
894     AC_MSG_RESULT(no)
895   ])
896   AC_SUBST(OFA_CFLAGS)
897   AC_SUBST(OFA_LIBS)
898 ])
899
900 dnl *** timidity ***
901 translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true)
902 AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [
903   PKG_CHECK_MODULES(TIMIDITY, libtimidity, [
904     HAVE_TIMIDITY="yes",
905         AC_MSG_CHECKING([for timidity.cfg])
906         timidity_cfg=""
907         if test -r /etc/timidity.cfg; then
908           timidity_cfg=/etc/timidity.cfg
909         elif test -r /etc/timidity/timidity.cfg; then
910           timidity_cfg=/etc/timidity/timidity.cfg
911         elif test -r /usr/share/timidity/timidity.cfg; then
912           timidity_cfg=/usr/share/timidity/timidity.cfg
913         elif test -r /usr/local/share/timidity/timidity.cfg; then
914           timidity_cfg=/usr/local/share/timidity/timidity.cfg
915         fi
916         if test "x$timidity_cfg" != "x"; then
917           AC_MSG_RESULT($timidity_cfg)
918       AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg])
919         else
920           AC_MSG_RESULT([not found])
921         fi
922   ], [
923     HAVE_TIMIDITY="no"
924     AC_MSG_RESULT(no)
925   ])
926   AC_SUBST(TIMIDITY_CFLAGS)
927   AC_SUBST(TIMIDITY_LIBS)
928 ])
929
930 dnl *** wildmidi ***
931 translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true)
932 AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [
933   AC_CHECK_HEADER([wildmidi_lib.h],HAVE_WILDMIDI=yes, HAVE_WILDMIDI=no)
934   if test "x$HAVE_WILDMIDI" = "xyes"; then
935          WILDMIDI_CFLAGS=
936          WILDMIDI_LIBS=-lWildMidi
937          AC_MSG_NOTICE(compiling gstWildMidi)
938   else
939          WILDMIDI_CFLAGS=
940          WILDMIDI_LIBS=
941          AC_MSG_WARN(no WildMidi library found (libWildMidi))
942   fi
943   AC_SUBST(WILDMIDI_CFLAGS)
944   AC_SUBST(WILDMIDI_LIBS)
945 ])
946
947 dnl *** SDL ***
948 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
949 AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [
950     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
951 ])
952
953 dnl *** sndfile ***
954 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
955 AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
956   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
957   AC_SUBST(SNDFILE_CFLAGS)
958   AC_SUBST(SNDFILE_LIBS)
959 ])
960
961 dnl *** soundtouch ***
962 translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true)
963 AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [
964   PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0,
965     HAVE_SOUNDTOUCH=yes, 
966     [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch,
967       HAVE_SOUNDTOUCH=yes,
968       HAVE_SOUNDTOUCH=no)])
969   AC_SUBST(SOUNDTOUCH_CFLAGS)
970   AC_SUBST(SOUNDTOUCH_LIBS)
971   if test "x$HAVE_CXX" != "xyes"; then
972     USE_SOUNDTOUCH=false
973     AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found])
974   fi
975 ])
976
977 dnl *** spc ***
978 translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true)
979 AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [
980   AC_CHECK_HEADER(openspc.h, [
981     AC_CHECK_LIB(openspc, OSPC_Init, [
982       SPC_LIBS="-lopenspc"
983       AC_SUBST(SPC_LIBS)
984       HAVE_SPC=yes
985     ], [
986       HAVE_SPC=no
987     ])
988   ], [
989     HAVE_SPC=no
990   ])
991 ])
992
993 dnl *** swfdec ***
994 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
995 AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
996   PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [
997     HAVE_SWFDEC=no
998     AC_MSG_RESULT(no)
999   ])
1000   AC_SUBST(SWFDEC_CFLAGS)
1001   AC_SUBST(SWFDEC_LIBS)
1002 ])
1003
1004 dnl *** theora ***
1005 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORADEC, true)
1006 AG_GST_CHECK_FEATURE(THEORADEC, [ogg theora codec], theoraexpdec, [
1007   PKG_CHECK_MODULES(THEORADEC, theoradec, HAVE_THEORADEC="yes", [
1008     HAVE_THEORADEC="no"
1009     AC_MSG_RESULT(no)
1010   ])
1011   AC_SUBST(THEORADEC_LIBS)
1012   AC_SUBST(THEORADEC_CFLAGS)
1013 ])
1014
1015 dnl *** x264 (MPEG-4 part 10/h.264/AVC encoder) ***
1016 translit(dnm, m, l) AM_CONDITIONAL(USE_X264, true)
1017 AG_GST_CHECK_FEATURE(X264, [x264 plug-in], x264, [
1018   AG_GST_CHECK_LIBHEADER(X264, x264, x264_nal_encode, -lm, x264.h,
1019       X264_LIBS="$LDFLAGS -lx264 -lm"
1020       X264_CFLAGS="$CFLAGS"
1021       AC_SUBST(X264_LIBS)
1022       AC_SUBST(X264_CFLAGS))
1023 ])
1024
1025 dnl *** XVID ***
1026 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1027 AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1028   HAVE_XVID=no
1029   AC_CHECK_HEADER(xvid.h, [
1030     OLD_LIBS="$LIBS"
1031     LIBS="-lm"
1032     AC_CHECK_LIB(xvidcore, xvid_encore, [
1033       AC_CHECK_LIB(xvidcore, xvid_decore, [
1034         AC_CHECK_LIB(xvidcore, xvid_global, [
1035           AC_MSG_CHECKING([for uptodate XviD API version])
1036           AC_TRY_COMPILE([#include <xvid.h>], [
1037               #if XVID_API_MAJOR(XVID_API) != 4
1038               #error "Incompatible XviD API version"
1039               #endif
1040           ],[ AC_MSG_RESULT(yes)
1041             XVID_LIBS="-lxvidcore -lm"
1042             AC_SUBST(XVID_LIBS)
1043             HAVE_XVID=yes
1044           ], AC_MSG_RESULT(no) )
1045         ], )
1046       ], )
1047     ], )
1048     LIBS="$OLD_LIBS"
1049   ], )
1050 ])
1051
1052 dnl *** dvb ***
1053 translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true)
1054 AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [
1055   AC_MSG_CHECKING([Checking for up to date dvb installation])
1056   AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"])
1057 ])
1058
1059 dnl *** oss4 ***
1060 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS4, true)
1061 AG_GST_CHECK_FEATURE(OSS4, [Open Sound System 4], oss4, [
1062   AC_MSG_CHECKING([Checking if we can build the OSS4 elements])
1063   AC_CHECK_HEADERS([fcntl.h sys/ioctl.h sys/stat.h sys/types.h],
1064       [HAVE_OSS4="yes"], [HAVE_OSS4="no"])
1065 ])
1066
1067 dnl *** wininet ***
1068 translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true)
1069 AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [
1070   AC_MSG_CHECKING([Checking for windows internet support])
1071   AC_CHECK_HEADERS([windows.h wininet.h],
1072       [HAVE_WININET="yes"], [HAVE_WININET="no"])
1073 ])
1074
1075 else
1076
1077 dnl not building plugins with external dependencies,
1078 dnl but we still need to set the conditionals
1079
1080 AM_CONDITIONAL(USE_QUICKTIME, false)
1081 AM_CONDITIONAL(USE_VCD, false)
1082 AM_CONDITIONAL(USE_ALSA, false)
1083 AM_CONDITIONAL(USE_AMRWB, false)
1084 AM_CONDITIONAL(USE_BZ2, false)
1085 AM_CONDITIONAL(USE_CDAUDIO, false)
1086 AM_CONDITIONAL(USE_DC1394, false)
1087 AM_CONDITIONAL(USE_DIRECTFB, false)
1088 AM_CONDITIONAL(USE_DTS, false)
1089 AM_CONDITIONAL(USE_DIRAC, false)
1090 AM_CONDITIONAL(USE_DIVX, false)
1091 AM_CONDITIONAL(USE_DVB, false)
1092 AM_CONDITIONAL(USE_FAAC, false)
1093 AM_CONDITIONAL(USE_FAAD, false)
1094 AM_CONDITIONAL(USE_FBDEV, false)
1095 AM_CONDITIONAL(USE_GSM, false)
1096 AM_CONDITIONAL(USE_IVORBIS, false)
1097 AM_CONDITIONAL(USE_JACK, false)
1098 AM_CONDITIONAL(USE_LADSPA, false)
1099 AM_CONDITIONAL(USE_LIBMMS, false)
1100 AM_CONDITIONAL(USE_METADATA, false)
1101 AM_CONDITIONAL(USE_MPEG2ENC, false)
1102 AM_CONDITIONAL(USE_MPLEX, false)
1103 AM_CONDITIONAL(USE_MUSEPACK, false)
1104 AM_CONDITIONAL(USE_MUSICBRAINZ, false)
1105 AM_CONDITIONAL(USE_MYTHTV, false)
1106 AM_CONDITIONAL(USE_NAS, false)
1107 AM_CONDITIONAL(USE_NEON, false)
1108 AM_CONDITIONAL(USE_OFA, false)
1109 AM_CONDITIONAL(USE_OSS4, false)
1110 AM_CONDITIONAL(USE_SDL, false)
1111 AM_CONDITIONAL(USE_SNDFILE, false)
1112 AM_CONDITIONAL(USE_SOUNDTOUCH, false)
1113 AM_CONDITIONAL(USE_SPC, false)
1114 AM_CONDITIONAL(USE_SWFDEC, false)
1115 AM_CONDITIONAL(USE_THEORADEC, false)
1116 AM_CONDITIONAL(USE_TIMIDITY, false)
1117 AM_CONDITIONAL(USE_X264, false)
1118 AM_CONDITIONAL(USE_XVID, false)
1119 AM_CONDITIONAL(USE_WILDMIDI, false)
1120 AM_CONDITIONAL(USE_WININET, false)
1121
1122 fi dnl of EXT plugins
1123
1124 dnl *** finalize CFLAGS, LDFLAGS, LIBS
1125
1126 dnl Overview:
1127 dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
1128 dnl GST_*:              flags shared by built objects to link against GStreamer
1129 dnl GST_ALL_LDFLAGS:    linker flags shared by all
1130 dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
1131 dnl GST_LT_LDFLAGS:     library versioning of our libraries
1132 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
1133
1134 dnl GST_OPTION_CFLAGS
1135 if test "x$USE_DEBUG" = xyes; then
1136    PROFILE_CFLAGS="-g"
1137 fi
1138 AC_SUBST(PROFILE_CFLAGS)
1139
1140 if test "x$PACKAGE_VERSION_NANO" = "x1"; then
1141   dnl Define _only_ during CVS (not pre-releases or releases)
1142   DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
1143 else
1144   DEPRECATED_CFLAGS=""
1145 fi
1146 AC_SUBST(DEPRECATED_CFLAGS)
1147
1148 dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden
1149 dnl at make time with e.g. make ERROR_CFLAGS=""
1150 GST_OPTION_CFLAGS="\$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1151 GST_OPTION_CXXFLAGS="\$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
1152 AC_SUBST(GST_OPTION_CFLAGS)
1153 AC_SUBST(GST_OPTION_CXXFLAGS)
1154
1155 dnl FIXME: do we want to rename to GST_ALL_* ?
1156 dnl prefer internal headers to already installed ones
1157 dnl also add builddir include for enumtypes and marshal
1158 dnl add GST_OPTION_CFLAGS, but overridable
1159 GST_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CFLAGS)"
1160 GST_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs $GST_CFLAGS \$(GST_OPTION_CXXFLAGS)"
1161 AC_SUBST(GST_CFLAGS)
1162 AC_SUBST(GST_CXXFLAGS)
1163 AC_SUBST(GST_LIBS)
1164
1165 dnl LDFLAGS really should only contain flags, not libs - they get added before
1166 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1167 GST_ALL_LDFLAGS="-no-undefined"
1168 AC_SUBST(GST_ALL_LDFLAGS)
1169
1170 dnl this really should only contain flags, not libs - they get added before
1171 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
1172 GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
1173 AC_SUBST(GST_PLUGIN_LDFLAGS)
1174
1175 dnl *** output files ***
1176
1177 dnl po/Makefile.in
1178
1179
1180 AC_CONFIG_FILES(
1181 Makefile
1182 gst-plugins-bad.spec
1183 gst/Makefile
1184 gst/app/Makefile
1185 gst/bayer/Makefile
1186 gst/cdxaparse/Makefile
1187 gst/deinterlace/Makefile
1188 gst/dvdspu/Makefile
1189 gst/festival/Makefile
1190 gst/filter/Makefile
1191 gst/flv/Makefile
1192 gst/freeze/Makefile
1193 gst/h264parse/Makefile
1194 gst/interleave/Makefile
1195 gst/librfb/Makefile
1196 gst/modplug/Makefile
1197 gst/modplug/libmodplug/Makefile
1198 gst/mpegtsparse/Makefile
1199 gst/mpeg4videoparse/Makefile
1200 gst/mpegvideoparse/Makefile
1201 gst/mve/Makefile
1202 gst/nsf/Makefile
1203 gst/nuvdemux/Makefile
1204 gst/rawparse/Makefile
1205 gst/replaygain/Makefile
1206 gst/rtpmanager/Makefile
1207 gst/sdp/Makefile
1208 gst/selector/Makefile
1209 gst/speed/Makefile
1210 gst/speexresample/Makefile
1211 gst/subenc/Makefile
1212 gst/stereo/Makefile
1213 gst/tta/Makefile
1214 gst/videosignal/Makefile
1215 gst/vmnc/Makefile
1216 gst/real/Makefile
1217 gst/y4m/Makefile
1218 gst-libs/Makefile
1219 gst-libs/gst/Makefile
1220 gst-libs/gst/app/Makefile
1221 gst-libs/gst/dshow/Makefile
1222 sys/Makefile
1223 sys/dshowdecwrapper/Makefile
1224 sys/dshowsrcwrapper/Makefile
1225 sys/dshowvideosink/Makefile
1226 sys/dvb/Makefile
1227 sys/fbdev/Makefile
1228 sys/oss4/Makefile
1229 sys/qtwrapper/Makefile
1230 sys/vcd/Makefile
1231 sys/wininet/Makefile
1232 examples/Makefile
1233 examples/app/Makefile
1234 examples/directfb/Makefile
1235 examples/switch/Makefile
1236 ext/amrwb/Makefile
1237 ext/alsaspdif/Makefile
1238 ext/bz2/Makefile
1239 ext/cdaudio/Makefile
1240 ext/dc1394/Makefile
1241 ext/dirac/Makefile
1242 ext/directfb/Makefile
1243 ext/divx/Makefile
1244 ext/dts/Makefile
1245 ext/metadata/Makefile
1246 ext/faac/Makefile
1247 ext/faad/Makefile
1248 ext/gsm/Makefile
1249 ext/ivorbis/Makefile
1250 ext/jack/Makefile
1251 ext/ladspa/Makefile
1252 ext/libmms/Makefile
1253 ext/Makefile
1254 ext/nas/Makefile
1255 ext/mpeg2enc/Makefile
1256 ext/mplex/Makefile
1257 ext/musepack/Makefile
1258 ext/musicbrainz/Makefile
1259 ext/mythtv/Makefile
1260 ext/neon/Makefile
1261 ext/ofa/Makefile
1262 ext/resindvd/Makefile
1263 ext/sdl/Makefile
1264 ext/sndfile/Makefile
1265 ext/soundtouch/Makefile
1266 ext/spc/Makefile
1267 ext/swfdec/Makefile
1268 ext/theora/Makefile
1269 ext/timidity/Makefile
1270 ext/x264/Makefile
1271 ext/xvid/Makefile
1272 po/Makefile.in
1273 docs/Makefile
1274 docs/plugins/Makefile
1275 docs/version.entities
1276 common/Makefile
1277 common/m4/Makefile
1278 m4/Makefile
1279 tests/Makefile
1280 tests/check/Makefile
1281 tests/icles/Makefile
1282 win32/common/config.h
1283 )
1284 AC_OUTPUT
1285
1286 AG_GST_OUTPUT_PLUGINS