1 dnl autoconf configuration file for plugins
3 dnl FIXME take something else ?
4 AC_CONFIG_SRCDIR([COPYING])
6 AC_CANONICAL_TARGET([])
8 AM_CONFIG_HEADER(config.h)
14 dnl we use the release tag during CVS development
15 GST_VERSION_RELEASE=`date +%Y%m%d`
17 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO
22 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
23 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
26 AC_DEFINE_UNQUOTED(GST_VERSION_RELEASE, "$GST_VERSION_RELEASE")
27 AC_SUBST(GST_VERSION_RELEASE)
33 GST_LIBVERSION=$GST_CURRENT:$GST_REVISION:$GST_AGE
35 dnl check for gstreamer
36 PKG_CHECK_MODULES(GST, gstreamer >= 0.3.0)
38 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
39 dnl Add parameters for aclocal
40 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
41 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
43 AC_SUBST(GST_VERSION_MAJOR)
44 AC_SUBST(GST_VERSION_MINOR)
45 AC_SUBST(GST_VERSION_MICRO)
49 AC_SUBST(GST_REVISION)
51 AC_SUBST(GST_LIBVERSION)
63 dnl We disable static building for development, for time savings
64 dnl *NOTE*: dnl this line before release, so release does static too
71 dnl ###########################################
72 dnl # Super Duper options for plugin building #
73 dnl ###########################################
75 dnl experimental plugins; stuff that hasn't had the dust settle yet
77 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plugins],,
78 [HAVE_EXPERIMENTAL=yes],disabled,
80 AC_MSG_WARN(building experimental plugins)
86 AC_MSG_NOTICE(not building experimental plugins)
93 dnl broken plugins; stuff that doesn't seem to build at the moment
94 GST_CHECK_FEATURE(BROKEN, [enable building of broken plugins],,
95 HAVE_BROKEN=yes,disabled,
97 AC_MSG_WARN(building broken plugins)
99 dnl AC_MSG_NOTICE(actually there are no broken plugins at the moment)
102 AC_MSG_NOTICE(not building broken plugins)
105 dnl ##############################
106 dnl # Do automated configuration #
107 dnl ##############################
113 AC_PATH_PROG(NASM_PATH, nasm, no)
115 if test x$NASM_PATH = xno; then
116 AC_MSG_WARN(Couldn't find nasm)
119 AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
123 dnl fix pkg-config's broken default search path
124 if test -z $PKG_CONFIG_PATH; then
125 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
127 export PKG_CONFIG_PATH
129 dnl Check for pkgconfig
130 AC_CHECK_PROG(HAVE_PKGCONFIG, pkg-config, true, false)
132 dnl dnl check for gtk-doc
133 dnl AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
135 dnl if test "x$with_html_dir" = "x" ; then
136 dnl HTML_DIR='${datadir}/gst/html'
138 dnl HTML_DIR=$with_html_dir
141 dnl AC_SUBST(HTML_DIR)
143 dnl AC_CHECK_PROG(HAVE_GTK_DOC, gtkdoc-mkdb, true, false)
144 dnl gtk_doc_min_version=0.6
145 dnl if $HAVE_GTK_DOC ; then
146 dnl gtk_doc_version=`gtkdoc-mkdb --version`
147 dnl AC_MSG_CHECKING([gtk-doc version ($gtk_doc_version) >= $gtk_doc_min_version])
148 dnl if perl <<EOF ; then
149 dnl exit (("$gtk_doc_version" =~ /^[[0-9]]+\.[[0-9]]+$/) &&
150 dnl ("$gtk_doc_version" >= "$gtk_doc_min_version") ? 0 : 1);
152 dnl AC_MSG_RESULT(yes)
154 dnl AC_MSG_RESULT(no)
155 dnl HAVE_GTK_DOC=false
158 dnl GTK_DOC_SCANOBJ=gtkdoc-scanobj
160 dnl AC_SUBST(HAVE_GTK_DOC)
161 dnl AC_SUBST(GTK_DOC_SCANOBJ)
163 dnl dnl check for docbook tools
164 dnl AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, true, false)
165 dnl AC_CHECK_PROG(HAVE_PDFTOPS, pdftops, true, false)
166 dnl dnl this does not yet work properly, at least on debain -- wingo
167 dnl HAVE_PDFXMLTEX=false
169 dnl dnl check for image conversion tool
170 dnl AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, true, false)
172 dnl dnl The following is a hack: if fig2dev doesn't display an error message
173 dnl dnl for the desired type, we assume it supports it.
174 dnl HAVE_FIG2DEV_PNG=false
175 dnl if test "x$HAVE_FIG2DEV" = "xtrue" ; then
176 dnl fig2dev_quiet=`fig2dev -L png </dev/null 2>&1 >/dev/null`
177 dnl if test "x$fig2dev_quiet" = "x" ; then
178 dnl HAVE_FIG2DEV_PNG=true
181 dnl HAVE_FIG2DEV_PDF=false
182 dnl if test "x$HAVE_FIG2DEV" = "xtrue" ; then
183 dnl fig2dev_quiet=`fig2dev -L pdf </dev/null 2>&1 >/dev/null`
184 dnl if test "x$fig2dev_quiet" = "x" ; then
185 dnl HAVE_FIG2DEV_PDF=true
190 dnl Set up conditionals for (target) architecture:
191 dnl ==============================================
194 case "x${target_cpu}" in
195 xi?86 | k?) HAVE_CPU_I386=yes
196 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
197 dnl FIXME could use some better detection
199 case "x${target_cpu}" in
201 *) AC_DEFINE(HAVE_RDTSC) ;;
203 xpowerpc) HAVE_CPU_PPC=yes
204 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
205 xalpha) HAVE_CPU_ALPHA=yes
206 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
207 xarm*) HAVE_CPU_ARM=yes
208 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
209 xsparc*) HAVE_CPU_SPARC=yes
210 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
211 xmips*) HAVE_CPU_MIPS=yes
212 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
213 xhppa*) HAVE_CPU_HPPA=yes
214 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
217 dnl Determine endianness
220 dnl Check for MMX-capable compiler
221 AC_MSG_CHECKING(for MMX-capable compiler)
223 #include "include/mmx.h"
226 { movq_r2r(mm0, mm1); return 0; }
240 dnl We should really use AC_SYS_LARGEFILE, but the problem is
241 dnl many of the plugins don't include "config.h". To assure
242 dnl binary compatibility, it is necessary that all gstreamer
243 dnl code be compiled with the same sizeof(off_t), so we use
244 dnl the following crude hack.
247 AC_MSG_CHECKING(for large file support)
249 #define _LARGEFILE_SOURCE
250 #define _FILE_OFFSET_BITS 64
251 #include <sys/types.h>
252 int main () { return !(sizeof(off_t) == 8); }
256 GST_CFLAGS="$GST_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
265 dnl Check for essential libraries first:
266 dnl ====================================
268 dnl if test -n "`cat $GST_CFLAGS | grep USE_GLIB2`"; then
274 dnl Check for X11 extensions
276 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
277 AC_MSG_ERROR(can not find X11)
281 AC_SUBST(X_EXTRA_LIBS)
284 dnl ==========================================================================
285 dnl ============================= gst plugins ================================
286 dnl ==========================================================================
289 ac3parse adder audioscale auparse avi chart\
290 cutter deinterlace flx intfloat law level\
291 median mpeg1enc mpeg1sys mpeg2enc mpeg2sub\
292 mpegaudio mpegaudioparse mpegstream mpegtypes\
293 passthrough playondemand rtjpeg silence sine\
294 smooth smoothwave spectrum speed stereo stereomono\
295 synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
299 AC_SUBST(GST_PLUGINS_ALL)
301 GST_PLUGINS_SELECTED=""
304 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
305 [for i in `echo $withval | tr , ' '`; do
306 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
307 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
309 echo "plugin $i not recognized, ignoring..."
312 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
314 AC_SUBST(GST_PLUGINS_SELECTED)
316 dnl needed for smoothwave, FIXME!
317 if test x$USE_GLIB2 = xno; then
319 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
323 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
325 GTK_CFLAGS=$GTK2_CFLAGS
331 dnl ==========================================================================
332 dnl ============================= sys plugins ================================
333 dnl ==========================================================================
336 dnl *** OSS audio ***
337 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
338 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
339 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
343 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
344 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, HAVE_QCAM="yes")
346 dnl *** Video 4 Linux ***
347 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
348 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc, [
349 AC_CHECK_HEADER(linux/videodev.h, HAVE_V4L="yes", HAVE_V4L="no")
353 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
354 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
355 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
359 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
360 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
361 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
365 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
366 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
367 dnl look for the PIC library first, debian likes it
368 GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
369 if test "x$HAVE_XVIDEO" = "no"; then
370 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
374 dnl Next, check for the optional libraries:
375 dnl These are all libraries used in building plugins
376 dnl ================================================
377 dnl let's try and sort them alphabetically, shall we ?
381 AC_MSG_NOTICE(Checking for plugin libraries)
384 translit(dnm, m, l) AM_CONDITIONAL(USE_A52, true)
385 GST_CHECK_FEATURE(A52, [a52], a52dec, [
386 GST_CHECK_LIBHEADER(A52, a52, a52_init, -lm, a52dec/a52.h, A52_LIBS="-la52")
390 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
391 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
392 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
396 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
397 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
398 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
402 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
403 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
404 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
408 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
409 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
413 dnl *** audiofile ***
414 dnl this check uses the GST_CHECK_CONFIGPROG macro
415 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
416 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
417 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
418 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
419 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
423 dnl this check uses the GST_CHECK_CONFIGPROG macro
424 dnl this check needs more fixing
425 dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
426 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
427 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
428 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
429 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
430 AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
431 AC_SUBST(AVIFILE_LIBS)
434 dnl *** CDParanoia ***
435 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
436 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
437 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
438 AC_SUBST(CDPARANOIA_LIBS)
440 dnl FIXME : add second check somehow if that is necessary
441 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
442 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
445 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
446 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdsrc, [
447 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
448 AC_SUBST(DVDREAD_LIBS)
452 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
453 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
454 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
458 dnl thomas : checking for compile with main instead of actual function,
459 dnl since that made autoconf break (for version 2.13)
460 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
461 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
462 GST_CHECK_LIBHEADER(FLAC, FLAC, main, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
466 dnl *** Gnome VFS ***
467 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
468 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
469 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
470 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
471 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
472 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
476 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
477 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
478 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
483 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
484 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
485 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
486 ], AC_SUBST(HERMES_LIBS))
489 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
490 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
491 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, LAME_LIBS="-lmp3lame")
496 dnl FIXME : check if those GLIB thingies are ok
497 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
498 GST_CHECK_FEATURE(LIBDV, [dv library], dv, [
499 GST_CHECK_LIBHEADER(LIBDV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, LIBDV_LIBS="-ldv")
501 dnl FIXME : check if these CPP flags can be dealt with otherwise
502 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
503 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
504 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
505 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
508 dnl FIXME: we could use header checks here as well IMO
509 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
510 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
511 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
517 dnl FIXME: we could use header checks here as well IMO
518 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
519 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
520 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
525 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMIKMOD, true)
526 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
527 AM_PATH_LIBMIKMOD(, HAVE_LIBMIKMOD=yes, HAVE_LIBMIKMOD=no)
531 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
532 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
533 GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2 -lmpeg2dec")
534 AC_SUBST(MPEG2DEC_LIBS)
537 dnl *** openquicktime ***
538 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
539 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
540 GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
541 AC_SUBST(OPENQUICKTIME_LIBS)
545 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
546 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
547 GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
551 dnl FIXME : adapt and make it work
552 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRTP, true)
553 GST_CHECK_FEATURE(LIBRTP, [RTP library], rtpenc rtpdec,[
554 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_LIBRTP=yes, HAVE_LIBRTP=no, $GLIB_LIBS $GLIB_CFLAGS)
556 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
557 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
558 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
559 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
560 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
564 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
565 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
566 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
570 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
571 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
572 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
577 dnl FIXME : make this work
578 dnl AC_PATH_LIBSIDPLAY
582 dnl AM_PATH_VORBIS only takes two options
583 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
584 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
585 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
589 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBXMMS, true)
590 GST_CHECK_FEATURE(LIBXMMS, [xmms plugin], xmms, [
591 AM_PATH_XMMS(0.1.0, HAVE_LIBXMMS=yes, HAVE_LIBXMMS=no)
594 dnl Check for libghttp
595 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGHTTP, true)
596 GST_CHECK_FEATURE(LIBGHTTP, [libghttp plugins], gsthttpsrc, [
597 dnl FIXME: need to check for header
599 GST_HTTPSRC_GET_TYPE=
600 if test x$USE_GLIB2 = xyes; then
601 AC_MSG_WARN(ghttp disabled for glib2.0)
603 AC_CHECK_LIB(ghttp, ghttp_request_new,
604 [GHTTP_LIBS="-lghttp"
605 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
610 AC_SUBST(GST_HTTPSRC_GET_TYPE)
613 dnl Check for atomic.h
614 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
615 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
616 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
617 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
618 if test x$HAVE_ATOMIC_H = xyes; then
620 #include "asm/atomic.h"
621 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
624 if test x$HAVE_ATOMIC_H = xyes; then
625 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
631 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
635 dnl ######################################################################
636 dnl # Check command line parameters, and set shell variables accordingly #
637 dnl ######################################################################
639 AC_ARG_ENABLE(libmmx,
640 [ --enable-libmmx use libmmx, if available],
641 [case "${enableval}" in
642 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
644 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
646 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
648 AC_ARG_ENABLE(atomic,
649 [ --enable-atomic use atomic reference counting header],
650 [case "${enableval}" in
651 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
652 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
653 no) USE_ATOMIC_H=no;;
654 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
656 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
658 AC_ARG_ENABLE(plugin-builddir,
659 [ --enable-plugin-builddir allow tests/demos to use non-installed plugins ],
660 [case "${enableval}" in
661 yes) PLUGINS_USE_BUILDDIR=yes ;;
662 no) PLUGINS_USE_BUILDDIR=no ;;
663 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
665 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
668 [ --enable-debug compile with -g debugging info],
669 [case "${enableval}" in
670 yes) USE_DEBUG=yes ;;
672 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
674 [USE_DEBUG=no]) dnl Default value
677 [ --enable-DEBUG compiles in a large number of debugging messages],
678 [case "${enableval}" in
679 yes) ENABLE_DEBUG=yes ;;
680 no) ENABLE_DEBUG=no ;;
681 *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
683 [ENABLE_DEBUG=no]) dnl Default value
684 if test x$ENABLE_DEBUG = xyes; then
685 AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
689 [ --disable-INFO disables compilation of informational messages],
690 [case "${enableval}" in
691 yes) ENABLE_INFO=yes ;;
692 no) ENABLE_INFO=no ;;
693 *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
695 [ENABLE_INFO=yes]) dnl Default value
696 if test x$ENABLE_INFO = xyes; then
697 AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
700 AC_ARG_ENABLE(debug-color,
701 [ --disable-debug-color disables color output of DEBUG and INFO output],
702 [case "${enableval}" in
703 yes) ENABLE_DEBUG_COLOR=yes ;;
704 no) ENABLE_DEBUG_COLOR=no ;;
705 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
707 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
708 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
709 AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
712 AC_ARG_ENABLE(profiling,
713 [ --enable-profiling adds -pg to compiler commandline, for profiling],
714 [case "${enableval}" in
715 yes) USE_PROFILING=yes ;;
716 no) UES_PROFILING=no ;;
717 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
719 [USE_PROFILING=no]) dnl Default value
721 dnl default to building registry in the source tree if we are enabling plugin build dir
722 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
725 GST_CONFIG_DIR=/etc/gstreamer
727 AC_ARG_WITH(configdir,
728 [ --with-configdir specify path to use for configdir],
729 [case "${withval}" in
730 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
731 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
732 *) GST_CONFIG_DIR="${withval}" ;;
734 [:]) dnl Default value
737 GST_WIN32_LIBDIR="/usr/lib/win32"
738 AC_ARG_WITH(win32_libdir,
739 [ --with-win32-libdir specify location for win32 DLLs],
740 [case "${withval}" in
741 yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
742 no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
743 *) GST_WIN32_LIBDIR="${withval}" ;;
745 [:]) dnl Default value
747 AC_ARG_ENABLE(docs-build,
748 [ --enable-docs-build enable building of documentation],
749 [case "${enableval}" in
750 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; ;;
752 *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
754 [BUILD_DOCS=no]) dnl Default value
756 AC_ARG_ENABLE(plugin-docs,
757 [ --enable-plugin-docs enable the building of plugin documentation
758 (this is currently broken, so off by default)],
759 [case "${enableval}" in
760 yes) BUILD_PLUGIN_DOCS=yes ;;
761 no) BUILD_PLUGIN_DOCS=no ;;
762 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
764 [BUILD_PLUGIN_DOCS=no]) dnl Default value
767 [ --disable-tests disable building test apps],
768 [case "${enableval}" in
769 yes) BUILD_TESTS=yes ;;
770 no) BUILD_TESTS=no ;;
771 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
773 [BUILD_TESTS=yes]) dnl Default value
775 AC_ARG_ENABLE(examples,
776 [ --disable-examples disable building examples],
777 [case "${enableval}" in
778 yes) BUILD_EXAMPLES=yes ;;
779 no) BUILD_EXAMPLES=no ;;
780 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
782 [BUILD_EXAMPLES=yes]) dnl Default value
784 dnl Next, check for the optional components:
785 dnl ========================================
788 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
790 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
792 AC_ARG_ENABLE(translit([$1], A-Z, a-z),
793 [ ]builtin(format, --disable-%-17s disable %s, translit([$1], A-Z, a-z), $2),
794 [ case "${enableval}" in
795 yes) GST_DISABLE_[$1]=no ;;
796 no) GST_DISABLE_[$1]=yes ;;
797 *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
799 [GST_DISABLE_[$1]=no]) dnl Default value
800 if test x$GST_DISABLE_[$1] = xyes; then
801 AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
802 GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
804 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
805 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
806 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
809 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
810 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
811 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
812 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
813 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
814 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
815 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
816 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
817 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
818 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
819 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
820 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
822 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
825 dnl ################################################
826 dnl # Set defines according to variables set above #
827 dnl ################################################
830 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
831 dnl HAVE_ and it is likely to be easier to stick with the old name
832 if test "x$USE_LIBGHTTP" = xyes; then
833 AC_DEFINE(HAVE_LIBGHTTP, 1, [Define if ghttp library is available])
836 if test "x$USE_LIBMMX" = xyes; then
837 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
840 if test "x$USE_ATOMIC_H" = xyes; then
841 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
844 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
845 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
848 dnl if test "x$USE_DEBUG" = xyes; then
849 dnl CFLAGS="$CFLAGS -g"
852 if test "x$USE_PROFILING" = xyes; then
853 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
854 FOMIT_FRAME_POINTER=""
856 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
860 dnl AC_SUBST(FOMIT_FRAME_POINTER)
863 if test "x$HAVE_LIBMIKMOD" = xyes; then
864 AC_DEFINE(HAVE_LIBMIKMOD)
867 if test "x$HAVE_A52DEC" = xyes; then
868 AC_DEFINE(HAVE_A52DEC)
871 if test "x$HAVE_LIBGSM" = xyes; then
872 AC_DEFINE(HAVE_LIBGSM)
875 dnl #############################
876 dnl # Set automake conditionals #
877 dnl #############################
879 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
880 dnl HAVE_ and it is likely to be easier to stick with the old name
881 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
882 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
883 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
884 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
885 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
886 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
888 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
890 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
891 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
893 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
894 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
895 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
896 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
897 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
898 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
899 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
900 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
901 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
902 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
903 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
904 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
905 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
906 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
907 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
908 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
909 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
910 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
911 AM_CONDITIONAL(HAVE_XMMS, test "x$HAVE_XMMS" = "xyes")
912 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
913 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
914 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
915 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
916 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
917 AM_CONDITIONAL(HAVE_SIDPLAY, test "x$have_sidplay" = "xyes")
920 dnl ############################
921 dnl # Set up some more defines #
922 dnl ############################
924 dnl Set location of configuration dir.
925 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
926 AC_SUBST(GST_CONFIG_DIR)
928 dnl Set location of windows dll dir.
929 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
930 AC_SUBST(GST_WIN32_LIBDIR)
932 dnl Set location of plugin directory
933 if test "x${prefix}" = "xNONE"; then
934 PLUGINS_DIR=${ac_default_prefix}/lib/gst
936 PLUGINS_DIR=${prefix}/lib/gst
938 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
939 AC_SUBST(PLUGINS_DIR)
941 dnl Set location of uninstalled plugin directory
942 PLUGINS_BUILDDIR=`pwd`
943 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
944 AC_SUBST(PLUGINS_BUILDDIR)
946 dnl Private vars for libgst only
947 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
948 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
949 AC_SUBST(LIBGST_LIBS)
950 AC_SUBST(LIBGST_CFLAGS)
952 dnl Vars for everyone else
953 dnl FIXME: is there a reason to add this top_builddir stuff ? don't think so
954 dnl GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
955 dnl GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
956 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs"
960 dnl #############################
961 dnl # Configure the subpackages #
962 dnl #############################
964 dnl AC_CONFIG_SUBDIRS(gist)
965 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
967 dnl ##################################################
968 dnl # Prepare informative messages to display at end #
969 dnl ##################################################
973 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
974 infomessages="$infomessages
975 *** Warning: You have configured using the --enable-plugin-builddir option.
977 This option is for development purposes only: binaries built with
978 it should be used with code in the build tree only. To build an
979 installable version, use ./configure without the --enable-plugin-builddir
980 option. Note that the autogen.sh script supplies the plugin builddir
981 option automatically - it cannot be used to configure installable builds.
986 dnl #########################
987 dnl # Make the output files #
988 dnl #########################
991 dnl gstreamer-uninstalled.pc
993 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
994 dnl components/bonobo-gstmediaplay/Makefile
995 dnl someone should fix this test/misc/Makefile
996 dnl wtay fix this: testsuite/threads/Makefile
997 dnl testsuite/refcounting/Makefile
999 dnl libs/riff/Makefile
1000 dnl libs/getbits/Makefile
1001 dnl libs/putbits/Makefile
1002 dnl libs/idct/Makefile
1003 dnl libs/audio/Makefile
1004 dnl libs/bytestream/Makefile
1005 dnl libs/control/Makefile
1006 dnl libs/resample/Makefile
1008 dnl echo "$infomessages", infomessages="$infomessages"
1009 PLUGIN_GST_MAKEFILES="\
1010 gst/ac3parse/Makefile \
1011 gst/adder/Makefile \
1012 gst/audioscale/Makefile \
1013 gst/auparse/Makefile \
1015 gst/chart/Makefile \
1016 gst/cutter/Makefile \
1017 gst/deinterlace/Makefile \
1019 gst/intfloat/Makefile \
1021 gst/level/Makefile \
1022 gst/median/Makefile \
1023 gst/mpeg1enc/Makefile \
1024 gst/mpeg1sys/Makefile \
1025 gst/mpeg2enc/Makefile \
1026 gst/mpeg2sub/Makefile \
1027 gst/mpegaudio/Makefile \
1028 gst/mpegaudioparse/Makefile \
1029 gst/mpegstream/Makefile \
1030 gst/mpegtypes/Makefile \
1031 gst/passthrough/Makefile \
1032 gst/playondemand/Makefile \
1033 gst/rtjpeg/Makefile \
1034 gst/silence/Makefile \
1036 gst/smooth/Makefile \
1037 gst/smoothwave/Makefile \
1038 gst/spectrum/Makefile \
1039 gst/speed/Makefile \
1040 gst/stereo/Makefile \
1041 gst/stereomono/Makefile \
1042 gst/synaesthesia/Makefile \
1044 gst/videoscale/Makefile \
1045 gst/volenv/Makefile \
1046 gst/volume/Makefile \
1047 gst/vumeter/Makefile \
1048 gst/wavparse/Makefile \
1051 dnl $PLUGIN_GST_MAKEFILES
1065 ext/audiofile/Makefile
1066 ext/avifile/Makefile
1067 ext/cdparanoia/Makefile
1068 ext/dvdread/Makefile
1076 ext/mpeg2dec/Makefile
1077 ext/openquicktime/Makefile
1082 gst-libs/gst/Makefile
1083 gst-libs/gst/audio/Makefile
1084 gst-libs/gst/resample/Makefile
1085 gst-libs/gst/riff/Makefile
1089 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1091 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"