added cdparanoia check
[platform/upstream/gstreamer.git] / configure.ac
1 dnl Note: this file is now the main autoconf file
2 AC_INIT
3 AC_CONFIG_SRCDIR([gst/gstobject.h])
4
5 AC_CANONICAL_TARGET([])
6
7 AM_CONFIG_HEADER(config.h)
8
9 GST_VERSION_MAJOR=0
10 GST_VERSION_MINOR=3
11 GST_VERSION_MICRO=01
12
13 dnl we use the release tag during CVS development
14 GST_VERSION_RELEASE=`date +%Y%m%d`
15
16 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO
17
18 PACKAGE=gstreamer
19 VERSION=$GST_VERSION
20
21 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
22 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
23 AC_SUBST(PACKAGE)
24 AC_SUBST(VERSION)
25 AC_DEFINE_UNQUOTED(GST_VERSION_RELEASE, "$GST_VERSION_RELEASE")
26 AC_SUBST(GST_VERSION_RELEASE)
27
28 dnl libtool
29 GST_CURRENT=1
30 GST_REVISION=0
31 GST_AGE=0
32 GST_LIBVERSION=$GST_CURRENT:$GST_REVISION:$GST_AGE
33
34 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
35 dnl Add parameters for aclocal
36 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
37 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
38
39 AC_SUBST(GST_VERSION_MAJOR)
40 AC_SUBST(GST_VERSION_MINOR)
41 AC_SUBST(GST_VERSION_MICRO)
42 AC_SUBST(GST_VERSION)
43
44 AC_SUBST(GST_CURRENT)
45 AC_SUBST(GST_REVISION)
46 AC_SUBST(GST_AGE)
47 AC_SUBST(GST_LIBVERSION)
48
49 AM_MAINTAINER_MODE
50
51 AC_PROG_CC
52 AM_PROG_CC_STDC
53 AM_PROG_AS
54 AS="${CC}"
55 AC_PROG_CXX
56 AC_PROG_CXXCPP
57 AC_ISC_POSIX
58
59 dnl We disable static building for development, for time savings
60 dnl *NOTE*: dnl this line before release, so release does static too
61 AM_DISABLE_STATIC
62 AC_LIBTOOL_DLOPEN
63 AM_PROG_LIBTOOL
64
65 AC_HEADER_STDC([])
66
67 dnl This is used for the -config script...
68 builddir=`pwd`
69 AC_SUBST(builddir)
70
71
72 dnl ###########################################
73 dnl # Super Duper options for plugin building #
74 dnl ###########################################
75
76 dnl experimental plugins; stuff that hasn't had the dust settle yet
77 AC_ARG_ENABLE(experimental,
78 [  --enable-experimental          enable building of experimental plugins],
79 [case "${enableval}" in
80   yes) EXPERIMENTAL="yes" ;;
81   no) EXPERIMENTAL="no" ;;
82 esac], 
83 [EXPERIMENTAL=no]) dnl Default value
84
85 if test "x$EXPERIMENTAL" = "$xyes"; then
86   AC_MSG_WARN(building experimental plugins)
87   USE_FLACLIB="yes"
88   USE_LIBMIKMOD="yes"
89 else
90   AC_MSG_NOTICE(not building experimental plugins)
91   USE_FLACLIB="no"
92   USE_LIBMIKMOD="no"
93 fi
94
95 dnl broken plugins; stuff that doesn't seem to build at the moment
96 AC_ARG_ENABLE(broken,
97 [  --enable-broken          enable building of broken plugins],
98 [case "${enableval}" in
99   yes) BROKEN="yes" ;;
100   no) BROKEN="no" ;;
101 esac], 
102 [BROKEN=no]) dnl Default value
103
104 if test "x$broken-plugins" = "$xyes"; then
105   AC_MSG_WARN(building broken plugins)
106   USE_ARTS="yes"
107   USE_ARTSC="yes"
108   USE_LIBGSM="yes"
109   USE_FLACLIB="yes"
110   USE_LIBAVIFILE="yes"
111   USE_LIBMAD="yes"
112 else
113   AC_MSG_NOTICE(not building broken plugins)
114   USE_ARTS="no"
115   USE_ARTSC="no"
116   USE_LIBGSM="no"
117   USE_FLACLIB="no"
118   USE_LIBAVIFILE="no"
119   USE_LIBMAD="no"
120 fi
121
122
123
124 dnl ##############################
125 dnl # Do automated configuration #
126 dnl ##############################
127
128 dnl Check for tools:
129 dnl ================
130
131 dnl Check for nasm
132 AC_PATH_PROG(NASM_PATH, nasm, no)
133 AC_SUBST(NASM_PATH)
134 if test x$NASM_PATH = xno; then
135   AC_MSG_WARN(Couldn't find nasm)
136   HAVE_NASM="no"
137 else
138   AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
139   HAVE_NASM="yes"
140 fi
141
142 dnl fix pkg-config's broken default search path
143 if test -z $PKG_CONFIG_PATH; then
144   PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
145 fi
146 export PKG_CONFIG_PATH
147
148 dnl Check for pkgconfig
149 AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, true, false)
150
151 dnl check for gtk-doc
152 AC_ARG_WITH(html-dir, [  --with-html-dir=PATH path to installed docs ])
153
154 if test "x$with_html_dir" = "x" ; then
155   HTML_DIR='${datadir}/gst/html'
156 else
157   HTML_DIR=$with_html_dir
158 fi
159
160 AC_SUBST(HTML_DIR)
161
162 AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-mkdb, true, false)
163 gtk_doc_min_version=0.6
164 if $HAVE_GTK_DOC ; then 
165     gtk_doc_version=`gtkdoc-mkdb --version`
166     AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
167     if perl <<EOF ; then
168       exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
169             ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
170 EOF
171       AC_MSG_RESULT(yes)
172    else
173       AC_MSG_RESULT(no)
174       HAVE_GTK_DOC=false
175    fi
176 fi
177 GTK_DOC_SCANOBJ=gtkdoc-scanobj
178
179 AC_SUBST(HAVE_GTK_DOC)
180 AC_SUBST(GTK_DOC_SCANOBJ)
181
182 dnl check for docbook tools
183 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, true, false)
184 AC_CHECK_PROG(HAVE_PDFTOPS, pdftops, true, false)
185 dnl this does not yet work properly, at least on debain -- wingo
186 HAVE_PDFXMLTEX=false
187
188 dnl check for image conversion tool
189 AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, true, false)
190
191 dnl The following is a hack: if fig2dev doesn't display an error message
192 dnl for the desired type, we assume it supports it.
193 HAVE_FIG2DEV_PNG=false
194 if test "x$HAVE_FIG2DEV" = "xtrue" ; then
195   fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
196   if test "x$fig2dev_quiet" = "x" ; then
197     HAVE_FIG2DEV_PNG=true
198   fi
199 fi
200 HAVE_FIG2DEV_PDF=false
201 if test "x$HAVE_FIG2DEV" = "xtrue" ; then
202   fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
203   if test "x$fig2dev_quiet" = "x" ; then
204     HAVE_FIG2DEV_PDF=true
205   fi
206 fi
207
208
209 dnl Set up conditionals for (target) architecture:
210 dnl ==============================================
211
212 dnl Determine CPU
213 case "x${target_cpu}" in
214   xi?86 | k?) HAVE_CPU_I386=yes
215               AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
216               dnl FIXME could use some better detection
217               dnl       (ie CPUID)
218               case "x${target_cpu}" in
219                 xi386 | xi486) ;;
220                 *)             AC_DEFINE(HAVE_RDTSC) ;;
221               esac ;;
222   xpowerpc)   HAVE_CPU_PPC=yes
223               AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
224   xalpha)     HAVE_CPU_ALPHA=yes
225               AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
226   xarm*)      HAVE_CPU_ARM=yes
227               AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
228   xsparc*)    HAVE_CPU_SPARC=yes
229               AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
230   xmips*)     HAVE_CPU_MIPS=yes
231               AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
232   xhppa*)     HAVE_CPU_HPPA=yes
233               AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
234 esac
235
236 dnl Determine endianness
237 AC_C_BIGENDIAN
238
239 dnl Check for MMX-capable compiler
240 AC_MSG_CHECKING(for MMX-capable compiler)
241 AC_TRY_RUN([
242 #include "include/mmx.h"
243
244 main()
245 { movq_r2r(mm0, mm1); return 0; }
246 ],
247 [
248 HAVE_LIBMMX="yes"
249 AC_MSG_RESULT(yes)
250 ],
251 HAVE_LIBMMX="no"
252 AC_MSG_RESULT(no)
253 ,
254 HAVE_LIBMMX="no"
255 AC_MSG_RESULT(no)
256 )
257
258 dnl
259 dnl We should really use AC_SYS_LARGEFILE, but the problem is
260 dnl many of the plugins don't include "config.h".  To assure
261 dnl binary compatibility, it is necessary that all gstreamer
262 dnl code be compiled with the same sizeof(off_t), so we use
263 dnl the following crude hack.
264 dnl
265
266 AC_MSG_CHECKING(for large file support)
267 AC_TRY_RUN([
268 #define _LARGEFILE_SOURCE
269 #define _FILE_OFFSET_BITS 64
270 #include <sys/types.h>
271 int main () { return !(sizeof(off_t) == 8); }
272 ],
273 [
274 AC_MSG_RESULT(yes)
275 GST_CFLAGS="$GST_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
276 ],
277 [
278 AC_MSG_RESULT(no)
279 ],
280 [
281 AC_MSG_RESULT(no)
282 ])
283
284 dnl Check for essential libraries first:
285 dnl ====================================
286
287 dnl Check for glib2
288 translit(dnm, m, l) AM_CONDITIONAL(USE_GLIB2, true)
289 GST_CHECK_FEATURE(GLIB2, [use of glib-2.0 and GObject], , [
290   PKG_CHECK_MODULES(GLIB2, glib-2.0 gobject-2.0 gthread-2.0 gmodule-2.0,
291     HAVE_GLIB2=yes,HAVE_GLIB2=no)
292   GLIB_LIBS=$GLIB2_LIBS
293   GLIB_CFLAGS=$GLIB2_CFLAGS
294   AC_SUBST(GLIB_LIBS)
295   AC_SUBST(GLIB_CFLAGS)
296 ], disabled, [
297   AC_DEFINE(USE_GLIB2)
298   GST_CFLAGS="$GST_CFLAGS -DUSE_GLIB2"
299 ])
300 AC_SUBST(USE_GLIB2)
301
302 if test x$USE_GLIB2 = xno; then
303   GST_PKG_DEPS="glib >= 1.2.0, gtk+ >= 1.2.0"
304   
305   dnl Check for glib and gtk
306   AM_PATH_GLIB(1.2.0,,
307               AC_MSG_ERROR(Cannot find glib: Is glib-config in path?),
308               glib gmodule gthread)
309   AM_PATH_GTK(1.2.0,,
310               AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
311   HAVE_GTK=yes
312
313   GLIB_LIBS="$GLIB_LIBS $GTK_LIBS"
314   GLIB_CFLAGS="$GLIB_CFLAGS $GTK_CFLAGS"
315 else
316   GST_PKG_DEPS="glib-2.0 gobject-2.0 gmodule-2.0 gthread-2.0"
317   
318   PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
319
320   GTK_FLAGS=$GTK2_CFLAGS
321   GTK_LIBS=$GTK2_LIBS
322   
323   if $HAVE_GTK_DOC; then  
324     AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-scangobj, true, false)
325     if $HAVE_GTK_DOC; then
326       GTK_DOC_SCANOBJ=gtkdoc-scangobj
327     fi;
328   fi
329
330   dnl FIXME: check for  gnome2 - this conditional is currently
331   dnl always false.
332   AM_CONDITIONAL(USE_GNOME2, test "x$USE_GNOME2" = "xyes")
333   AC_SUBST(USE_GNOME2)
334 fi
335
336 AC_SUBST(GST_PKG_DEPS)
337 AC_SUBST(GTK_LIBS)
338 AC_SUBST(GTK_CFLAGS)
339
340 if test x$USE_GLIB2 = xno; then
341   LIBXML_PKG='libxml >= 1.8.1'
342 else
343   LIBXML_PKG='libxml-2.0'
344   AC_DEFINE(HAVE_LIBXML2)
345 fi
346 AC_SUBST(LIBXML_PKG)
347
348 dnl Check for libxml
349 AC_PATH_PROG(XML_CONFIG, xml-config, no)
350 dnl Thomas tries to convert this to pkg-config
351 dnl PKG_CHECK_MODULES(XML, $LIBXML_PKG, XML_CONFIG=yes, XML_CONFIG=no)
352 dnl AC_PATH_PROG(XML_CONFIG, xml-config, no)
353 if test x$XML_CONFIG = xno; then
354   AC_MSG_ERROR(Couldn't find $LIBXML_PKG)
355 fi
356 XML_LIBS="`xml-config --libs`"
357 XML_CFLAGS="`xml-config --cflags`"
358 AC_CHECK_LIB(xml, xmlDocGetRootElement, :,
359   [ AC_MSG_ERROR(Need version 1.8.1 or better of libxml) ],
360   $XML_LIBS)
361 AC_SUBST(XML_LIBS)
362 AC_SUBST(XML_CFLAGS)
363
364
365 dnl ==========================================================================
366 dnl ========================= Macro definitions ==============================
367 dnl ==========================================================================
368
369 dnl These macros should be moved out to separate files (acinclude.m4?), but
370 dnl can't currently be because of the SUBSTFOR magic.
371
372 dnl Perform a check for existence of ARTS
373 dnl Richard Boulton <richard-alsa@tartarus.org>
374 dnl Last modification: 26/06/2001
375 dnl GST_CHECK_FEATURE(FEATURE-NAME, FEATURE-DESCRIPTION,
376 dnl                   DEPENDENT-PLUGINS, TEST-FOR-FEATURE)
377 dnl
378 dnl This check was written for GStreamer: it should be renamed and checked
379 dnl for portability if you decide to use it elsewhere.
380 dnl
381 AC_DEFUN(GST_CHECK_ARTS,
382 [
383 dnl Set the flags
384 ARTS_LIBS="-L/usr/local/lib -L/usr/lib -lmcop -lartsflow -lartsflow_idl"
385 ARTS_CFLAGS="-I/usr/local/include/arts -I/usr/include/kde/arts -I/usr/include/arts"
386 ARTS_MCOPFLAGS=$ARTS_CFLAGS
387 dnl There's no arts-config script, so we make a guess based on the artsc-config
388 AC_PATH_PROG(ARTSC_CONFIG, artsc-config, no)
389 if test x$ARTSC_CONFIG = xyes; then
390   ARTS_ARTSC_CFLAGS=`artsc-config --cflags | sed 's/artsc/arts/g'`
391   ARTS_CFLAGS="$ARTS_CFLAGS $ARTS_ARTSC_CFLAGS"
392   ARTS_MCOPFLAGS="$ARTS_MCOPFLAGS $ARTS_ARTSC_CFLAGS"
393 fi
394 AC_SUBST(ARTS_LIBS)
395 AC_SUBST(ARTS_CFLAGS)
396 AC_SUBST(ARTS_MCOPFLAGS)
397
398 dnl Now check if it exists
399 AC_LANG_PUSH(C++)
400 HAVE_ARTS=yes
401 dnl FIXME: Can't get this test to pass, so commented it out.  Rely on header check.
402 dnl AC_CHECK_LIB(artsflow, convert_stereo_2float_i16le, :, HAVE_ARTS=no, $LIBS)
403
404 dnl AC_CHECK_HEADER uses CPPFLAGS, but not CFLAGS.
405 dnl FIXME: ensure only suitable flags result from artsc-config --cflags
406 AC_CHECK_HEADER(artsflow.h, :, HAVE_ARTS=no)
407
408 AC_LANG_POP(C++)
409 dnl Check for the idl generator
410 AC_CHECK_PROG(HAVE_MCOPIDL, mcopidl, yes, no)
411 if test x$HAVE_MCOPIDL = xno; then
412   HAVE_ARTS=no
413 fi
414 ])
415
416 dnl ==========================================================================
417 dnl ========================= End macro definitions ==========================
418 dnl ==========================================================================
419
420
421 dnl Next, check for the optional libraries:
422 dnl These are all libraries used in building plugins
423 dnl ================================================
424 dnl let's try and sort them alphabetically, shall we ?
425
426 echo
427 echo
428 AC_MSG_NOTICE(Checking for plugin libraries)
429
430 dnl *** a52dec ***
431 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
432 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
433 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
434 ])
435
436 dnl *** aalib ***
437 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
438 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
439   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
440 ])
441
442 dnl *** alsa ***
443 dnl FIXME: check if the version should be 0.9.0 or 0.5.0
444 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
445 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
446 AM_PATH_ALSA(0.5.0, HAVE_ALSA=yes, HAVE_ALSA=no)
447 ])
448
449 dnl *** arts ***
450 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
451 dnl GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [GST_CHECK_ARTS()])
452
453 dnl *** artsc ***
454 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
455 dnl GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [GST_CHECK_ARTSC()])
456
457 dnl *** audiofile ***
458 dnl this check uses the GST_CHECK_CONFIGPROG macro
459 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBAUDIOFILE, true)
460 GST_CHECK_FEATURE(LIBAUDIOFILE, [audiofile], afsink afsrc, [
461 translit(dnm, m, l) AC_SUBST(LIBAUDIOFILE_LIBS)
462 translit(dnm, m, l) AC_SUBST(LIBAUDIOFILE_CFLAGS)
463 GST_CHECK_CONFIGPROG(LIBAUDIOFILE, audiofile-config)
464 ])
465
466 dnl *** avifile ***
467 dnl this check uses the GST_CHECK_CONFIGPROG macro
468 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
469 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
470 translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
471 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
472 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
473 ])
474
475 dnl *** CDParanoia ***
476 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
477 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
478   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface., CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
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_LIBDVDREAD, true)
486 GST_CHECK_FEATURE(LIBDVDREAD, [dvdread library], libdvdread, [
487   GST_CHECK_LIBHEADER(LIBDVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, LIBDVDREAD_LIBS="-ldvdread")
488 ])
489
490 dnl **** ESound ****
491 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBESD, true)
492 GST_CHECK_FEATURE(LIBESD, [esound plugins], esdsrc esdsink, [
493   AM_PATH_ESD(0.2.12, HAVE_LIBESD=yes, HAVE_LIBESD=no)
494 ])
495
496 dnl *** FLAC ***
497 dnl dnl thomas : checking for compile with main instead of actual function,
498 dnl dnl since that made autoconf break (for version 2.13)
499 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFLAC, true)
500 dnl GST_CHECK_FEATURE(FLACLIB, [FLAC lossless audio], flacenc flacdec, [
501 dnl GST_CHECK_LIBHEADER(FLACLIB, FLAC, main, -lm, FLAC/all.h, LIBFLAC_LIBS="-lFLAC")
502 dnl ])
503 dnl 
504 dnl *** Gnome VFS ***
505 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
506 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
507 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
508 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
509 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
510 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
511 ])
512
513 dnl *** gsm ***
514 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGSM, true)
515 GST_CHECK_FEATURE(LIBGSM, [GSM library], gsmenc gsmdec, [
516 GST_CHECK_LIBHEADER(LIBGSM, gsm, gsm_create, , gsm/gsm.h, LIBGSM_LIBS="-lgsm" LIBGSM_CFLAGS="-DGSM_HEADER_IN_SUBDIR")
517 ])
518 dnl FIXME: this should be done somewhere in the functions, but it doesn't 
519 dnl seem to be happening
520 AC_SUBST(LIBGSM_LIBS)
521 AC_SUBST(LIBGSM_CFLAGS)
522
523 dnl *** Hermes ***
524 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBHERMES, true)
525 GST_CHECK_FEATURE(LIBHERMES, [Hermes library], colorspace, [
526 GST_CHECK_LIBHEADER(LIBHERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, LIBHERMES_LIBS="-lHermes")
527 ], AC_SUBST(LIBHERMES_LIBS))
528
529 dnl *** lame ***
530 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBLAME, true)
531 GST_CHECK_FEATURE(LIBLAME, [lame mp3 encoder library], lame, [
532 GST_CHECK_LIBHEADER(LIBLAME, mp3lame, lame_init, -lm, lame/lame.h, LIBLAME_LIBS="-lmp3lame")
533 ])
534
535 dnl AC_SUBST(HAVE_LIBLAME)
536
537 dnl *** libdv ***
538 dnl FIXME : check if those GLIB thingies are ok
539 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
540 GST_CHECK_FEATURE(LIBDV, [dv library], dv, [
541 GST_CHECK_LIBHEADER(LIBDV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, LIBDV_LIBS="-ldv")
542 ])
543 dnl FIXME : check if these CPP flags can be dealt with otherwise
544 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
545 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
546 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
547 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
548
549 dnl *** libjpeg ***
550 dnl FIXME: we could use header checks here as well IMO
551 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBJPEG, true)
552 GST_CHECK_FEATURE(LIBJPEG, [libjpeg], jpegenc jpegdec, [
553   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_LIBJPEG="yes", HAVE_LIBJPEG="no")
554 ])
555
556 dnl *** mad ***
557 dnl FIXME: we could use header checks here as well IMO
558 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMAD, true)
559 GST_CHECK_FEATURE(LIBMAD, [mad], mad, [
560 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_LIBMAD="yes")
561 ])
562
563 dnl *** mikmod ***
564 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMIKMOD, true)
565 GST_CHECK_FEATURE(LIBMIKMOD, [mikmod plugin], mikmod, [
566   AM_PATH_LIBMIKMOD(, HAVE_LIBMIKMOD=yes, HAVE_LIBMIKMOD=no)
567 ])
568
569 dnl *** mpeg2dec ***
570 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
571 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
572   GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2")
573 ])
574
575 dnl *** quicktime ***
576 dnl FIXME: make this be called openquicktime
577 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
578 GST_CHECK_FEATURE(QUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
579   GST_CHECK_LIBHEADER(QUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, QUICKTIME_LIBS="-lopenquicktime")
580 ])
581
582 dnl *** raw1394 ***
583 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
584 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
585   GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
586 ])
587
588 dnl Check for librtp
589 dnl FIXME : adapt and make it work
590 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRTP, true)
591 GST_CHECK_FEATURE(LIBRTP, [RTP library], rtpenc rtpdec,[
592   AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_LIBRTP=yes, HAVE_LIBRTP=no, $GLIB_LIBS $GLIB_CFLAGS)
593 ])
594 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
595 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
596 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
597 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
598 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
599
600
601 dnl *** SDL ***
602 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBSDL, true)
603 GST_CHECK_FEATURE(LIBSDL, [SDL plugin], sdlvideosink, [
604  AM_PATH_SDL(, HAVE_LIBSDL=yes, HAVE_LIBSDL=no)
605 ])
606
607 dnl *** shout ***
608 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBSHOUT, true)
609 GST_CHECK_FEATURE(LIBSHOUT, [shout plugin], icecastsend, [
610   GST_CHECK_LIBHEADER(LIBSHOUT, shout, shout_init_connection,, shout/shout.h, LIBSHOUT_LIBS="-lshout")
611 ])
612
613 dnl for sidplay
614 dnl FIXME : make this work
615 dnl AC_PATH_LIBSIDPLAY
616
617
618 dnl *** vorbis ***
619 dnl AM_PATH_VORBIS only takes two options
620 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
621 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
622   AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
623 ])
624
625 dnl *** xmms ***
626 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBXMMS, true)
627 GST_CHECK_FEATURE(LIBXMMS, [xmms plugin], xmms, [
628   AM_PATH_XMMS(0.1.0, HAVE_LIBXMMS=yes, HAVE_LIBXMMS=no)
629 ])
630
631 dnl Check for libgdk-pixbuf
632 dnl FIXME: not sure that this is still used anywhere.
633 dnl DELETEME
634 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
635 dnl GST_CHECK_FEATURE(GDK_PIXBUF, [use gdk pixbuf], , [
636 dnl translit(dnm, m, l) AC_SUBST(GDK_PIXBUF_LIBS)
637 dnl translit(dnm, m, l) AC_SUBST(GDK_PIXBUF_CFLAGS)
638 dnl GST_CHECK_CONFIGPROG(GDK_PIXBUF, gdk-pixbuf-config)
639 dnl ])
640 dnl 
641
642
643 if test x$USE_GLIB2 = xyes; then
644   dnl we don't support gnome/gtk with glib2.0 yet
645   GNOME_LIBS=
646   GNOME_CFLAGS=
647   HAVE_GNOME=no
648   AC_MSG_WARN(gnome disabled for glib2.0)
649 else
650   dnl Check for libgnome
651   GST_CHECK_CONFIGPROG(GNOME, gnome-config, gnome gnomeui)
652 fi
653 AC_SUBST(GNOME_LIBS)
654 AC_SUBST(GNOME_CFLAGS)
655 AC_SUBST(HAVE_GNOME)
656
657 dnl Check for libghttp
658 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGHTTP, true)
659 GST_CHECK_FEATURE(LIBGHTTP, [libghttp plugins], gsthttpsrc, [
660   dnl FIXME: need to check for header
661   GHTTP_LIBS=
662   GST_HTTPSRC_GET_TYPE=
663   if test x$USE_GLIB2 = xyes; then
664     AC_MSG_WARN(ghttp disabled for glib2.0)
665   else
666     AC_CHECK_LIB(ghttp, ghttp_request_new,
667       [GHTTP_LIBS="-lghttp"
668        GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
669        HAVE_LIBGHTTP=yes
670       ], :, $LIBS)
671   fi
672   AC_SUBST(GHTTP_LIBS)
673   AC_SUBST(GST_HTTPSRC_GET_TYPE)
674 ])
675
676
677 dnl thomas : adding an arts check taken from xine with it's own .m4
678 dnl FIXME: put this higher up
679 dnl AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
680
681 dnl also define ARTS_MCOPFLAGS
682 dnl ARTS_MCOPFLAGS="$ARTS_CFLAGS"
683 dnl AC_SUBST(ARTS_MCOPFLAGS)   
684
685 dnl Check for libglade with gnome support; no libglade for glib2.0
686 HAVE_LIBGLADE_GNOME="no"
687 if test x$USE_GLIB2 = xyes; then
688   AC_MSG_WARN(libglade disabled for glib2.0)
689   PKG_CHECK_MODULES(LIBGLADE_GNOME, libglade-2.0 libgnomeui-2.0, HAVE_LIBGLADE_GNOME=yes, HAVE_LIBGLADE_GNOME=no)
690   if test x$HAVE_LIBGLADE_GNOME = xno; then
691     AC_MSG_WARN(Couldn't find libglade-2.0 - Can't build gstplay)
692     LIBGLADE_GNOME_LIBS=
693     LIBGLADE_GNOME_CFLAGS=
694   fi;
695 else
696   AM_PATH_LIBGLADE(HAVE_LIBGLADE_GNOME="yes", HAVE_LIBGLADE_GNOME="no", gnome)
697   if test x$HAVE_LIBGLADE_GNOME = xno; then
698     AC_MSG_WARN(Couldn't find libglade-config - Can't build gstplay)
699   else
700     LIBGLADE_GNOME_LIBS=$LIBGLADE_LIBS
701     LIBGLADE_GNOME_CFLAGS=$LIBGLADE_CFLAGS
702         AC_TRY_LINK([#include <glade/glade.h>],[glade_gnome_init();],
703                 HAVE_LIBGLADE_GNOME="yes"
704                 AC_MSG_WARN(
705         [Couldn't find gnome libraries for libglade - Can't build gstmediaplay and gsteditor])
706                )
707   fi
708 fi
709 AC_SUBST(HAVE_LIBGLADE_GNOME)
710 AC_SUBST(LIBGLADE_GNOME_LIBS)
711 AC_SUBST(LIBGLADE_GNOME_CFLAGS)
712
713 dnl Check for atomic.h
714 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
715 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
716 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
717 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
718 if test x$HAVE_ATOMIC_H = xyes; then
719   AC_TRY_RUN([
720 #include "asm/atomic.h"
721 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
722   ],, [
723     # Not successful
724     if test x$HAVE_ATOMIC_H = xyes; then
725       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
726     fi
727     HAVE_ATOMIC_H=no
728   ], [
729     # Cross compiling
730     AC_MSG_RESULT(yes)
731     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
732   ])
733 fi
734
735
736 dnl Check for X11 extensions
737 AC_PATH_XTRA
738 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
739   AC_MSG_ERROR(can not find X11)
740 fi
741 AC_SUBST(X_CFLAGS)
742 AC_SUBST(X_PRE_LIBS)
743 AC_SUBST(X_EXTRA_LIBS)
744 AC_SUBST(X_LIBS)
745
746
747 dnl Check for the Xv library
748 xvsave_LIBS=${LIBS}
749 AC_CHECK_LIB(Xv, XvQueryExtension,
750   HAVE_LIBXV=yes,
751   HAVE_LIBXV=no,
752   $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS
753 )
754 LIBS=${xvsave_LIBS}
755 AC_CHECK_HEADER(X11/extensions/Xv.h, :, HAVE_LIBXV=no)
756 AC_CHECK_HEADER(X11/extensions/Xvlib.h, :, HAVE_LIBXV=no)
757
758 dnl Check for OSS audio
759 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS=yes, HAVE_OSS=no)
760
761 dnl Check for xaudio
762 AC_CHECK_HEADER(xaudio/decoder.h,
763   AC_DEFINE(HAVE_XAUDIO, 1, [Define if xaudio is available])
764   HAVE_XAUDIO="yes",
765   AC_MSG_WARN(
766 ***** NOTE: These plugins won't be built: gstxa
767 )
768   HAVE_XAUDIO="no",
769 )
770
771 dnl Check for linux/cdrom.h
772 AC_CHECK_HEADER(linux/cdrom.h,
773   HAVE_LINUX_CDROM=yes, HAVE_LINUX_CDROM=no
774 )
775
776 dnl Check for linux/videodev.h
777 AC_CHECK_HEADER(linux/videodev.h,
778   HAVE_LINUX_VIDEODEV=yes, HAVE_LINUX_VIDEODEV=no
779 )
780
781
782 dnl ######################################################################
783 dnl # Check command line parameters, and set shell variables accordingly #
784 dnl ######################################################################
785
786 AC_ARG_ENABLE(libmmx,
787 [  --enable-libmmx              use libmmx, if available],
788 [case "${enableval}" in
789   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
790   no)  USE_LIBMMX=no ;;
791   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
792 esac], 
793 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
794
795 AC_ARG_ENABLE(atomic,
796 [  --enable-atomic              use atomic reference counting header],
797 [case "${enableval}" in
798   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
799   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
800   no)  USE_ATOMIC_H=no;;
801   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
802 esac], 
803 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
804
805 AC_ARG_ENABLE(plugin-builddir,
806 [  --enable-plugin-builddir     allow tests/demos to use non-installed plugins ],
807 [case "${enableval}" in
808   yes) PLUGINS_USE_BUILDDIR=yes ;;
809   no)  PLUGINS_USE_BUILDDIR=no ;;
810   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
811 esac], 
812 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
813
814 AC_ARG_ENABLE(debug,
815 [  --enable-debug               compile with -g debugging info],
816 [case "${enableval}" in
817   yes) USE_DEBUG=yes ;;
818   no)  USE_DEBUG=no ;;
819   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
820 esac], 
821 [USE_DEBUG=no]) dnl Default value
822
823 AC_ARG_ENABLE(DEBUG,
824 [  --enable-DEBUG               compiles in a large number of debugging messages],
825 [case "${enableval}" in
826   yes) ENABLE_DEBUG=yes ;;
827   no)  ENABLE_DEBUG=no ;;
828   *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
829 esac], 
830 [ENABLE_DEBUG=no]) dnl Default value
831 if test x$ENABLE_DEBUG = xyes; then
832   AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
833 fi
834
835 AC_ARG_ENABLE(INFO,
836 [  --disable-INFO               disables compilation of informational messages],
837 [case "${enableval}" in
838   yes) ENABLE_INFO=yes ;;
839   no)  ENABLE_INFO=no ;;
840   *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
841 esac], 
842 [ENABLE_INFO=yes]) dnl Default value
843 if test x$ENABLE_INFO = xyes; then
844   AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
845 fi
846
847 AC_ARG_ENABLE(debug-color,
848 [  --disable-debug-color        disables color output of DEBUG and INFO output],
849 [case "${enableval}" in
850   yes) ENABLE_DEBUG_COLOR=yes ;;
851   no)  ENABLE_DEBUG_COLOR=no ;;
852   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
853 esac], 
854 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
855 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
856   AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
857 fi
858
859 AC_ARG_ENABLE(profiling,
860 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
861 [case "${enableval}" in
862   yes) USE_PROFILING=yes ;;
863   no)  UES_PROFILING=no ;;
864   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
865 esac], 
866 [USE_PROFILING=no]) dnl Default value
867
868 dnl default to building registry in the source tree if we are enabling plugin build dir
869 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
870   GST_CONFIG_DIR=$builddir
871 else
872   GST_CONFIG_DIR=/etc/gstreamer
873 fi
874 AC_ARG_WITH(configdir,
875 [  --with-configdir             specify path to use for configdir],
876 [case "${withval}" in
877   yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
878   no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
879   *) GST_CONFIG_DIR="${withval}" ;;
880 esac], 
881 [:]) dnl Default value
882
883 dnl Default value
884 GST_WIN32_LIBDIR="/usr/lib/win32"
885 AC_ARG_WITH(win32_libdir,
886 [  --with-win32-libdir          specify location for win32 DLLs],
887 [case "${withval}" in
888   yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
889   no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
890   *) GST_WIN32_LIBDIR="${withval}" ;;
891 esac],
892 [:]) dnl Default value
893
894 AC_ARG_ENABLE(docs-build,
895 [  --enable-docs-build          enable building of documentation],
896 [case "${enableval}" in
897   yes) if $HAVE_GTK_DOC; then BUILD_DOCS=yes; else AC_MSG_ERROR([you don't have gtk-doc, so don't use --docs-build]); fi; ;;
898   no)  BUILD_DOCS=no ;;
899   *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
900 esac], 
901 [BUILD_DOCS=no]) dnl Default value
902
903 AC_ARG_ENABLE(plugin-docs,
904 [  --enable-plugin-docs         enable the building of plugin documentation
905                                (this is currently broken, so off by default)],
906 [case "${enableval}" in
907   yes) BUILD_PLUGIN_DOCS=yes ;;
908   no)  BUILD_PLUGIN_DOCS=no ;;
909   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
910 esac], 
911 [BUILD_PLUGIN_DOCS=no]) dnl Default value
912
913 AC_ARG_ENABLE(tests,
914 [  --disable-tests              disable building test apps],
915 [case "${enableval}" in
916   yes) BUILD_TESTS=yes ;;
917   no)  BUILD_TESTS=no ;;
918   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
919 esac], 
920 [BUILD_TESTS=yes]) dnl Default value
921
922 AC_ARG_ENABLE(examples,
923 [  --disable-examples           disable building examples],
924 [case "${enableval}" in
925   yes) BUILD_EXAMPLES=yes ;;
926   no)  BUILD_EXAMPLES=no ;;
927   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
928 esac], 
929 [BUILD_EXAMPLES=yes]) dnl Default value
930
931 dnl Next, check for the optional components:
932 dnl ========================================
933
934
935 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
936 [dnl
937 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
938 dnl
939 AC_ARG_ENABLE(translit([$1], A-Z, a-z), 
940 [  ]builtin(format, --disable-%-17s  disable %s, translit([$1], A-Z, a-z), $2),
941 [ case "${enableval}" in
942     yes) GST_DISABLE_[$1]=no ;;
943     no) GST_DISABLE_[$1]=yes ;;
944     *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
945   esac],
946 [GST_DISABLE_[$1]=no]) dnl Default value
947 if test x$GST_DISABLE_[$1] = xyes; then
948   AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
949   GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
950 fi
951 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
952 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
953 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
954 ])
955
956 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
957 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
958 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
959 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
960 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
961 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
962 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
963 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
964 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
965 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
966 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
967 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
968
969 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
970
971
972 dnl ################################################
973 dnl # Set defines according to variables set above #
974 dnl ################################################
975
976
977 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
978 dnl HAVE_ and it is likely to be easier to stick with the old name
979 if test "x$USE_LIBGHTTP" = xyes; then
980   AC_DEFINE(HAVE_LIBGHTTP, 1, [Define if ghttp library is available])
981 fi
982
983 if test "x$USE_LIBMMX" = xyes; then
984   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
985 fi
986
987 if test "x$USE_ATOMIC_H" = xyes; then
988   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
989 fi
990
991 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
992   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
993 fi
994
995 dnl if test "x$USE_DEBUG" = xyes; then
996 dnl   CFLAGS="$CFLAGS -g"
997 dnl fi
998
999 if test "x$USE_PROFILING" = xyes; then
1000 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
1001   FOMIT_FRAME_POINTER=""
1002 else
1003   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
1004 fi
1005
1006 dnl
1007 dnl AC_SUBST(FOMIT_FRAME_POINTER)
1008 dnl
1009
1010 if test "x$HAVE_LIBXV" = xyes; then
1011   AC_DEFINE(HAVE_LIBXV)
1012 fi
1013
1014 if test "x$HAVE_OSS" = xyes; then
1015   AC_DEFINE(HAVE_OSS)
1016 fi
1017
1018 if test "x$HAVE_XAUDIO" = xyes; then
1019   AC_DEFINE(HAVE_XAUDIO)
1020 fi
1021
1022 if test "x$HAVE_LIBMAD" = xyes; then
1023   AC_DEFINE(HAVE_LIBMAD)
1024 fi
1025
1026 if test "x$HAVE_LIBMIKMOD" = xyes; then
1027   AC_DEFINE(HAVE_LIBMIKMOD)
1028 fi
1029
1030 if test "x$HAVE_VORBIS" = xyes; then
1031   AC_DEFINE(HAVE_VORBIS)
1032 fi
1033
1034 if test "x$HAVE_AALIB" = "xyes"; then
1035   AC_DEFINE(HAVE_AALIB)
1036 fi
1037
1038 if test "x$HAVE_LIBJPEG" = xyes; then
1039   AC_DEFINE(HAVE_LIBJPEG)
1040 fi
1041
1042 if test "x$HAVE_LIBSDL" = xyes; then
1043   AC_DEFINE(HAVE_LIBSDL)
1044 fi
1045
1046 if test "x$HAVE_LIBHERMES" = "xyes"; then
1047   AC_DEFINE(HAVE_LIBHERMES)
1048 fi
1049
1050 if test "x$HAVE_LIBDVDREAD" = xyes; then
1051   AC_DEFINE(HAVE_LIBDVDREAD)
1052 fi
1053
1054 if test "x$HAVE_LINUX_CDROM" = xyes; then
1055   AC_DEFINE(HAVE_LINUX_CDROM)
1056 fi
1057
1058 if test "x$HAVE_LINUX_VIDEODEV" = xyes; then
1059   AC_DEFINE(HAVE_LINUX_VIDEODEV)
1060 fi
1061
1062 if test "x$HAVE_MPEG2DEC" = xyes; then
1063   AC_DEFINE(HAVE_MPEG2DEC)
1064 fi
1065
1066 if test "x$HAVE_A52DEC" = xyes; then
1067   AC_DEFINE(HAVE_A52DEC)
1068 fi
1069
1070 if test "x$HAVE_FLACLIB" = xyes; then
1071   AC_DEFINE(HAVE_FLACLIB)
1072 fi
1073
1074 if test "x$HAVE_LIBGSM" = xyes; then
1075   AC_DEFINE(HAVE_LIBGSM)
1076 fi
1077
1078 dnl #############################
1079 dnl # Set automake conditionals #
1080 dnl #############################
1081
1082 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1083 dnl HAVE_ and it is likely to be easier to stick with the old name
1084 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
1085 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
1086 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
1087 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
1088 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
1089 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1090
1091 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1092
1093 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1094 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1095
1096 AM_CONDITIONAL(HAVE_OSS,            test "x$HAVE_OSS" = "xyes")
1097 AM_CONDITIONAL(HAVE_XAUDIO,         test "x$HAVE_XAUDIO" = "xyes")
1098 AM_CONDITIONAL(HAVE_LIBMAD,         test "x$HAVE_LIBMAD" = "xyes")
1099 AM_CONDITIONAL(HAVE_LIBMIKMOD,      test "x$HAVE_LIBMIKMOD" = "xyes")
1100 AM_CONDITIONAL(HAVE_LINUX_CDROM,    test "x$HAVE_LINUX_CDROM" = "xyes")
1101 AM_CONDITIONAL(HAVE_LINUX_VIDEODEV, test "x$HAVE_LINUX_VIDEODEV" = "xyes")
1102 AM_CONDITIONAL(HAVE_LIBDVDREAD,     test "x$HAVE_LIBDVDREAD" = "xyes")
1103 AM_CONDITIONAL(HAVE_VORBIS,         test "x$HAVE_VORBIS" = "xyes")
1104 AM_CONDITIONAL(HAVE_LIBJPEG,        test "x$HAVE_LIBJPEG" = "xyes")
1105 AM_CONDITIONAL(HAVE_LIBSDL,         test "x$HAVE_LIBSDL" = "xyes")
1106 AM_CONDITIONAL(HAVE_LIBHERMES,      test "x$HAVE_LIBHERMES" = "xyes")
1107 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1108 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
1109 AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
1110 AM_CONDITIONAL(HAVE_LIBXV,          test "x$HAVE_LIBXV" = "xyes")
1111 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1112 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1113 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1114 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1115 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1116 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1117 AM_CONDITIONAL(HAVE_PDFXMLTEX,      $HAVE_PDFXMLTEX)
1118 AM_CONDITIONAL(HAVE_PDFTOPS,        $HAVE_PDFTOPS)
1119 AM_CONDITIONAL(HAVE_XSLTPROC,       $HAVE_XSLTPROC)
1120 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1121 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1122 AM_CONDITIONAL(HAVE_CDPARANOIA,     test "x$HAVE_CDPARANOIA" = "xyes")
1123 AM_CONDITIONAL(HAVE_LIBLAME,        test "x$HAVE_LIBLAME" = "xyes")
1124 AM_CONDITIONAL(HAVE_LIBSHOUT,       test "x$HAVE_LIBSHOUT" = "xyes")
1125 AM_CONDITIONAL(HAVE_MPEG2DEC,       test "x$HAVE_MPEG2DEC" = "xyes")
1126 AM_CONDITIONAL(HAVE_A52DEC,         test "x$HAVE_A52DEC" = "xyes")
1127 dnl thomas : the next line gives errors, this is how it is in CVS
1128 dnl AM_CONDITIONAL(HAVE_FLAC,               test "x$HAVE_FLAC" = "xyes")
1129 dnl thomas : the next line gives errors as well, I commented it
1130 dnl AM_CONDITIONAL(HAVE_LAC,                test "x$HAVE_FAC" = "xyes")
1131 dnl thomas: the next line doesn't give errors
1132 AM_CONDITIONAL(HAVE_FLACLIB,        test "x$HAVE_FLACLIB" = "xyes")
1133 AM_CONDITIONAL(HAVE_LIBRTP,         test "x$HAVE_LIBRTP" = "xyes")
1134 AM_CONDITIONAL(HAVE_ARTS,           test "x$HAVE_ARTS" = "xyes")
1135 AM_CONDITIONAL(HAVE_XMMS,           test "x$HAVE_XMMS" = "xyes")
1136 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1137 AM_CONDITIONAL(HAVE_LIBDV,          test "x$HAVE_LIBDV" = "xyes")
1138 AM_CONDITIONAL(HAVE_AALIB,          test "x$HAVE_AALIB" = "xyes")
1139 AM_CONDITIONAL(HAVE_GNOME_VFS,      test "x$HAVE_GNOME_VFS" = "xyes")
1140 AM_CONDITIONAL(HAVE_AVIFILE,        test "x$HAVE_AVIFILE" = "xyes")
1141 AM_CONDITIONAL(HAVE_LIBOPENQUICKTIME, test "x$HAVE_LIBOPENQUICKTIME" = "xyes")
1142 AM_CONDITIONAL(HAVE_LIBGSM,         test "x$HAVE_LIBGSM" = "xyes")
1143 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
1144 AM_CONDITIONAL(HAVE_SIDPLAY,        test "x$have_sidplay" = "xyes")
1145
1146
1147 dnl ############################
1148 dnl # Set up some more defines #
1149 dnl ############################
1150
1151 dnl Set location of configuration dir.
1152 dnl AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
1153 AC_SUBST(GST_CONFIG_DIR)
1154
1155 dnl Set location of windows dll dir.
1156 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
1157 AC_SUBST(GST_WIN32_LIBDIR)
1158
1159 dnl Set location of plugin directory
1160 if test "x${prefix}" = "xNONE"; then
1161   PLUGINS_DIR=${ac_default_prefix}/lib/gst
1162 else
1163   PLUGINS_DIR=${prefix}/lib/gst
1164 fi
1165 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
1166 AC_SUBST(PLUGINS_DIR)
1167
1168 dnl Set location of uninstalled plugin directory
1169 PLUGINS_BUILDDIR=${builddir}
1170 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
1171 AC_SUBST(PLUGINS_BUILDDIR)
1172
1173 dnl Private vars for libgst only
1174 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
1175 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
1176 AC_SUBST(LIBGST_LIBS)
1177 AC_SUBST(LIBGST_CFLAGS)
1178
1179 dnl Vars for everyone else
1180 GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
1181 GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
1182 AC_SUBST(GST_LIBS)
1183 AC_SUBST(GST_CFLAGS)
1184
1185 dnl #############################
1186 dnl # Configure the subpackages #
1187 dnl #############################
1188
1189 dnl AC_CONFIG_SUBDIRS(gist)
1190 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
1191
1192 dnl ##################################################
1193 dnl # Prepare informative messages to display at end #
1194 dnl ##################################################
1195
1196 infomessages=
1197
1198 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
1199   infomessages="$infomessages
1200 *** Warning: You have configured using the --enable-plugin-builddir option.
1201
1202 This option is for development purposes only: binaries built with
1203 it should be used with code in the build tree only.  To build an
1204 installable version, use ./configure without the --enable-plugin-builddir
1205 option.  Note that the autogen.sh script supplies the plugin builddir
1206 option automatically - it cannot be used to configure installable builds.
1207
1208 "
1209 fi
1210
1211 dnl #########################
1212 dnl # Make the output files #
1213 dnl #########################
1214
1215 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
1216 dnl components/bonobo-gstmediaplay/Makefile
1217 dnl someone should fix this test/misc/Makefile
1218 dnl wtay fix this: testsuite/threads/Makefile
1219 dnl testsuite/refcounting/Makefile
1220 AC_OUTPUT(
1221 Makefile
1222 include/Makefile
1223 gst/Makefile
1224 gst/gstversion.h
1225 gst/types/Makefile
1226 gst/elements/Makefile
1227 gst/autoplug/Makefile
1228 gst/schedulers/Makefile
1229 libs/Makefile
1230 libs/riff/Makefile
1231 libs/getbits/Makefile
1232 libs/putbits/Makefile
1233 libs/idct/Makefile
1234 libs/audio/Makefile
1235 libs/bytestream/Makefile
1236 libs/control/Makefile
1237 libs/resample/Makefile
1238 plugins/Makefile
1239 plugins/a52dec/Makefile
1240 plugins/aasink/Makefile
1241 plugins/alsa/Makefile
1242 plugins/au/Makefile
1243 plugins/audiofile/Makefile
1244 plugins/audioscale/Makefile
1245 plugins/avi/Makefile
1246 plugins/avi/wincodec/Makefile
1247 plugins/avi/winaudio/Makefile
1248 plugins/flx/Makefile
1249 plugins/festival/Makefile
1250 plugins/flac/Makefile
1251 plugins/jpeg/Makefile
1252 plugins/mp3decode/Makefile
1253 plugins/mp3decode/types/Makefile
1254 plugins/mp3decode/xa/Makefile
1255 plugins/mp3decode/mpg123/Makefile
1256 plugins/mp3decode/mad/Makefile
1257 plugins/mp3decode/parse/Makefile
1258 plugins/mp3encode/Makefile
1259 plugins/mp3encode/lame/Makefile
1260 plugins/mikmod/Makefile
1261 plugins/mpeg2/Makefile
1262 plugins/mpeg2/parse/Makefile
1263 plugins/mpeg2/ac3parse/Makefile
1264 plugins/mpeg2/ac3dec/Makefile
1265 plugins/mpeg2/video/Makefile
1266 plugins/mpeg2/mpeg2enc/Makefile
1267 plugins/mpeg2/mpeg2dec/Makefile
1268 plugins/mpeg2/subtitles/Makefile
1269 plugins/mpeg2/videoparse/Makefile
1270 plugins/mpeg2/mpegtypes/Makefile
1271 plugins/mpeg1/Makefile
1272 plugins/mpeg1/mpegtypes/Makefile
1273 plugins/mpeg1/mpegaudio/Makefile
1274 plugins/mpeg1/system_encode/Makefile
1275 plugins/mpeg1/mpeg1encoder/Makefile
1276 plugins/mpeg1video/Makefile
1277 plugins/mpeg1video/parse/Makefile
1278 plugins/oss/Makefile
1279 plugins/rtp/Makefile
1280 plugins/mulaw/Makefile
1281 plugins/alaw/Makefile
1282 plugins/filters/Makefile
1283 plugins/filters/smooth/Makefile
1284 plugins/filters/median/Makefile
1285 plugins/filters/ladspa/Makefile
1286 plugins/filters/stereo2mono/Makefile
1287 plugins/filters/mono2stereo/Makefile
1288 plugins/filters/intfloatconvert/Makefile
1289 plugins/filters/passthrough/Makefile
1290 plugins/filters/adder/Makefile
1291 plugins/filters/colorspace/Makefile
1292 plugins/filters/volenv/Makefile
1293 plugins/filters/level/Makefile
1294 plugins/filters/lav/Makefile
1295 plugins/filters/cutter/Makefile
1296 plugins/filters/deinterlace/Makefile
1297 plugins/filters/volume/Makefile
1298 plugins/filters/speed/Makefile
1299 plugins/filters/playondemand/Makefile
1300 plugins/gnomevfs/Makefile
1301 plugins/icecast/Makefile
1302 plugins/icecast/icecastsend/Makefile
1303 plugins/effects/Makefile
1304 plugins/effects/stereo/Makefile
1305 plugins/effects/volume/Makefile
1306 plugins/udp/Makefile
1307 plugins/visualization/Makefile
1308 plugins/visualization/spectrum/Makefile
1309 plugins/visualization/vumeter/Makefile
1310 plugins/visualization/synaesthesia/Makefile
1311 plugins/visualization/smoothwave/Makefile
1312 plugins/visualization/chart/Makefile
1313 plugins/videoscale/Makefile
1314 plugins/xvideosink/Makefile
1315 plugins/wav/Makefile
1316 plugins/dvdsrc/Makefile
1317 plugins/vcdsrc/Makefile
1318 plugins/rtjpeg/Makefile
1319 plugins/SID/Makefile
1320 plugins/vorbis/Makefile
1321 plugins/capture/Makefile
1322 plugins/capture/v4l/Makefile
1323 plugins/capture/qcam/Makefile
1324 plugins/cdparanoia/Makefile
1325 plugins/esd/Makefile
1326 plugins/esd/esdsink/Makefile
1327 plugins/artsd/Makefile
1328 plugins/quicktime/Makefile
1329 plugins/xmms/Makefile
1330 plugins/arts/Makefile
1331 plugins/gsm/Makefile
1332 plugins/1394/Makefile
1333 plugins/sdlsink/Makefile
1334 plugins/dv/Makefile
1335 plugins/synthesis/Makefile
1336 plugins/synthesis/sinesrc/Makefile
1337 plugins/silence/Makefile
1338 gstplay/Makefile
1339 test/Makefile
1340 test/xml/Makefile
1341 test/bindings/Makefile
1342 test/memchunk/Makefile
1343 test/events/Makefile
1344 tests/Makefile
1345 tests/sched/Makefile
1346 tests/eos/Makefile
1347 tests/muxing/Makefile
1348 testsuite/Makefile
1349 testsuite/bytestream/Makefile
1350 testsuite/capsnego/Makefile
1351 testsuite/plugin/Makefile
1352 tests/nego/Makefile
1353 examples/Makefile
1354 examples/autoplug/Makefile
1355 examples/helloworld/Makefile
1356 examples/helloworld2/Makefile
1357 examples/launch/Makefile
1358 examples/queue/Makefile
1359 examples/queue2/Makefile
1360 examples/queue3/Makefile
1361 examples/queue4/Makefile
1362 examples/thread/Makefile
1363 examples/mixer/Makefile
1364 examples/cutter/Makefile
1365 examples/launch/Makefile
1366 examples/xml/Makefile
1367 examples/plugins/Makefile
1368 examples/typefind/Makefile
1369 examples/mixer/Makefile
1370 editor/Makefile
1371 editor/pixmaps/Makefile
1372 tools/Makefile
1373 docs/Makefile
1374 docs/gst/Makefile
1375 docs/gst/gstreamer.types
1376 docs/libs/Makefile
1377 docs/plugins/Makefile
1378 docs/plugins/gstreamer-plugins.types
1379 docs/manual/Makefile
1380 docs/fwg/Makefile
1381 debian/Makefile
1382 stamp.h
1383 gstreamer-config
1384 gstreamer.pc
1385 gstreamer-uninstalled.pc
1386 gstreamer.spec,
1387 chmod +x gstreamer-config
1388 echo "$infomessages", infomessages="$infomessages"
1389 )
1390
1391 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1392 echo
1393 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"
1394 echo