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