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