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