Added corresponding divx/xvid decoders and fixed some first-hand encoder bugs
[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 *** avifile ***
469 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
470 GST_CHECK_FEATURE(AVIFILE, [avifile], winenc windec, [
471   if test "x$no_x" = "xyes"; then
472     AC_MSG_WARN([No X libraries found, avifile test might fail compilation])
473   fi
474   if test "x$HAVE_CXX" != "xyes"; then
475     AC_MSG_WARN([No C++ compiler found, avifile test will fail compilation])
476   fi
477   AS_AVIFILE(0.7.0)
478 ])
479
480 dnl *** CDParanoia ***
481 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
482 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
483   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
484                       cdda_open, -lm, 
485                       cdda_interface.h, 
486                       CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
487                       HEADER_DIR="no"
488                       FOUND_CDPARANOIA="yes")
489   if test "x$FOUND_CDPARANOIA" != "xyes";
490   then
491     GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, 
492                         cdda_open, -lm, 
493                         cdda/cdda_interface.h, 
494                         CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia"
495                         HEADER_DIR="yes"
496                         FOUND_CDPARANOIA="yes")
497   fi
498   if test "x$HEADER_DIR" = "xyes";
499   then
500     AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, ,
501                        defined if cdda headers are in a cdda/ directory)
502   fi
503   AC_SUBST(CDPARANOIA_LIBS)
504 ])
505 dnl FIXME : add second check somehow if that is necessary
506 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
507 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
508
509 dnl *** DIVX ***
510 translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true)
511 GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [
512   HAVE_DIVX=yes
513   AC_CHECK_HEADER(encore2.h, ,
514                   [ AC_MSG_WARN([Divx4linux encore headers not found]) &&
515                     HAVE_DIVX=no ] )
516   AC_CHECK_HEADER(decore.h, ,
517                   [ AC_MSG_WARN([Divx4linux decoder headers not found]) &&
518                     HAVE_DIVX=no ] )
519   LIBS="-lm"
520   AC_CHECK_LIB(divxencore, encore, ,
521                [ AC_MSG_WARN([Divx4linux encore libs not found]) &&
522                  HAVE_DIVX=no ] )
523   AC_CHECK_LIB(divxdecore, decore, ,
524                [ AC_MSG_WARN([Divx4linux decore libs not found]) &&
525                  HAVE_DIVX=no ] )
526   if test x$HAVE_DIVX = xyes; then
527     DIVXENC_LIBS="-ldivxencore -lm"
528     DIVXDEC_LIBS="-ldivxdecore -lm"
529     AC_SUBST(DIVXENC_LIBS)
530     AC_SUBST(DIVXDEC_LIBS)
531   fi
532 ])
533
534 dnl *** dvdread ***
535 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
536 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [
537   GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
538   AC_SUBST(DVDREAD_LIBS)
539 ])
540
541 dnl *** dvdnav ***
542 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true)
543 GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [
544   translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS)
545   translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS)
546   GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config)
547   if test x"$HAVE_DVDNAV" = x"yes"; then
548     dnl check version
549     DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'`
550     DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g`
551     DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g`
552     DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g`
553     if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
554        [[ "$DVDNAV_MINOR" -lt "1" ]]; then
555       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
556       HAVE_DVDNAV="no"
557     elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \
558          [[ "$DVDNAV_MINOR" -eq "1" ]] && \
559          [[ "$DVDNAV_MICRO" -lt "7" ]]; then
560       AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION])
561       HAVE_DVDNAV="no"
562       fi
563     fi
564   AS_SCRUB_INCLUDE(DVDNAV_CFLAGS)
565 ])
566
567 dnl *** MAS ***
568 translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true)
569 GST_CHECK_FEATURE(MAS, [mas library], massink, [
570   translit(dnm, m, l) AC_SUBST(MAS_LIBS)
571   translit(dnm, m, l) AC_SUBST(MAS_CFLAGS)
572   GST_CHECK_CONFIGPROG(MAS, mas-config)
573   AS_SCRUB_INCLUDE(MAS_CFLAGS)
574 ])
575
576 dnl **** ESound ****
577 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
578 GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [
579   AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
580   AS_SCRUB_INCLUDE(ESD_CFLAGS)
581 ])
582
583 dnl **** festival ****
584 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
585 dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [
586   dnl NOTE: just using local net connection now, add this lib check
587   dnl       in the future if needed
588   dnl AC_LANG_PUSH(C++)
589   dnl dnl FIXME: took out func to check for
590   dnl dnl This check puts festival_tidy_up in extern "C".
591   dnl dnl But, at least on Debian as of 20020110, it is compiled with name
592   dnl dnl mangling C++ nonsense and symbols can't resolve
593   dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
594   dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
595   dnl AC_LANG_POP(C++)
596   dnl AC_SUBST(FESTIVAL_LIBS)
597 dnl  HAVE_FESTIVAL=yes
598 dnl])
599
600 dnl *** FLAC ***
601 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
602 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
603   GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__stream_decoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
604   AC_SUBST(FLAC_LIBS)
605 ])
606
607 dnl *** FFMPEG ***
608 translit(dnm, m, l) AM_CONDITIONAL(USE_FFMPEG, true)
609 GST_CHECK_FEATURE(FFMPEG, [ffmpeg plug-ins], ffmpeg, [
610   # only slurp in the case where we are in CVS mode;
611   # prerelease and release should get it disted
612   if test "x$GST_PLUGINS_VERSION_NANO" = x1; then
613     AC_MSG_NOTICE(slurping FFmpeg CVS source)
614     AS_SLURP_FFMPEG(gst-libs/ext/ffmpeg, 2002-12-14 12:00 GMT,
615                     HAVE_FFMPEG=yes, HAVE_FFMPEG=no)
616   else
617     AC_MSG_NOTICE(FFmpeg CVS code should be included already)
618     HAVE_FFMPEG=yes
619   fi
620   # we only bother with uninstalled (included) ffmpeg for now
621   AC_DEFINE_UNQUOTED(HAVE_FFMPEG_UNINSTALLED, 1,
622                      [defined if we use uninstalled ffmpeg])
623 ])
624
625 dnl *** Gnome VFS ***
626 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
627 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
628   PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no")
629   AC_SUBST(GNOME_VFS_CFLAGS)
630   AC_SUBST(GNOME_VFS_LIBS)
631 ])
632
633 dnl *** gsm ***
634 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
635 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
636   GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
637   if test $HAVE_GSM != "yes"; then
638     GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
639     if test $HAVE_GSM = "yes"; then 
640       AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir])
641     fi
642   fi
643   AC_SUBST(GSM_LIBS)
644 ])
645
646 dnl *** Hermes ***
647 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
648 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
649   GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
650 ], AC_SUBST(HERMES_LIBS))
651
652 dnl *** http ***
653 translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
654 GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [
655   dnl FIXME: need to check for header
656   GHTTP_LIBS=
657   GST_HTTPSRC_GET_TYPE=
658   if test x$USE_GLIB2 = xyes; then
659     AC_MSG_WARN(ghttp disabled for glib2.0)
660   else
661     AC_CHECK_LIB(ghttp, ghttp_request_new,
662       [HTTP_LIBS="-lghttp"
663        GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
664        HAVE_HTTP=yes
665       ], :, $LIBS)
666   fi
667   AC_SUBST(HTTP_LIBS)
668   AC_SUBST(GST_HTTPSRC_GET_TYPE)
669 ])
670
671 dnl *** ivorbis ***
672 dnl AM_PATH_IVORBIS only takes two options
673 translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true)
674 GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [
675   XIPH_PATH_IVORBIS(HAVE_IVORBIS=yes, HAVE_IVORBIS=no)
676   AS_SCRUB_INCLUDE(IVORBIS_CFLAGS)
677 ])
678
679 dnl *** Jack ***
680 translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true)
681 GST_CHECK_FEATURE(JACK, Jack, jack, [
682   PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no")
683   AC_SUBST(JACK_CFLAGS)
684   AC_SUBST(JACK_LIBS)
685 ])
686
687 dnl *** jpeg ***
688 dnl FIXME: we could use header checks here as well IMO
689 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
690 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
691   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
692   JPEG_LIBS="-ljpeg"
693   AC_SUBST(JPEG_LIBS)
694 ])
695
696 dnl *** ladspa ***
697 translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true)
698 GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [
699   AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no")
700 ])
701
702 dnl *** lame ***
703 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
704 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
705   GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame")
706 ])
707 AC_SUBST(LAME_LIBS)
708
709 dnl *** libcolorspace ***
710 translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true)
711 GST_CHECK_FEATURE(LCS, Lcs, lcs, [
712   PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no")
713   AC_SUBST(LCS_CFLAGS)
714   AC_SUBST(LCS_LIBS)
715 ])
716
717 dnl *** libdv ***
718 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
719 GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [
720   PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no")
721   AC_SUBST(LIBDV_CFLAGS)
722   AC_SUBST(LIBDV_LIBS)
723 ])
724
725 dnl *** libfame ***
726 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true)
727 GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [
728   AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no")
729   AC_SUBST(LIBFAME_CFLAGS)
730   AC_SUBST(LIBFAME_LIBS)
731 ])
732
733 dnl *** libpng ***
734 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
735 GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [
736   PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no")
737   AC_SUBST(LIBPNG_CFLAGS)
738   AC_SUBST(LIBPNG_LIBS)
739 ])
740
741
742 dnl *** mad ***
743 dnl FIXME: we could use header checks here as well IMO
744 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
745 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
746   AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
747   if test "x$HAVE_MAD" = "xyes"; then
748     # installed with mad >= 0.14
749     HAVE_MAD="no"
750     save_libs=$LIBS
751     LIBS="-lz"
752     AC_CHECK_LIB(id3tag, id3_tag_query, HAVE_MAD="yes" MAD_LIBS="$MAD_LIBS -lid3tag")
753     LIBS=$save_LIBS
754   fi    
755 ])
756 AC_SUBST(MAD_LIBS)
757
758 dnl *** mikmod ***
759 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
760 GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [
761   AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
762   AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
763   AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
764 ])
765
766 dnl *** mjpegtools ***
767 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
768 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
769   PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
770
771   if [ test x$HAVE_MJPEGTOOLS = x"yes" ]; then
772     dnl some headers we might want to need
773     AC_CHECK_HEADERS(stdint.h, HAVE_STDINT_H="yes", HAVE_STDINT_H="no")
774     if [ test x$HAVE_STDINT_H = x"no" ]; then
775       AC_CHECK_HEADERS(inttypes.h sys/types.h, HAVE_INTTYPES_H="yes", [
776         AC_MSG_WARN(No valid header files found, mjpegtools plugins disabled)
777         HAVE_INTTYPES_H="no" HAVE_MJPEGTOOLS="no"
778       ])
779     fi
780     AC_CHECK_HEADERS(stdbool.h, HAVE_STDBOOL_H="yes", HAVE_STDBOOL_H="no")
781
782     dnl sizeof PRId64 etc...
783     AC_CHECK_SIZEOF(int)
784     AC_CHECK_SIZEOF(long)
785     AC_CHECK_SIZEOF(long long)
786     case 8 in
787     $ac_cv_sizeof_int)
788       PRID64_STRING_FORMAT="d"
789       ;;
790     $ac_cv_sizeof_long)
791       PRID64_STRING_FORMAT="ld"
792       ;;
793     $ac_cv_sizeof_long_long)
794       PRID64_STRING_FORMAT="lld"
795       ;;
796     *)
797       AC_MSG_WARN(No suitable variant for 64bits integers found, mjpegtools plugins disabled)
798       HAVE_MJPEGTOOLS="no"
799       ;;
800     esac
801
802     AC_DEFINE_UNQUOTED(PRID64_STRING_FORMAT, "$PRID64_STRING_FORMAT",
803       [ A printf type definition for 64 bit integers ])
804     AC_SUBST(MJPEGTOOLS_LIBS)
805     AC_SUBST(MJPEGTOOLS_CFLAGS)
806   fi
807 ])
808
809 dnl *** mpeg2dec ***
810 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
811 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
812   PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1,
813       HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no")
814   AC_SUBST(MPEG2DEC_CFLAGS)
815   AC_SUBST(MPEG2DEC_LIBS)
816 ])
817
818 dnl *** openquicktime ***
819 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
820 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
821   GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
822   AC_SUBST(OPENQUICKTIME_LIBS)
823 ])
824
825 dnl *** raw1394 ***
826 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
827 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
828   GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394")
829   AC_SUBST(RAW1394_LIBS)
830 ])
831
832 dnl *** SDL ***
833 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
834 GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [
835  AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
836 ])
837
838 dnl *** shout ***
839 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
840 GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [
841   GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
842   AC_SUBST(SHOUT_LIBS)
843 ])
844
845 dnl *** shout2 *** 
846 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true)
847 GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [
848   AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no)
849   AC_SUBST(SHOUT2_CFLAGS)
850   AC_SUBST(SHOUT2_LIBS)
851 ])
852
853 dnl *** sidplay ***
854 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
855 GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [
856   GST_PATH_SIDPLAY()
857 ])
858
859 dnl *** smoothwave ***
860 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
861 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [
862   if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
863 ])
864
865
866 dnl *** snapshot ***
867 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true)
868 GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [
869   GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm")
870   AC_SUBST(LIBPNG_LIBS)
871 ])
872
873 dnl *** swfdec ***
874 translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true)
875 GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [
876   PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no)
877   AC_SUBST(SWFDEC_CFLAGS)
878   AC_SUBST(SWFDEC_LIBS)
879 ])
880
881 dnl *** tarkin ***
882 dnl for now the sources are included in the plug-in
883 dnl and should be moved to ext-libs/ perhaps
884 translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true)
885 GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [
886   HAVE_TARKIN="yes"
887 ])
888
889 dnl *** vorbis ***
890 dnl AM_PATH_VORBIS only takes two options
891 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
892 GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [
893   XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
894   AS_SCRUB_INCLUDE(VORBIS_CFLAGS)
895 ])
896
897 dnl *** XMMS ***
898 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
899 GST_CHECK_FEATURE(XMMS, [xmms plug-in], xmms, [
900   AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
901 ])
902
903 dnl *** XVID ***
904 translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true)
905 GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [
906   HAVE_XVID=yes
907   AC_CHECK_HEADER(xvid.h, ,
908                   [ AC_MSG_WARN([Xvid headers not found]) &&
909                     HAVE_XVID=no ] )
910   LIBS="-lm"
911   AC_CHECK_LIB(xvidcore, xvid_encore, ,
912                [ AC_MSG_WARN([Xvid encore libs not found]) &&
913                  HAVE_XVID=no ] )
914   AC_CHECK_LIB(xvidcore, xvid_decore, ,
915                [ AC_MSG_WARN([Xvid decore libs not found]) &&
916                  HAVE_XVID=no ] )
917   if test x$HAVE_XVID = xyes; then
918     XVID_LIBS="-lxvidcore -lm"
919     AC_SUBST(XVID_LIBS)
920   fi
921 ])
922
923
924 fi dnl of EXT plugins
925
926 dnl Check for atomic.h
927 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
928 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
929 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
930 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
931 if test x$HAVE_ATOMIC_H = xyes; then
932   AC_TRY_RUN([
933 #include "asm/atomic.h"
934 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
935   ],, [
936     # Not successful
937     if test x$HAVE_ATOMIC_H = xyes; then
938       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
939     fi
940     HAVE_ATOMIC_H=no
941   ], [
942     # Cross compiling
943     AC_MSG_RESULT(yes)
944     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
945   ])
946 fi
947
948
949 dnl ######################################################################
950 dnl # Check command line parameters, and set shell variables accordingly #
951 dnl ######################################################################
952
953 GST_DEBUGINFO
954
955 AC_ARG_ENABLE(libmmx,
956   AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]),
957 [case "${enableval}" in
958   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
959   no)  USE_LIBMMX=no ;;
960   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
961 esac], 
962 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
963
964 AC_ARG_ENABLE(atomic,
965   AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]),
966 [case "${enableval}" in
967   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
968   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
969   no)  USE_ATOMIC_H=no;;
970   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
971 esac], 
972 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
973
974 AC_ARG_ENABLE(profiling,
975   AC_HELP_STRING([--enable-profiling],
976                  [-pg to compiler commandline, for profiling]),
977 [case "${enableval}" in
978   yes) USE_PROFILING=yes ;;
979   no)  UES_PROFILING=no ;;
980   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
981 esac], 
982 [USE_PROFILING=no]) dnl Default value
983
984 AC_ARG_ENABLE(tests,
985   AC_HELP_STRING([--disable-tests],[disable building test apps]),
986 [case "${enableval}" in
987   yes) BUILD_TESTS=yes ;;
988   no)  BUILD_TESTS=no ;;
989   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
990 esac], 
991 [BUILD_TESTS=yes]) dnl Default value
992
993 AC_ARG_ENABLE(examples,
994   AC_HELP_STRING([--disable-examples],[disable building examples]),
995 [case "${enableval}" in
996   yes) BUILD_EXAMPLES=yes ;;
997   no)  BUILD_EXAMPLES=no ;;
998   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
999 esac], 
1000 [BUILD_EXAMPLES=yes]) dnl Default value
1001
1002 dnl seeking needs freetype, so check for it here
1003 AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no)
1004 dnl make the HAVE_FT2 variable available to automake and Makefile.am
1005 AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes")
1006 AC_SUBST(FT2_CFLAGS)
1007 AC_SUBST(FT2_LIBS)
1008
1009 dnl ################################################
1010 dnl # Set defines according to variables set above #
1011 dnl ################################################
1012
1013
1014 if test "x$USE_LIBMMX" = xyes; then
1015   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
1016 fi
1017
1018 if test "x$USE_ATOMIC_H" = xyes; then
1019   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
1020 fi
1021
1022 # do not use deprecated stuff
1023 GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED"
1024
1025 if test "x$USE_DEBUG" = xyes; then
1026   GST_CFLAGS="$GST_CFLAGS -g"
1027 fi
1028
1029 if test "x$USE_PROFILING" = xyes; then
1030 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
1031   FOMIT_FRAME_POINTER=""
1032 else
1033   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
1034 fi
1035
1036 dnl
1037 dnl AC_SUBST(FOMIT_FRAME_POINTER)
1038 dnl
1039
1040 dnl #############################
1041 dnl # Set automake conditionals #
1042 dnl #############################
1043
1044 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1045 dnl HAVE_ and it is likely to be easier to stick with the old name
1046 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
1047 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
1048 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
1049 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
1050 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
1051 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1052
1053 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1054
1055 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1056 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1057
1058 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1059 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1060 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1061 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1062 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1063 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1064 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1065 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1066 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1067 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1068
1069 dnl prefer internal headers to already installed ones
1070 GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR"
1071
1072 AC_SUBST(GST_LIBS)
1073 AC_SUBST(GST_CFLAGS)
1074
1075 dnl ###########################
1076 dnl # Configure external libs #
1077 dnl ###########################
1078 if test "x$HAVE_FFMPEG" = xyes; then
1079   AC_CONFIG_SUBDIRS(gst-libs/ext/ffmpeg/ffmpeg)
1080 fi 
1081
1082 dnl #########################
1083 dnl # Make the output files #
1084 dnl #########################
1085
1086 AC_CONFIG_FILES(
1087 Makefile
1088 pkgconfig/gstreamer-libs.pc
1089 pkgconfig/gstreamer-libs-uninstalled.pc
1090 pkgconfig/gstreamer-play.pc
1091 pkgconfig/gstreamer-play-uninstalled.pc
1092 gst-libs/gst/gconf/gstreamer-gconf.pc
1093 gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc
1094 gst-plugins.spec
1095 gst/Makefile
1096 gst/ac3parse/Makefile
1097 gst/adder/Makefile
1098 gst/audioconvert/Makefile
1099 gst/audioscale/Makefile
1100 gst/auparse/Makefile
1101 gst/avi/Makefile
1102 gst/asfdemux/Makefile
1103 gst/cdxaparse/Makefile
1104 gst/chart/Makefile
1105 gst/cutter/Makefile
1106 gst/deinterlace/Makefile
1107 gst/effectv/Makefile
1108 gst/festival/Makefile
1109 gst/filter/Makefile
1110 gst/flx/Makefile
1111 gst/goom/Makefile
1112 gst/intfloat/Makefile
1113 gst/law/Makefile
1114 gst/level/Makefile
1115 gst/median/Makefile
1116 gst/mixmatrix/Makefile
1117 gst/mpeg1enc/Makefile
1118 gst/mpeg1sys/Makefile
1119 gst/mpeg1videoparse/Makefile
1120 gst/mpeg2enc/Makefile
1121 gst/mpeg2sub/Makefile
1122 gst/mpegaudio/Makefile
1123 gst/mpegaudioparse/Makefile
1124 gst/mpegstream/Makefile
1125 gst/mpegtypes/Makefile
1126 gst/modplug/Makefile
1127 gst/modplug/libmodplug/Makefile
1128 gst/monoscope/Makefile
1129 gst/monkeyaudio/Makefile
1130 gst/monkeyaudio/libmonkeyaudio/Makefile
1131 gst/oneton/Makefile
1132 gst/passthrough/Makefile
1133 gst/playondemand/Makefile
1134 gst/qtdemux/Makefile
1135 gst/rtjpeg/Makefile
1136 gst/rtp/Makefile
1137 gst/silence/Makefile
1138 gst/sine/Makefile
1139 gst/smooth/Makefile
1140 gst/smpte/Makefile
1141 gst/spectrum/Makefile
1142 gst/speed/Makefile
1143 gst/stereo/Makefile
1144 gst/stereomono/Makefile
1145 gst/synaesthesia/Makefile
1146 gst/udp/Makefile
1147 gst/vbidec/Makefile
1148 gst/videoscale/Makefile
1149 gst/videotestsrc/Makefile
1150 gst/videocrop/Makefile
1151 gst/volenv/Makefile
1152 gst/volume/Makefile
1153 gst/vumeter/Makefile
1154 gst/wavenc/Makefile
1155 gst/wavparse/Makefile
1156 gst/y4m/Makefile
1157 sys/Makefile
1158 sys/cdrom/Makefile
1159 sys/dxr3/Makefile
1160 sys/oss/Makefile
1161 sys/qcam/Makefile
1162 sys/v4l/Makefile
1163 sys/v4l2/Makefile
1164 sys/vcd/Makefile
1165 sys/vga/Makefile
1166 sys/xvideo/Makefile
1167 ext/Makefile
1168 ext/a52dec/Makefile
1169 ext/aalib/Makefile
1170 ext/alsa/Makefile
1171 ext/arts/Makefile
1172 ext/artsd/Makefile
1173 ext/audiofile/Makefile
1174 ext/avifile/Makefile
1175 ext/cdparanoia/Makefile
1176 ext/divx/Makefile
1177 ext/dv/Makefile
1178 ext/dvdread/Makefile
1179 ext/dvdnav/Makefile
1180 ext/esd/Makefile
1181 ext/ffmpeg/Makefile
1182 ext/flac/Makefile
1183 ext/gnomevfs/Makefile
1184 ext/gsm/Makefile
1185 ext/hermes/Makefile
1186 ext/http/Makefile
1187 ext/jack/Makefile
1188 ext/jpeg/Makefile
1189 ext/ladspa/Makefile
1190 ext/lame/Makefile
1191 ext/ivorbis/Makefile
1192 ext/lcs/Makefile
1193 ext/libfame/Makefile
1194 ext/libpng/Makefile
1195 ext/mad/Makefile
1196 ext/mas/Makefile
1197 ext/mikmod/Makefile
1198 ext/mjpegtools/Makefile
1199 ext/mpeg2dec/Makefile
1200 ext/openquicktime/Makefile
1201 ext/raw1394/Makefile
1202 ext/sdl/Makefile
1203 ext/shout/Makefile
1204 ext/shout2/Makefile
1205 ext/sidplay/Makefile
1206 ext/smoothwave/Makefile
1207 ext/snapshot/Makefile
1208 ext/swfdec/Makefile
1209 ext/vorbis/Makefile
1210 ext/tarkin/Makefile
1211 ext/xmms/Makefile
1212 ext/xvid/Makefile
1213 gst-libs/Makefile
1214 gst-libs/gst/Makefile
1215 gst-libs/gst/audio/Makefile
1216 gst-libs/gst/floatcast/Makefile
1217 gst-libs/gst/gconf/Makefile
1218 gst-libs/gst/idct/Makefile
1219 gst-libs/gst/media-info/Makefile
1220 gst-libs/gst/play/Makefile
1221 gst-libs/gst/resample/Makefile
1222 gst-libs/gst/riff/Makefile
1223 gst-libs/gst/video/Makefile
1224 gst-libs/ext/Makefile
1225 gst-libs/ext/ffmpeg/Makefile
1226 examples/dynparams/Makefile
1227 examples/capsfilter/Makefile
1228 examples/seeking/Makefile
1229 examples/indexing/Makefile
1230 examples/Makefile
1231 testsuite/autoplug/Makefile
1232 testsuite/spider/Makefile
1233 testsuite/alsa/Makefile
1234 testsuite/Makefile
1235 tools/Makefile
1236 gconf/Makefile
1237 pkgconfig/Makefile
1238 )
1239 AC_OUTPUT
1240
1241 echo -e "configure: *** Plug-ins that will be built : $GST_PLUGINS_YES"
1242 echo
1243 echo -e "configure: *** Plug-ins that will not be built : $GST_PLUGINS_NO"
1244 echo
1245 if test "x$BUILD_EXTERNAL" = "xno"; then
1246   echo "configure: *** No external plug-ins will be built"
1247 fi