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 a datestamped release tag during CVS development
15 GST_VERSION_RELEASE=`date +%Y%m%d`
16 dnl we use a normal release tag increased manually when releasing
17 dnl GST_VERSION_RELEASE=1
19 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR.$GST_VERSION_MICRO
24 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
25 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
28 AC_DEFINE_UNQUOTED(GST_VERSION_RELEASE, "$GST_VERSION_RELEASE")
29 AC_SUBST(GST_VERSION_RELEASE)
35 GST_LIBVERSION=$GST_CURRENT:$GST_REVISION:$GST_AGE
37 AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
38 dnl Add parameters for aclocal
39 dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
40 ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
42 AC_SUBST(GST_VERSION_MAJOR)
43 AC_SUBST(GST_VERSION_MINOR)
44 AC_SUBST(GST_VERSION_MICRO)
48 AC_SUBST(GST_REVISION)
50 AC_SUBST(GST_LIBVERSION)
62 dnl We disable static building for development, for time savings
63 dnl *NOTE*: dnl this line before release, so release does static too
70 dnl ###########################################
71 dnl # Super Duper options for plugin building #
72 dnl ###########################################
74 dnl experimental plugins; stuff that hasn't had the dust settle yet
75 dnl read 'builds, but might not work'
76 GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plugins],,
77 [HAVE_EXPERIMENTAL=yes],disabled,
79 AC_MSG_WARN(building experimental plugins)
82 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; uninstalled is selected preferentially -- see pkg-config(1)
124 PKG_CHECK_MODULES(GST, gstreamer >= 0.3.1, HAVE_GST="yes", HAVE_GST="no")
126 if test "x$HAVE_GST" = "xno"; then
127 AC_MSG_ERROR(no GStreamer found)
130 dnl Set up conditionals for (target) architecture:
131 dnl ==============================================
134 case "x${target_cpu}" in
135 xi?86 | k?) HAVE_CPU_I386=yes
136 AC_DEFINE(HAVE_CPU_I386, 1, [Define if the target CPU is an x86])
137 dnl FIXME could use some better detection
139 case "x${target_cpu}" in
141 *) AC_DEFINE(HAVE_RDTSC) ;;
143 xpowerpc) HAVE_CPU_PPC=yes
144 AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the target CPU is a PPC]) ;;
145 xalpha) HAVE_CPU_ALPHA=yes
146 AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the target CPU is an Alpha]) ;;
147 xarm*) HAVE_CPU_ARM=yes
148 AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the target CPU is an ARM]) ;;
149 xsparc*) HAVE_CPU_SPARC=yes
150 AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the target CPU is a PPC]) ;;
151 xmips*) HAVE_CPU_MIPS=yes
152 AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the target CPU is a MIPS]) ;;
153 xhppa*) HAVE_CPU_HPPA=yes
154 AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the target CPU is a HPPA]) ;;
157 dnl Determine endianness
160 dnl Check for MMX-capable compiler
161 AC_MSG_CHECKING(for MMX-capable compiler)
163 #include "include/mmx.h"
166 { movq_r2r(mm0, mm1); return 0; }
180 dnl We should really use AC_SYS_LARGEFILE, but the problem is
181 dnl many of the plugins don't include "config.h". To assure
182 dnl binary compatibility, it is necessary that all gstreamer
183 dnl code be compiled with the same sizeof(off_t), so we use
184 dnl the following crude hack.
187 AC_MSG_CHECKING(for large file support)
189 #define _LARGEFILE_SOURCE
190 #define _FILE_OFFSET_BITS 64
191 #include <sys/types.h>
192 int main () { return !(sizeof(off_t) == 8); }
196 GST_CFLAGS="$GST_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
205 dnl Check for essential libraries first:
206 dnl ====================================
208 if test -n "`echo $GST_CFLAGS | grep USE_GLIB2`"; then
214 dnl needed for some plugins and demos, now's a nice time to check for gtk
215 if test x$USE_GLIB2 = xno; then
217 AC_MSG_ERROR(Cannot find gtk: Is gtk-config in path?))
221 PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK=yes, HAVE_GTK=no)
223 GTK_CFLAGS=$GTK2_CFLAGS
229 dnl Check for X11 extensions
231 if test "-DX_DISPLAY_MISSING" = "$X_CFLAGS"; then
232 AC_MSG_ERROR(can not find X11)
236 AC_SUBST(X_EXTRA_LIBS)
239 dnl ==========================================================================
240 dnl ============================= gst plugins ================================
241 dnl ==========================================================================
244 ac3parse adder audioscale auparse avi chart\
245 cutter deinterlace flx intfloat law level\
246 median mpeg1enc mpeg1sys mpeg1videoparse mpeg2enc mpeg2sub\
247 mpegaudio mpegaudioparse mpegstream mpegtypes\
248 passthrough playondemand rtjpeg silence sine\
249 smooth spectrum speed stereo stereomono\
250 synaesthesia udp videoscale volenv volume vumeter wavparse y4m"
252 AC_SUBST(GST_PLUGINS_ALL)
254 GST_PLUGINS_SELECTED=""
257 AC_HELP_STRING([--with-plugins],[comma-separated list of plugins to compile]),
258 [for i in `echo $withval | tr , ' '`; do
259 if test -n `echo $i | grep $GST_PLUGINS_ALL`; then
260 GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i"
262 echo "plugin $i not recognized, ignoring..."
265 [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL])
267 AC_SUBST(GST_PLUGINS_SELECTED)
269 dnl ==========================================================================
270 dnl ============================= sys plugins ================================
271 dnl ==========================================================================
274 dnl *** OSS audio ***
275 translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true)
276 GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [
277 AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no")
281 translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true)
282 GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, HAVE_QCAM="yes")
284 dnl *** Video 4 Linux ***
285 translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true)
286 GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc, [
287 AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [#include <linux/videodev.h>])
291 translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true)
292 GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [
293 AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no")
297 translit(dnm, m, l) AM_CONDITIONAL(USE_VGA, true)
298 GST_CHECK_FEATURE(VGA, [VGA], vgavideosink, [
299 AC_CHECK_HEADER(asm/vga.h, HAVE_VGA="yes", HAVE_VGA="no")
303 dnl Look for the PIC library first, Debian requires it.
304 dnl Check debian-devel archives for gory details.
306 dnl At the moment XFree86 doesn't distribute shared libXv due
307 dnl to unstable API. On many platforms you CAN NOT link a shared
308 dnl lib to a static non-PIC lib. This is what the xvideo GStreamer
309 dnl plugin wants to do. So Debian distributes a PIC compiled
310 dnl version of the static lib for plugins to link to when it is
311 dnl inappropriate to link the main application to libXv directly.
312 dnl FIXME: add check if this platform can support linking to a
313 dnl non-PIC libXv, if not then don not use Xv.
314 dnl FIXME: perhaps warn user if they have a shared libXv since
315 dnl this is an error until XFree86 starts shipping one
316 translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true)
317 GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], xvideosink, [
318 dnl check for PIC static lib
319 GST_CHECK_LIBHEADER(XVIDEO, Xv_pic, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv_pic -lXext")
320 if test x$HAVE_XVIDEO = xno; then
321 dnl PIC lib not found, check for regular lib
322 GST_CHECK_LIBHEADER(XVIDEO, Xv, XvQueryExtension, $X_LIBS $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS, X11/extensions/Xvlib.h, XVIDEO_LIBS="-lXv -lXext")
324 AC_SUBST(XVIDEO_LIBS)
327 dnl Next, check for the optional libraries:
328 dnl These are all libraries used in building plugins
329 dnl ================================================
330 dnl let's try and sort them alphabetically, shall we ?
334 AC_MSG_NOTICE(Checking for plugin libraries)
337 translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true)
338 GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [
339 GST_CHECK_LIBHEADER(A52DEC, a52, a52_init, -lm, a52dec/a52.h, A52DEC_LIBS="-la52")
343 translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true)
344 GST_CHECK_FEATURE(AALIB, [aasink plugin], aasink, [
345 AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no)
349 translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true)
350 GST_CHECK_FEATURE(ALSA, [alsa plugins], gstalsa, [
351 AM_PATH_ALSA(0.9.0, HAVE_ALSA=yes, HAVE_ALSA=no)
356 dnl if mcopidl can't be found there's no use in compiling it
357 AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no)
358 if test "xHAVE_MCOPIDL" = "xno";
363 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true)
364 GST_CHECK_FEATURE(ARTS, [arts plugins], arts, [
365 AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
367 dnl if mcopidl can't be found there's no use in compiling it
368 AC_PATH_PROG(MCOPIDL, mcopidl, yes, no)
369 if test "xHAVE_MCOPIDL" = "xno";
375 translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true)
376 GST_CHECK_FEATURE(ARTSC, [artsd plugins], artsdsink, [
380 dnl *** audiofile ***
381 dnl this check uses the GST_CHECK_CONFIGPROG macro
382 translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true)
383 GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [
384 translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS)
385 translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS)
386 GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config)
390 dnl this check uses the GST_CHECK_CONFIGPROG macro
391 dnl this check needs more fixing
392 dnl translit(dnm, m, l) AC_SUBST(AVIFILE_LIBS)
393 translit(dnm, m, l) AM_CONDITIONAL(USE_AVIFILE, true)
394 GST_CHECK_FEATURE(AVIFILE, [avifile], windec winenc, [
395 translit(dnm, m, l) AC_SUBST(AVIFILE_CFLAGS)
396 GST_CHECK_CONFIGPROG(AVIFILE, avifile-config)
397 AVIFILE_LIBS="$AVIFILE_LIBS -lstdc++"
398 AC_SUBST(AVIFILE_LIBS)
401 dnl *** CDParanoia ***
402 translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true)
403 GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [
404 GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, cdda_open, -lm, cdda_interface.h, CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia")
405 AC_SUBST(CDPARANOIA_LIBS)
407 dnl FIXME : add second check somehow if that is necessary
408 dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface )
409 dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no)
412 translit(dnm, m, l) AM_CONDITIONAL(USE_DV, true)
413 GST_CHECK_FEATURE(DV, [dv library], dv, [
414 GST_CHECK_LIBHEADER(DV, dv, dv_init, -lm $GST_CFLAGS $GST_LIBS, libdv/dv.h, DV_LIBS="-ldv")
419 translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true)
420 GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdsrc, [
421 GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread")
422 AC_SUBST(DVDREAD_LIBS)
426 translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true)
427 GST_CHECK_FEATURE(ESD, [esound plugins], esdsrc esdsink, [
428 AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no)
431 dnl **** festival ****
432 translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true)
433 GST_CHECK_FEATURE(FESTIVAL, [festival plugins], festivalsrc, [
434 dnl NOTE: just using local net connection now, add this lib check
435 dnl in the future if needed
436 dnl AC_LANG_PUSH(C++)
437 dnl dnl FIXME: took out func to check for
438 dnl dnl This check puts festival_tidy_up in extern "C".
439 dnl dnl But, at least on Debian as of 20020110, it is compiled with name
440 dnl dnl mangling C++ nonsense and symbols can't resolve
441 dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival")
442 dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival")
444 dnl AC_SUBST(FESTIVAL_LIBS)
449 translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true)
450 GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [
451 GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__stream_decoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC")
455 dnl *** Gnome VFS ***
456 dnl this check uses the GST_CHECK_CONFIGPROG macro with gnome-config vfs
457 translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true)
458 GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [
459 translit(dnm, m, l) AC_SUBST(GNOME_VFS_LIBS)
460 translit(dnm, m, l) AC_SUBST(GNOME_VFS_CFLAGS)
461 GST_CHECK_CONFIGPROG(GNOME_VFS, gnome-config vfs)
465 translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true)
466 GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [
467 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm")
468 if test $HAVE_GSM != "yes"; then
469 GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm")
470 if test $HAVE_GSM = "yes"; then
471 AC_DEFINE(GSM_HEADER_IN_SUBDIR)
478 translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true)
479 GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [
480 GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes")
481 ], AC_SUBST(HERMES_LIBS))
484 translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true)
485 GST_CHECK_FEATURE(HTTP, [http plugins], gsthttpsrc, [
486 dnl FIXME: need to check for header
488 GST_HTTPSRC_GET_TYPE=
489 if test x$USE_GLIB2 = xyes; then
490 AC_MSG_WARN(ghttp disabled for glib2.0)
492 AC_CHECK_LIB(ghttp, ghttp_request_new,
494 GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type"
499 AC_SUBST(GST_HTTPSRC_GET_TYPE)
503 translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true)
504 GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [
505 GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, LAME_LIBS="-lmp3lame")
510 dnl FIXME : check if these CPP flags can be dealt with otherwise
511 dnl libdvcheck_save_CPPFLAGS="$CPPFLAGS"
512 dnl CPPFLAGS="$CPPFLAGS $GST_CFLAGS"
513 dnl AC_CHECK_HEADER(libdv/dv.h, :, HAVE_LIBDV=no)
514 dnl CPPFLAGS="$libdvcheck_save_CPPFLAGS"
517 dnl FIXME: we could use header checks here as well IMO
518 translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true)
519 GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [
520 AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no")
525 dnl *** mjpegtools ***
526 translit(dnm, m, l) AM_CONDITIONAL(USE_MJPEGTOOLS, true)
527 GST_CHECK_FEATURE(MJPEGTOOLS, [mjpegtools], jpegmmxenc jpegmmxdec, [
528 PKG_CHECK_MODULES(MJPEGTOOLS, mjpegtools, HAVE_MJPEGTOOLS="yes", HAVE_MJPEGTOOLS="no")
529 AC_SUBST(MJPEGTOOLS_LIBS)
530 AC_SUBST(MJPEGTOOLS_CFLAGS)
534 dnl FIXME: we could use header checks here as well IMO
535 translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true)
536 GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [
537 AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad")
542 translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true)
543 GST_CHECK_FEATURE(MIKMOD, [mikmod plugin], mikmod, [
544 AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no)
545 AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS")
546 AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS")
550 translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true)
551 GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [
552 GST_CHECK_LIBHEADER(MPEG2DEC, mpeg2, mpeg2_init,, mpeg2dec/mpeg2.h, MPEG2DEC_LIBS="-lmpeg2 -lmpeg2dec")
553 AC_SUBST(MPEG2DEC_LIBS)
556 dnl *** openquicktime ***
557 translit(dnm, m, l) AM_CONDITIONAL(USE_OPENQUICKTIME, true)
558 GST_CHECK_FEATURE(OPENQUICKTIME, [Open Quicktime], quicktime_parser quicktime_decoder quicktime_demux,[
559 GST_CHECK_LIBHEADER(OPENQUICKTIME, openquicktime, quicktime_init,, openquicktime/openquicktime.h, OPENQUICKTIME_LIBS="-lopenquicktime")
560 AC_SUBST(OPENQUICKTIME_LIBS)
564 translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true)
565 GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [
566 GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_get_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-raw1394")
567 AC_SUBST(RAW1394_LIBS)
571 dnl FIXME : adapt and make it work
572 translit(dnm, m, l) AM_CONDITIONAL(USE_RTP, true)
573 GST_CHECK_FEATURE(RTP, [RTP library], rtpenc rtpdec,[
574 AC_CHECK_LIB(rtp, rtp_packet_new_take_data, HAVE_RTP=yes, HAVE_RTP=no, $GST_CFLAGS $GST_LIBS)
580 dnl FIXME header check needs to use GLIB_CFLAGS in order to succeed for rtp
581 dnl can use GST_* which should have GLIB_* info
582 dnl AC_CHECK_HEADERS(rtp/rtp.h, HAVE_LIBRTP=yes, HAVE_LIBRTP=no)
583 dnl AC_CHECK_HEADERS(rtp/rtp-packet.h, :, HAVE_LIBRTP=no)
584 dnl AC_CHECK_HEADERS(rtp/rtcp-packet.h, :, HAVE_LIBRTP=no)
585 dnl AC_CHECK_HEADERS(rtp/rtp-audio.h, :, HAVE_LIBRTP=no)
588 translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true)
589 GST_CHECK_FEATURE(SDL, [SDL plugin], sdlvideosink, [
590 AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no)
594 translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true)
595 GST_CHECK_FEATURE(SHOUT, [shout plugin], icecastsend, [
596 GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout")
601 translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true)
602 GST_CHECK_FEATURE(SIDPLAY, [sidplay plugin], sidplay, [
606 dnl *** smoothwave ***
607 translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true)
608 GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plugin], smoothwave, [
609 if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi;
613 dnl AM_PATH_VORBIS only takes two options
614 translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true)
615 GST_CHECK_FEATURE(VORBIS, [vorbis plugin], vorbisenc vorbisdec, [
616 AM_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no)
620 translit(dnm, m, l) AM_CONDITIONAL(USE_XMMS, true)
621 GST_CHECK_FEATURE(XMMS, [xmms plugin], xmms, [
622 AM_PATH_XMMS(0.1.0, HAVE_XMMS=yes, HAVE_XMMS=no)
625 dnl Check for atomic.h
626 dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter
627 dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H)
628 AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no)
629 dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't)
630 if test x$HAVE_ATOMIC_H = xyes; then
632 #include "asm/atomic.h"
633 main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;}
636 if test x$HAVE_ATOMIC_H = xyes; then
637 AC_MSG_WARN(Atomic reference counting is out of date: doing without.)
643 AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.)
647 dnl ######################################################################
648 dnl # Check command line parameters, and set shell variables accordingly #
649 dnl ######################################################################
651 AC_ARG_ENABLE(libmmx,
652 [ --enable-libmmx use libmmx, if available],
653 [case "${enableval}" in
654 yes) USE_LIBMMX=$HAVE_LIBMMX ;;
656 *) AC_MSG_ERROR(bad value ${enableval} for --enable-libmmx) ;;
658 [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value
660 AC_ARG_ENABLE(atomic,
661 [ --enable-atomic use atomic reference counting header],
662 [case "${enableval}" in
663 yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
664 noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;;
665 no) USE_ATOMIC_H=no;;
666 *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;;
668 [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value
670 AC_ARG_ENABLE(plugin-builddir,
671 [ --enable-plugin-builddir allow tests/demos to use non-installed plugins ],
672 [case "${enableval}" in
673 yes) PLUGINS_USE_BUILDDIR=yes ;;
674 no) PLUGINS_USE_BUILDDIR=no ;;
675 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;;
677 [PLUGINS_USE_BUILDDIR=no]) dnl Default value
680 [ --enable-debug compile with -g debugging info],
681 [case "${enableval}" in
682 yes) USE_DEBUG=yes ;;
684 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
686 [USE_DEBUG=yes]) dnl Default value
689 [ --enable-DEBUG compiles in a large number of debugging messages],
690 [case "${enableval}" in
691 yes) ENABLE_DEBUG=yes ;;
692 no) ENABLE_DEBUG=no ;;
693 *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;;
695 [ENABLE_DEBUG=yes]) dnl Default value
696 if test x$ENABLE_DEBUG = xyes; then
697 AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in])
701 [ --disable-INFO disables compilation of informational messages],
702 [case "${enableval}" in
703 yes) ENABLE_INFO=yes ;;
704 no) ENABLE_INFO=no ;;
705 *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;;
707 [ENABLE_INFO=yes]) dnl Default value
708 if test x$ENABLE_INFO = xyes; then
709 AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in])
712 AC_ARG_ENABLE(debug-color,
713 [ --disable-debug-color disables color output of DEBUG and INFO output],
714 [case "${enableval}" in
715 yes) ENABLE_DEBUG_COLOR=yes ;;
716 no) ENABLE_DEBUG_COLOR=no ;;
717 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;;
719 [ENABLE_DEBUG_COLOR=yes]) dnl Default value
720 if test "x$ENABLE_DEBUG_COLOR" = xyes; then
721 AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized])
724 AC_ARG_ENABLE(profiling,
725 [ --enable-profiling adds -pg to compiler commandline, for profiling],
726 [case "${enableval}" in
727 yes) USE_PROFILING=yes ;;
728 no) UES_PROFILING=no ;;
729 *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;;
731 [USE_PROFILING=no]) dnl Default value
733 dnl default to building registry in the source tree if we are enabling plugin build dir
734 if test "x$PLUGINS_USE_BUILDDIR"="xyes"; then
737 GST_CONFIG_DIR=/etc/gstreamer
739 AC_ARG_WITH(configdir,
740 [ --with-configdir specify path to use for configdir],
741 [case "${withval}" in
742 yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
743 no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
744 *) GST_CONFIG_DIR="${withval}" ;;
746 [:]) dnl Default value
748 AC_ARG_ENABLE(docs-build,
749 [ --enable-docs-build enable building of documentation],
750 [case "${enableval}" in
751 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; ;;
753 *) AC_MSG_ERROR(bad value ${enableval} for --enable-docs-build) ;;
755 [BUILD_DOCS=no]) dnl Default value
757 AC_ARG_ENABLE(plugin-docs,
758 [ --enable-plugin-docs enable the building of plugin documentation
759 (this is currently broken, so off by default)],
760 [case "${enableval}" in
761 yes) BUILD_PLUGIN_DOCS=yes ;;
762 no) BUILD_PLUGIN_DOCS=no ;;
763 *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-docs) ;;
765 [BUILD_PLUGIN_DOCS=no]) dnl Default value
768 [ --disable-tests disable building test apps],
769 [case "${enableval}" in
770 yes) BUILD_TESTS=yes ;;
771 no) BUILD_TESTS=no ;;
772 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;;
774 [BUILD_TESTS=yes]) dnl Default value
776 AC_ARG_ENABLE(examples,
777 [ --disable-examples disable building examples],
778 [case "${enableval}" in
779 yes) BUILD_EXAMPLES=yes ;;
780 no) BUILD_EXAMPLES=no ;;
781 *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
783 [BUILD_EXAMPLES=yes]) dnl Default value
785 dnl Next, check for the optional components:
786 dnl ========================================
789 AC_DEFUN(GST_SUBSYSTEM_DISABLE,
791 dnl Add a subsystem --disable flag and all the necessary symbols and substitions
793 AC_ARG_ENABLE(translit([$1], A-Z, a-z),
794 [ ]builtin(format, --disable-%-17s disable %s, translit([$1], A-Z, a-z), $2),
795 [ case "${enableval}" in
796 yes) GST_DISABLE_[$1]=no ;;
797 no) GST_DISABLE_[$1]=yes ;;
798 *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;;
800 [GST_DISABLE_[$1]=no]) dnl Default value
801 if test x$GST_DISABLE_[$1] = xyes; then
802 AC_DEFINE(GST_DISABLE_[$1], 1, [Disable $2])
803 GST_DISABLE_[$1]_DEFINE=-DGST_DISABLE_[$1]
805 AM_CONDITIONAL(GST_DISABLE_[$1], test x$GST_DISABLE_[$1] = xyes)
806 AC_SUBST(GST_DISABLE_[$1]_DEFINE)
807 GST_SUBSYSTEM_DISABLE_DEFINES="$GST_SUBSYTEM_DISABLE_DEFINES $GST_DISABLE_[$1]_DEFINE"
810 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
811 GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
812 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
813 GST_SUBSYSTEM_DISABLE(TYPEFIND,[typefind plugin],)
814 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_AUTOPLUG, true)
815 GST_SUBSYSTEM_DISABLE(AUTOPLUG,[autoplugger subsystem])
816 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, true)
817 GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
818 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
819 GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
820 translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
821 GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
823 GST_CFLAGS="$GST_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
826 dnl ################################################
827 dnl # Set defines according to variables set above #
828 dnl ################################################
831 if test "x$USE_LIBMMX" = xyes; then
832 AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available])
835 if test "x$USE_ATOMIC_H" = xyes; then
836 AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available])
839 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
840 AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this])
843 dnl if test "x$USE_DEBUG" = xyes; then
844 dnl CFLAGS="$CFLAGS -g"
847 if test "x$USE_PROFILING" = xyes; then
848 dnl CFLAGS="$CFLAGS -pg -fprofile-arcs"
849 FOMIT_FRAME_POINTER=""
851 FOMIT_FRAME_POINTER="-fomit-frame-pointer"
855 dnl AC_SUBST(FOMIT_FRAME_POINTER)
858 if test "x$HAVE_LIBMIKMOD" = xyes; then
859 AC_DEFINE(HAVE_LIBMIKMOD)
862 if test "x$HAVE_LIBGSM" = xyes; then
863 AC_DEFINE(HAVE_LIBGSM)
866 dnl #############################
867 dnl # Set automake conditionals #
868 dnl #############################
870 dnl These should be "USE_*" instead of "HAVE_*", but some packages expect
871 dnl HAVE_ and it is likely to be easier to stick with the old name
872 AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes")
873 AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes")
874 AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes")
875 AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes")
876 AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes")
877 AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes")
879 AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes")
881 AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes")
882 AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes")
884 AM_CONDITIONAL(HAVE_LIBMIKMOD, test "x$HAVE_LIBMIKMOD" = "xyes")
885 AM_CONDITIONAL(HAVE_LIBSDL, test "x$HAVE_LIBSDL" = "xyes")
886 AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes")
887 AM_CONDITIONAL(HAVE_LIBGLADE_GNOME, test "x$HAVE_LIBGLADE_GNOME" = "xyes")
888 AM_CONDITIONAL(HAVE_GNOME, test "x$HAVE_GNOME" = "xyes")
889 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
890 AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC)
891 AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes")
892 AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes")
893 AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes")
894 AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes")
895 AM_CONDITIONAL(HAVE_PDFXMLTEX, $HAVE_PDFXMLTEX)
896 AM_CONDITIONAL(HAVE_PDFTOPS, $HAVE_PDFTOPS)
897 AM_CONDITIONAL(HAVE_XSLTPROC, $HAVE_XSLTPROC)
898 AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG)
899 AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF)
900 AM_CONDITIONAL(HAVE_LIBRTP, test "x$HAVE_LIBRTP" = "xyes")
901 AM_CONDITIONAL(HAVE_ARTS, test "x$HAVE_ARTS" = "xyes")
902 AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes")
903 AM_CONDITIONAL(HAVE_LIBDV, test "x$HAVE_LIBDV" = "xyes")
904 AM_CONDITIONAL(HAVE_GNOME_VFS, test "x$HAVE_GNOME_VFS" = "xyes")
905 AM_CONDITIONAL(HAVE_LIBGSM, test "x$HAVE_LIBGSM" = "xyes")
906 AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes")
909 dnl ############################
910 dnl # Set up some more defines #
911 dnl ############################
913 dnl Set location of configuration dir.
914 AC_DEFINE_UNQUOTED(GST_CONFIG_DIR,"$GST_CONFIG_DIR")
915 AC_SUBST(GST_CONFIG_DIR)
917 dnl Set location of plugin directory
918 if test "x${prefix}" = "xNONE"; then
919 PLUGINS_DIR=${ac_default_prefix}/lib/gst
921 PLUGINS_DIR=${prefix}/lib/gst
923 AC_DEFINE_UNQUOTED(PLUGINS_DIR,"$PLUGINS_DIR")
924 AC_SUBST(PLUGINS_DIR)
926 dnl Set location of uninstalled plugin directory
927 PLUGINS_BUILDDIR=`pwd`
928 AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR,"$PLUGINS_BUILDDIR")
929 AC_SUBST(PLUGINS_BUILDDIR)
931 GST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir)/gst-libs"
935 dnl #############################
936 dnl # Configure the subpackages #
937 dnl #############################
939 dnl AC_CONFIG_SUBDIRS(gist)
940 dnl AC_CONFIG_SUBDIRS(plugins/mp3decode/xing/libxing)
942 dnl ##################################################
943 dnl # Prepare informative messages to display at end #
944 dnl ##################################################
948 if test "x$PLUGINS_USE_BUILDDIR" = xyes; then
949 infomessages="$infomessages
950 *** Warning: You have configured using the --enable-plugin-builddir option.
952 This option is for development purposes only: binaries built with
953 it should be used with code in the build tree only. To build an
954 installable version, use ./configure without the --enable-plugin-builddir
955 option. Note that the autogen.sh script supplies the plugin builddir
956 option automatically - it cannot be used to configure installable builds.
961 dnl #########################
962 dnl # Make the output files #
963 dnl #########################
968 gstreamer-libs-uninstalled.pc
971 gst/ac3parse/Makefile
973 gst/audioscale/Makefile
978 gst/deinterlace/Makefile
980 gst/intfloat/Makefile
984 gst/mpeg1enc/Makefile
985 gst/mpeg1sys/Makefile
986 gst/mpeg1videoparse/Makefile
987 gst/mpeg2enc/Makefile
988 gst/mpeg2sub/Makefile
989 gst/mpegaudio/Makefile
990 gst/mpegaudioparse/Makefile
991 gst/mpegstream/Makefile
992 gst/mpegtypes/Makefile
993 gst/passthrough/Makefile
994 gst/playondemand/Makefile
999 gst/spectrum/Makefile
1002 gst/stereomono/Makefile
1003 gst/synaesthesia/Makefile
1005 gst/videoscale/Makefile
1008 gst/vumeter/Makefile
1009 gst/wavparse/Makefile
1024 ext/audiofile/Makefile
1025 ext/avifile/Makefile
1026 ext/cdparanoia/Makefile
1028 ext/dvdread/Makefile
1030 ext/festival/Makefile
1032 ext/gnomevfs/Makefile
1037 ext/jpeg-mmx/Makefile
1042 ext/mpeg2dec/Makefile
1043 ext/openquicktime/Makefile
1044 ext/raw1394/Makefile
1048 ext/sidplay/Makefile
1049 ext/smoothwave/Makefile
1053 gst-libs/gst/Makefile
1054 gst-libs/gst/audio/Makefile
1055 gst-libs/gst/idct/Makefile
1056 gst-libs/gst/resample/Makefile
1057 gst-libs/gst/riff/Makefile
1058 examples/capsfilter/Makefile
1062 echo -e "configure: *** Plugins that will be built : $GST_PLUGINS_YES"
1064 echo -e "configure: *** Plugins that will not be built : $GST_PLUGINS_NO"