update libflac check
[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, 7, 0, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
16 AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
17
18 dnl our libraries and install dirs use major.minor as a version
19 GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR
20 AC_SUBST(GST_MAJORMINOR)
21
22 dnl CURRENT, REVISION, AGE
23 dnl - library source changed -> increment REVISION
24 dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
25 dnl - interfaces added -> increment AGE
26 dnl - interfaces removed -> AGE = 0
27 AS_LIBTOOL(GST_PLUGINS, 1, 0, 0)
28
29 dnl FIXME take something else ?
30 AC_CONFIG_SRCDIR([gst/law/alaw.c])
31 AM_CONFIG_HEADER(config.h)
32
33 dnl Add parameters for aclocal
34 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
35 ACLOCAL_FLAGS="-I m4 -I common/m4"
36 AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS)
37
38 AC_PROG_CC
39 AM_PROG_CC_STDC
40 AM_PROG_AS
41 AS="${CC}"
42 dnl determine c++ compiler
43 AC_PROG_CXX
44 dnl determine if c++ is available on this system
45 AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no)
46 dnl determine c++ preprocessor
47 AC_PROG_CXXCPP
48 AC_ISC_POSIX
49
50 AC_HEADER_STDC([])
51
52 dnl ############################################
53 dnl # Super Duper options for plug-in building #
54 dnl ############################################
55
56 dnl ext plug-ins; plug-ins that have external dependencies
57 GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],,
58 [HAVE_EXTERNAL=yes],enabled,
59 [
60   AC_MSG_WARN(building external plug-ins)
61   BUILD_EXTERNAL="yes"
62 ],[
63   AC_MSG_WARN(all plug-ins with external dependencies will not be built)
64   BUILD_EXTERNAL="no"
65 ])
66 # make BUILD_EXTERNAL available to Makefile.am
67 AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes")
68
69 dnl experimental plug-ins; stuff that hasn't had the dust settle yet
70 dnl read 'builds, but might not work'UTO
71 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],,
72 [HAVE_EXPERIMENTAL=yes],disabled,
73 [
74   AC_MSG_WARN(building experimental plug-ins)
75   USE_TARKIN="yes"
76   USE_SHOUT2="yes"
77 ],[
78   AC_MSG_NOTICE(not building experimental plug-ins)
79   USE_TARKIN="no"
80   USE_SHOUT2="no"
81 ])
82
83 dnl broken plug-ins; stuff that doesn't seem to build at the moment
84 GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],,
85 HAVE_BROKEN=yes,disabled,
86 [  
87   AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)])
88   USE_SMOOTHWAVE="yes"
89   USE_VGA="yes"
90   USE_XMMS="yes"
91 ],[
92   USE_SMOOTHWAVE="no"
93   USE_VGA="no"
94   USE_XMMS="no"
95   AC_MSG_NOTICE([not building broken plug-ins])
96 ])
97
98 dnl ##############################
99 dnl # Do automated configuration #
100 dnl ##############################
101
102 dnl Check for tools:
103 dnl ================
104
105 dnl allow for different autotools
106 AS_AUTOTOOLS_ALTERNATE()
107
108 dnl modify pkg-config path
109 AC_ARG_WITH(pkg-config-path, 
110    AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
111    [export PKG_CONFIG_PATH=${withval}])
112
113 dnl Check for nasm
114 AC_PATH_PROG(NASM_PATH, nasm, no)
115 AC_SUBST(NASM_PATH)
116 if test x$NASM_PATH = xno; then
117   AC_MSG_WARN(Couldn't find nasm)
118   HAVE_NASM="no"
119 else
120   AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
121   HAVE_NASM="yes"
122 fi
123
124 dnl check for gconftool-2
125 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true)
126 GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [
127   AC_PATH_PROG(GCONFTOOL, gconftool-2, no)
128   if test x$GCONFTOOL = xno; then
129     AC_MSG_WARN(Not installing GConf schemas)
130     HAVE_GCONFTOOL="no"
131   else
132     AM_GCONF_SOURCE_2
133     HAVE_GCONFTOOL="yes"
134   fi
135   AC_SUBST(HAVE_GCONFTOOL)
136 ])
137
138 dnl check for GConf libraries
139 translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true)
140 GST_CHECK_FEATURE(GCONF, [GConf libraries], , [
141   PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no")
142   AC_SUBST(GCONF_CFLAGS)
143   AC_SUBST(GCONF_LIBS)
144 ])
145
146 dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1)
147 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
148   HAVE_GST="yes", HAVE_GST="no")
149
150 if test "x$HAVE_GST" = "xno"; then
151   AC_MSG_ERROR(no GStreamer found)
152 fi
153
154 GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR`
155 if test -z $GST_TOOLS_DIR; then
156   AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.])
157 fi
158 AC_SUBST(GST_TOOLS_DIR)
159
160 dnl check for gstreamer-control; uninstalled is selected preferentially
161 PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO,
162   HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no")
163
164 if test "x$HAVE_GST_CONTROL" = "xno"; then
165   AC_MSG_ERROR(no GStreamer Control Libs found)
166 fi
167
168 AC_SUBST(GST_CONTROL_LIBS)
169
170
171 dnl Set up conditionals for (target) architecture:
172 dnl ==============================================
173
174 dnl Determine CPU
175 case "x${target_cpu}" in
176   xi?86 | k?) HAVE_CPU_I386=yes
177               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
178               dnl FIXME could use some better detection
179               dnl       (ie CPUID)
180               case "x${target_cpu}" in
181                 xi386 | xi486) ;;
182                 *)             AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;;
183               esac ;;
184   xpowerpc)   HAVE_CPU_PPC=yes
185               AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
186   xalpha)     HAVE_CPU_ALPHA=yes
187               AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
188   xarm*)      HAVE_CPU_ARM=yes
189               AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
190   xsparc*)    HAVE_CPU_SPARC=yes
191               AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
192   xmips*)     HAVE_CPU_MIPS=yes
193               AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
194   xhppa*)     HAVE_CPU_HPPA=yes
195               AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
196 esac
197
198 dnl Determine endianness
199 AC_C_BIGENDIAN
200
201 dnl Check for fast float to int casting as defined in C99
202 AC_C99_FUNC_LRINT()
203 AC_C99_FUNC_LRINTF()
204
205 dnl Check for essential libraries first:
206 dnl ====================================
207
208 GST_GLIB2_CHECK()
209 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
210 GTK_CFLAGS=$GTK2_CFLAGS
211 GTK_LIBS=$GTK2_LIBS
212 AC_SUBST(GTK_LIBS)
213 AC_SUBST(GTK_CFLAGS)
214
215
216 dnl Check for X11 extensions
217 AC_PATH_XTRA
218 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
219   AC_MSG_NOTICE([cannot find X11, the build system needs fixage])
220 fi
221 AC_SUBST(X_CFLAGS)
222 AC_SUBST(X_PRE_LIBS)
223 AC_SUBST(X_EXTRA_LIBS)
224 AC_SUBST(X_LIBS)
225
226 dnl ===========================================================================
227 dnl ============================= gst plug-ins ================================
228 dnl ===========================================================================
229
230 GST_PLUGIN_LDFLAGS='-module -avoid-version'
231 AC_SUBST(GST_PLUGIN_LDFLAGS)
232
233 dnl these are all the gst plug-ins, compilable without additional libs
234 GST_PLUGINS_ALL="\
235         ac3parse adder audioscale auparse avi asfdemux audioconvert cdxaparse chart\
236         cutter deinterlace effectv festival filter flx goom\
237         intfloat law level\
238         median mixmatrix mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
239         mpegaudio mpegaudioparse mpegstream mpegtypes\
240         monoscope oneton passthrough playondemand qtdemux rtp rtjpeg silence sine\
241         smooth smpte spectrum speed stereo stereomono synaesthesia\
242         udp vbidec videocrop videoscale videotestsrc volenv volume\ 
243         vumeter wavenc wavparse y4m"
244
245 dnl see if we can build C++ plug-ins
246 if test "x$HAVE_CXX" = "xyes"; then
247   GST_PLUGINS_ALL="$GST_PLUGINS_ALL \
248                   modplug monkeyaudio"
249 else
250   AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler])
251 fi
252
253 AC_SUBST(GST_PLUGINS_ALL)
254
255 GST_PLUGINS_SELECTED=""
256
257 AC_ARG_WITH(plugins,
258     AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]),
259     [for i in `echo $withval | tr , ' '`; do
260         if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
261             GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
262         else
263             echo "plug-in $i not recognized, ignoring..."
264         fi
265     done],
266     [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
267
268 AC_SUBST(GST_PLUGINS_SELECTED)
269
270 dnl ==========================================================================
271 dnl ============================= sys plug-ins ================================
272 dnl ==========================================================================
273
274 dnl *** DXR3 card ***
275 translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true)
276 GST_CHECK_FEATURE(DXR3, [DXR3 hardware mpeg video decoder], dxr3videosink, [
277   AC_CHECK_HEADER(linux/em8300.h, HAVE_DXR3="yes", HAVE_DXR3="no")
278 ])
279
280 dnl *** OSS audio ***
281 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
282 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
283   AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
284 ])
285
286 dnl *** QuickCam ***
287 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
288 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [
289   if test "x$HAVE_CPU_I386" != "xyes";
290   then
291     HAVE_QCAM="no"
292     AC_MSG_WARN([QuickCam only works on i386])
293   else
294     HAVE_QCAM="yes"
295   fi
296 ])
297
298 dnl *** Video 4 Linux ***
299 dnl for information about the header/define, see sys/v4l/gstv4lelement.h
300 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
301 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [
302   AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [
303 #include <sys/types.h>
304 #define _LINUX_TIME_H
305 #include <linux/videodev.h>
306   ])
307 ])
308
309 dnl *** Video 4 Linux 2***
310 dnl for information about the header/define, see sys/v4l2/gstv4l2element.h
311 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true)
312 GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [
313   AC_MSG_CHECKING([Checking for uptodate v4l2 installation])
314   AC_TRY_COMPILE([
315 #include <sys/types.h>
316 #include <linux/types.h>
317 #define _LINUX_TIME_H
318 #include <linux/videodev2.h>
319 #if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION)
320 #error too early v4l2 version or no v4l2 at all
321 #endif
322   ], [
323 return 0;
324   ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)],
325      [ HAVE_V4L2="no"  && AC_MSG_RESULT(no) &&
326        AC_CHECK_HEADER(linux/videodev2.h,
327                        [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])],
328                        [ AC_MSG_WARN([video4linux2 was not found])])])
329 ])
330
331 dnl *** Video CD ***
332 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
333 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
334   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
335 ])
336
337 dnl *** VGA ***
338 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
339 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
340   AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
341 ])
342
343 dnl *** CDROM Audio ***
344 translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true)
345 GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [
346   AC_CHECK_HEADERS(linux/cdrom.h) dnl linux
347   AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else
348 dnl  AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix
349
350   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
351         case "$host" in 
352                 *-sun-* | *-*-linux*)
353                         AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style])
354                 ;;
355                 *-*-freebsd*)
356                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
357                 ;;
358                 *-*-netbsd* | *-*-openbsd*)
359                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
360                         AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant])
361                 ;;
362                 *-*darwin*)
363                         AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style])
364                         AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant])
365                 ;;
366 dnl             *-irix-*)
367 dnl                     AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style])
368 dnl             ;;
369     esac
370
371         HAVE_CDROM="yes"
372   else
373         HAVE_CDROM="no"
374   fi
375 ])
376
377 dnl *** XVideo ***
378 dnl Look for the PIC library first, Debian requires it.
379 dnl Check debian-devel archives for gory details.
380 dnl 20020110:
381 dnl At the moment XFree86 doesn't distribute shared libXv due
382 dnl to unstable API.  On many platforms you CAN NOT link a shared
383 dnl lib to a static non-PIC lib.  This is what the xvideo GStreamer
384 dnl plug-in wants to do.  So Debian distributes a PIC compiled
385 dnl version of the static lib for plug-ins to link to when it is
386 dnl inappropriate to link the main application to libXv directly.
387 dnl FIXME: add check if this platform can support linking to a
388 dnl        non-PIC libXv, if not then don not use Xv.
389 dnl FIXME: perhaps warn user if they have a shared libXv since
390 dnl        this is an error until XFree86 starts shipping one
391 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
392
393 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
394   dnl use X_CFLAGS for check
395   save_FLAGS=$CFLAGS
396   CFLAGS=$X_CFLAGS
397
398   dnl check for PIC static lib
399   GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv_pic -lXext")
400   if test x$HAVE_XVIDEO = xno; then
401     dnl PIC lib not found, check for regular lib
402     GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv -lXext")
403   fi
404   AC_SUBST(XVIDEO_LIBS)
405
406   dnl restore CFLAGS
407   CFLAGS=$save_CFLAGS
408 ])
409
410 dnl Next, check for the optional libraries:
411 dnl These are all libraries used in building plug-ins
412 dnl ================================================
413 dnl let's try and sort them alphabetically, shall we ?
414
415 if test "x$BUILD_EXTERNAL" = "xyes"; then
416
417 AC_MSG_NOTICE(Checking for plug-in dependency libraries)
418
419 dnl *** a52dec ***
420 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
421 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
422   AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no)
423 ])
424
425 dnl *** aalib ***
426 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
427 GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [
428   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
429   AS_SCRUB_INCLUDE(AALIB_CFLAGS)
430 ])
431
432 dnl *** alsa ***
433 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
434 GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [
435    AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
436 ])
437
438 dnl *** arts ***
439 dnl if mcopidl can't be found there's no use in compiling it
440 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
441 if test "xHAVE_MCOPIDL" = "xno";
442 then
443   USE_ARTS=no
444 fi
445
446 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
447 GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [
448   AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
449 ])
450
451 dnl *** artsc ***
452 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
453 GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [
454   GST_CHECK_ARTSC()
455 ])
456
457 dnl *** audiofile ***
458 dnl this check uses the GST_CHECK_CONFIGPROG macro
459 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
460 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
461   translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
462   translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
463   GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
464   dnl we need this function
465   AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no")
466 ])
467
468 dnl *** CDParanoia ***
469 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
470 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
471   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
472                       cdda_open, -lm, 
473                       cdda_interface.h, 
474                       CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
475                       HEADER_DIR="no"
476                       FOUND_CDPARANOIA="yes")
477   if test "x$FOUND_CDPARANOIA" != "xyes";
478   then
479     GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
480                         cdda_open, -lm, 
481                         cdda/cdda_interface.h, 
482                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
483                         HEADER_DIR="yes"
484                         FOUND_CDPARANOIA="yes")
485   fi
486   if test "x$HEADER_DIR" = "xyes";
487   then
488     AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
489                        defined if cdda headers are in a cdda/ directory)
490   fi
491   AC_SUBST(CDPARANOIA_LIBS)
492 ])
493 dnl FIXME : add second check somehow if that is necessary
494 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
495 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
496
497 dnl *** DIVX ***
498 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
499 GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
500   HAVE_DIVX=yes
501   AC_CHECK_HEADER(encore2.h, ,
502                   [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
503                     HAVE_DIVX=no ] )
504   AC_CHECK_HEADER(decore.h, ,
505                   [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
506                     HAVE_DIVX=no ] )
507   LIBS="-lm"
508   AC_CHECK_LIB(divxencore, encore, ,
509                [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
510                  HAVE_DIVX=no ] )
511   AC_CHECK_LIB(divxdecore, decore, ,
512                [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
513                  HAVE_DIVX=no ] )
514   if test x$HAVE_DIVX = xyes; then
515     DIVXENC_LIBS="-ldivxencore -lm"
516     DIVXDEC_LIBS="-ldivxdecore -lm"
517     AC_SUBST(DIVXENC_LIBS)
518     AC_SUBST(DIVXDEC_LIBS)
519   fi
520 ])
521
522 dnl *** dvdread ***
523 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
524 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
525   GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
526   AC_SUBST(DVDREAD_LIBS)
527 ])
528
529 dnl *** dvdnav ***
530 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
531 GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
532   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
533   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
534   GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
535   if test x"$HAVE_DVDNAV" = x"yes"; then
536     dnl check version
537     DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
538     DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
539     DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
540     DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
541     if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
542        [[ "$DVDNAV_MINOR" -lt "1" ]]; then
543       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
544       HAVE_DVDNAV="no"
545     elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
546          [[ "$DVDNAV_MINOR" -eq "1" ]] && \
547          [[ "$DVDNAV_MICRO" -lt "7" ]]; then
548       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
549       HAVE_DVDNAV="no"
550       fi
551     fi
552   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
553 ])
554
555 dnl *** MAS ***
556 translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
557 GST_CHECK_FEATURE(MAS, [mas library], massink, [
558   translit(dnm, m, l) AC_SUBST(MAS_LIBS)
559   translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
560   GST_CHECK_CONFIGPROG(MAS, mas-config)
561   AS_SCRUB_INCLUDE(MAS_CFLAGS)
562 ])
563
564 dnl **** ESound ****
565 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
566 GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
567   AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
568   AS_SCRUB_INCLUDE(ESD_CFLAGS)
569 ])
570
571 dnl **** festival ****
572 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
573 dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
574   dnl NOTE: just using local net connection now, add this lib check
575   dnl       in the future if needed
576   dnl AC_LANG_PUSH(C++)
577   dnl dnl FIXME: took out func to check for
578   dnl dnl This check puts festival_tidy_up in extern "C".
579   dnl dnl But, at least on Debian as of 20020110, it is compiled with name
580   dnl dnl mangling C++ nonsense and symbols can't resolve
581   dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
582   dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
583   dnl AC_LANG_POP(C++)
584   dnl AC_SUBST(FESTIVAL_LIBS)
585 dnl  HAVE_FESTIVAL=yes
586 dnl])
587
588 dnl *** FLAC ***
589 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
590 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
591   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
592   AC_SUBST(FLAC_LIBS)
593 ])
594
595 dnl *** FFMPEG ***
596 translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
597 GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
598   # only slurp in the case where we are in CVS mode;
599   # prerelease and release should get it disted
600   if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
601     AC_MSG_NOTICE(slurping FFmpeg CVS source)
602     AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2002-12-14 12:00 GMT,
603                     HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
604   else
605     AC_MSG_NOTICE(FFmpeg CVS code should be included already)
606     HAVE_FFMPEG=yes
607   fi
608   # we only bother with uninstalled (included) ffmpeg for now
609   AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
610                      [defined if we use uninstalled ffmpeg])
611 ])
612
613 dnl *** Gnome VFS ***
614 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
615 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
616   PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
617   AC_SUBST(GNOME_VFS_CFLAGS)
618   AC_SUBST(GNOME_VFS_LIBS)
619 ])
620
621 dnl *** gsm ***
622 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
623 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
624   GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
625   if test $HAVE_GSM != "yes"; then
626     GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
627     if test $HAVE_GSM = "yes"; then 
628       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
629     fi
630   fi
631   AC_SUBST(GSM_LIBS)
632 ])
633
634 dnl *** Hermes ***
635 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
636 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
637   GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
638 ], AC_SUBST(HERMES_LIBS))
639
640 dnl *** http ***
641 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
642 dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
643 dnl  dnl FIXME: need to check for header
644 dnl  GHTTP_LIBS=
645 dnl  GST_HTTPSRC_GET_TYPE=
646 dnl  if test x$USE_GLIB2 = xyes; then
647 dnl    AC_MSG_WARN(ghttp disabled for glib2.0)
648 dnl  else
649 dnl    AC_CHECK_LIB(ghttp, ghttp_request_new,
650 dnl      [HTTP_LIBS="-lghttp"
651 dnl       GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
652 dnl       HAVE_HTTP=yes
653 dnl      ], :, $LIBS)
654 dnl  fi
655 dnl  AC_SUBST(HTTP_LIBS)
656 dnl  AC_SUBST(GST_HTTPSRC_GET_TYPE)
657 dnl ])
658
659 dnl *** ivorbis ***
660 dnl AM_PATH_IVORBIS only takes two options
661 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
662 GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
663   XIPH_PATH_IVORBIS(HAVE_IVORBIS=yes, HAVE_IVORBIS=no)
664   AS_SCRUB_INCLUDE(IVORBIS_CFLAGS)
665 ])
666
667 dnl *** Jack ***
668 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
669 GST_CHECK_FEATURE(JACK, Jack, jack, [
670   PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
671   AC_SUBST(JACK_CFLAGS)
672   AC_SUBST(JACK_LIBS)
673 ])
674
675 dnl *** jpeg ***
676 dnl FIXME: we could use header checks here as well IMO
677 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
678 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
679   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
680   JPEG_LIBS="-ljpeg"
681   AC_SUBST(JPEG_LIBS)
682 ])
683
684 dnl *** ladspa ***
685 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
686 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
687   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
688 ])
689
690 dnl *** lame ***
691 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
692 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
693   GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
694 ])
695 AC_SUBST(LAME_LIBS)
696
697 dnl *** libcolorspace ***
698 translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
699 GST_CHECK_FEATURE(LCS, Lcs, lcs, [
700   PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
701   AC_SUBST(LCS_CFLAGS)
702   AC_SUBST(LCS_LIBS)
703 ])
704
705 dnl *** libdv ***
706 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
707 GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
708   PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
709   AC_SUBST(LIBDV_CFLAGS)
710   AC_SUBST(LIBDV_LIBS)
711 ])
712
713 dnl *** libfame ***
714 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
715 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
716   AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
717   AC_SUBST(LIBFAME_CFLAGS)
718   AC_SUBST(LIBFAME_LIBS)
719 ])
720
721 dnl *** libpng ***
722 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
723 GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
724   PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
725   AC_SUBST(LIBPNG_CFLAGS)
726   AC_SUBST(LIBPNG_LIBS)
727 ])
728
729
730 dnl *** mad ***
731 dnl FIXME: we could use header checks here as well IMO
732 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
733 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
734   AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
735   if test "x$HAVE_MAD" = "xyes"; then
736     # installed with mad >= 0.14
737     HAVE_MAD="no"
738     save_libs=$LIBS
739     LIBS="-lz"
740     AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
741     LIBS=$save_LIBS
742   fi    
743 ])
744 AC_SUBST(MAD_LIBS)
745
746 dnl *** mikmod ***
747 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
748 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
749   AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
750   AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
751   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
752 ])
753
754 dnl *** mjpegtools ***
755 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
756 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
757   PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
758
759   if [ test x$HAVE_MJPEGTOOLS = x"yes" ]; then
760     dnl some headers we might want to need
761     AC_CHECK_HEADERS(stdint.h, HAVE_STDINT_H="yes", HAVE_STDINT_H="no")
762     if [ test x$HAVE_STDINT_H = x"no" ]; then
763       AC_CHECK_HEADERS(inttypes.h sys/types.h, HAVE_INTTYPES_H="yes", [
764         AC_MSG_WARN(No valid header files found, mjpegtools plugins disabled)
765         HAVE_INTTYPES_H="no" HAVE_MJPEGTOOLS="no"
766       ])
767     fi
768     AC_CHECK_HEADERS(stdbool.h, HAVE_STDBOOL_H="yes", HAVE_STDBOOL_H="no")
769
770     dnl sizeof PRId64 etc...
771     AC_CHECK_SIZEOF(int)
772     AC_CHECK_SIZEOF(long)
773     AC_CHECK_SIZEOF(long long)
774     case 8 in
775     $ac_cv_sizeof_int)
776       PRID64_STRING_FORMAT="d"
777       ;;
778     $ac_cv_sizeof_long)
779       PRID64_STRING_FORMAT="ld"
780       ;;
781     $ac_cv_sizeof_long_long)
782       PRID64_STRING_FORMAT="lld"
783       ;;
784     *)
785       AC_MSG_WARN(No suitable variant for 64bits integers found, mjpegtools plugins disabled)
786       HAVE_MJPEGTOOLS="no"
787       ;;
788     esac
789
790     AC_DEFINE_UNQUOTED(PRID64_STRING_FORMAT, "$PRID64_STRING_FORMAT",
791       [ A printf type definition for 64 bit integers ])
792     AC_SUBST(MJPEGTOOLS_LIBS)
793     AC_SUBST(MJPEGTOOLS_CFLAGS)
794   fi
795 ])
796
797 dnl *** mpeg2dec ***
798 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
799 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
800   PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
801       HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
802   AC_SUBST(MPEG2DEC_CFLAGS)
803   AC_SUBST(MPEG2DEC_LIBS)
804 ])
805
806 dnl *** openquicktime ***
807 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
808 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
809   GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
810   AC_SUBST(OPENQUICKTIME_LIBS)
811 ])
812
813 dnl *** raw1394 ***
814 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
815 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
816   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
817   AC_SUBST(RAW1394_LIBS)
818 ])
819
820 dnl *** SDL ***
821 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
822 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
823  AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
824 ])
825
826 dnl *** shout ***
827 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
828 GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
829   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
830   AC_SUBST(SHOUT_LIBS)
831 ])
832
833 dnl *** shout2 *** 
834 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
835 GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
836   AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
837   AC_SUBST(SHOUT2_CFLAGS)
838   AC_SUBST(SHOUT2_LIBS)
839 ])
840
841 dnl *** sidplay ***
842 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
843 GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
844   GST_PATH_SIDPLAY()
845 ])
846
847 dnl *** smoothwave ***
848 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
849 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
850   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
851 ])
852
853
854 dnl *** snapshot ***
855 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
856 GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
857   GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
858   AC_SUBST(LIBPNG_LIBS)
859 ])
860
861 dnl *** swfdec ***
862 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
863 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
864   PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
865   AC_SUBST(SWFDEC_CFLAGS)
866   AC_SUBST(SWFDEC_LIBS)
867 ])
868
869 dnl *** tarkin ***
870 dnl for now the sources are included in the plug-in
871 dnl and should be moved to ext-libs/ perhaps
872 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
873 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
874   HAVE_TARKIN="yes"
875 ])
876
877 dnl *** vorbis ***
878 dnl AM_PATH_VORBIS only takes two options
879 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
880 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
881   XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
882   AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
883 ])
884
885 dnl *** XMMS ***
886 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
887 GST_CHECK_FEATURE(XMMS, [xmms plug-in], xmms, [
888   AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
889 ])
890
891 dnl *** XVID ***
892 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
893 GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
894   HAVE_XVID=yes
895   AC_CHECK_HEADER(xvid.h, ,
896                   [ AC_MSG_WARN([Xvid headers not found]) &&
897                     HAVE_XVID=no ] )
898   LIBS="-lm"
899   AC_CHECK_LIB(xvidcore, xvid_encore, ,
900                [ AC_MSG_WARN([Xvid encore libs not found]) &&
901                  HAVE_XVID=no ] )
902   AC_CHECK_LIB(xvidcore, xvid_decore, ,
903                [ AC_MSG_WARN([Xvid decore libs not found]) &&
904                  HAVE_XVID=no ] )
905   if test x$HAVE_XVID = xyes; then
906     XVID_LIBS="-lxvidcore -lm"
907     AC_SUBST(XVID_LIBS)
908   fi
909 ])
910
911
912 fi dnl of EXT plugins
913
914 dnl Check for atomic.h
915 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
916 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
917 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
918 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
919 if test x$HAVE_ATOMIC_H = xyes; then
920   AC_TRY_RUN([
921 #include "asm/atomic.h"
922 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
923   ],, [
924     # Not successful
925     if test x$HAVE_ATOMIC_H = xyes; then
926       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
927     fi
928     HAVE_ATOMIC_H=no
929   ], [
930     # Cross compiling
931     AC_MSG_RESULT(yes)
932     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
933   ])
934 fi
935
936
937 dnl ######################################################################
938 dnl # Check command line parameters, and set shell variables accordingly #
939 dnl ######################################################################
940
941 GST_DEBUGINFO
942
943 AC_ARG_ENABLE(libmmx,
944   AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
945 [case "${enableval}" in
946   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
947   no)  USE_LIBMMX=no ;;
948   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
949 esac], 
950 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
951
952 AC_ARG_ENABLE(atomic,
953   AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
954 [case "${enableval}" in
955   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
956   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
957   no)  USE_ATOMIC_H=no;;
958   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
959 esac], 
960 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
961
962 AC_ARG_ENABLE(profiling,
963   AC_HELP_STRING([--enable-profiling],
964                  [-pg to compiler commandline, for profiling]),
965 [case "${enableval}" in
966   yes) USE_PROFILING=yes ;;
967   no)  UES_PROFILING=no ;;
968   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
969 esac], 
970 [USE_PROFILING=no]) dnl Default value
971
972 AC_ARG_ENABLE(tests,
973   AC_HELP_STRING([--disable-tests],[disable building test apps]),
974 [case "${enableval}" in
975   yes) BUILD_TESTS=yes ;;
976   no)  BUILD_TESTS=no ;;
977   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
978 esac], 
979 [BUILD_TESTS=yes]) dnl Default value
980
981 AC_ARG_ENABLE(examples,
982   AC_HELP_STRING([--disable-examples],[disable building examples]),
983 [case "${enableval}" in
984   yes) BUILD_EXAMPLES=yes ;;
985   no)  BUILD_EXAMPLES=no ;;
986   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
987 esac], 
988 [BUILD_EXAMPLES=yes]) dnl Default value
989
990 dnl seeking needs freetype, so check for it here
991 AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
992 dnl make the HAVE_FT2 variable available to automake and Makefile.am
993 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
994 AC_SUBST(FT2_CFLAGS)
995 AC_SUBST(FT2_LIBS)
996
997 dnl ################################################
998 dnl # Set defines according to variables set above #
999 dnl ################################################
1000
1001
1002 if test "x$USE_LIBMMX" = xyes; then
1003   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
1004 fi
1005
1006 if test "x$USE_ATOMIC_H" = xyes; then
1007   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
1008 fi
1009
1010 # do not use deprecated stuff
1011 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
1012
1013 if test "x$USE_DEBUG" = xyes; then
1014   GST_CFLAGS="$GST_CFLAGS -g"
1015 fi
1016
1017 if test "x$USE_PROFILING" = xyes; then
1018 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
1019   FOMIT_FRAME_POINTER=""
1020 else
1021   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
1022 fi
1023
1024 dnl
1025 dnl AC_SUBST(FOMIT_FRAME_POINTER)
1026 dnl
1027
1028 dnl #############################
1029 dnl # Set automake conditionals #
1030 dnl #############################
1031
1032 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1033 dnl HAVE_ and it is likely to be easier to stick with the old name
1034 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
1035 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
1036 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
1037 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
1038 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
1039 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1040
1041 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1042
1043 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1044 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1045
1046 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1047 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1048 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1049 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1050 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1051 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1052 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1053 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1054 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1055 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1056
1057 dnl prefer internal headers to already installed ones
1058 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
1059
1060 AC_SUBST(GST_LIBS)
1061 AC_SUBST(GST_CFLAGS)
1062
1063 dnl ###########################
1064 dnl # Configure external libs #
1065 dnl ###########################
1066 if test "x$HAVE_FFMPEG" = xyes; then
1067   AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg)
1068 fi 
1069
1070 dnl #########################
1071 dnl # Make the output files #
1072 dnl #########################
1073
1074 AC_CONFIG_FILES(
1075 Makefile
1076 pkgconfig/gstreamer-libs.pc
1077 pkgconfig/gstreamer-libs-uninstalled.pc
1078 pkgconfig/gstreamer-play.pc
1079 pkgconfig/gstreamer-play-uninstalled.pc
1080 gst-libs/gst/gconf/gstreamer-gconf.pc
1081 gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
1082 gst-plugins.spec
1083 gst/Makefile
1084 gst/ac3parse/Makefile
1085 gst/adder/Makefile
1086 gst/audioconvert/Makefile
1087 gst/audioscale/Makefile
1088 gst/auparse/Makefile
1089 gst/avi/Makefile
1090 gst/asfdemux/Makefile
1091 gst/cdxaparse/Makefile
1092 gst/chart/Makefile
1093 gst/cutter/Makefile
1094 gst/deinterlace/Makefile
1095 gst/effectv/Makefile
1096 gst/festival/Makefile
1097 gst/filter/Makefile
1098 gst/flx/Makefile
1099 gst/goom/Makefile
1100 gst/intfloat/Makefile
1101 gst/law/Makefile
1102 gst/level/Makefile
1103 gst/median/Makefile
1104 gst/mixmatrix/Makefile
1105 gst/mpeg1enc/Makefile
1106 gst/mpeg1sys/Makefile
1107 gst/mpeg1videoparse/Makefile
1108 gst/mpeg2enc/Makefile
1109 gst/mpeg2sub/Makefile
1110 gst/mpegaudio/Makefile
1111 gst/mpegaudioparse/Makefile
1112 gst/mpegstream/Makefile
1113 gst/mpegtypes/Makefile
1114 gst/modplug/Makefile
1115 gst/modplug/libmodplug/Makefile
1116 gst/monoscope/Makefile
1117 gst/monkeyaudio/Makefile
1118 gst/monkeyaudio/libmonkeyaudio/Makefile
1119 gst/oneton/Makefile
1120 gst/passthrough/Makefile
1121 gst/playondemand/Makefile
1122 gst/qtdemux/Makefile
1123 gst/rtjpeg/Makefile
1124 gst/rtp/Makefile
1125 gst/silence/Makefile
1126 gst/sine/Makefile
1127 gst/smooth/Makefile
1128 gst/smpte/Makefile
1129 gst/spectrum/Makefile
1130 gst/speed/Makefile
1131 gst/stereo/Makefile
1132 gst/stereomono/Makefile
1133 gst/synaesthesia/Makefile
1134 gst/udp/Makefile
1135 gst/vbidec/Makefile
1136 gst/videoscale/Makefile
1137 gst/videotestsrc/Makefile
1138 gst/videocrop/Makefile
1139 gst/volenv/Makefile
1140 gst/volume/Makefile
1141 gst/vumeter/Makefile
1142 gst/wavenc/Makefile
1143 gst/wavparse/Makefile
1144 gst/y4m/Makefile
1145 sys/Makefile
1146 sys/cdrom/Makefile
1147 sys/dxr3/Makefile
1148 sys/oss/Makefile
1149 sys/qcam/Makefile
1150 sys/v4l/Makefile
1151 sys/v4l2/Makefile
1152 sys/vcd/Makefile
1153 sys/vga/Makefile
1154 sys/xvideo/Makefile
1155 sys/x11/Makefile
1156 ext/Makefile
1157 ext/a52dec/Makefile
1158 ext/aalib/Makefile
1159 ext/alsa/Makefile
1160 ext/arts/Makefile
1161 ext/artsd/Makefile
1162 ext/audiofile/Makefile
1163 ext/cdparanoia/Makefile
1164 ext/divx/Makefile
1165 ext/dv/Makefile
1166 ext/dvdread/Makefile
1167 ext/dvdnav/Makefile
1168 ext/esd/Makefile
1169 ext/ffmpeg/Makefile
1170 ext/flac/Makefile
1171 ext/gnomevfs/Makefile
1172 ext/gsm/Makefile
1173 ext/hermes/Makefile
1174 dnl ext/http/Makefile
1175 ext/jack/Makefile
1176 ext/jpeg/Makefile
1177 ext/ladspa/Makefile
1178 ext/lame/Makefile
1179 ext/ivorbis/Makefile
1180 ext/lcs/Makefile
1181 ext/libfame/Makefile
1182 ext/libpng/Makefile
1183 ext/mad/Makefile
1184 ext/mas/Makefile
1185 ext/mikmod/Makefile
1186 ext/mjpegtools/Makefile
1187 ext/mpeg2dec/Makefile
1188 ext/openquicktime/Makefile
1189 ext/raw1394/Makefile
1190 ext/sdl/Makefile
1191 ext/shout/Makefile
1192 ext/shout2/Makefile
1193 ext/sidplay/Makefile
1194 ext/smoothwave/Makefile
1195 ext/snapshot/Makefile
1196 ext/swfdec/Makefile
1197 ext/vorbis/Makefile
1198 ext/tarkin/Makefile
1199 ext/xmms/Makefile
1200 ext/xvid/Makefile
1201 gst-libs/Makefile
1202 gst-libs/gst/Makefile
1203 gst-libs/gst/audio/Makefile
1204 gst-libs/gst/floatcast/Makefile
1205 gst-libs/gst/gconf/Makefile
1206 gst-libs/gst/idct/Makefile
1207 gst-libs/gst/media-info/Makefile
1208 gst-libs/gst/play/Makefile
1209 gst-libs/gst/resample/Makefile
1210 gst-libs/gst/riff/Makefile
1211 gst-libs/gst/video/Makefile
1212 gst-libs/ext/Makefile
1213 gst-libs/ext/ffmpeg/Makefile
1214 examples/dynparams/Makefile
1215 examples/capsfilter/Makefile
1216 examples/seeking/Makefile
1217 examples/indexing/Makefile
1218 examples/Makefile
1219 testsuite/autoplug/Makefile
1220 testsuite/spider/Makefile
1221 testsuite/alsa/Makefile
1222 testsuite/Makefile
1223 tools/Makefile
1224 gconf/Makefile
1225 pkgconfig/Makefile
1226 )
1227 AC_OUTPUT
1228
1229 echo -e "configure: *** Plug-ins that will be built : $GST_PLUGINS_YES"
1230 echo
1231 echo -e "configure: *** Plug-ins that will not be built : $GST_PLUGINS_NO"
1232 echo
1233 if test "x$BUILD_EXTERNAL" = "xno"; then
1234   echo "configure: *** No external plug-ins will be built"
1235 fi