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