vcd checks
[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 *** Video CD ***
426 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
427 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
428   AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
429 ])
430
431 dnl *** VGA ***
432 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
433 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
434   AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
435 ])
436
437
438
439 dnl Next, check for the optional libraries:
440 dnl These are all libraries used in building plugins
441 dnl ================================================
442 dnl let's try and sort them alphabetically, shall we ?
443
444 echo
445 echo
446 AC_MSG_NOTICE(Checking for plugin libraries)
447
448 dnl *** a52dec ***
449 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
450 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
451 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
452 ])
453
454 dnl *** aalib ***
455 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
456 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
457   AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
458 ])
459
460 dnl *** alsa ***
461 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
462 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
463 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
464 ])
465
466 dnl *** arts ***
467 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
468 dnl GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [GST_CHECK_ARTS()])
469
470 dnl *** artsc ***
471 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
472 dnl GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [GST_CHECK_ARTSC()])
473
474 dnl *** audiofile ***
475 dnl this check uses the GST_CHECK_CONFIGPROG macro
476 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBAUDIOFILE, true)
477 GST_CHECK_FEATURE(LIBAUDIOFILE, [audiofile], afsink afsrc, [
478 translit(dnm, m, l) AC_SUBST(LIBAUDIOFILE_LIBS)
479 translit(dnm, m, l) AC_SUBST(LIBAUDIOFILE_CFLAGS)
480 GST_CHECK_CONFIGPROG(LIBAUDIOFILE, audiofile-config)
481 ])
482
483 dnl *** avifile ***
484 dnl this check uses the GST_CHECK_CONFIGPROG macro
485 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
486 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
487 translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
488 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
489 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
490 ])
491
492 dnl *** CDParanoia ***
493 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
494 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
495   GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
496 ])
497 dnl FIXME : add second check somehow if that is necessary
498 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
499 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
500
501 dnl *** dvdread ***
502 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDVDREAD, true)
503 GST_CHECK_FEATURE(LIBDVDREAD, [dvdread library], libdvdread, [
504   GST_CHECK_LIBHEADER(LIBDVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, LIBDVDREAD_LIBS="-ldvdread")
505 ])
506
507 dnl **** ESound ****
508 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBESD, true)
509 GST_CHECK_FEATURE(LIBESD, [esound plugins], esdsrc esdsink, [
510   AM_PATH_ESD(0.2.12, HAVE_LIBESD=yes, HAVE_LIBESD=no)
511 ])
512
513 dnl *** FLAC ***
514 dnl thomas : checking for compile with main instead of actual function,
515 dnl since that made autoconf break (for version 2.13)
516 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFLAC, true)
517 GST_CHECK_FEATURE(FLACLIB, [FLAC lossless audio], flacenc flacdec, [
518   GST_CHECK_LIBHEADER(FLACLIB, FLAC, main, -lm, FLAC/all.h, LIBFLAC_LIBS="-lFLAC")
519 ])
520
521 dnl 
522 dnl *** Gnome VFS ***
523 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
524 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
525 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
526 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
527 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
528 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
529 ])
530
531 dnl *** gsm ***
532 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGSM, true)
533 GST_CHECK_FEATURE(LIBGSM, [GSM library], gsmenc gsmdec, [
534 GST_CHECK_LIBHEADER(LIBGSM, gsm, gsm_create, , gsm/gsm.h, LIBGSM_LIBS="-lgsm")
535 ])
536
537 dnl *** Hermes ***
538 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBHERMES, true)
539 GST_CHECK_FEATURE(LIBHERMES, [Hermes library], colorspace, [
540 GST_CHECK_LIBHEADER(LIBHERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, LIBHERMES_LIBS="-lHermes")
541 ], AC_SUBST(LIBHERMES_LIBS))
542
543 dnl *** lame ***
544 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBLAME, true)
545 GST_CHECK_FEATURE(LIBLAME, [lame mp3 encoder library], lame, [
546 GST_CHECK_LIBHEADER(LIBLAME, mp3lame, lame_init, -lm, lame/lame.h, LIBLAME_LIBS="-lmp3lame")
547 ])
548
549 dnl AC_SUBST(HAVE_LIBLAME)
550
551 dnl *** libdv ***
552 dnl FIXME : check if those GLIB thingies are ok
553 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
554 GST_CHECK_FEATURE(LIBDV, [dv library], dv, [
555 GST_CHECK_LIBHEADER(LIBDV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, LIBDV_LIBS="-ldv")
556 ])
557 dnl FIXME : check if these CPP flags can be dealt with otherwise
558 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
559 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
560 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
561 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
562
563 dnl *** libjpeg ***
564 dnl FIXME: we could use header checks here as well IMO
565 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBJPEG, true)
566 GST_CHECK_FEATURE(LIBJPEG, [libjpeg], jpegenc jpegdec, [
567   AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_LIBJPEG="yes", HAVE_LIBJPEG="no")
568 ])
569
570 dnl *** mad ***
571 dnl FIXME: we could use header checks here as well IMO
572 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMAD, true)
573 GST_CHECK_FEATURE(LIBMAD, [mad], mad, [
574 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_LIBMAD="yes")
575 ])
576
577 dnl *** mikmod ***
578 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMIKMOD, true)
579 GST_CHECK_FEATURE(LIBMIKMOD, [mikmod plugin], mikmod, [
580   AM_PATH_LIBMIKMOD(, HAVE_LIBMIKMOD=yes, HAVE_LIBMIKMOD=no)
581 ])
582
583 dnl *** mpeg2dec ***
584 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
585 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
586   GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2")
587 ])
588
589 dnl *** quicktime ***
590 dnl FIXME: make this be called openquicktime
591 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
592 GST_CHECK_FEATURE(QUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
593   GST_CHECK_LIBHEADER(QUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, QUICKTIME_LIBS="-lopenquicktime")
594 ])
595
596 dnl *** raw1394 ***
597 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
598 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
599   GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
600 ])
601
602 dnl Check for librtp
603 dnl FIXME : adapt and make it work
604 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRTP, true)
605 GST_CHECK_FEATURE(LIBRTP, [RTP library], rtpenc rtpdec,[
606   AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_LIBRTP=yes, HAVE_LIBRTP=no, $GLIB_LIBS $GLIB_CFLAGS)
607 ])
608 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
609 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
610 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
611 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
612 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
613
614
615 dnl *** SDL ***
616 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBSDL, true)
617 GST_CHECK_FEATURE(LIBSDL, [SDL plugin], sdlvideosink, [
618  AM_PATH_SDL(, HAVE_LIBSDL=yes, HAVE_LIBSDL=no)
619 ])
620
621 dnl *** shout ***
622 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBSHOUT, true)
623 GST_CHECK_FEATURE(LIBSHOUT, [shout plugin], icecastsend, [
624   GST_CHECK_LIBHEADER(LIBSHOUT, shout, shout_init_connection,, shout/shout.h, LIBSHOUT_LIBS="-lshout")
625 ])
626
627 dnl for sidplay
628 dnl FIXME : make this work
629 dnl AC_PATH_LIBSIDPLAY
630
631
632 dnl *** vorbis ***
633 dnl AM_PATH_VORBIS only takes two options
634 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
635 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
636   AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
637 ])
638
639 dnl *** xmms ***
640 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBXMMS, true)
641 GST_CHECK_FEATURE(LIBXMMS, [xmms plugin], xmms, [
642   AM_PATH_XMMS(0.1.0, HAVE_LIBXMMS=yes, HAVE_LIBXMMS=no)
643 ])
644
645 dnl Check for libgdk-pixbuf
646 dnl FIXME: not sure that this is still used anywhere.
647 dnl DELETEME
648 dnl translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true)
649 dnl GST_CHECK_FEATURE(GDK_PIXBUF, [use gdk pixbuf], , [
650 dnl translit(dnm, m, l) AC_SUBST(GDK_PIXBUF_LIBS)
651 dnl translit(dnm, m, l) AC_SUBST(GDK_PIXBUF_CFLAGS)
652 dnl GST_CHECK_CONFIGPROG(GDK_PIXBUF, gdk-pixbuf-config)
653 dnl ])
654 dnl 
655
656
657 if test x$USE_GLIB2 = xyes; then
658   dnl we don't support gnome/gtk with glib2.0 yet
659   GNOME_LIBS=
660   GNOME_CFLAGS=
661   HAVE_GNOME=no
662   AC_MSG_WARN(gnome disabled for glib2.0)
663 else
664   dnl Check for libgnome
665   GST_CHECK_CONFIGPROG(GNOME, gnome-config, gnome gnomeui)
666 fi
667 AC_SUBST(GNOME_LIBS)
668 AC_SUBST(GNOME_CFLAGS)
669 AC_SUBST(HAVE_GNOME)
670
671 dnl Check for libghttp
672 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGHTTP, true)
673 GST_CHECK_FEATURE(LIBGHTTP, [libghttp plugins], gsthttpsrc, [
674   dnl FIXME: need to check for header
675   GHTTP_LIBS=
676   GST_HTTPSRC_GET_TYPE=
677   if test x$USE_GLIB2 = xyes; then
678     AC_MSG_WARN(ghttp disabled for glib2.0)
679   else
680     AC_CHECK_LIB(ghttp, ghttp_request_new,
681       [GHTTP_LIBS="-lghttp"
682        GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
683        HAVE_LIBGHTTP=yes
684       ], :, $LIBS)
685   fi
686   AC_SUBST(GHTTP_LIBS)
687   AC_SUBST(GST_HTTPSRC_GET_TYPE)
688 ])
689
690
691 dnl thomas : adding an arts check taken from xine with it's own .m4
692 dnl FIXME: put this higher up
693 dnl AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
694
695 dnl also define ARTS_MCOPFLAGS
696 dnl ARTS_MCOPFLAGS="$ARTS_CFLAGS"
697 dnl AC_SUBST(ARTS_MCOPFLAGS)   
698
699 dnl Check for libglade with gnome support; no libglade for glib2.0
700 HAVE_LIBGLADE_GNOME="no"
701 if test x$USE_GLIB2 = xyes; then
702   AC_MSG_WARN(libglade disabled for glib2.0)
703   PKG_CHECK_MODULES(LIBGLADE_GNOME, libglade-2.0 libgnomeui-2.0, HAVE_LIBGLADE_GNOME=yes, HAVE_LIBGLADE_GNOME=no)
704   if test x$HAVE_LIBGLADE_GNOME = xno; then
705     AC_MSG_WARN(Couldn't find libglade-2.0 - Can't build gstplay)
706     LIBGLADE_GNOME_LIBS=
707     LIBGLADE_GNOME_CFLAGS=
708   fi;
709 else
710   AM_PATH_LIBGLADE(HAVE_LIBGLADE_GNOME="yes", HAVE_LIBGLADE_GNOME="no", gnome)
711   if test x$HAVE_LIBGLADE_GNOME = xno; then
712     AC_MSG_WARN(Couldn't find libglade-config - Can't build gstplay)
713   else
714     LIBGLADE_GNOME_LIBS=$LIBGLADE_LIBS
715     LIBGLADE_GNOME_CFLAGS=$LIBGLADE_CFLAGS
716         AC_TRY_LINK([#include <glade/glade.h>],[glade_gnome_init();],
717                 HAVE_LIBGLADE_GNOME="yes"
718                 AC_MSG_WARN(
719         [Couldn't find gnome libraries for libglade - Can't build gstmediaplay and gsteditor])
720                )
721   fi
722 fi
723 AC_SUBST(HAVE_LIBGLADE_GNOME)
724 AC_SUBST(LIBGLADE_GNOME_LIBS)
725 AC_SUBST(LIBGLADE_GNOME_CFLAGS)
726
727 dnl Check for atomic.h
728 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
729 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
730 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
731 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
732 if test x$HAVE_ATOMIC_H = xyes; then
733   AC_TRY_RUN([
734 #include "asm/atomic.h"
735 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
736   ],, [
737     # Not successful
738     if test x$HAVE_ATOMIC_H = xyes; then
739       AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
740     fi
741     HAVE_ATOMIC_H=no
742   ], [
743     # Cross compiling
744     AC_MSG_RESULT(yes)
745     AC_MSG_WARN(Can't check properly for atomic reference counting.  Assuming OK.)
746   ])
747 fi
748
749
750 dnl Check for X11 extensions
751 AC_PATH_XTRA
752 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
753   AC_MSG_ERROR(can not find X11)
754 fi
755 AC_SUBST(X_CFLAGS)
756 AC_SUBST(X_PRE_LIBS)
757 AC_SUBST(X_EXTRA_LIBS)
758 AC_SUBST(X_LIBS)
759
760
761 dnl Check for the Xv library
762 xvsave_LIBS=${LIBS}
763 AC_CHECK_LIB(Xv, XvQueryExtension,
764   HAVE_LIBXV=yes,
765   HAVE_LIBXV=no,
766   $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS
767 )
768 LIBS=${xvsave_LIBS}
769 AC_CHECK_HEADER(X11/extensions/Xv.h, :, HAVE_LIBXV=no)
770 AC_CHECK_HEADER(X11/extensions/Xvlib.h, :, HAVE_LIBXV=no)
771
772
773 dnl ######################################################################
774 dnl # Check command line parameters, and set shell variables accordingly #
775 dnl ######################################################################
776
777 AC_ARG_ENABLE(libmmx,
778 [  --enable-libmmx              use libmmx, if available],
779 [case "${enableval}" in
780   yes) USE_LIBMMX=$HAVE_LIBMMX ;;
781   no)  USE_LIBMMX=no ;;
782   *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
783 esac], 
784 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
785
786 AC_ARG_ENABLE(atomic,
787 [  --enable-atomic              use atomic reference counting header],
788 [case "${enableval}" in
789   yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
790   noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
791   no)  USE_ATOMIC_H=no;;
792   *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
793 esac], 
794 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
795
796 AC_ARG_ENABLE(plugin-builddir,
797 [  --enable-plugin-builddir     allow tests/demos to use non-installed plugins ],
798 [case "${enableval}" in
799   yes) PLUGINS_USE_BUILDDIR=yes ;;
800   no)  PLUGINS_USE_BUILDDIR=no ;;
801   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
802 esac], 
803 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
804
805 AC_ARG_ENABLE(debug,
806 [  --enable-debug               compile with -g debugging info],
807 [case "${enableval}" in
808   yes) USE_DEBUG=yes ;;
809   no)  USE_DEBUG=no ;;
810   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
811 esac], 
812 [USE_DEBUG=no]) dnl Default value
813
814 AC_ARG_ENABLE(DEBUG,
815 [  --enable-DEBUG               compiles in a large number of debugging messages],
816 [case "${enableval}" in
817   yes) ENABLE_DEBUG=yes ;;
818   no)  ENABLE_DEBUG=no ;;
819   *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
820 esac], 
821 [ENABLE_DEBUG=no]) dnl Default value
822 if test x$ENABLE_DEBUG = xyes; then
823   AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
824 fi
825
826 AC_ARG_ENABLE(INFO,
827 [  --disable-INFO               disables compilation of informational messages],
828 [case "${enableval}" in
829   yes) ENABLE_INFO=yes ;;
830   no)  ENABLE_INFO=no ;;
831   *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
832 esac], 
833 [ENABLE_INFO=yes]) dnl Default value
834 if test x$ENABLE_INFO = xyes; then
835   AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
836 fi
837
838 AC_ARG_ENABLE(debug-color,
839 [  --disable-debug-color        disables color output of DEBUG and INFO output],
840 [case "${enableval}" in
841   yes) ENABLE_DEBUG_COLOR=yes ;;
842   no)  ENABLE_DEBUG_COLOR=no ;;
843   *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
844 esac], 
845 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
846 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
847   AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
848 fi
849
850 AC_ARG_ENABLE(profiling,
851 [  --enable-profiling           adds -pg to compiler commandline, for profiling],
852 [case "${enableval}" in
853   yes) USE_PROFILING=yes ;;
854   no)  UES_PROFILING=no ;;
855   *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
856 esac], 
857 [USE_PROFILING=no]) dnl Default value
858
859 dnl default to building registry in the source tree if we are enabling plugin build dir
860 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
861   GST_CONFIG_DIR=`pwd`
862 else
863   GST_CONFIG_DIR=/etc/gstreamer
864 fi
865 AC_ARG_WITH(configdir,
866 [  --with-configdir             specify path to use for configdir],
867 [case "${withval}" in
868   yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
869   no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
870   *) GST_CONFIG_DIR="${withval}" ;;
871 esac], 
872 [:]) dnl Default value
873
874 dnl Default value
875 GST_WIN32_LIBDIR="/usr/lib/win32"
876 AC_ARG_WITH(win32_libdir,
877 [  --with-win32-libdir          specify location for win32 DLLs],
878 [case "${withval}" in
879   yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
880   no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
881   *) GST_WIN32_LIBDIR="${withval}" ;;
882 esac],
883 [:]) dnl Default value
884
885 AC_ARG_ENABLE(docs-build,
886 [  --enable-docs-build          enable building of documentation],
887 [case "${enableval}" in
888   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; ;;
889   no)  BUILD_DOCS=no ;;
890   *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
891 esac], 
892 [BUILD_DOCS=no]) dnl Default value
893
894 AC_ARG_ENABLE(plugin-docs,
895 [  --enable-plugin-docs         enable the building of plugin documentation
896                                (this is currently broken, so off by default)],
897 [case "${enableval}" in
898   yes) BUILD_PLUGIN_DOCS=yes ;;
899   no)  BUILD_PLUGIN_DOCS=no ;;
900   *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
901 esac], 
902 [BUILD_PLUGIN_DOCS=no]) dnl Default value
903
904 AC_ARG_ENABLE(tests,
905 [  --disable-tests              disable building test apps],
906 [case "${enableval}" in
907   yes) BUILD_TESTS=yes ;;
908   no)  BUILD_TESTS=no ;;
909   *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
910 esac], 
911 [BUILD_TESTS=yes]) dnl Default value
912
913 AC_ARG_ENABLE(examples,
914 [  --disable-examples           disable building examples],
915 [case "${enableval}" in
916   yes) BUILD_EXAMPLES=yes ;;
917   no)  BUILD_EXAMPLES=no ;;
918   *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
919 esac], 
920 [BUILD_EXAMPLES=yes]) dnl Default value
921
922 dnl Next, check for the optional components:
923 dnl ========================================
924
925
926 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
927 [dnl
928 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
929 dnl
930 AC_ARG_ENABLE(translit([$1], A-Z, a-z), 
931 [  ]builtin(format, --disable-%-17s  disable %s, translit([$1], A-Z, a-z), $2),
932 [ case "${enableval}" in
933     yes) GST_DISABLE_[$1]=no ;;
934     no) GST_DISABLE_[$1]=yes ;;
935     *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
936   esac],
937 [GST_DISABLE_[$1]=no]) dnl Default value
938 if test x$GST_DISABLE_[$1] = xyes; then
939   AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
940   GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
941 fi
942 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
943 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
944 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
945 ])
946
947 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
948 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
949 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
950 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
951 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
952 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
953 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
954 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
955 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
956 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
957 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
958 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
959
960 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
961
962
963 dnl ################################################
964 dnl # Set defines according to variables set above #
965 dnl ################################################
966
967
968 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
969 dnl HAVE_ and it is likely to be easier to stick with the old name
970 if test "x$USE_LIBGHTTP" = xyes; then
971   AC_DEFINE(HAVE_LIBGHTTP, 1, [Define if ghttp library is available])
972 fi
973
974 if test "x$USE_LIBMMX" = xyes; then
975   AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
976 fi
977
978 if test "x$USE_ATOMIC_H" = xyes; then
979   AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
980 fi
981
982 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
983   AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
984 fi
985
986 dnl if test "x$USE_DEBUG" = xyes; then
987 dnl   CFLAGS="$CFLAGS -g"
988 dnl fi
989
990 if test "x$USE_PROFILING" = xyes; then
991 dnl  CFLAGS="$CFLAGS -pg -fprofile-arcs"
992   FOMIT_FRAME_POINTER=""
993 else
994   FOMIT_FRAME_POINTER="-fomit-frame-pointer"
995 fi
996
997 dnl
998 dnl AC_SUBST(FOMIT_FRAME_POINTER)
999 dnl
1000
1001 if test "x$HAVE_LIBXV" = xyes; then
1002   AC_DEFINE(HAVE_LIBXV)
1003 fi
1004
1005 if test "x$HAVE_LIBMAD" = xyes; then
1006   AC_DEFINE(HAVE_LIBMAD)
1007 fi
1008
1009 if test "x$HAVE_LIBMIKMOD" = xyes; then
1010   AC_DEFINE(HAVE_LIBMIKMOD)
1011 fi
1012
1013 if test "x$HAVE_VORBIS" = xyes; then
1014   AC_DEFINE(HAVE_VORBIS)
1015 fi
1016
1017 if test "x$HAVE_AALIB" = "xyes"; then
1018   AC_DEFINE(HAVE_AALIB)
1019 fi
1020
1021 if test "x$HAVE_LIBJPEG" = xyes; then
1022   AC_DEFINE(HAVE_LIBJPEG)
1023 fi
1024
1025 if test "x$HAVE_LIBSDL" = xyes; then
1026   AC_DEFINE(HAVE_LIBSDL)
1027 fi
1028
1029 if test "x$HAVE_LIBHERMES" = "xyes"; then
1030   AC_DEFINE(HAVE_LIBHERMES)
1031 fi
1032
1033 if test "x$HAVE_LIBDVDREAD" = xyes; then
1034   AC_DEFINE(HAVE_LIBDVDREAD)
1035 fi
1036
1037 if test "x$HAVE_LINUX_CDROM" = xyes; then
1038   AC_DEFINE(HAVE_LINUX_CDROM)
1039 fi
1040
1041 if test "x$HAVE_LINUX_VIDEODEV" = xyes; then
1042   AC_DEFINE(HAVE_LINUX_VIDEODEV)
1043 fi
1044
1045 if test "x$HAVE_MPEG2DEC" = xyes; then
1046   AC_DEFINE(HAVE_MPEG2DEC)
1047 fi
1048
1049 if test "x$HAVE_A52DEC" = xyes; then
1050   AC_DEFINE(HAVE_A52DEC)
1051 fi
1052
1053 if test "x$HAVE_FLACLIB" = xyes; then
1054   AC_DEFINE(HAVE_FLACLIB)
1055 fi
1056
1057 if test "x$HAVE_LIBGSM" = xyes; then
1058   AC_DEFINE(HAVE_LIBGSM)
1059 fi
1060
1061 dnl #############################
1062 dnl # Set automake conditionals #
1063 dnl #############################
1064
1065 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
1066 dnl HAVE_ and it is likely to be easier to stick with the old name
1067 AM_CONDITIONAL(HAVE_CPU_I386,       test "x$HAVE_CPU_I386" = "xyes")
1068 AM_CONDITIONAL(HAVE_CPU_PPC,        test "x$HAVE_CPU_PPC" = "xyes")
1069 AM_CONDITIONAL(HAVE_CPU_ALPHA,      test "x$HAVE_CPU_ALPHA" = "xyes")
1070 AM_CONDITIONAL(HAVE_CPU_ARM,        test "x$HAVE_CPU_ARM" = "xyes")
1071 AM_CONDITIONAL(HAVE_CPU_SPARC,      test "x$HAVE_CPU_SPARC" = "xyes")
1072 AM_CONDITIONAL(HAVE_LIBMMX,         test "x$USE_LIBMMX" = "xyes")
1073
1074 AM_CONDITIONAL(HAVE_ATOMIC_H,       test "x$USE_ATOMIC_H" = "xyes")
1075
1076 AM_CONDITIONAL(EXPERIMENTAL,        test "$EXPERIMENTAL" = "$xyes")
1077 AM_CONDITIONAL(BROKEN,              test "$BROKEN" = "$xyes")
1078
1079 AM_CONDITIONAL(HAVE_OSS,            test "x$HAVE_OSS" = "xyes")
1080 AM_CONDITIONAL(HAVE_XAUDIO,         test "x$HAVE_XAUDIO" = "xyes")
1081 AM_CONDITIONAL(HAVE_LIBMAD,         test "x$HAVE_LIBMAD" = "xyes")
1082 AM_CONDITIONAL(HAVE_LIBMIKMOD,      test "x$HAVE_LIBMIKMOD" = "xyes")
1083 AM_CONDITIONAL(HAVE_LINUX_CDROM,    test "x$HAVE_LINUX_CDROM" = "xyes")
1084 AM_CONDITIONAL(HAVE_LINUX_VIDEODEV, test "x$HAVE_LINUX_VIDEODEV" = "xyes")
1085 AM_CONDITIONAL(HAVE_LIBDVDREAD,     test "x$HAVE_LIBDVDREAD" = "xyes")
1086 AM_CONDITIONAL(HAVE_VORBIS,         test "x$HAVE_VORBIS" = "xyes")
1087 AM_CONDITIONAL(HAVE_LIBJPEG,        test "x$HAVE_LIBJPEG" = "xyes")
1088 AM_CONDITIONAL(HAVE_LIBSDL,         test "x$HAVE_LIBSDL" = "xyes")
1089 AM_CONDITIONAL(HAVE_LIBHERMES,      test "x$HAVE_LIBHERMES" = "xyes")
1090 AM_CONDITIONAL(HAVE_NASM,           test "x$HAVE_NASM" = "xyes")
1091 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
1092 AM_CONDITIONAL(HAVE_GNOME,          test "x$HAVE_GNOME" = "xyes")
1093 AM_CONDITIONAL(HAVE_LIBXV,          test "x$HAVE_LIBXV" = "xyes")
1094 AM_CONDITIONAL(HAVE_GTK,            test "x$HAVE_GTK" = "xyes")
1095 AM_CONDITIONAL(HAVE_GTK_DOC,        $HAVE_GTK_DOC)
1096 AM_CONDITIONAL(BUILD_DOCS,          test "x$BUILD_DOCS" = "xyes")
1097 AM_CONDITIONAL(BUILD_TESTS,         test "x$BUILD_TESTS" = "xyes")
1098 AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
1099 AM_CONDITIONAL(BUILD_PLUGIN_DOCS,   test "x$BUILD_PLUGIN_DOCS" = "xyes")
1100 AM_CONDITIONAL(HAVE_PDFXMLTEX,      $HAVE_PDFXMLTEX)
1101 AM_CONDITIONAL(HAVE_PDFTOPS,        $HAVE_PDFTOPS)
1102 AM_CONDITIONAL(HAVE_XSLTPROC,       $HAVE_XSLTPROC)
1103 AM_CONDITIONAL(HAVE_FIG2DEV_PNG,    $HAVE_FIG2DEV_PNG)
1104 AM_CONDITIONAL(HAVE_FIG2DEV_PDF,    $HAVE_FIG2DEV_PDF)
1105 AM_CONDITIONAL(HAVE_CDPARANOIA,     test "x$HAVE_CDPARANOIA" = "xyes")
1106 AM_CONDITIONAL(HAVE_LIBLAME,        test "x$HAVE_LIBLAME" = "xyes")
1107 AM_CONDITIONAL(HAVE_LIBSHOUT,       test "x$HAVE_LIBSHOUT" = "xyes")
1108 AM_CONDITIONAL(HAVE_MPEG2DEC,       test "x$HAVE_MPEG2DEC" = "xyes")
1109 AM_CONDITIONAL(HAVE_A52DEC,         test "x$HAVE_A52DEC" = "xyes")
1110 dnl thomas : the next line gives errors, this is how it is in CVS
1111 dnl AM_CONDITIONAL(HAVE_FLAC,               test "x$HAVE_FLAC" = "xyes")
1112 dnl thomas : the next line gives errors as well, I commented it
1113 dnl AM_CONDITIONAL(HAVE_LAC,                test "x$HAVE_FAC" = "xyes")
1114 dnl thomas: the next line doesn't give errors
1115 AM_CONDITIONAL(HAVE_FLACLIB,        test "x$HAVE_FLACLIB" = "xyes")
1116 AM_CONDITIONAL(HAVE_LIBRTP,         test "x$HAVE_LIBRTP" = "xyes")
1117 AM_CONDITIONAL(HAVE_ARTS,           test "x$HAVE_ARTS" = "xyes")
1118 AM_CONDITIONAL(HAVE_XMMS,           test "x$HAVE_XMMS" = "xyes")
1119 AM_CONDITIONAL(HAVE_RAW1394,        test "x$HAVE_RAW1394" = "xyes")
1120 AM_CONDITIONAL(HAVE_LIBDV,          test "x$HAVE_LIBDV" = "xyes")
1121 AM_CONDITIONAL(HAVE_AALIB,          test "x$HAVE_AALIB" = "xyes")
1122 AM_CONDITIONAL(HAVE_GNOME_VFS,      test "x$HAVE_GNOME_VFS" = "xyes")
1123 AM_CONDITIONAL(HAVE_AVIFILE,        test "x$HAVE_AVIFILE" = "xyes")
1124 AM_CONDITIONAL(HAVE_LIBOPENQUICKTIME, test "x$HAVE_LIBOPENQUICKTIME" = "xyes")
1125 AM_CONDITIONAL(HAVE_LIBGSM,         test "x$HAVE_LIBGSM" = "xyes")
1126 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR,  test "x$PLUGINS_USE_BUILDDIR" = "xyes")
1127 AM_CONDITIONAL(HAVE_SIDPLAY,        test "x$have_sidplay" = "xyes")
1128
1129
1130 dnl ############################
1131 dnl # Set up some more defines #
1132 dnl ############################
1133
1134 dnl Set location of configuration dir.
1135 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
1136 AC_SUBST(GST_CONFIG_DIR)
1137
1138 dnl Set location of windows dll dir.
1139 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
1140 AC_SUBST(GST_WIN32_LIBDIR)
1141
1142 dnl Set location of plugin directory
1143 if test "x${prefix}" = "xNONE"; then
1144   PLUGINS_DIR=${ac_default_prefix}/lib/gst
1145 else
1146   PLUGINS_DIR=${prefix}/lib/gst
1147 fi
1148 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
1149 AC_SUBST(PLUGINS_DIR)
1150
1151 dnl Set location of uninstalled plugin directory
1152 PLUGINS_BUILDDIR=`pwd`
1153 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
1154 AC_SUBST(PLUGINS_BUILDDIR)
1155
1156 dnl Private vars for libgst only
1157 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
1158 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
1159 AC_SUBST(LIBGST_LIBS)
1160 AC_SUBST(LIBGST_CFLAGS)
1161
1162 dnl Vars for everyone else
1163 GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
1164 GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
1165 AC_SUBST(GST_LIBS)
1166 AC_SUBST(GST_CFLAGS)
1167
1168 dnl #############################
1169 dnl # Configure the subpackages #
1170 dnl #############################
1171
1172 dnl AC_CONFIG_SUBDIRS(gist)
1173 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
1174
1175 dnl ##################################################
1176 dnl # Prepare informative messages to display at end #
1177 dnl ##################################################
1178
1179 infomessages=
1180
1181 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
1182   infomessages="$infomessages
1183 *** Warning: You have configured using the --enable-plugin-builddir option.
1184
1185 This option is for development purposes only: binaries built with
1186 it should be used with code in the build tree only.  To build an
1187 installable version, use ./configure without the --enable-plugin-builddir
1188 option.  Note that the autogen.sh script supplies the plugin builddir
1189 option automatically - it cannot be used to configure installable builds.
1190
1191 "
1192 fi
1193
1194 dnl #########################
1195 dnl # Make the output files #
1196 dnl #########################
1197
1198 dnl gstreamer.pc
1199 dnl gstreamer-uninstalled.pc
1200 dnl gstreamer.spec,
1201 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
1202 dnl components/bonobo-gstmediaplay/Makefile
1203 dnl someone should fix this test/misc/Makefile
1204 dnl wtay fix this: testsuite/threads/Makefile
1205 dnl testsuite/refcounting/Makefile
1206 dnl libs/Makefile
1207 dnl libs/riff/Makefile
1208 dnl libs/getbits/Makefile
1209 dnl libs/putbits/Makefile
1210 dnl libs/idct/Makefile
1211 dnl libs/audio/Makefile
1212 dnl libs/bytestream/Makefile
1213 dnl libs/control/Makefile
1214 dnl libs/resample/Makefile
1215 dnl stamp.h
1216 dnl echo "$infomessages", infomessages="$infomessages"
1217 AC_OUTPUT(
1218 Makefile
1219 sys/Makefile
1220 sys/oss/Makefile
1221 sys/qcam/Makefile
1222 sys/v4l/Makefile
1223 sys/vcd/Makefile
1224 sys/vga/Makefile
1225 sys/xvideo/Makefile
1226 )
1227
1228 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1229 echo
1230 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"
1231 echo