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 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
36 dnl Add parameters for aclocal
37 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
38 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
40 AC_SUBST(GST_VERSION_MAJOR)
41 AC_SUBST(GST_VERSION_MINOR)
42 AC_SUBST(GST_VERSION_MICRO)
46 AC_SUBST(GST_REVISION)
48 AC_SUBST(GST_LIBVERSION)
60 dnl We disable static building for development, for time savings
61 dnl *NOTE*: dnl this line before release, so release does static too
68 dnl ###########################################
69 dnl # Super Duper options for plugin building #
70 dnl ###########################################
72 dnl experimental plugins; stuff that hasn't had the dust settle yet
73 dnl read 'builds, but might not work'
74 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plugins],,
75 [HAVE_EXPERIMENTAL=yes],disabled,
77 AC_MSG_WARN(building experimental plugins)
80 AC_MSG_NOTICE(not building experimental plugins)
84 dnl broken plugins; stuff that doesn't seem to build at the moment
85 GST_CHECK_FEATURE(BROKEN, [enable building of broken plugins],,
86 HAVE_BROKEN=yes,disabled,
88 AC_MSG_WARN(building broken plugins)
91 dnl AC_MSG_NOTICE(actually there are no broken plugins at the moment)
95 AC_MSG_NOTICE(not building broken plugins)
98 dnl ##############################
99 dnl # Do automated configuration #
100 dnl ##############################
105 dnl modify pkg-config path
106 AC_ARG_WITH(pkg-config-path,
107 AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
108 [export PKG_CONFIG_PATH=${withval}])
111 AC_PATH_PROG(NASM_PATH, nasm, no)
113 if test x$NASM_PATH = xno; then
114 AC_MSG_WARN(Couldn't find nasm)
117 AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available])
121 dnl check for gstreamer; check for uninstalled first
122 PKG_CHECK_MODULES(GST, gstreamer-uninstalled >= 0.3.0, HAVE_GST="yes", HAVE_GST="no")
123 if test "x$HAVE_GST" = "xno"; then
124 PKG_CHECK_MODULES(GST, gstreamer >= 0.3.0, HAVE_GST="yes", HAVE_GST="no")
127 if test "x$HAVE_GST" = "xno"; then
128 AC_MSG_ERROR(no GStreamer found)
131 dnl Set up conditionals for (target) architecture:
132 dnl ==============================================
135 case "x${target_cpu}" in
136 xi?86 | k?) HAVE_CPU_I386=yes
137 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
138 dnl FIXME could use some better detection
140 case "x${target_cpu}" in
142 *) AC_DEFINE(HAVE_RDTSC) ;;
144 xpowerpc) HAVE_CPU_PPC=yes
145 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
146 xalpha) HAVE_CPU_ALPHA=yes
147 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
148 xarm*) HAVE_CPU_ARM=yes
149 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
150 xsparc*) HAVE_CPU_SPARC=yes
151 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
152 xmips*) HAVE_CPU_MIPS=yes
153 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
154 xhppa*) HAVE_CPU_HPPA=yes
155 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
158 dnl Determine endianness
161 dnl Check for MMX-capable compiler
162 AC_MSG_CHECKING(for MMX-capable compiler)
164 #include "include/mmx.h"
167 { movq_r2r(mm0, mm1); return 0; }
181 dnl We should really use AC_SYS_LARGEFILE, but the problem is
182 dnl many of the plugins don't include "config.h". To assure
183 dnl binary compatibility, it is necessary that all gstreamer
184 dnl code be compiled with the same sizeof(off_t), so we use
185 dnl the following crude hack.
188 AC_MSG_CHECKING(for large file support)
190 #define _LARGEFILE_SOURCE
191 #define _FILE_OFFSET_BITS 64
192 #include <sys/types.h>
193 int main () { return !(sizeof(off_t) == 8); }
197 GST_CFLAGS="$GST_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
206 dnl Check for essential libraries first:
207 dnl ====================================
209 if test -n "`echo $GST_CFLAGS | grep USE_GLIB2`"; then
215 dnl needed for some plugins and demos, now's a nice time to check for gtk
216 if test x$USE_GLIB2 = xno; then
218 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
222 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
224 GTK_CFLAGS=$GTK2_CFLAGS
230 dnl Check for X11 extensions
232 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
233 AC_MSG_ERROR(can not find X11)
237 AC_SUBST(X_EXTRA_LIBS)
240 dnl ==========================================================================
241 dnl ============================= gst plugins ================================
242 dnl ==========================================================================
245 ac3parse adder audioscale auparse avi chart\
246 cutter deinterlace flx intfloat law level\
247 median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
248 mpegaudio mpegaudioparse mpegstream mpegtypes\
249 passthrough playondemand rtjpeg silence sine\
250 smooth spectrum speed stereo stereomono\
251 synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
253 AC_SUBST(GST_PLUGINS_ALL)
255 GST_PLUGINS_SELECTED=""
258 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
259 [for i in `echo $withval | tr , ' '`; do
260 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
261 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
263 echo "plugin $i not recognized, ignoring..."
266 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
268 AC_SUBST(GST_PLUGINS_SELECTED)
270 dnl ==========================================================================
271 dnl ============================= sys plugins ================================
272 dnl ==========================================================================
275 dnl *** OSS audio ***
276 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
277 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
278 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
282 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
283 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, HAVE_QCAM="yes")
285 dnl *** Video 4 Linux ***
286 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
287 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc, [
288 AC_CHECK_HEADER(linux/videodev.h, HAVE_V4L="yes", HAVE_V4L="no")
292 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
293 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
294 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
298 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
299 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
300 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
304 dnl look for the PIC library first, debian likes it
305 dnl yeah but redhat doesn't even *have* it and it works fine without
306 dnl GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
307 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
308 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
309 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
310 XVIDEO_LIBS="-lXv -lXext"
311 AC_SUBST(XVIDEO_LIBS)
314 dnl Next, check for the optional libraries:
315 dnl These are all libraries used in building plugins
316 dnl ================================================
317 dnl let's try and sort them alphabetically, shall we ?
321 AC_MSG_NOTICE(Checking for plugin libraries)
324 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
325 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
326 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
330 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
331 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
332 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
336 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
337 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
338 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
343 dnl if mcopidl can't be found there's no use in compiling it
344 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
345 if test "xHAVE_MCOPIDL" = "xno";
350 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
351 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
352 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
354 dnl if mcopidl can't be found there's no use in compiling it
355 AC_PATH_PROG(MCOPIDL, mcopidl, yes, no)
356 if test "xHAVE_MCOPIDL" = "xno";
362 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
363 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
367 dnl *** audiofile ***
368 dnl this check uses the GST_CHECK_CONFIGPROG macro
369 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
370 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
371 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
372 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
373 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
377 dnl this check uses the GST_CHECK_CONFIGPROG macro
378 dnl this check needs more fixing
379 dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
380 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
381 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
382 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
383 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
384 AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
385 AC_SUBST(AVIFILE_LIBS)
388 dnl *** CDParanoia ***
389 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
390 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
391 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
392 AC_SUBST(CDPARANOIA_LIBS)
394 dnl FIXME : add second check somehow if that is necessary
395 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
396 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
399 dnl FIXME : check if those GLIB thingies are ok
400 translit(dnm, m, l) AM_CONDITIONAL(USE_DV, true)
401 GST_CHECK_FEATURE(DV, [dv library], dv, [
402 GST_CHECK_LIBHEADER(DV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, DV_LIBS="-ldv")
407 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
408 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdsrc, [
409 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
410 AC_SUBST(DVDREAD_LIBS)
414 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
415 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
416 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
419 dnl **** festival ****
420 dnl FIXME until thomas can be bothered to download the 20 MB festival sources
421 dnl this will not go in
422 translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
423 GST_CHECK_FEATURE(FESTIVAL, [festival plugins], festivalsrc, [
424 GST_CHECK_LIBHEADER(FESTIVAL, festival, festival_tidy_up, -lFestival, festival/festival.h, FESTIVAL_LIBS="-lFestival")
425 AC_SUBST(FESTIVAL_LIBS)
429 dnl thomas : checking for compile with main instead of actual function,
430 dnl since that made autoconf break (for version 2.13)
431 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
432 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
433 GST_CHECK_LIBHEADER(FLAC, FLAC, main, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
437 dnl *** Gnome VFS ***
438 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
439 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
440 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
441 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
442 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
443 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
447 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
448 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
449 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
454 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
455 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
456 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
457 ], AC_SUBST(HERMES_LIBS))
460 translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
461 GST_CHECK_FEATURE(HTTP, [http plugins], gsthttpsrc, [
462 dnl FIXME: need to check for header
464 GST_HTTPSRC_GET_TYPE=
465 if test x$USE_GLIB2 = xyes; then
466 AC_MSG_WARN(ghttp disabled for glib2.0)
468 AC_CHECK_LIB(ghttp, ghttp_request_new,
470 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
475 AC_SUBST(GST_HTTPSRC_GET_TYPE)
479 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
480 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
481 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, LAME_LIBS="-lmp3lame")
486 dnl FIXME : check if these CPP flags can be dealt with otherwise
487 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
488 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
489 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
490 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
493 dnl FIXME: we could use header checks here as well IMO
494 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
495 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
496 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
502 dnl FIXME: we could use header checks here as well IMO
503 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
504 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
505 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
510 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
511 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
512 AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
513 AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
514 AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
518 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
519 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
520 GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2 -lmpeg2dec")
521 AC_SUBST(MPEG2DEC_LIBS)
524 dnl *** openquicktime ***
525 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
526 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
527 GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
528 AC_SUBST(OPENQUICKTIME_LIBS)
532 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
533 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
534 GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
535 AC_SUBST(RAW1394_LIBS)
539 dnl FIXME : adapt and make it work
540 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
541 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
542 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GLIB_LIBS $GLIB_CFLAGS)
548 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
549 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
550 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
551 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
552 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
555 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
556 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
557 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
561 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
562 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
563 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
568 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
569 GST_CHECK_FEATURE(SIDPLAY, [sidplay plugin], sidplay, [
573 dnl *** smoothwave ***
574 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
575 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
576 if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
580 dnl AM_PATH_VORBIS only takes two options
581 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
582 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
583 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
587 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
588 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
589 AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
592 dnl Check for atomic.h
593 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
594 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
595 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
596 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
597 if test x$HAVE_ATOMIC_H = xyes; then
599 #include "asm/atomic.h"
600 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
603 if test x$HAVE_ATOMIC_H = xyes; then
604 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
610 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
614 dnl ######################################################################
615 dnl # Check command line parameters, and set shell variables accordingly #
616 dnl ######################################################################
618 AC_ARG_ENABLE(libmmx,
619 [ --enable-libmmx use libmmx, if available],
620 [case "${enableval}" in
621 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
623 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
625 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
627 AC_ARG_ENABLE(atomic,
628 [ --enable-atomic use atomic reference counting header],
629 [case "${enableval}" in
630 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
631 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
632 no) USE_ATOMIC_H=no;;
633 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
635 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
637 AC_ARG_ENABLE(plugin-builddir,
638 [ --enable-plugin-builddir allow tests/demos to use non-installed plugins ],
639 [case "${enableval}" in
640 yes) PLUGINS_USE_BUILDDIR=yes ;;
641 no) PLUGINS_USE_BUILDDIR=no ;;
642 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
644 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
647 [ --enable-debug compile with -g debugging info],
648 [case "${enableval}" in
649 yes) USE_DEBUG=yes ;;
651 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
653 [USE_DEBUG=yes]) dnl Default value
656 [ --enable-DEBUG compiles in a large number of debugging messages],
657 [case "${enableval}" in
658 yes) ENABLE_DEBUG=yes ;;
659 no) ENABLE_DEBUG=no ;;
660 *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
662 [ENABLE_DEBUG=yes]) dnl Default value
663 if test x$ENABLE_DEBUG = xyes; then
664 AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
668 [ --disable-INFO disables compilation of informational messages],
669 [case "${enableval}" in
670 yes) ENABLE_INFO=yes ;;
671 no) ENABLE_INFO=no ;;
672 *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
674 [ENABLE_INFO=yes]) dnl Default value
675 if test x$ENABLE_INFO = xyes; then
676 AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
679 AC_ARG_ENABLE(debug-color,
680 [ --disable-debug-color disables color output of DEBUG and INFO output],
681 [case "${enableval}" in
682 yes) ENABLE_DEBUG_COLOR=yes ;;
683 no) ENABLE_DEBUG_COLOR=no ;;
684 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
686 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
687 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
688 AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
691 AC_ARG_ENABLE(profiling,
692 [ --enable-profiling adds -pg to compiler commandline, for profiling],
693 [case "${enableval}" in
694 yes) USE_PROFILING=yes ;;
695 no) UES_PROFILING=no ;;
696 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
698 [USE_PROFILING=no]) dnl Default value
700 dnl default to building registry in the source tree if we are enabling plugin build dir
701 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
704 GST_CONFIG_DIR=/etc/gstreamer
706 AC_ARG_WITH(configdir,
707 [ --with-configdir specify path to use for configdir],
708 [case "${withval}" in
709 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
710 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
711 *) GST_CONFIG_DIR="${withval}" ;;
713 [:]) dnl Default value
716 GST_WIN32_LIBDIR="/usr/lib/win32"
717 AC_ARG_WITH(win32_libdir,
718 [ --with-win32-libdir specify location for win32 DLLs],
719 [case "${withval}" in
720 yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
721 no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
722 *) GST_WIN32_LIBDIR="${withval}" ;;
724 [:]) dnl Default value
726 AC_ARG_ENABLE(docs-build,
727 [ --enable-docs-build enable building of documentation],
728 [case "${enableval}" in
729 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; ;;
731 *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
733 [BUILD_DOCS=no]) dnl Default value
735 AC_ARG_ENABLE(plugin-docs,
736 [ --enable-plugin-docs enable the building of plugin documentation
737 (this is currently broken, so off by default)],
738 [case "${enableval}" in
739 yes) BUILD_PLUGIN_DOCS=yes ;;
740 no) BUILD_PLUGIN_DOCS=no ;;
741 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
743 [BUILD_PLUGIN_DOCS=no]) dnl Default value
746 [ --disable-tests disable building test apps],
747 [case "${enableval}" in
748 yes) BUILD_TESTS=yes ;;
749 no) BUILD_TESTS=no ;;
750 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
752 [BUILD_TESTS=yes]) dnl Default value
754 AC_ARG_ENABLE(examples,
755 [ --disable-examples disable building examples],
756 [case "${enableval}" in
757 yes) BUILD_EXAMPLES=yes ;;
758 no) BUILD_EXAMPLES=no ;;
759 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
761 [BUILD_EXAMPLES=yes]) dnl Default value
763 dnl Next, check for the optional components:
764 dnl ========================================
767 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
769 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
771 AC_ARG_ENABLE(translit([$1], A-Z, a-z),
772 [ ]builtin(format, --disable-%-17s disable %s, translit([$1], A-Z, a-z), $2),
773 [ case "${enableval}" in
774 yes) GST_DISABLE_[$1]=no ;;
775 no) GST_DISABLE_[$1]=yes ;;
776 *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
778 [GST_DISABLE_[$1]=no]) dnl Default value
779 if test x$GST_DISABLE_[$1] = xyes; then
780 AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
781 GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
783 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
784 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
785 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
788 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
789 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
790 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
791 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
792 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
793 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
794 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
795 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
796 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
797 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
798 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
799 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
801 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
804 dnl ################################################
805 dnl # Set defines according to variables set above #
806 dnl ################################################
809 if test "x$USE_LIBMMX" = xyes; then
810 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
813 if test "x$USE_ATOMIC_H" = xyes; then
814 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
817 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
818 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
821 dnl if test "x$USE_DEBUG" = xyes; then
822 dnl CFLAGS="$CFLAGS -g"
825 if test "x$USE_PROFILING" = xyes; then
826 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
827 FOMIT_FRAME_POINTER=""
829 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
833 dnl AC_SUBST(FOMIT_FRAME_POINTER)
836 if test "x$HAVE_LIBMIKMOD" = xyes; then
837 AC_DEFINE(HAVE_LIBMIKMOD)
840 if test "x$HAVE_LIBGSM" = xyes; then
841 AC_DEFINE(HAVE_LIBGSM)
844 dnl #############################
845 dnl # Set automake conditionals #
846 dnl #############################
848 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
849 dnl HAVE_ and it is likely to be easier to stick with the old name
850 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
851 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
852 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
853 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
854 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
855 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
857 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
859 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
860 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
862 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
863 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
864 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
865 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
866 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
867 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
868 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
869 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
870 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
871 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
872 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
873 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
874 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
875 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
876 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
877 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
878 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
879 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
880 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
881 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
882 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
883 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
884 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
887 dnl ############################
888 dnl # Set up some more defines #
889 dnl ############################
891 dnl Set location of configuration dir.
892 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
893 AC_SUBST(GST_CONFIG_DIR)
895 dnl Set location of windows dll dir.
896 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
897 AC_SUBST(GST_WIN32_LIBDIR)
899 dnl Set location of plugin directory
900 if test "x${prefix}" = "xNONE"; then
901 PLUGINS_DIR=${ac_default_prefix}/lib/gst
903 PLUGINS_DIR=${prefix}/lib/gst
905 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
906 AC_SUBST(PLUGINS_DIR)
908 dnl Set location of uninstalled plugin directory
909 PLUGINS_BUILDDIR=`pwd`
910 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
911 AC_SUBST(PLUGINS_BUILDDIR)
913 dnl Private vars for libgst only
914 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
915 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
916 AC_SUBST(LIBGST_LIBS)
917 AC_SUBST(LIBGST_CFLAGS)
919 dnl Vars for everyone else
920 dnl FIXME: is there a reason to add this top_builddir stuff ? don't think so
921 dnl GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
922 dnl GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
923 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs"
927 dnl #############################
928 dnl # Configure the subpackages #
929 dnl #############################
931 dnl AC_CONFIG_SUBDIRS(gist)
932 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
934 dnl ##################################################
935 dnl # Prepare informative messages to display at end #
936 dnl ##################################################
940 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
941 infomessages="$infomessages
942 *** Warning: You have configured using the --enable-plugin-builddir option.
944 This option is for development purposes only: binaries built with
945 it should be used with code in the build tree only. To build an
946 installable version, use ./configure without the --enable-plugin-builddir
947 option. Note that the autogen.sh script supplies the plugin builddir
948 option automatically - it cannot be used to configure installable builds.
953 dnl #########################
954 dnl # Make the output files #
955 dnl #########################
960 gstreamer-libs-uninstalled.pc
962 gst/ac3parse/Makefile
964 gst/audioscale/Makefile
969 gst/deinterlace/Makefile
971 gst/intfloat/Makefile
975 gst/mpeg1enc/Makefile
976 gst/mpeg1sys/Makefile
977 gst/mpeg1videoparse/Makefile
978 gst/mpeg2enc/Makefile
979 gst/mpeg2sub/Makefile
980 gst/mpegaudio/Makefile
981 gst/mpegaudioparse/Makefile
982 gst/mpegstream/Makefile
983 gst/mpegtypes/Makefile
984 gst/passthrough/Makefile
985 gst/playondemand/Makefile
990 gst/spectrum/Makefile
993 gst/stereomono/Makefile
994 gst/synaesthesia/Makefile
996 gst/videoscale/Makefile
1000 gst/wavparse/Makefile
1009 examples/capsfilter/Makefile
1016 ext/audiofile/Makefile
1017 ext/avifile/Makefile
1018 ext/cdparanoia/Makefile
1020 ext/dvdread/Makefile
1022 ext/festival/Makefile
1024 ext/gnomevfs/Makefile
1033 ext/mpeg2dec/Makefile
1034 ext/openquicktime/Makefile
1035 ext/raw1394/Makefile
1039 ext/sidplay/Makefile
1040 ext/smoothwave/Makefile
1044 gst-libs/gst/Makefile
1045 gst-libs/gst/audio/Makefile
1046 gst-libs/gst/idct/Makefile
1047 gst-libs/gst/resample/Makefile
1048 gst-libs/gst/riff/Makefile
1052 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1054 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"