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