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 lav 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"
297 AC_SUBST(GST_PLUGINS_ALL)
299 GST_PLUGINS_SELECTED=""
302 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
303 [for i in `echo $withval | tr , ' '`; do
304 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
305 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
307 echo "plugin $i not recognized, ignoring..."
310 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
312 AC_SUBST(GST_PLUGINS_SELECTED)
314 dnl needed for smoothwave, FIXME!
315 if test x$USE_GLIB2 = xno; then
317 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
321 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
323 GTK_CFLAGS=$GTK2_CFLAGS
329 dnl ==========================================================================
330 dnl ============================= sys plugins ================================
331 dnl ==========================================================================
334 dnl *** OSS audio ***
335 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
336 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
337 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
341 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
342 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, HAVE_QCAM="yes")
344 dnl *** Video 4 Linux ***
345 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
346 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc, [
347 AC_CHECK_HEADER(linux/videodev.h, HAVE_V4L="yes", HAVE_V4L="no")
351 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
352 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
353 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
357 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
358 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
359 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
363 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
364 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
365 dnl look for the PIC library first, debian likes it
366 GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
367 if test "x$HAVE_XVIDEO" = "no"; then
368 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
372 dnl Next, check for the optional libraries:
373 dnl These are all libraries used in building plugins
374 dnl ================================================
375 dnl let's try and sort them alphabetically, shall we ?
379 AC_MSG_NOTICE(Checking for plugin libraries)
382 translit(dnm, m, l) AM_CONDITIONAL(USE_A52, true)
383 GST_CHECK_FEATURE(A52, [a52], a52dec, [
384 GST_CHECK_LIBHEADER(A52, a52, a52_init, -lm, a52dec/a52.h, A52_LIBS="-la52")
388 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
389 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
390 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
394 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
395 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
396 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
400 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
401 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
402 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
406 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
407 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
411 dnl *** audiofile ***
412 dnl this check uses the GST_CHECK_CONFIGPROG macro
413 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
414 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
415 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
416 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
417 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
421 dnl this check uses the GST_CHECK_CONFIGPROG macro
422 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
423 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
424 translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
425 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
426 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
429 dnl *** CDParanoia ***
430 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
431 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
432 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
434 dnl FIXME : add second check somehow if that is necessary
435 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
436 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
439 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDVDREAD, true)
440 GST_CHECK_FEATURE(LIBDVDREAD, [dvdread library], libdvdread, [
441 GST_CHECK_LIBHEADER(LIBDVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, LIBDVDREAD_LIBS="-ldvdread")
445 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
446 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
447 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
451 dnl thomas : checking for compile with main instead of actual function,
452 dnl since that made autoconf break (for version 2.13)
453 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFLAC, true)
454 GST_CHECK_FEATURE(FLACLIB, [FLAC lossless audio], flacenc flacdec, [
455 GST_CHECK_LIBHEADER(FLACLIB, FLAC, main, -lm, FLAC/all.h, LIBFLAC_LIBS="-lFLAC")
458 dnl *** Gnome VFS ***
459 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
460 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
461 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
462 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
463 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
464 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
468 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGSM, true)
469 GST_CHECK_FEATURE(LIBGSM, [GSM library], gsmenc gsmdec, [
470 GST_CHECK_LIBHEADER(LIBGSM, gsm, gsm_create, , gsm/gsm.h, LIBGSM_LIBS="-lgsm")
474 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBHERMES, true)
475 GST_CHECK_FEATURE(LIBHERMES, [Hermes library], colorspace, [
476 GST_CHECK_LIBHEADER(LIBHERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, LIBHERMES_LIBS="-lHermes")
477 ], AC_SUBST(LIBHERMES_LIBS))
480 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
481 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
482 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, LAME_LIBS="-lmp3lame")
487 dnl FIXME : check if those GLIB thingies are ok
488 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true)
489 GST_CHECK_FEATURE(LIBDV, [dv library], dv, [
490 GST_CHECK_LIBHEADER(LIBDV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, LIBDV_LIBS="-ldv")
492 dnl FIXME : check if these CPP flags can be dealt with otherwise
493 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
494 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
495 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
496 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
499 dnl FIXME: we could use header checks here as well IMO
500 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBJPEG, true)
501 GST_CHECK_FEATURE(LIBJPEG, [libjpeg], jpegenc jpegdec, [
502 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_LIBJPEG="yes", HAVE_LIBJPEG="no")
506 dnl FIXME: we could use header checks here as well IMO
507 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
508 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
509 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
514 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMIKMOD, true)
515 GST_CHECK_FEATURE(LIBMIKMOD, [mikmod plugin], mikmod, [
516 AM_PATH_LIBMIKMOD(, HAVE_LIBMIKMOD=yes, HAVE_LIBMIKMOD=no)
520 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
521 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
522 GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2 -lmpeg2dec")
523 AC_SUBST(MPEG2DEC_LIBS)
526 dnl *** quicktime ***
527 dnl FIXME: make this be called openquicktime
528 translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true)
529 GST_CHECK_FEATURE(QUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
530 GST_CHECK_LIBHEADER(QUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, QUICKTIME_LIBS="-lopenquicktime")
534 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
535 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
536 GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
540 dnl FIXME : adapt and make it work
541 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRTP, true)
542 GST_CHECK_FEATURE(LIBRTP, [RTP library], rtpenc rtpdec,[
543 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_LIBRTP=yes, HAVE_LIBRTP=no, $GLIB_LIBS $GLIB_CFLAGS)
545 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
546 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
547 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
548 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
549 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
553 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
554 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
555 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
559 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBSHOUT, true)
560 GST_CHECK_FEATURE(LIBSHOUT, [shout plugin], icecastsend, [
561 GST_CHECK_LIBHEADER(LIBSHOUT, shout, shout_init_connection,, shout/shout.h, LIBSHOUT_LIBS="-lshout")
565 dnl FIXME : make this work
566 dnl AC_PATH_LIBSIDPLAY
570 dnl AM_PATH_VORBIS only takes two options
571 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
572 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
573 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
577 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBXMMS, true)
578 GST_CHECK_FEATURE(LIBXMMS, [xmms plugin], xmms, [
579 AM_PATH_XMMS(0.1.0, HAVE_LIBXMMS=yes, HAVE_LIBXMMS=no)
582 dnl Check for libghttp
583 translit(dnm, m, l) AM_CONDITIONAL(USE_LIBGHTTP, true)
584 GST_CHECK_FEATURE(LIBGHTTP, [libghttp plugins], gsthttpsrc, [
585 dnl FIXME: need to check for header
587 GST_HTTPSRC_GET_TYPE=
588 if test x$USE_GLIB2 = xyes; then
589 AC_MSG_WARN(ghttp disabled for glib2.0)
591 AC_CHECK_LIB(ghttp, ghttp_request_new,
592 [GHTTP_LIBS="-lghttp"
593 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
598 AC_SUBST(GST_HTTPSRC_GET_TYPE)
601 dnl Check for atomic.h
602 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
603 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
604 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
605 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
606 if test x$HAVE_ATOMIC_H = xyes; then
608 #include "asm/atomic.h"
609 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
612 if test x$HAVE_ATOMIC_H = xyes; then
613 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
619 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
623 dnl ######################################################################
624 dnl # Check command line parameters, and set shell variables accordingly #
625 dnl ######################################################################
627 AC_ARG_ENABLE(libmmx,
628 [ --enable-libmmx use libmmx, if available],
629 [case "${enableval}" in
630 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
632 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
634 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
636 AC_ARG_ENABLE(atomic,
637 [ --enable-atomic use atomic reference counting header],
638 [case "${enableval}" in
639 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
640 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
641 no) USE_ATOMIC_H=no;;
642 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
644 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
646 AC_ARG_ENABLE(plugin-builddir,
647 [ --enable-plugin-builddir allow tests/demos to use non-installed plugins ],
648 [case "${enableval}" in
649 yes) PLUGINS_USE_BUILDDIR=yes ;;
650 no) PLUGINS_USE_BUILDDIR=no ;;
651 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
653 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
656 [ --enable-debug compile with -g debugging info],
657 [case "${enableval}" in
658 yes) USE_DEBUG=yes ;;
660 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
662 [USE_DEBUG=no]) dnl Default value
665 [ --enable-DEBUG compiles in a large number of debugging messages],
666 [case "${enableval}" in
667 yes) ENABLE_DEBUG=yes ;;
668 no) ENABLE_DEBUG=no ;;
669 *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
671 [ENABLE_DEBUG=no]) dnl Default value
672 if test x$ENABLE_DEBUG = xyes; then
673 AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
677 [ --disable-INFO disables compilation of informational messages],
678 [case "${enableval}" in
679 yes) ENABLE_INFO=yes ;;
680 no) ENABLE_INFO=no ;;
681 *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
683 [ENABLE_INFO=yes]) dnl Default value
684 if test x$ENABLE_INFO = xyes; then
685 AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
688 AC_ARG_ENABLE(debug-color,
689 [ --disable-debug-color disables color output of DEBUG and INFO output],
690 [case "${enableval}" in
691 yes) ENABLE_DEBUG_COLOR=yes ;;
692 no) ENABLE_DEBUG_COLOR=no ;;
693 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
695 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
696 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
697 AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
700 AC_ARG_ENABLE(profiling,
701 [ --enable-profiling adds -pg to compiler commandline, for profiling],
702 [case "${enableval}" in
703 yes) USE_PROFILING=yes ;;
704 no) UES_PROFILING=no ;;
705 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
707 [USE_PROFILING=no]) dnl Default value
709 dnl default to building registry in the source tree if we are enabling plugin build dir
710 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
713 GST_CONFIG_DIR=/etc/gstreamer
715 AC_ARG_WITH(configdir,
716 [ --with-configdir specify path to use for configdir],
717 [case "${withval}" in
718 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
719 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
720 *) GST_CONFIG_DIR="${withval}" ;;
722 [:]) dnl Default value
725 GST_WIN32_LIBDIR="/usr/lib/win32"
726 AC_ARG_WITH(win32_libdir,
727 [ --with-win32-libdir specify location for win32 DLLs],
728 [case "${withval}" in
729 yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
730 no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
731 *) GST_WIN32_LIBDIR="${withval}" ;;
733 [:]) dnl Default value
735 AC_ARG_ENABLE(docs-build,
736 [ --enable-docs-build enable building of documentation],
737 [case "${enableval}" in
738 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; ;;
740 *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
742 [BUILD_DOCS=no]) dnl Default value
744 AC_ARG_ENABLE(plugin-docs,
745 [ --enable-plugin-docs enable the building of plugin documentation
746 (this is currently broken, so off by default)],
747 [case "${enableval}" in
748 yes) BUILD_PLUGIN_DOCS=yes ;;
749 no) BUILD_PLUGIN_DOCS=no ;;
750 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
752 [BUILD_PLUGIN_DOCS=no]) dnl Default value
755 [ --disable-tests disable building test apps],
756 [case "${enableval}" in
757 yes) BUILD_TESTS=yes ;;
758 no) BUILD_TESTS=no ;;
759 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
761 [BUILD_TESTS=yes]) dnl Default value
763 AC_ARG_ENABLE(examples,
764 [ --disable-examples disable building examples],
765 [case "${enableval}" in
766 yes) BUILD_EXAMPLES=yes ;;
767 no) BUILD_EXAMPLES=no ;;
768 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
770 [BUILD_EXAMPLES=yes]) dnl Default value
772 dnl Next, check for the optional components:
773 dnl ========================================
776 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
778 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
780 AC_ARG_ENABLE(translit([$1], A-Z, a-z),
781 [ ]builtin(format, --disable-%-17s disable %s, translit([$1], A-Z, a-z), $2),
782 [ case "${enableval}" in
783 yes) GST_DISABLE_[$1]=no ;;
784 no) GST_DISABLE_[$1]=yes ;;
785 *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
787 [GST_DISABLE_[$1]=no]) dnl Default value
788 if test x$GST_DISABLE_[$1] = xyes; then
789 AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
790 GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
792 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
793 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
794 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
797 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
798 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
799 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
800 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
801 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
802 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
803 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
804 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
805 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
806 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
807 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
808 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
810 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
813 dnl ################################################
814 dnl # Set defines according to variables set above #
815 dnl ################################################
818 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
819 dnl HAVE_ and it is likely to be easier to stick with the old name
820 if test "x$USE_LIBGHTTP" = xyes; then
821 AC_DEFINE(HAVE_LIBGHTTP, 1, [Define if ghttp library is available])
824 if test "x$USE_LIBMMX" = xyes; then
825 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
828 if test "x$USE_ATOMIC_H" = xyes; then
829 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
832 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
833 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
836 dnl if test "x$USE_DEBUG" = xyes; then
837 dnl CFLAGS="$CFLAGS -g"
840 if test "x$USE_PROFILING" = xyes; then
841 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
842 FOMIT_FRAME_POINTER=""
844 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
848 dnl AC_SUBST(FOMIT_FRAME_POINTER)
851 if test "x$HAVE_LIBMIKMOD" = xyes; then
852 AC_DEFINE(HAVE_LIBMIKMOD)
855 if test "x$HAVE_LIBJPEG" = xyes; then
856 AC_DEFINE(HAVE_LIBJPEG)
859 if test "x$HAVE_LIBHERMES" = "xyes"; then
860 AC_DEFINE(HAVE_LIBHERMES)
863 if test "x$HAVE_LIBDVDREAD" = xyes; then
864 AC_DEFINE(HAVE_LIBDVDREAD)
867 if test "x$HAVE_A52DEC" = xyes; then
868 AC_DEFINE(HAVE_A52DEC)
871 if test "x$HAVE_FLACLIB" = xyes; then
872 AC_DEFINE(HAVE_FLACLIB)
875 if test "x$HAVE_LIBGSM" = xyes; then
876 AC_DEFINE(HAVE_LIBGSM)
879 dnl #############################
880 dnl # Set automake conditionals #
881 dnl #############################
883 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
884 dnl HAVE_ and it is likely to be easier to stick with the old name
885 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
886 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
887 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
888 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
889 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
890 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
892 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
894 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
895 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
897 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
898 AM_CONDITIONAL(HAVE_LIBDVDREAD, test "x$HAVE_LIBDVDREAD" = "xyes")
899 AM_CONDITIONAL(HAVE_LIBJPEG, test "x$HAVE_LIBJPEG" = "xyes")
900 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
901 AM_CONDITIONAL(HAVE_LIBHERMES, test "x$HAVE_LIBHERMES" = "xyes")
902 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
903 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
904 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
905 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
906 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
907 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
908 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
909 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
910 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
911 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
912 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
913 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
914 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
915 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
916 AM_CONDITIONAL(HAVE_CDPARANOIA, test "x$HAVE_CDPARANOIA" = "xyes")
917 AM_CONDITIONAL(HAVE_LIBSHOUT, test "x$HAVE_LIBSHOUT" = "xyes")
918 AM_CONDITIONAL(HAVE_A52DEC, test "x$HAVE_A52DEC" = "xyes")
919 AM_CONDITIONAL(HAVE_AVIFILE, test "x$HAVE_AVIFILE" = "xyes")
920 dnl thomas : the next line gives errors, this is how it is in CVS
921 dnl AM_CONDITIONAL(HAVE_FLAC, test "x$HAVE_FLAC" = "xyes")
922 dnl thomas : the next line gives errors as well, I commented it
923 dnl AM_CONDITIONAL(HAVE_LAC, test "x$HAVE_FAC" = "xyes")
924 dnl thomas: the next line doesn't give errors
925 AM_CONDITIONAL(HAVE_FLACLIB, test "x$HAVE_FLACLIB" = "xyes")
926 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
927 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
928 AM_CONDITIONAL(HAVE_XMMS, test "x$HAVE_XMMS" = "xyes")
929 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
930 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
931 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
932 AM_CONDITIONAL(HAVE_LIBOPENQUICKTIME, test "x$HAVE_LIBOPENQUICKTIME" = "xyes")
933 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
934 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
935 AM_CONDITIONAL(HAVE_SIDPLAY, test "x$have_sidplay" = "xyes")
938 dnl ############################
939 dnl # Set up some more defines #
940 dnl ############################
942 dnl Set location of configuration dir.
943 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
944 AC_SUBST(GST_CONFIG_DIR)
946 dnl Set location of windows dll dir.
947 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
948 AC_SUBST(GST_WIN32_LIBDIR)
950 dnl Set location of plugin directory
951 if test "x${prefix}" = "xNONE"; then
952 PLUGINS_DIR=${ac_default_prefix}/lib/gst
954 PLUGINS_DIR=${prefix}/lib/gst
956 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
957 AC_SUBST(PLUGINS_DIR)
959 dnl Set location of uninstalled plugin directory
960 PLUGINS_BUILDDIR=`pwd`
961 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
962 AC_SUBST(PLUGINS_BUILDDIR)
964 dnl Private vars for libgst only
965 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
966 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
967 AC_SUBST(LIBGST_LIBS)
968 AC_SUBST(LIBGST_CFLAGS)
970 dnl Vars for everyone else
971 dnl FIXME: is there a reason to add this top_builddir stuff ? don't think so
972 dnl GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
973 dnl GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
974 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs"
978 dnl #############################
979 dnl # Configure the subpackages #
980 dnl #############################
982 dnl AC_CONFIG_SUBDIRS(gist)
983 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
985 dnl ##################################################
986 dnl # Prepare informative messages to display at end #
987 dnl ##################################################
991 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
992 infomessages="$infomessages
993 *** Warning: You have configured using the --enable-plugin-builddir option.
995 This option is for development purposes only: binaries built with
996 it should be used with code in the build tree only. To build an
997 installable version, use ./configure without the --enable-plugin-builddir
998 option. Note that the autogen.sh script supplies the plugin builddir
999 option automatically - it cannot be used to configure installable builds.
1004 dnl #########################
1005 dnl # Make the output files #
1006 dnl #########################
1009 dnl gstreamer-uninstalled.pc
1011 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
1012 dnl components/bonobo-gstmediaplay/Makefile
1013 dnl someone should fix this test/misc/Makefile
1014 dnl wtay fix this: testsuite/threads/Makefile
1015 dnl testsuite/refcounting/Makefile
1017 dnl libs/riff/Makefile
1018 dnl libs/getbits/Makefile
1019 dnl libs/putbits/Makefile
1020 dnl libs/idct/Makefile
1021 dnl libs/audio/Makefile
1022 dnl libs/bytestream/Makefile
1023 dnl libs/control/Makefile
1024 dnl libs/resample/Makefile
1026 dnl echo "$infomessages", infomessages="$infomessages"
1030 gst/ac3parse/Makefile
1033 gst/audioscale/Makefile
1034 gst/auparse/Makefile
1038 gst/deinterlace/Makefile
1040 gst/intfloat/Makefile
1045 gst/mpeg1enc/Makefile
1046 gst/mpeg1sys/Makefile
1047 gst/mpeg2enc/Makefile
1048 gst/mpeg2sub/Makefile
1049 gst/mpegaudio/Makefile
1050 gst/mpegaudioparse/Makefile
1051 gst/mpegstream/Makefile
1052 gst/mpegtypes/Makefile
1053 gst/passthrough/Makefile
1054 gst/playondemand/Makefile
1056 gst/silence/Makefile
1059 gst/smoothwave/Makefile
1060 gst/spectrum/Makefile
1063 gst/stereomono/Makefile
1064 gst/synaesthesia/Makefile
1066 gst/videoscale/Makefile
1069 gst/vumeter/Makefile
1070 gst/wavparse/Makefile
1081 ext/audiofile/Makefile
1085 ext/mpeg2dec/Makefile
1089 gst-libs/gst/Makefile
1090 gst-libs/gst/audio/Makefile
1091 gst-libs/gst/resample/Makefile
1092 gst-libs/gst/riff/Makefile
1096 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1098 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"