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