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