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)
81 AC_MSG_NOTICE(not building experimental plugins)
86 dnl broken plugins; stuff that doesn't seem to build at the moment
87 GST_CHECK_FEATURE(BROKEN, [enable building of broken plugins],,
88 HAVE_BROKEN=yes,disabled,
90 AC_MSG_WARN(building broken plugins)
93 dnl AC_MSG_NOTICE(actually there are no broken plugins at the moment)
97 AC_MSG_NOTICE(not building broken plugins)
100 dnl ##############################
101 dnl # Do automated configuration #
102 dnl ##############################
107 dnl modify pkg-config path
108 AC_ARG_WITH(pkg-config-path,
109 AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]),
110 [export PKG_CONFIG_PATH=${withval}])
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 check for gstreamer; check for uninstalled first
124 PKG_CHECK_MODULES(GST, gstreamer-uninstalled >= 0.3.0, HAVE_GST="yes", HAVE_GST="no")
125 if test "x$HAVE_GST" = "xno"; then
126 PKG_CHECK_MODULES(GST, gstreamer >= 0.3.0, HAVE_GST="yes", HAVE_GST="no")
129 if test "x$HAVE_GST" = "xno"; then
130 AC_MSG_ERROR(no GStreamer found)
133 dnl Set up conditionals for (target) architecture:
134 dnl ==============================================
137 case "x${target_cpu}" in
138 xi?86 | k?) HAVE_CPU_I386=yes
139 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
140 dnl FIXME could use some better detection
142 case "x${target_cpu}" in
144 *) AC_DEFINE(HAVE_RDTSC) ;;
146 xpowerpc) HAVE_CPU_PPC=yes
147 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
148 xalpha) HAVE_CPU_ALPHA=yes
149 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
150 xarm*) HAVE_CPU_ARM=yes
151 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
152 xsparc*) HAVE_CPU_SPARC=yes
153 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
154 xmips*) HAVE_CPU_MIPS=yes
155 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
156 xhppa*) HAVE_CPU_HPPA=yes
157 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
160 dnl Determine endianness
163 dnl Check for MMX-capable compiler
164 AC_MSG_CHECKING(for MMX-capable compiler)
166 #include "include/mmx.h"
169 { movq_r2r(mm0, mm1); return 0; }
183 dnl We should really use AC_SYS_LARGEFILE, but the problem is
184 dnl many of the plugins don't include "config.h". To assure
185 dnl binary compatibility, it is necessary that all gstreamer
186 dnl code be compiled with the same sizeof(off_t), so we use
187 dnl the following crude hack.
190 AC_MSG_CHECKING(for large file support)
192 #define _LARGEFILE_SOURCE
193 #define _FILE_OFFSET_BITS 64
194 #include <sys/types.h>
195 int main () { return !(sizeof(off_t) == 8); }
199 GST_CFLAGS="$GST_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
208 dnl Check for essential libraries first:
209 dnl ====================================
211 dnl if test -n "`cat $GST_CFLAGS | grep USE_GLIB2`"; then
217 dnl Check for X11 extensions
219 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
220 AC_MSG_ERROR(can not find X11)
224 AC_SUBST(X_EXTRA_LIBS)
227 dnl ==========================================================================
228 dnl ============================= gst plugins ================================
229 dnl ==========================================================================
232 ac3parse adder audioscale auparse avi chart\
233 cutter deinterlace flx intfloat law level\
234 median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
235 mpegaudio mpegaudioparse mpegstream mpegtypes\
236 passthrough playondemand rtjpeg silence sine\
237 smooth spectrum speed stereo stereomono\
238 synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
240 AC_SUBST(GST_PLUGINS_ALL)
242 GST_PLUGINS_SELECTED=""
245 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
246 [for i in `echo $withval | tr , ' '`; do
247 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
248 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
250 echo "plugin $i not recognized, ignoring..."
253 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
255 AC_SUBST(GST_PLUGINS_SELECTED)
257 dnl needed for smoothwave, FIXME!
258 if test x$USE_GLIB2 = xno; then
260 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
264 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
266 GTK_CFLAGS=$GTK2_CFLAGS
272 dnl ==========================================================================
273 dnl ============================= sys plugins ================================
274 dnl ==========================================================================
277 dnl *** OSS audio ***
278 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
279 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
280 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
284 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
285 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, HAVE_QCAM="yes")
287 dnl *** Video 4 Linux ***
288 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
289 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc, [
290 AC_CHECK_HEADER(linux/videodev.h, HAVE_V4L="yes", HAVE_V4L="no")
294 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
295 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
296 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
300 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
301 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
302 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
306 dnl look for the PIC library first, debian likes it
307 dnl yeah but redhat doesn't even *have* it and it works fine without
308 dnl GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
309 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
310 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
311 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h)
312 XVIDEO_LIBS="-lXv -lXext"
313 AC_SUBST(XVIDEO_LIBS)
316 dnl Next, check for the optional libraries:
317 dnl These are all libraries used in building plugins
318 dnl ================================================
319 dnl let's try and sort them alphabetically, shall we ?
323 AC_MSG_NOTICE(Checking for plugin libraries)
326 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
327 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
328 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
332 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
333 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
334 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
338 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
339 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
340 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
344 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
345 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
346 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
348 dnl if mcopidl can't be found there's no use in compiling it
349 AC_PATH_PROG(MCOPIDL, mcopidl, yes, no)
350 if test "xHAVE_MCOPIDL" = "xno";
356 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
357 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
361 dnl *** audiofile ***
362 dnl this check uses the GST_CHECK_CONFIGPROG macro
363 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
364 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
365 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
366 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
367 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
371 dnl this check uses the GST_CHECK_CONFIGPROG macro
372 dnl this check needs more fixing
373 dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
374 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
375 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
376 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
377 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
378 AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
379 AC_SUBST(AVIFILE_LIBS)
382 dnl *** CDParanoia ***
383 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
384 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
385 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, , cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
386 AC_SUBST(CDPARANOIA_LIBS)
388 dnl FIXME : add second check somehow if that is necessary
389 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
390 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
393 dnl FIXME : check if those GLIB thingies are ok
394 translit(dnm, m, l) AM_CONDITIONAL(USE_DV, true)
395 GST_CHECK_FEATURE(DV, [dv library], dv, [
396 GST_CHECK_LIBHEADER(DV, dv, dv_init, -lm $GLIB_LIBS $GLIB_CFLAGS, libdv/dv.h, DV_LIBS="-ldv")
401 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
402 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdsrc, [
403 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
404 AC_SUBST(DVDREAD_LIBS)
408 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
409 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
410 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
414 dnl thomas : checking for compile with main instead of actual function,
415 dnl since that made autoconf break (for version 2.13)
416 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
417 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
418 GST_CHECK_LIBHEADER(FLAC, FLAC, main, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
422 dnl *** Gnome VFS ***
423 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
424 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
425 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
426 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
427 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
428 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
432 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
433 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
434 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
439 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
440 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
441 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
442 ], AC_SUBST(HERMES_LIBS))
445 translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
446 GST_CHECK_FEATURE(HTTP, [http plugins], gsthttpsrc, [
447 dnl FIXME: need to check for header
449 GST_HTTPSRC_GET_TYPE=
450 if test x$USE_GLIB2 = xyes; then
451 AC_MSG_WARN(ghttp disabled for glib2.0)
453 AC_CHECK_LIB(ghttp, ghttp_request_new,
455 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
460 AC_SUBST(GST_HTTPSRC_GET_TYPE)
464 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
465 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
466 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, LAME_LIBS="-lmp3lame")
471 dnl FIXME : check if these CPP flags can be dealt with otherwise
472 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
473 dnl CPPFLAGS="$CPPFLAGS $GLIB_CFLAGS"
474 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
475 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
478 dnl FIXME: we could use header checks here as well IMO
479 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
480 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
481 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
487 dnl FIXME: we could use header checks here as well IMO
488 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
489 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
490 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
495 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
496 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
497 AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
498 AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
499 AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
503 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
504 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
505 GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2 -lmpeg2dec")
506 AC_SUBST(MPEG2DEC_LIBS)
509 dnl *** openquicktime ***
510 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
511 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
512 GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
513 AC_SUBST(OPENQUICKTIME_LIBS)
517 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
518 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
519 GST_CHECK_LIBHEADER(RAW1394, raw1934, raw1934_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
520 AC_SUBST(RAW1394_LIBS)
524 dnl FIXME : adapt and make it work
525 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
526 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
527 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GLIB_LIBS $GLIB_CFLAGS)
533 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
534 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
535 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
536 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
537 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
540 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
541 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
542 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
546 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
547 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
548 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
552 dnl *** smoothwave ***
553 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
554 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
555 if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
559 dnl FIXME : make this work
560 dnl AC_PATH_LIBSIDPLAY
564 dnl AM_PATH_VORBIS only takes two options
565 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
566 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
567 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
571 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
572 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
573 AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
576 dnl Check for atomic.h
577 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
578 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
579 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
580 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
581 if test x$HAVE_ATOMIC_H = xyes; then
583 #include "asm/atomic.h"
584 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
587 if test x$HAVE_ATOMIC_H = xyes; then
588 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
594 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
598 dnl ######################################################################
599 dnl # Check command line parameters, and set shell variables accordingly #
600 dnl ######################################################################
602 AC_ARG_ENABLE(libmmx,
603 [ --enable-libmmx use libmmx, if available],
604 [case "${enableval}" in
605 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
607 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
609 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
611 AC_ARG_ENABLE(atomic,
612 [ --enable-atomic use atomic reference counting header],
613 [case "${enableval}" in
614 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
615 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
616 no) USE_ATOMIC_H=no;;
617 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
619 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
621 AC_ARG_ENABLE(plugin-builddir,
622 [ --enable-plugin-builddir allow tests/demos to use non-installed plugins ],
623 [case "${enableval}" in
624 yes) PLUGINS_USE_BUILDDIR=yes ;;
625 no) PLUGINS_USE_BUILDDIR=no ;;
626 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
628 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
631 [ --enable-debug compile with -g debugging info],
632 [case "${enableval}" in
633 yes) USE_DEBUG=yes ;;
635 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
637 [USE_DEBUG=no]) dnl Default value
640 [ --enable-DEBUG compiles in a large number of debugging messages],
641 [case "${enableval}" in
642 yes) ENABLE_DEBUG=yes ;;
643 no) ENABLE_DEBUG=no ;;
644 *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
646 [ENABLE_DEBUG=no]) dnl Default value
647 if test x$ENABLE_DEBUG = xyes; then
648 AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
652 [ --disable-INFO disables compilation of informational messages],
653 [case "${enableval}" in
654 yes) ENABLE_INFO=yes ;;
655 no) ENABLE_INFO=no ;;
656 *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
658 [ENABLE_INFO=yes]) dnl Default value
659 if test x$ENABLE_INFO = xyes; then
660 AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
663 AC_ARG_ENABLE(debug-color,
664 [ --disable-debug-color disables color output of DEBUG and INFO output],
665 [case "${enableval}" in
666 yes) ENABLE_DEBUG_COLOR=yes ;;
667 no) ENABLE_DEBUG_COLOR=no ;;
668 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
670 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
671 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
672 AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
675 AC_ARG_ENABLE(profiling,
676 [ --enable-profiling adds -pg to compiler commandline, for profiling],
677 [case "${enableval}" in
678 yes) USE_PROFILING=yes ;;
679 no) UES_PROFILING=no ;;
680 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
682 [USE_PROFILING=no]) dnl Default value
684 dnl default to building registry in the source tree if we are enabling plugin build dir
685 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
688 GST_CONFIG_DIR=/etc/gstreamer
690 AC_ARG_WITH(configdir,
691 [ --with-configdir specify path to use for configdir],
692 [case "${withval}" in
693 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
694 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
695 *) GST_CONFIG_DIR="${withval}" ;;
697 [:]) dnl Default value
700 GST_WIN32_LIBDIR="/usr/lib/win32"
701 AC_ARG_WITH(win32_libdir,
702 [ --with-win32-libdir specify location for win32 DLLs],
703 [case "${withval}" in
704 yes) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
705 no) AC_MSG_ERROR(bad value ${withval} for --with-win32-libdir) ;;
706 *) GST_WIN32_LIBDIR="${withval}" ;;
708 [:]) dnl Default value
710 AC_ARG_ENABLE(docs-build,
711 [ --enable-docs-build enable building of documentation],
712 [case "${enableval}" in
713 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; ;;
715 *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
717 [BUILD_DOCS=no]) dnl Default value
719 AC_ARG_ENABLE(plugin-docs,
720 [ --enable-plugin-docs enable the building of plugin documentation
721 (this is currently broken, so off by default)],
722 [case "${enableval}" in
723 yes) BUILD_PLUGIN_DOCS=yes ;;
724 no) BUILD_PLUGIN_DOCS=no ;;
725 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
727 [BUILD_PLUGIN_DOCS=no]) dnl Default value
730 [ --disable-tests disable building test apps],
731 [case "${enableval}" in
732 yes) BUILD_TESTS=yes ;;
733 no) BUILD_TESTS=no ;;
734 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
736 [BUILD_TESTS=yes]) dnl Default value
738 AC_ARG_ENABLE(examples,
739 [ --disable-examples disable building examples],
740 [case "${enableval}" in
741 yes) BUILD_EXAMPLES=yes ;;
742 no) BUILD_EXAMPLES=no ;;
743 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
745 [BUILD_EXAMPLES=yes]) dnl Default value
747 dnl Next, check for the optional components:
748 dnl ========================================
751 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
753 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
755 AC_ARG_ENABLE(translit([$1], A-Z, a-z),
756 [ ]builtin(format, --disable-%-17s disable %s, translit([$1], A-Z, a-z), $2),
757 [ case "${enableval}" in
758 yes) GST_DISABLE_[$1]=no ;;
759 no) GST_DISABLE_[$1]=yes ;;
760 *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
762 [GST_DISABLE_[$1]=no]) dnl Default value
763 if test x$GST_DISABLE_[$1] = xyes; then
764 AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
765 GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
767 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
768 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
769 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
772 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
773 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
774 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
775 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
776 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
777 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
778 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
779 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
780 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
781 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
782 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
783 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
785 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
788 dnl ################################################
789 dnl # Set defines according to variables set above #
790 dnl ################################################
793 if test "x$USE_LIBMMX" = xyes; then
794 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
797 if test "x$USE_ATOMIC_H" = xyes; then
798 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
801 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
802 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
805 dnl if test "x$USE_DEBUG" = xyes; then
806 dnl CFLAGS="$CFLAGS -g"
809 if test "x$USE_PROFILING" = xyes; then
810 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
811 FOMIT_FRAME_POINTER=""
813 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
817 dnl AC_SUBST(FOMIT_FRAME_POINTER)
820 if test "x$HAVE_LIBMIKMOD" = xyes; then
821 AC_DEFINE(HAVE_LIBMIKMOD)
824 if test "x$HAVE_LIBGSM" = xyes; then
825 AC_DEFINE(HAVE_LIBGSM)
828 dnl #############################
829 dnl # Set automake conditionals #
830 dnl #############################
832 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
833 dnl HAVE_ and it is likely to be easier to stick with the old name
834 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
835 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
836 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
837 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
838 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
839 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
841 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
843 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
844 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
846 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
847 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
848 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
849 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
850 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
851 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
852 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
853 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
854 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
855 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
856 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
857 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
858 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
859 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
860 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
861 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
862 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
863 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
864 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
865 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
866 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
867 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
868 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
869 AM_CONDITIONAL(HAVE_SIDPLAY, test "x$have_sidplay" = "xyes")
872 dnl ############################
873 dnl # Set up some more defines #
874 dnl ############################
876 dnl Set location of configuration dir.
877 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
878 AC_SUBST(GST_CONFIG_DIR)
880 dnl Set location of windows dll dir.
881 AC_DEFINE_UNQUOTED(GST_WIN32_LIBDIR,"$GST_WIN32_LIBDIR")
882 AC_SUBST(GST_WIN32_LIBDIR)
884 dnl Set location of plugin directory
885 if test "x${prefix}" = "xNONE"; then
886 PLUGINS_DIR=${ac_default_prefix}/lib/gst
888 PLUGINS_DIR=${prefix}/lib/gst
890 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
891 AC_SUBST(PLUGINS_DIR)
893 dnl Set location of uninstalled plugin directory
894 PLUGINS_BUILDDIR=`pwd`
895 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
896 AC_SUBST(PLUGINS_BUILDDIR)
898 dnl Private vars for libgst only
899 LIBGST_LIBS="$GST_LIBS $XML_LIBS $GLIB_LIBS"
900 LIBGST_CFLAGS="$GST_CFLAGS $XML_CFLAGS $GLIB_CFLAGS"
901 AC_SUBST(LIBGST_LIBS)
902 AC_SUBST(LIBGST_CFLAGS)
904 dnl Vars for everyone else
905 dnl FIXME: is there a reason to add this top_builddir stuff ? don't think so
906 dnl GST_LIBS="\$(top_builddir)/gst/libgst.la $LIBGST_LIBS"
907 dnl GST_CFLAGS="-I\$(top_srcdir) -I\$(top_srcdir)/include $LIBGST_CFLAGS"
908 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs"
912 dnl #############################
913 dnl # Configure the subpackages #
914 dnl #############################
916 dnl AC_CONFIG_SUBDIRS(gist)
917 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
919 dnl ##################################################
920 dnl # Prepare informative messages to display at end #
921 dnl ##################################################
925 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
926 infomessages="$infomessages
927 *** Warning: You have configured using the --enable-plugin-builddir option.
929 This option is for development purposes only: binaries built with
930 it should be used with code in the build tree only. To build an
931 installable version, use ./configure without the --enable-plugin-builddir
932 option. Note that the autogen.sh script supplies the plugin builddir
933 option automatically - it cannot be used to configure installable builds.
938 dnl #########################
939 dnl # Make the output files #
940 dnl #########################
943 dnl gstreamer-uninstalled.pc
945 dnl until ffmpeg is handled by configure plugins/ffmpeg/Makefile
946 dnl components/bonobo-gstmediaplay/Makefile
947 dnl someone should fix this test/misc/Makefile
948 dnl wtay fix this: testsuite/threads/Makefile
949 dnl testsuite/refcounting/Makefile
951 dnl echo "$infomessages", infomessages="$infomessages"
955 gst/ac3parse/Makefile
957 gst/audioscale/Makefile
962 gst/deinterlace/Makefile
964 gst/intfloat/Makefile
968 gst/mpeg1enc/Makefile
969 gst/mpeg1sys/Makefile
970 gst/mpeg1videoparse/Makefile
971 gst/mpeg2enc/Makefile
972 gst/mpeg2sub/Makefile
973 gst/mpegaudio/Makefile
974 gst/mpegaudioparse/Makefile
975 gst/mpegstream/Makefile
976 gst/mpegtypes/Makefile
977 gst/passthrough/Makefile
978 gst/playondemand/Makefile
983 gst/spectrum/Makefile
986 gst/stereomono/Makefile
987 gst/synaesthesia/Makefile
989 gst/videoscale/Makefile
993 gst/wavparse/Makefile
1008 ext/audiofile/Makefile
1009 ext/avifile/Makefile
1010 ext/cdparanoia/Makefile
1012 ext/dvdread/Makefile
1014 ext/festival/Makefile
1016 ext/gnomevfs/Makefile
1025 ext/mpeg2dec/Makefile
1026 ext/openquicktime/Makefile
1027 ext/raw1394/Makefile
1031 ext/sidplay/Makefile
1032 ext/smoothwave/Makefile
1036 gst-libs/gst/Makefile
1037 gst-libs/gst/audio/Makefile
1038 gst-libs/gst/idct/Makefile
1039 gst-libs/gst/resample/Makefile
1040 gst-libs/gst/riff/Makefile
1044 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1046 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"