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