co/: add AX_CREATE_STDINT_H to get correct type definitions for a52dec in _stdint.h.
[platform/upstream/gst-plugins-good.git] / configure.ac
1 dnl autoconf configuration file for gst-plugins 
2 AC_INIT
3 AC_CANONICAL_TARGET([])
4
5 dnl We disable static building for development, for time savings
6 dnl this goes before AS_LIBTOOL to appease autoconf
7 dnl *NOTE*: dnl this line before release, so release does static too
8 AM_DISABLE_STATIC
9
10 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
11 AM_MAINTAINER_MODE
12
13 dnl when going to/from release please set the nano (fourth number) right !
14 dnl releases only do Wall, cvs and prerelease does Werror too
15 AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 3, 1, GST_CVS="no", GST_CVS="yes")
16
17 dnl add a suffix to apps
18 if test x$program_suffix = xNONE ; then
19   program_suffix=-$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
20 fi
21
22 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
23
24 dnl our libraries and install dirs use major.minor as a version
25 GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
26 AC_SUBST(GST_MAJORMINOR)
27
28 dnl CURRENT, REVISION, AGE
29 dnl - library source changed -> increment REVISION
30 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
31 dnl - interfaces added -> increment AGE
32 dnl - interfaces removed -> AGE = 0
33 AS_LIBTOOL(GST_PLUGINS, 2, 0, 0)
34
35 dnl FIXME take something else ?
36 AC_CONFIG_SRCDIR([gst/law/alaw.c])
37 AM_CONFIG_HEADER(config.h)
38
39 dnl Add parameters for aclocal
40 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
41 ACLOCAL_FLAGS="-I m4 -I common/m4"
42 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
43
44 AC_PROG_CC
45 AM_PROG_CC_STDC
46 AM_PROG_AS
47 AS="${CC}"
48
49 dnl the gettext stuff needed
50 AM_GNU_GETTEXT_VERSION(0.11.4)
51 AM_GNU_GETTEXT([external])
52                                                                                 
53 GETTEXT_PACKAGE=gst-plugins-$GST_MAJORMINOR
54 AC_SUBST(GETTEXT_PACKAGE)
55 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE",
56                    [gettext package name])
57                                                                                 
58 dnl define LOCALEDIR in config.h
59 AS_AC_EXPAND(LOCALEDIR, $datadir/locale)
60 AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR",
61                    [gettext locale dir])
62
63 dnl decide on error flags
64 AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no")
65
66 if test "x$GST_WALL" = "xyes"; then
67    GST_ERROR="$GST_ERROR -Wall"
68
69    if test "x$GST_CVS" = "xyes"; then
70      AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR")
71      GST_ERROR="$GST_ERROR -DG_DISABLE_DEPRECATED"
72    fi
73 fi
74
75 dnl determine c++ compiler
76 AC_PROG_CXX
77 dnl determine if c++ is available on this system
78 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
79 dnl determine c++ preprocessor
80 AC_PROG_CXXCPP
81 AC_ISC_POSIX
82
83 AC_HEADER_STDC([])
84 AC_C_INLINE
85 AX_CREATE_STDINT_H
86
87 dnl Check for a way to display the function name in debug output
88 GST_CHECK_FUNCTION()
89
90 dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
91 dnl messages printed when running cvs builds
92 if test "x$GST_CVS" = "xyes"; then
93   AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use])
94 fi
95
96 dnl ############################################
97 dnl # Super Duper options for plug-in building #
98 dnl ############################################
99
100 dnl ext plug-ins; plug-ins that have external dependencies
101 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
102 [HAVE_EXTERNAL=yes],enabled,
103 [
104   AC_MSG_WARN(building external plug-ins)
105   BUILD_EXTERNAL="yes"
106 ],[
107   AC_MSG_WARN(all plug-ins with external dependencies will not be built)
108   BUILD_EXTERNAL="no"
109 ])
110 # make BUILD_EXTERNAL available to Makefile.am
111 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
112
113 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
114 dnl read 'builds, but might not work'UTO
115 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
116 [HAVE_EXPERIMENTAL=yes],disabled,
117 [
118   AC_MSG_WARN(building experimental plug-ins)
119   USE_TARKIN="yes"
120   USE_SHOUT2="yes"
121 ],[
122   AC_MSG_NOTICE(not building experimental plug-ins)
123   USE_TARKIN="no"
124   USE_SHOUT2="no"
125 ])
126
127 dnl broken plug-ins; stuff that doesn't seem to build at the moment
128 GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
129 HAVE_BROKEN=yes,disabled,
130 [  
131   AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
132 ],[
133   AC_MSG_NOTICE([not building broken plug-ins])
134 ])
135
136 dnl ##############################
137 dnl # Do automated configuration #
138 dnl ##############################
139
140 dnl Check for tools:
141 dnl ================
142
143 dnl allow for different autotools
144 AS_AUTOTOOLS_ALTERNATE()
145
146 dnl modify pkg-config path
147 AC_ARG_WITH(pkg-config-path, 
148    AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
149    [export PKG_CONFIG_PATH=${withval}])
150
151 dnl Check for nasm
152 AC_PATH_PROG(NASM_PATH, nasm, no)
153 AC_SUBST(NASM_PATH)
154 if test x$NASM_PATH = xno; then
155   AC_MSG_WARN(Couldn't find nasm)
156   HAVE_NASM="no"
157 else
158   AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
159   HAVE_NASM="yes"
160 fi
161
162 dnl check for gconftool-2
163 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
164 GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
165   AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
166   if test x$GCONFTOOL = xno; then
167     AC_MSG_WARN(Not installing GConf schemas)
168     HAVE_GCONFTOOL="no"
169   else
170     AM_GCONF_SOURCE_2
171     HAVE_GCONFTOOL="yes"
172   fi
173   AC_SUBST(HAVE_GCONFTOOL)
174 ])
175
176 dnl check for GConf libraries
177 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
178 GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
179   PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
180   AC_SUBST(GCONF_CFLAGS)
181   AC_SUBST(GCONF_LIBS)
182 ])
183
184 dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
185 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
186   HAVE_GST="yes", HAVE_GST="no")
187
188 if test "x$HAVE_GST" = "xno"; then
189   AC_MSG_ERROR(no GStreamer found)
190 fi
191
192 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
193 if test -z $GST_TOOLS_DIR; then
194   AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
195 fi
196 AC_SUBST(GST_TOOLS_DIR)
197
198 dnl check for gstreamer-control; uninstalled is selected preferentially
199 PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
200   HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")
201
202 if test "x$HAVE_GST_CONTROL" = "xno"; then
203   AC_MSG_ERROR(no GStreamer Control Libs found)
204 fi
205
206 AC_SUBST(GST_CONTROL_LIBS)
207
208 dnl Set up conditionals for (target) architecture:
209 dnl ==============================================
210
211 dnl Determine CPU
212 case "x${target_cpu}" in
213   xi?86 | k?) HAVE_CPU_I386=yes
214               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
215               dnl FIXME could use some better detection
216               dnl       (ie CPUID)
217               case "x${target_cpu}" in
218                 xi386 | xi486) ;;
219                 *)             AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
220               esac ;;
221   xpowerpc)   HAVE_CPU_PPC=yes
222               AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
223   xalpha)     HAVE_CPU_ALPHA=yes
224               AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
225   xarm*)      HAVE_CPU_ARM=yes
226               AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
227   xsparc*)    HAVE_CPU_SPARC=yes
228               AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
229   xmips*)     HAVE_CPU_MIPS=yes
230               AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
231   xhppa*)     HAVE_CPU_HPPA=yes
232               AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
233 esac
234 # make these available to automake
235 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
236 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
237 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
238 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
239 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
240
241 dnl Determine endianness
242 AC_C_BIGENDIAN
243
244 dnl Check for fast float to int casting as defined in C99
245 AC_C99_FUNC_LRINT()
246 AC_C99_FUNC_LRINTF()
247
248 dnl Check for essential libraries first:
249 dnl ====================================
250
251 GST_GLIB2_CHECK()
252
253 dnl Check for additional libraries that we might use:
254 dnl =================================================
255 dnl GTK
256 HAVE_GTK=NO
257 PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no)
258 if test "x$HAVE_GTK_22" = "xyes"; then
259   HAVE_GTK=yes
260   GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0`
261   AC_SUBST(GTK_VERSION)
262   GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
263   GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0`
264   GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0`
265   AC_SUBST(GTK_BASE_DIR)
266 else
267   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
268 fi
269 if test "x$HAVE_GTK_20" = "xyes"; then
270   HAVE_GTK=yes
271 fi
272 GTK_CFLAGS=$GTK2_CFLAGS
273 GTK_LIBS=$GTK2_LIBS
274 AC_SUBST(GTK_LIBS)
275 AC_SUBST(GTK_CFLAGS)
276 AC_SUBST(HAVE_GTK)
277
278 # gdk_pixbuf gstreamer loader is considered experimental, so disable
279 # by default
280 if test "x$HAVE_GTK_22" = "xyes"; then
281   HAVE_GDK_LOADERS=yes
282 else
283   HAVE_GDK_LOADERS=no
284 fi
285
286 AC_ARG_ENABLE(gdk-pixbuf-loader,
287   AC_HELP_STRING([--enable-gdk-pixbuf-loader],
288               [whether to enable building of gdk_pixbuf loader]),
289               :, HAVE_GDK_LOADERS="no")
290
291 # allow customization of pixbuf loader install location
292 # when nothing specified, adhere to prefix settings
293 # when called without any option with this argument, autodetect
294 # when called with a path, set to the given path
295
296 if test "x$HAVE_GDK_LOADERS" == "xyes"; then
297   AC_PATH_PROG(QUERYLOADERS, gdk-pixbuf-query-loaders, no)
298   AC_ARG_WITH(gdk-pixbuf-loader-dir, 
299      AC_HELP_STRING([--with-gdk-pixbuf-loader-dir],
300         [directory to install the gdk_pixbuf loader (none for pkg-config default)]),
301      [
302       if test "x${withval}" != xyes ; then
303         GDK_PIXBUF_LOADER_DIR="${withval}"
304       else
305         GDK_PIXBUF_LOADER_DIR="$GDK_PIXBUF_LIBDIR/gtk-2.0/\$GTK_VERSION/loaders"
306       fi
307      ],
308      # nothing specified
309      GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders
310   )
311   AS_AC_EXPAND(GDK_PIXBUF_LOADER_DIR, $GDK_PIXBUF_LOADER_DIR)
312   AC_SUBST(GDK_PIXBUF_LOADER_DIR)
313   AC_MSG_NOTICE([Putting GTK+-2 pixbuf loaders in $GDK_PIXBUF_LOADER_DIR])
314   
315   # allow customization of pixbuf loader configuration file
316   # when nothing specified, adhere to prefix settings
317   # when called without any option with this argument, autodetect
318   # when called with a path, set to the given path
319   AC_ARG_WITH(gdk-pixbuf-conf-dir, 
320      AC_HELP_STRING([--with-gdk-pixbuf-conf-dir],
321         [directory to install the gdk_pixbuf config (none for pkg-config default)]),
322      [
323       if test "x${withval}" != xyes ; then
324         GDK_PIXBUF_CONF_DIR="${withval}"
325       else
326         GDK_PIXBUF_CONF_DIR="$GDK_PIXBUF_PREFIXDIR/etc/gtk-2.0/"
327       fi
328      ],
329      # nothing specified
330      GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders
331      GDK_PIXBUF_CONF_DIR=${sysconfdir}/gtk-2.0
332   )
333   AS_AC_EXPAND(GDK_PIXBUF_CONF_DIR, $GDK_PIXBUF_CONF_DIR)
334   AC_SUBST(GDK_PIXBUF_CONF_DIR)
335   AC_MSG_NOTICE([Putting GTK+-2 pixbuf loader config in $GDK_PIXBUF_CONF_DIR])
336 fi
337 AM_CONDITIONAL(HAVE_GDK_LOADERS, test "x$HAVE_GDK_LOADERS" = "xyes")
338
339 dnl ===========================================================================
340 dnl ============================= gst plug-ins ================================
341 dnl ===========================================================================
342
343 plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
344 AC_SUBST(plugindir)
345
346 GST_PLUGIN_LDFLAGS='-module -avoid-version'
347 AC_SUBST(GST_PLUGIN_LDFLAGS)
348
349 dnl these are all the gst plug-ins, compilable without additional libs
350 GST_PLUGINS_ALL="\
351         ac3parse \
352         adder \
353         asfdemux \
354         audioconvert \
355         audioscale \
356         auparse \
357         avi \
358         cdxaparse \
359         chart \
360         colorspace \
361         cutter \
362         debug \
363         deinterlace \
364         effectv \
365         festival \
366         filter \
367         flx \
368         goom \
369         id3 \
370         intfloat \
371         law \
372         level \
373         matroska \
374         median \
375         mixmatrix \
376         mpeg1sys \
377         mpeg1videoparse \
378         mpeg2sub \
379         mpegaudio \
380         mpegaudioparse \
381         mpegstream \
382         monoscope \
383         oneton \
384         overlay \
385         passthrough \
386         playondemand \
387         qtdemux \
388         realmedia \
389         rtjpeg \
390         rtp \
391         silence \
392         sine \
393         smooth \
394         smpte \
395         spectrum \
396         speed \
397         stereo \
398         switch \
399         synaesthesia \
400         tags \
401         tcp \
402         typefind \
403         udp \
404         vbidec \
405         videocrop \
406         videodrop \
407         videoflip \
408         videofilter \
409         videoscale \
410         videotestsrc \
411         volenv \
412         volume \
413         wavenc \
414         wavparse \
415         y4m"
416
417 dnl see if we can build C++ plug-ins
418 if test "x$HAVE_CXX" = "xyes"; then
419   GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
420                   modplug"
421 else
422   AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
423 fi
424
425 AC_SUBST(GST_PLUGINS_ALL)
426
427 GST_PLUGINS_SELECTED=""
428
429 AC_ARG_WITH(plugins,
430     AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
431     [for i in `echo $withval | tr , ' '`; do
432         if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
433             GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
434         else
435             echo "plug-in $i not recognized, ignoring..."
436         fi
437     done],
438     [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
439
440 AC_SUBST(GST_PLUGINS_SELECTED)
441
442 dnl ==========================================================================
443 dnl ============================= sys plug-ins ================================
444 dnl ==========================================================================
445
446 dnl *** DXR3 card ***
447 translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
448 GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder],
449   dxr3videosink dxr3audiosink dxr3spusink, [
450   HAVE_DXR3=yes
451   AC_CHECK_HEADER(linux/em8300.h, ,
452                   [ AC_MSG_WARN([DXR3/em8300 header file not found]) &&
453                     HAVE_DXR3=no ] )
454   AC_CHECK_HEADER(linux/soundcard.h, ,
455                   [ AC_MSG_WARN([Generic sound header file not found]) &&
456                     HAVE_DXR3=no ] )
457 ])
458
459 dnl *** OSS audio ***
460 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
461 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
462   AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
463 ])
464
465 dnl *** QuickCam ***
466 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
467 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
468   if test "x$HAVE_CPU_I386" != "xyes";
469   then
470     HAVE_QCAM="no"
471   else
472     AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no")
473   fi
474   if test "x$HAVE_QCAM" != "xyes";
475   then
476     AC_MSG_WARN([QuickCam only works on i386-linux])
477   fi
478 ])
479
480 dnl *** Video CD ***
481 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
482 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
483   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
484 ])
485
486 dnl *** CDROM Audio ***
487 translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
488 GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
489   AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
490   AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
491 dnl  AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix
492
493   if test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes" || test "${ac_cv_header_dmedia_cdaudio_h}" = "yes"; then
494         case "$host" in 
495                 *-sun-* | *-*-linux*)
496                         AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
497                 ;;
498                 *-*-freebsd*)
499                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
500                 ;;
501                 *-*-netbsd* | *-*-openbsd*)
502                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
503                         AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
504                 ;;
505                 *-*darwin*)
506                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
507                         AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
508                 ;;
509 dnl             *-irix-*)
510 dnl                     AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
511 dnl             ;;
512     esac
513
514         HAVE_CDROM="yes"
515   else
516         HAVE_CDROM="no"
517   fi
518 ])
519
520 dnl Check for X11
521 translit(dnm, m, l) AM_CONDITIONAL(USE_X, true)
522 GST_CHECK_FEATURE(X, [X libraries and plugins],
523                   [ximagesink], [
524   AC_PATH_XTRA
525 dnl  if test "x$X_CFLAGS" == "x" -o "$X_CFLAGS" == "-DX_DISPLAY_MISSING"
526   if test "x$X_DISPLAY_MISSING" = "x1"
527   then
528     AC_MSG_NOTICE([cannot find X11 development files])
529     HAVE_X="no"
530   else
531     dnl this is much more than we want
532     X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS"
533     dnl AC_PATH_XTRA only defines the path needed to find the X libs, not the libs
534     dnl therefore we add them here
535     X_LIBS="$X_LIBS -lX11"
536     AC_SUBST(X_CFLAGS)
537     AC_SUBST(X_LIBS)
538     HAVE_X="yes"
539   fi
540   AC_SUBST(HAVE_X)
541 ])
542   
543 dnl *** XVideo ***
544 dnl Look for the PIC library first, Debian requires it.
545 dnl Check debian-devel archives for gory details.
546 dnl 20020110:
547 dnl At the moment XFree86 doesn't distribute shared libXv due
548 dnl to unstable API.  On many platforms you CAN NOT link a shared
549 dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
550 dnl plug-in wants to do.  So Debian distributes a PIC compiled
551 dnl version of the static lib for plug-ins to link to when it is
552 dnl inappropriate to link the main application to libXv directly.
553 dnl FIXME: add check if this platform can support linking to a
554 dnl        non-PIC libXv, if not then don not use Xv.
555 dnl FIXME: perhaps warn user if they have a shared libXv since
556 dnl        this is an error until XFree86 starts shipping one
557    
558 dnl Check for Xv extension
559 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
560 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions],
561                   [xvimagesink xvideosink], [
562   if test x$HAVE_X = xyes; then
563     AC_CHECK_LIB(Xv_pic, XvQueryExtension,
564                  HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
565                  $X_LIBS -lXext)
566
567     if test x$HAVE_XVIDEO = xyes; then
568       XVIDEO_LIBS="-lXv_pic -lXext"
569       AC_SUBST(XVIDEO_LIBS)
570     else
571       dnl try again using something else if we didn't find it first
572       if test x$HAVE_XVIDEO = xno; then
573         AC_CHECK_LIB(Xv, XvQueryExtension,
574                    HAVE_XVIDEO="yes", HAVE_XVIDEO="no",
575                    $X_LIBS -lXext)
576
577         if test x$HAVE_XVIDEO = xyes; then
578           XVIDEO_LIBS="-lXv -lXext"
579           AC_SUBST(XVIDEO_LIBS)
580         fi
581       fi
582     fi
583   fi
584 ])
585
586 dnl check for X Shm
587 translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true)
588 GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], xshm, [
589   if test x$HAVE_X = xyes; then
590     AC_CHECK_LIB(Xext, XShmAttach, 
591                  HAVE_XSHM="yes", HAVE_XSHM="no",
592                  $X_LIBS) 
593     if test "x$HAVE_XSHM" = "xyes"; then
594       XSHM_LIBS="-lXext"
595     else
596       dnl On AIX, it is in XextSam instead, but we still need -lXext
597       AC_CHECK_LIB(XextSam, XShmAttach, 
598                    HAVE_XSHM="yes", HAVE_XSHM="no",
599                    $X_LIBS) 
600       if test "x$HAVE_XSHM" = "xyes"; then
601         XSHM_LIBS="-lXext -lXextSam"
602       fi
603     fi
604   fi
605 ], , [ 
606   AC_SUBST(HAVE_XSHM) 
607   AC_SUBST(XSHM_LIBS) 
608 ] )
609
610 dnl v4l/v4l2 checks have been moved down because they require X
611
612 dnl *** Video 4 Linux ***
613 dnl for information about the header/define, see sys/v4l/gstv4lelement.h
614 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
615 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
616   # first check X
617   HAVE_V4L="no"
618   if test "$HAVE_X" == "yes"
619   then
620     AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
621 #include <sys/types.h>
622 #define _LINUX_TIME_H
623 #include <linux/videodev.h>
624     ])
625   fi
626 ])
627
628 dnl *** Video 4 Linux 2 ***
629 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
630 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
631 GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
632   HAVE_V4L2="no"
633   if test "$HAVE_X" == "yes"
634   then
635     AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
636     AC_TRY_COMPILE([
637 #include <sys/types.h>
638 #include <linux/types.h>
639 #define _LINUX_TIME_H
640 #include <linux/videodev2.h>
641 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
642 #error too early v4l2 version or no v4l2 at all
643 #endif
644     ], [
645 return 0;
646     ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
647        [ HAVE_V4L2="no"  && AC_MSG_RESULT(no) &&
648          AC_CHECK_HEADER(linux/videodev2.h,
649                          [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
650                          [ AC_MSG_WARN([video4linux2 was not found])])
651        ])
652   fi
653 ])
654
655 dnl Next, check for the optional libraries:
656 dnl These are all libraries used in building plug-ins
657 dnl ================================================
658 dnl let's try and sort them alphabetically, shall we ?
659
660 if test "x$BUILD_EXTERNAL" = "xyes"; then
661
662 AC_MSG_NOTICE(Checking for plug-in dependency libraries)
663
664 dnl *** a52dec ***
665 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
666 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
667   AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
668 ])
669
670 dnl *** aalib ***
671 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
672 GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
673   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
674   AS_SCRUB_INCLUDE(AALIB_CFLAGS)
675 ])
676
677 dnl *** alsa ***
678 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
679 GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
680    AM_PATH_ALSA(0.9.1, HAVE_ALSA=yes, HAVE_ALSA=no)
681 ])
682
683 dnl *** arts ***
684 dnl if mcopidl can't be found there's no use in compiling it
685 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
686 if test "x$HAVE_MCOPIDL" = "xno";
687 then
688   USE_ARTS=no
689 fi
690
691 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
692 GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [
693   AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
694 ])
695
696 dnl *** artsc ***
697 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
698 GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [
699   GST_CHECK_ARTSC()
700 ])
701
702 dnl *** audiofile ***
703 dnl this check uses the GST_CHECK_CONFIGPROG macro
704 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
705 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
706   translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
707   translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
708   dnl check with pkg-config first
709   PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no")
710   if test "x$HAVE_AUDIOFILE" = "xno"; then
711     GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
712     dnl we need this function
713     AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
714   fi])
715
716 dnl *** CDParanoia ***
717 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
718 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
719   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
720                       cdda_open, -lm, 
721                       cdda_interface.h, 
722                       CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
723                       HEADER_DIR="no"
724                       FOUND_CDPARANOIA="yes")
725   if test "x$FOUND_CDPARANOIA" != "xyes";
726   then
727     GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
728                         cdda_open, -lm, 
729                         cdda/cdda_interface.h, 
730                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
731                         HEADER_DIR="yes"
732                         FOUND_CDPARANOIA="yes")
733   fi
734   if test "x$HEADER_DIR" = "xyes";
735   then
736     AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
737                        defined if cdda headers are in a cdda/ directory)
738   fi
739   AC_SUBST(CDPARANOIA_LIBS)
740 ])
741 dnl FIXME : add second check somehow if that is necessary
742 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
743 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
744
745 dnl *** DIVX ***
746 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
747 GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
748   HAVE_DIVX=yes
749   AC_CHECK_HEADER(encore2.h, ,
750                   [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
751                     HAVE_DIVX=no ] )
752   if [ test x$HAVE_DIVX = xyes ]; then
753     AC_MSG_CHECKING([Checking for valid divx4linux encore version])
754     AC_TRY_COMPILE([
755 #include <encore2.h>
756 #if ENCORE_VERSION != 20021024
757 #error Wrong version of divx encore libraries
758 #endif
759     ], [
760 return 0;
761     ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
762        [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
763          AC_MSG_WARN([Wrong version of divx4linux installed]) ])
764   fi
765   if [ test x$HAVE_DIVX = xyes ]; then
766     AC_CHECK_HEADER(decore.h, ,
767                     [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
768                       HAVE_DIVX=no ] )
769   fi
770   if [ test x$HAVE_DIVX = xyes ]; then
771     AC_MSG_CHECKING([Checking for valid divx4linux decore version])
772     AC_TRY_COMPILE([
773 #include <decore.h>
774 #if DECORE_VERSION != 20021112
775 #error Wrong version of divx decore libraries
776 #endif
777     ], [
778 return 0;
779     ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)],
780        [ HAVE_DIVX=no  && AC_MSG_RESULT(no) &&
781          AC_MSG_WARN([Wrong version of divx4linux installed]) ])
782   fi
783   LIBS="-lm"
784   if test x$HAVE_DIVX = xyes; then
785     AC_CHECK_LIB(divxencore, encore, ,
786                  [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
787                    HAVE_DIVX=no ] )
788   fi
789   if test x$HAVE_DIVX = xyes; then
790     AC_CHECK_LIB(divxdecore, decore, ,
791                  [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
792                    HAVE_DIVX=no ] )
793   fi
794   if test x$HAVE_DIVX = xyes; then
795     DIVXENC_LIBS="-ldivxencore -lm"
796     DIVXDEC_LIBS="-ldivxdecore -lm"
797     AC_SUBST(DIVXENC_LIBS)
798     AC_SUBST(DIVXDEC_LIBS)
799   fi
800 ])
801
802 dnl *** dvdread ***
803 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
804 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
805   GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
806   AC_SUBST(DVDREAD_LIBS)
807 ])
808
809 dnl *** dvdnav ***
810 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
811 GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
812   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
813   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
814   GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
815   if test x"$HAVE_DVDNAV" = x"yes"; then
816     dnl check version
817     DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
818     DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
819     DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
820     DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
821     if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
822        [[ "$DVDNAV_MINOR" -lt "1" ]]; then
823       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
824       HAVE_DVDNAV="no"
825     elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
826          [[ "$DVDNAV_MINOR" -eq "1" ]] && \
827          [[ "$DVDNAV_MICRO" -lt "7" ]]; then
828       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
829       HAVE_DVDNAV="no"
830       fi
831     fi
832   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
833 ])
834
835 dnl *** MAS ***
836 translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
837 GST_CHECK_FEATURE(MAS, [mas library], massink, [
838   translit(dnm, m, l) AC_SUBST(MAS_LIBS)
839   translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
840   GST_CHECK_CONFIGPROG(MAS, mas-config)
841   AS_SCRUB_INCLUDE(MAS_CFLAGS)
842 ])
843
844 dnl **** ESound ****
845 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
846 GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
847   AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
848   AS_SCRUB_INCLUDE(ESD_CFLAGS)
849 ])
850
851 dnl **** Free AAC Encoder (FAAC) ****
852 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true)
853 GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [
854   GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h, FAAC_LIBS="-lfaac -lm")
855   AS_SCRUB_INCLUDE(FAAC_CFLAGS)
856   AC_SUBST(FAAC_LIBS)
857 ])
858
859 dnl **** Free AAC Decoder (FAAD) ****
860 translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true)
861 GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [
862   GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h, FAAD_LIBS="-lfaad -lm")
863   AC_MSG_CHECKING([Checking for FAAD >= 2])
864   AC_TRY_COMPILE([
865 #include <faad.h>
866 #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE)
867 #error Not faad2
868 #endif
869   ], [ return 0; ],
870      [ HAVE_FAAD="yes" && AC_MSG_RESULT(yes)],
871      [ HAVE_FAAD="no"  && AC_MSG_RESULT(no)])
872   AS_SCRUB_INCLUDE(FAAD_CFLAGS)
873   AC_SUBST(FAAD_LIBS)
874 ])
875
876 dnl **** festival ****
877 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
878 dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
879   dnl NOTE: just using local net connection now, add this lib check
880   dnl       in the future if needed
881   dnl AC_LANG_PUSH(C++)
882   dnl dnl FIXME: took out func to check for
883   dnl dnl This check puts festival_tidy_up in extern "C".
884   dnl dnl But, at least on Debian as of 20020110, it is compiled with name
885   dnl dnl mangling C++ nonsense and symbols can't resolve
886   dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
887   dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
888   dnl AC_LANG_POP(C++)
889   dnl AC_SUBST(FESTIVAL_LIBS)
890 dnl  HAVE_FESTIVAL=yes
891 dnl])
892
893 dnl *** FLAC ***
894 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
895 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
896   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
897   AC_SUBST(FLAC_LIBS)
898 ])
899
900 dnl *** FFMPEG ***
901 translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
902 GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
903   # only slurp in the case where we are in CVS mode;
904   # prerelease and release should get it disted
905   if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
906     AC_MSG_NOTICE(slurping FFmpeg CVS source)
907     AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2003-10-26 10:00 GMT,
908                     HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
909   else
910     AC_MSG_NOTICE(FFmpeg CVS code should be included already)
911     HAVE_FFMPEG=yes
912   fi
913   # we only bother with uninstalled (included) ffmpeg for now
914   AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
915                      [defined if we use uninstalled ffmpeg])
916 ])
917
918 dnl *** GDK pixbuf ***
919 translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
920 GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [
921   if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi;
922 ])
923
924 dnl *** Gnome VFS ***
925 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
926 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
927   PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
928   AC_SUBST(GNOME_VFS_CFLAGS)
929   AC_SUBST(GNOME_VFS_LIBS)
930 ])
931
932 dnl *** gsm ***
933 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
934 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
935   GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
936   if test $HAVE_GSM != "yes"; then
937     GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
938     if test $HAVE_GSM = "yes"; then 
939       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
940     fi
941   fi
942   AC_SUBST(GSM_LIBS)
943 ])
944
945 dnl *** Hermes ***
946 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
947 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
948   GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
949 ], AC_SUBST(HERMES_LIBS))
950
951 dnl *** http ***
952 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
953 dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
954 dnl  dnl FIXME: need to check for header
955 dnl  GHTTP_LIBS=
956 dnl  GST_HTTPSRC_GET_TYPE=
957 dnl  if test x$USE_GLIB2 = xyes; then
958 dnl    AC_MSG_WARN(ghttp disabled for glib2.0)
959 dnl  else
960 dnl    AC_CHECK_LIB(ghttp, ghttp_request_new,
961 dnl      [HTTP_LIBS="-lghttp"
962 dnl       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
963 dnl       HAVE_HTTP=yes
964 dnl      ], :, $LIBS)
965 dnl  fi
966 dnl  AC_SUBST(HTTP_LIBS)
967 dnl  AC_SUBST(GST_HTTPSRC_GET_TYPE)
968 dnl ])
969
970 dnl *** ivorbis ***
971 dnl AM_PATH_IVORBIS only takes two options
972 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
973 GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
974   IVORBIS_LIBS=
975   IVORBIS_CFLAGS=
976   AC_CHECK_LIB(vorbisidec, vorbis_block_init,
977     [IVORBIS_LIBS=-lvorbisidec
978      HAVE_IVORBIS=yes],
979     HAVE_IVORBIS=no)
980   AC_SUBST(IVORBIS_LIBS)
981   AC_SUBST(IVORBIS_CFLAGS)
982 ])
983
984 dnl *** Jack ***
985 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
986 GST_CHECK_FEATURE(JACK, Jack, jack, [
987   PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
988   AC_SUBST(JACK_CFLAGS)
989   AC_SUBST(JACK_LIBS)
990 ])
991
992 dnl *** jpeg ***
993 dnl FIXME: we could use header checks here as well IMO
994 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
995 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
996   AC_ARG_WITH(jpeg-mmx,
997     [  --with-jpeg-mmx, path to MMX'ified JPEG library])
998   OLD_LIBS="$LIBS"
999   if test x$with_jpeg_mmx != x; then
1000     LIBS="$LIBS -L$with_jpeg_mmx"
1001   fi
1002   AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1003   JPEG_LIBS="$LIBS -ljpeg-mmx"
1004   LIBS="$OLD_LIBS"
1005   if test x$HAVE_JPEG != xyes; then
1006     AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
1007     JPEG_LIBS="-ljpeg"
1008   fi
1009   AC_SUBST(JPEG_LIBS)
1010 ])
1011
1012 dnl *** ladspa ***
1013 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
1014 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
1015   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
1016 ])
1017
1018 dnl *** lame ***
1019 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
1020 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
1021   GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
1022 ])
1023 AC_SUBST(LAME_LIBS)
1024
1025 dnl *** libcolorspace ***
1026 translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
1027 GST_CHECK_FEATURE(LCS, Lcs, lcs, [
1028   PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
1029   AC_SUBST(LCS_CFLAGS)
1030   AC_SUBST(LCS_LIBS)
1031 ])
1032
1033 dnl *** libdv ***
1034 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
1035 GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
1036   PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
1037   AC_SUBST(LIBDV_CFLAGS)
1038   AC_SUBST(LIBDV_LIBS)
1039 ])
1040
1041 dnl *** libcaca ***
1042 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true)
1043 GST_CHECK_FEATURE(LIBCACA, [libcaca], libcaca, [
1044   GST_CHECK_CONFIGPROG(LIBCACA, caca-config)
1045   AC_SUBST(LIBCACA_CFLAGS)
1046   AC_SUBST(LIBCACA_LIBS)
1047 ])
1048
1049 dnl *** libfame ***
1050 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
1051 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
1052   AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
1053   AC_SUBST(LIBFAME_CFLAGS)
1054   AC_SUBST(LIBFAME_LIBS)
1055 ])
1056
1057 dnl *** libpng ***
1058 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
1059 GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
1060   PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
1061   AC_SUBST(LIBPNG_CFLAGS)
1062   AC_SUBST(LIBPNG_LIBS)
1063 ])
1064
1065 dnl *** librfb ***
1066 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRFB, true)
1067 GST_CHECK_FEATURE(LIBRFB, [librfb Remote Framebuffer], rfbsrc, [
1068   PKG_CHECK_MODULES(LIBRFB, librfb-0.1, HAVE_LIBRFB="yes", HAVE_LIBRFB="no")
1069   AC_SUBST(LIBRFB_CFLAGS)
1070   AC_SUBST(LIBRFB_LIBS)
1071 ])
1072
1073 dnl *** mad ***
1074 dnl FIXME: we could use header checks here as well IMO
1075 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
1076 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
1077   dnl check with pkg-config first
1078   PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, HAVE_MAD="yes", HAVE_MAD="no")
1079   if test "x$HAVE_MAD" = "xno"; then
1080     dnl fall back to oldskool detection
1081     AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
1082     if test "x$HAVE_MAD" = "xyes"; then
1083       HAVE_MAD="no"
1084       save_libs=$LIBS
1085       LIBS="-lz"
1086       AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz")
1087       LIBS=$save_LIBS
1088     fi
1089   fi    
1090 ])
1091 AC_SUBST(MAD_LIBS)
1092
1093 dnl *** mikmod ***
1094 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
1095 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
1096   AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
1097   AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
1098   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
1099 ])
1100
1101 dnl *** mpeg2dec ***
1102 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
1103 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
1104   PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
1105       HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
1106   AC_SUBST(MPEG2DEC_CFLAGS)
1107   AC_SUBST(MPEG2DEC_LIBS)
1108 ])
1109
1110 dnl *** mpeg2enc ***
1111 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true)
1112 GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [
1113   HAVE_MPEG2ENC="no"
1114   dnl we require a c++ compiler for this one
1115   if [ test x$HAVE_CXX = xyes ]; then
1116     dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92)
1117     dnl since many distros include mjpegtools specifically without mplex
1118     dnl and mpeg2enc, we check for mpeg2enc on its own, too.
1119     PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [
1120       dnl switch over to c++ to test things
1121       AC_LANG_CPLUSPLUS
1122       OLD_CPPFLAGS="$CPPFLAGS"
1123       CPPFLAGS="$CPPFLAGS $MPEG2ENC_CFLAGS"
1124       AC_CHECK_HEADER(mpeg2encoder.hh, [
1125         MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread"
1126         OLD_LIBS="$LIBS"
1127         LIBS="$LIBS $MPEG2ENC_LIBS"
1128         AC_MSG_CHECKING([for valid mpeg2enc objects])
1129         AC_TRY_RUN([
1130 #include <mpeg2encoder.hh>
1131 #include <mpeg2encoptions.hh>
1132
1133 int
1134 main (int   argc,
1135       char *argv[])
1136 {
1137   MPEG2EncOptions *options = new MPEG2EncOptions ();
1138   MPEG2Encoder encoder (*options);
1139   return 0;
1140 }
1141         ],[
1142           HAVE_MPEG2ENC="yes"
1143           AC_SUBST(MPEG2ENC_CFLAGS)
1144           AC_SUBST(MPEG2ENC_LIBS)
1145           AC_MSG_RESULT(yes)
1146         ], AC_MSG_RESULT(no))
1147         LIBS="$OLD_LIBS"
1148       ])
1149       CPPFLAGS="$OLD_CPPFLAGS"
1150       AC_LANG_C
1151     ],
1152     HAVE_MPEG2ENC="no")
1153   fi
1154 ])
1155
1156 dnl *** mplex ***
1157 translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true)
1158 GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [
1159   HAVE_MPLEX="no"
1160   dnl we require a c++ compiler for this one
1161   if [ test x$HAVE_CXX = xyes ]; then
1162     dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93)
1163     dnl since many distros include mjpegtools specifically without mplex
1164     dnl and mpeg2enc, we check for mplex on its own, too.
1165     PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.6.1.93, [
1166       dnl switch over to c++ to test things
1167       AC_LANG_CPLUSPLUS
1168       OLD_CPPFLAGS="$CPPFLAGS"
1169       CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS"
1170       AC_CHECK_HEADER(interact.hpp, [
1171         MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm"
1172         OLD_LIBS="$LIBS"
1173         LIBS="$LIBS $MPLEX_LIBS"
1174         AC_MSG_CHECKING([for valid mplex objects])
1175         AC_TRY_RUN([
1176 #include <interact.hpp>
1177 #include <outputstrm.hpp>
1178 #include <multiplexor.hpp>
1179
1180 int
1181 main (int   argc,
1182       char *argv[])
1183 {
1184   class TestOutputStream : public OutputStream {
1185   public:
1186     TestOutputStream () : OutputStream () { }
1187     void Write (uint8_t *a, unsigned int b) { }
1188     void NextSegment () { }
1189     off_t SegmentSize () { }
1190     void Close () { }
1191     int Open () { }
1192   };
1193   MultiplexJob *job = new MultiplexJob ();
1194   vector<IBitStream *> inputs;
1195   job->SetupInputStreams (inputs);
1196   TestOutputStream *out = new TestOutputStream ();
1197   Multiplexor mux (*job, *out);
1198   return 0;
1199 }
1200         ],[
1201           HAVE_MPLEX="yes"
1202           AC_SUBST(MPLEX_CFLAGS)
1203           AC_SUBST(MPLEX_LIBS)
1204           AC_MSG_RESULT(yes)
1205         ], AC_MSG_RESULT(no))
1206         LIBS="$OLD_LIBS"
1207       ])
1208       CPPFLAGS="$OLD_CPPFLAGS"
1209       AC_LANG_C
1210     ], HAVE_MPLEX="no")
1211   fi
1212 ])
1213
1214 dnl *** musicbrainz ***
1215 dnl libmusicbrainz <= 2.0.2 has symbol clashes with ffmpeg
1216 translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true)
1217 GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz], musicbrainz, [
1218   PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz > 2.0.2,
1219       HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no")
1220   AC_SUBST(MUSICBRAINZ_CFLAGS)
1221   AC_SUBST(MUSICBRAINZ_LIBS)
1222 ])
1223
1224 dnl *** nas ***
1225 translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true)
1226 GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [
1227   HAVE_NAS="no"
1228   if test "x$HAVE_X" = "xyes"; then
1229     save_cppflags=$CFLAGS
1230     CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1231     GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h,
1232       NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS")
1233     CPPFLAGS="$save_cppflags"
1234   fi
1235   AC_SUBST(NAS_CFLAGS)
1236   AC_SUBST(NAS_LIBS)
1237 ])
1238
1239 dnl *** pango ***
1240 translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true)
1241 GST_CHECK_FEATURE(PANGO, [pango], pango, [
1242   PKG_CHECK_MODULES(PANGO, pango pangoft2,
1243       HAVE_PANGO="yes", HAVE_PANGO="no")
1244   AC_SUBST(PANGO_CFLAGS)
1245   AC_SUBST(PANGO_LIBS)
1246 ])
1247
1248 dnl *** raw1394 ***
1249 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
1250 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
1251   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
1252   AC_SUBST(RAW1394_LIBS)
1253 ])
1254
1255 dnl *** SDL ***
1256 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
1257 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
1258   dnl sdlvideosink depends on the xoverlay interface, which depends on X
1259   if test x$HAVE_X = xyes; then
1260     AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
1261   fi
1262 ])
1263
1264 dnl *** shout ***
1265 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
1266 GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
1267   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
1268   AC_SUBST(SHOUT_LIBS)
1269 ])
1270
1271 dnl *** shout2 *** 
1272 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
1273 GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
1274   AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
1275   AC_SUBST(SHOUT2_CFLAGS)
1276   AC_SUBST(SHOUT2_LIBS)
1277 ])
1278
1279 dnl *** sidplay ***
1280 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
1281 GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
1282   GST_PATH_SIDPLAY()
1283 ])
1284
1285 dnl *** smoothwave ***
1286 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
1287 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
1288   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
1289 ])
1290
1291
1292 dnl *** snapshot ***
1293 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
1294 GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
1295   GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
1296   AC_SUBST(LIBPNG_LIBS)
1297 ])
1298
1299 dnl *** speex ***
1300 translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true)
1301 GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [
1302   GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex")
1303   AC_SUBST(SPEEX_CFLAGS)
1304   AC_SUBST(SPEEX_LIBS)
1305 ])
1306
1307 dnl *** sndfile ***
1308 translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true)
1309 GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [
1310   PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no")
1311   AC_SUBST(SNDFILE_CFLAGS)
1312   AC_SUBST(SNDFILE_LIBS)
1313 ])
1314
1315 dnl *** swfdec ***
1316 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
1317 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
1318   PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
1319   AC_SUBST(SWFDEC_CFLAGS)
1320   AC_SUBST(SWFDEC_LIBS)
1321 ])
1322
1323 dnl *** tarkin ***
1324 dnl for now the sources are included in the plug-in
1325 dnl and should be moved to ext-libs/ perhaps
1326 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
1327 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
1328   HAVE_TARKIN="yes"
1329 ])
1330
1331 dnl *** ogg ***
1332 translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true)
1333 GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [
1334   XIPH_PATH_OGG(HAVE_OGG=yes, HAVE_OGG=no)
1335   AS_SCRUB_INCLUDE(OGG_CFLAGS)
1336 ])
1337
1338 dnl *** theora ***
1339 dnl FIXME: theora doesn't have proper pc/m4 files yet, change this when this happens
1340 translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true)
1341 GST_CHECK_FEATURE(THEORA, [ogg theora codec], theoradec, [
1342   GST_CHECK_LIBHEADER(THEORA, theora, theora_version_string, , theora/theora.h, THEORA_LIBS="-ltheora")
1343   AC_SUBST(THEORA_LIBS)
1344 ])
1345
1346 dnl *** vorbis ***
1347 dnl AM_PATH_VORBIS only takes two options
1348 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
1349 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
1350   XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
1351   AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
1352 ])
1353 if test "x$HAVE_VORBIS" = "xyes"; then
1354   ac_cflags_save="$CFLAGS"
1355   CFLAGS="-Wall -Werror"
1356   AC_COMPILE_IFELSE(
1357     AC_LANG_PROGRAM([
1358 #include <vorbis/codec.h>
1359                      ],[
1360 vorbis_dsp_state *v;
1361
1362 vorbis_synthesis_restart (v);
1363                      ]), HAVE_VSR=yes, HAVE_VSR=no)
1364   if test "x$HAVE_VSR" = "xyes"; then
1365     AC_DEFINE_UNQUOTED(HAVE_VORBIS_SYNTHESIS_RESTART, 1,
1366                        [defined if vorbis_synthesis_restart is present])
1367   fi
1368   CFLAGS="$ac_cflags_save"
1369 fi
1370
1371 dnl *** XVID ***
1372 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
1373 GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
1374   HAVE_XVID=no
1375   AC_CHECK_HEADER(xvid.h, [
1376     OLD_LIBS="$LIBS"
1377     LIBS="-lm"
1378     AC_CHECK_LIB(xvidcore, xvid_encore, [
1379       AC_CHECK_LIB(xvidcore, xvid_decore, [
1380         AC_CHECK_LIB(xvidcore, xvid_global, [
1381           AC_MSG_CHECKING([for uptodate XviD API version])
1382           AC_TRY_RUN([
1383 #include <xvid.h>
1384 #if XVID_API != XVID_MAKE_API(4,0)
1385 #error "Incompatible XviD API version"
1386 #endif
1387 int main () { return 0; }
1388           ],[ AC_MSG_RESULT(yes)
1389             XVID_LIBS="-lxvidcore -lm"
1390             AC_SUBST(XVID_LIBS)
1391             HAVE_XVID=yes
1392           ], AC_MSG_RESULT(no) )
1393         ], )
1394       ], )
1395     ], )
1396     LIBS="$OLD_LIBS"
1397   ], )
1398 ])
1399
1400
1401 fi dnl of EXT plugins
1402
1403 dnl Check for atomic.h
1404 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
1405 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
1406 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
1407 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
1408 if test x$HAVE_ATOMIC_H = xyes; then
1409   AC_TRY_RUN([
1410 #include "asm/atomic.h"
1411 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
1412   ],, [
1413     # Not successful
1414     if test x$HAVE_ATOMIC_H = xyes; then
1415       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
1416     fi
1417     HAVE_ATOMIC_H=no
1418   ], [
1419     # Cross compiling
1420     AC_MSG_RESULT(yes)
1421     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
1422   ])
1423 fi
1424
1425
1426 dnl ######################################################################
1427 dnl # Check command line parameters, and set shell variables accordingly #
1428 dnl ######################################################################
1429
1430 AC_ARG_ENABLE(libmmx,
1431   AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
1432 [case "${enableval}" in
1433   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
1434   no)  USE_LIBMMX=no ;;
1435   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
1436 esac], 
1437 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
1438
1439 AC_ARG_ENABLE(atomic,
1440   AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
1441 [case "${enableval}" in
1442   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1443   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
1444   no)  USE_ATOMIC_H=no;;
1445   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
1446 esac], 
1447 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
1448
1449 AC_ARG_ENABLE(profiling,
1450   AC_HELP_STRING([--enable-profiling],
1451                  [-pg to compiler commandline, for profiling]),
1452 [case "${enableval}" in
1453   yes) USE_PROFILING=yes ;;
1454   no)  UES_PROFILING=no ;;
1455   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
1456 esac], 
1457 [USE_PROFILING=no]) dnl Default value
1458
1459 AC_ARG_ENABLE(tests,
1460   AC_HELP_STRING([--disable-tests],[disable building test apps]),
1461 [case "${enableval}" in
1462   yes) BUILD_TESTS=yes ;;
1463   no)  BUILD_TESTS=no ;;
1464   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
1465 esac], 
1466 [BUILD_TESTS=yes]) dnl Default value
1467
1468 AC_ARG_ENABLE(examples,
1469   AC_HELP_STRING([--disable-examples],[disable building examples]),
1470 [case "${enableval}" in
1471   yes) BUILD_EXAMPLES=yes ;;
1472   no)  BUILD_EXAMPLES=no ;;
1473   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
1474 esac], 
1475 [BUILD_EXAMPLES=yes]) dnl Default value
1476
1477 dnl seeking needs freetype, so check for it here
1478 AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
1479 dnl make the HAVE_FT2 variable available to automake and Makefile.am
1480 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
1481 AC_SUBST(FT2_CFLAGS)
1482 AC_SUBST(FT2_LIBS)
1483
1484 dnl ################################################
1485 dnl # Set defines according to variables set above #
1486 dnl ################################################
1487
1488
1489 if test "x$USE_LIBMMX" = xyes; then
1490   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
1491 fi
1492
1493 if test "x$USE_ATOMIC_H" = xyes; then
1494   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
1495 fi
1496
1497 # do not use deprecated stuff
1498 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
1499
1500 if test "x$USE_DEBUG" = xyes; then
1501   GST_CFLAGS="$GST_CFLAGS -g"
1502 fi
1503
1504 dnl #############################
1505 dnl # Set automake conditionals #
1506 dnl #############################
1507
1508 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1509 dnl HAVE_ and it is likely to be easier to stick with the old name
1510 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1511
1512 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1513
1514 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1515 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1516
1517 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1518 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1519 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1520 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1521 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1522 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1523 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1524 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1525 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1526 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1527
1528 dnl prefer internal headers to already installed ones
1529 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
1530
1531 AC_SUBST(GST_LIBS)
1532 AC_SUBST(GST_CFLAGS)
1533
1534 dnl ###########################
1535 dnl # Configure external libs #
1536 dnl ###########################
1537 if test "x$HAVE_FFMPEG" = xyes; then
1538   AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg)
1539 fi 
1540
1541 dnl ############################
1542 dnl # Set up some more defines #
1543 dnl ############################
1544
1545 dnl set license and copyright notice
1546 AC_DEFINE(GST_LICENSE, "LGPL", [GStreamer license])
1547 dnl package name in plugins
1548 AC_ARG_WITH(package-name,
1549 AC_HELP_STRING([--with-package-name],[specify package name to use in plugins]),
1550 [case "${withval}" in
1551   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
1552   no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;;
1553   *) GST_PACKAGE="${withval}" ;;
1554 esac], 
1555 [GST_PACKAGE="GStreamer"]) dnl Default value
1556 AC_MSG_NOTICE(Using $GST_PACKAGE as package name)
1557 AC_DEFINE_UNQUOTED(GST_PACKAGE, "$GST_PACKAGE", [package name in plugins])
1558 dnl package origin URL
1559 AC_ARG_WITH(package-origin,
1560 AC_HELP_STRING([--with-package-origin],[specify package origin URL to use in plugins]),
1561 [case "${withval}" in
1562   yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
1563   no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;;
1564   *) GST_ORIGIN="${withval}" ;;
1565 esac], 
1566 [GST_ORIGIN="http://gstreamer.net"]) dnl Default value
1567 AC_MSG_NOTICE(Using $GST_ORIGIN as package origin)
1568 AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin])
1569
1570 dnl #########################
1571 dnl # Make the output files #
1572 dnl #########################
1573
1574 AC_CONFIG_FILES(
1575 Makefile
1576 pkgconfig/gstreamer-libs.pc
1577 pkgconfig/gstreamer-libs-uninstalled.pc
1578 pkgconfig/gstreamer-play.pc
1579 pkgconfig/gstreamer-play-uninstalled.pc
1580 pkgconfig/gstreamer-interfaces.pc
1581 pkgconfig/gstreamer-interfaces-uninstalled.pc
1582 gst-libs/gst/gconf/gstreamer-gconf.pc
1583 gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
1584 gst-plugins.spec
1585 gst/Makefile
1586 gst/ac3parse/Makefile
1587 gst/adder/Makefile
1588 gst/audioconvert/Makefile
1589 gst/audioscale/Makefile
1590 gst/auparse/Makefile
1591 gst/avi/Makefile
1592 gst/asfdemux/Makefile
1593 gst/cdxaparse/Makefile
1594 gst/chart/Makefile
1595 gst/colorspace/Makefile
1596 gst/cutter/Makefile
1597 gst/debug/Makefile
1598 gst/deinterlace/Makefile
1599 gst/effectv/Makefile
1600 gst/festival/Makefile
1601 gst/filter/Makefile
1602 gst/flx/Makefile
1603 gst/goom/Makefile
1604 gst/id3/Makefile
1605 gst/intfloat/Makefile
1606 gst/law/Makefile
1607 gst/level/Makefile
1608 gst/matroska/Makefile
1609 gst/median/Makefile
1610 gst/mixmatrix/Makefile
1611 gst/mpeg1sys/Makefile
1612 gst/mpeg1videoparse/Makefile
1613 gst/mpeg2sub/Makefile
1614 gst/mpegaudio/Makefile
1615 gst/mpegaudioparse/Makefile
1616 gst/mpegstream/Makefile
1617 gst/modplug/Makefile
1618 gst/modplug/libmodplug/Makefile
1619 gst/monoscope/Makefile
1620 gst/oneton/Makefile
1621 gst/overlay/Makefile
1622 gst/passthrough/Makefile
1623 gst/playondemand/Makefile
1624 gst/qtdemux/Makefile
1625 gst/realmedia/Makefile
1626 gst/rtjpeg/Makefile
1627 gst/rtp/Makefile
1628 gst/silence/Makefile
1629 gst/sine/Makefile
1630 gst/smooth/Makefile
1631 gst/smpte/Makefile
1632 gst/spectrum/Makefile
1633 gst/speed/Makefile
1634 gst/stereo/Makefile
1635 gst/switch/Makefile
1636 gst/synaesthesia/Makefile
1637 gst/tags/Makefile
1638 gst/tcp/Makefile
1639 gst/typefind/Makefile
1640 gst/udp/Makefile
1641 gst/vbidec/Makefile
1642 gst/videocrop/Makefile
1643 gst/videodrop/Makefile
1644 gst/videofilter/Makefile
1645 gst/videoflip/Makefile
1646 gst/videoscale/Makefile
1647 gst/videotestsrc/Makefile
1648 gst/volenv/Makefile
1649 gst/volume/Makefile
1650 gst/wavenc/Makefile
1651 gst/wavparse/Makefile
1652 gst/y4m/Makefile
1653 sys/Makefile
1654 sys/cdrom/Makefile
1655 sys/dxr3/Makefile
1656 sys/glsink/Makefile
1657 sys/oss/Makefile
1658 sys/qcam/Makefile
1659 sys/v4l/Makefile
1660 sys/v4l2/Makefile
1661 sys/vcd/Makefile
1662 sys/ximage/Makefile
1663 sys/xvimage/Makefile
1664 sys/xvideo/Makefile
1665 ext/Makefile
1666 ext/a52dec/Makefile
1667 ext/aalib/Makefile
1668 ext/alsa/Makefile
1669 ext/arts/Makefile
1670 ext/artsd/Makefile
1671 ext/audiofile/Makefile
1672 ext/cdparanoia/Makefile
1673 ext/divx/Makefile
1674 ext/dv/Makefile
1675 ext/dvdread/Makefile
1676 ext/dvdnav/Makefile
1677 ext/esd/Makefile
1678 ext/faac/Makefile
1679 ext/faad/Makefile
1680 ext/ffmpeg/Makefile
1681 ext/flac/Makefile
1682 ext/gdk_pixbuf/Makefile
1683 ext/gnomevfs/Makefile
1684 ext/gsm/Makefile
1685 ext/hermes/Makefile
1686 dnl ext/http/Makefile
1687 ext/jack/Makefile
1688 ext/jpeg/Makefile
1689 ext/ladspa/Makefile
1690 ext/lame/Makefile
1691 ext/ivorbis/Makefile
1692 ext/lcs/Makefile
1693 ext/libcaca/Makefile
1694 ext/libfame/Makefile
1695 ext/libpng/Makefile
1696 ext/librfb/Makefile
1697 ext/mad/Makefile
1698 ext/mas/Makefile
1699 ext/mikmod/Makefile
1700 ext/mpeg2dec/Makefile
1701 ext/mpeg2enc/Makefile
1702 ext/mplex/Makefile
1703 ext/musicbrainz/Makefile
1704 ext/nas/Makefile
1705 ext/ogg/Makefile
1706 ext/pango/Makefile
1707 ext/raw1394/Makefile
1708 ext/sdl/Makefile
1709 ext/shout/Makefile
1710 ext/shout2/Makefile
1711 ext/sidplay/Makefile
1712 ext/smoothwave/Makefile
1713 ext/snapshot/Makefile
1714 ext/speex/Makefile
1715 ext/sndfile/Makefile
1716 ext/swfdec/Makefile
1717 ext/tarkin/Makefile
1718 ext/theora/Makefile
1719 ext/vorbis/Makefile
1720 ext/xvid/Makefile
1721 gst-libs/Makefile
1722 gst-libs/gst/Makefile
1723 gst-libs/gst/audio/Makefile
1724 gst-libs/gst/colorbalance/Makefile
1725 gst-libs/gst/floatcast/Makefile
1726 gst-libs/gst/gconf/Makefile
1727 gst-libs/gst/idct/Makefile
1728 gst-libs/gst/media-info/Makefile
1729 gst-libs/gst/mixer/Makefile
1730 gst-libs/gst/navigation/Makefile
1731 gst-libs/gst/play/Makefile
1732 gst-libs/gst/propertyprobe/Makefile
1733 gst-libs/gst/resample/Makefile
1734 gst-libs/gst/riff/Makefile
1735 gst-libs/gst/tag/Makefile
1736 gst-libs/gst/tuner/Makefile
1737 gst-libs/gst/video/Makefile
1738 gst-libs/gst/xoverlay/Makefile
1739 gst-libs/gst/xwindowlistener/Makefile
1740 gst-libs/ext/Makefile
1741 gst-libs/ext/ffmpeg/Makefile
1742 examples/dynparams/Makefile
1743 examples/capsfilter/Makefile
1744 examples/seeking/Makefile
1745 examples/indexing/Makefile
1746 examples/gstplay/Makefile
1747 examples/switch/Makefile
1748 examples/Makefile
1749 testsuite/spider/Makefile
1750 testsuite/alsa/Makefile
1751 testsuite/Makefile
1752 tools/Makefile
1753 tools/gst-launch-ext
1754 gconf/Makefile
1755 pkgconfig/Makefile
1756 po/Makefile.in
1757 )
1758 AC_OUTPUT
1759
1760 echo -n "configure: *** Plug-ins that will be built :"
1761 echo -e "$GST_PLUGINS_YES" | sort
1762 echo
1763 echo -n "configure: *** Plug-ins that will not be built :"
1764 echo -e "$GST_PLUGINS_NO" | sort
1765 echo
1766 if test "x$BUILD_EXTERNAL" = "xno"; then
1767   echo "configure: *** No external plug-ins will be built"
1768 fi