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