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