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