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