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