From a1c62f48838e695f6b0deb4326373e407dd84827 Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Fri, 13 Feb 2004 18:22:50 +0000 Subject: [PATCH] Remove a newline to trigger build Original commit message from CVS: Remove a newline to trigger build --- configure.ac | 1962 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 1497 insertions(+), 465 deletions(-) diff --git a/configure.ac b/configure.ac index 2f88e7d591..66cae65de8 100644 --- a/configure.ac +++ b/configure.ac @@ -1,36 +1,48 @@ +dnl autoconf configuration file for gst-plugins AC_INIT AC_CANONICAL_TARGET([]) -dnl when going to/from release please set the nano (fourth number) right ! -dnl releases only do Wall, cvs and prerelease does Werror too -AS_VERSION(gstreamer, GST_VERSION, 0, 7, 4, 1, GST_CVS="no", GST_CVS="yes") +dnl We disable static building for development, for time savings +dnl this goes before AS_LIBTOOL to appease autoconf +dnl *NOTE*: dnl this line before release, so release does static too +AM_DISABLE_STATIC dnl AM_MAINTAINER_MODE only provides the option to configure to enable it AM_MAINTAINER_MODE + +dnl when going to/from release please set the nano (fourth number) right ! +dnl releases only do Wall, cvs and prerelease does Werror too +AS_VERSION(gst-plugins, GST_PLUGINS_VERSION, 0, 7, 4, 1, GST_CVS="no", GST_CVS="yes") + +dnl add a suffix to apps +if test x$program_suffix = xNONE ; then + program_suffix=-$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR +fi + AM_INIT_AUTOMAKE($PACKAGE,$VERSION) dnl our libraries and install dirs use major.minor as a version -GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR +GST_MAJORMINOR=$GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR AC_SUBST(GST_MAJORMINOR) -AC_PROG_CC -dnl For interactive UNIX (a Sun thing) -AC_ISC_POSIX - dnl CURRENT, REVISION, AGE dnl - library source changed -> increment REVISION dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0 dnl - interfaces added -> increment AGE dnl - interfaces removed -> AGE = 0 -AS_LIBTOOL(GST, 6, 0, 0) +AS_LIBTOOL(GST_PLUGINS, 2, 0, 0) AM_PROG_LIBTOOL -AC_CONFIG_SRCDIR([gst/gst.c]) +dnl FIXME take something else ? +AC_CONFIG_SRCDIR([gst/law/alaw.c]) AM_CONFIG_HEADER(config.h) dnl Add parameters for aclocal -AC_SUBST(ACLOCAL_AMFLAGS, "-I common/m4") +dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL) +ACLOCAL_FLAGS="-I m4 -I common/m4" +AC_SUBST(ACLOCAL_AMFLAGS, $ACLOCAL_FLAGS) +AC_PROG_CC AM_PROG_CC_STDC AM_PROG_AS AS="${CC}" @@ -38,31 +50,43 @@ AS="${CC}" dnl the gettext stuff needed AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT([external]) - -GETTEXT_PACKAGE=gstreamer-$GST_VERSION_MAJOR.$GST_VERSION_MINOR + +GETTEXT_PACKAGE=gst-plugins-$GST_MAJORMINOR AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE", [gettext package name]) - + dnl define LOCALEDIR in config.h AS_AC_EXPAND(LOCALEDIR, $datadir/locale) AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR", [gettext locale dir]) - dnl decide on error flags -AS_COMPILER_FLAG(-Wall,GST_ERROR="$GST_ERROR -Wall",GST_ERROR="$GST_ERROR") -if test "x$GST_CVS" = "xyes"; then - AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR") - GST_ERROR="$GST_ERROR" +AS_COMPILER_FLAG(-Wall, GST_WALL="yes", GST_WALL="no") + +if test "x$GST_WALL" = "xyes"; then + GST_ERROR="$GST_ERROR -Wall" + + if test "x$GST_CVS" = "xyes"; then + AS_COMPILER_FLAG(-Werror,GST_ERROR="$GST_ERROR -Werror",GST_ERROR="$GST_ERROR") + GST_ERROR="$GST_ERROR -DG_DISABLE_DEPRECATED" + fi fi -dnl We disable static building for development, for time savings -dnl *NOTE*: dnl this line before release, so release does static too -dnl AM_DISABLE_STATIC +dnl determine c++ compiler +AC_PROG_CXX +dnl determine if c++ is available on this system +AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) +dnl determine c++ preprocessor +AC_PROG_CXXCPP +AC_ISC_POSIX AC_HEADER_STDC([]) AC_C_INLINE +AX_CREATE_STDINT_H + +dnl Check for a way to display the function name in debug output +GST_CHECK_FUNCTION() dnl define correct errorlevel for debugging messages. We want to have GST_ERROR dnl messages printed when running cvs builds @@ -70,28 +94,45 @@ if test "x$GST_CVS" = "xyes"; then AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use]) fi -dnl subsystems - can influence other decisions so needs to be high up -dnl we need to do AM_CONDITIONAL them here for automake 1.6.x compatibility -GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem]) -AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save]) -AM_CONDITIONAL(GST_DISABLE_LOADSAVE, test "x$GST_DISABLE_LOADSAVE" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser]) -AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem]) -AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing]) -AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry]) -AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(ENUMTYPES,[enum types]) -AM_CONDITIONAL(GST_DISABLE_ENUMTYPES, test "x$GST_DISABLE_ENUMTYPES" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(INDEX,[index]) -AM_CONDITIONAL(GST_DISABLE_INDEX, test "x$GST_DISABLE_INDEX" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(PLUGIN,[plugin]) -AM_CONDITIONAL(GST_DISABLE_PLUGIN, test "x$GST_DISABLE_PLUGIN" = "xyes") -GST_CHECK_SUBSYSTEM_DISABLE(URI,[uri handlers]) -AM_CONDITIONAL(GST_DISABLE_URI, test "x$GST_DISABLE_URI" = "xyes") +dnl ############################################ +dnl # Super Duper options for plug-in building # +dnl ############################################ + +dnl ext plug-ins; plug-ins that have external dependencies +GST_CHECK_FEATURE(EXTERNAL, [enable building of plug-ins with external deps],, +[HAVE_EXTERNAL=yes],enabled, +[ + AC_MSG_WARN(building external plug-ins) + BUILD_EXTERNAL="yes" +],[ + AC_MSG_WARN(all plug-ins with external dependencies will not be built) + BUILD_EXTERNAL="no" +]) +# make BUILD_EXTERNAL available to Makefile.am +AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes") + +dnl experimental plug-ins; stuff that hasn't had the dust settle yet +dnl read 'builds, but might not work'UTO +GST_CHECK_FEATURE(EXPERIMENTAL, [enable building of experimental plug-ins],, +[HAVE_EXPERIMENTAL=yes],disabled, +[ + AC_MSG_WARN(building experimental plug-ins) + USE_TARKIN="yes" + USE_SHOUT2="yes" +],[ + AC_MSG_NOTICE(not building experimental plug-ins) + USE_TARKIN="no" + USE_SHOUT2="no" +]) + +dnl broken plug-ins; stuff that doesn't seem to build at the moment +GST_CHECK_FEATURE(BROKEN, [enable building of broken plug-ins],, +HAVE_BROKEN=yes,disabled, +[ + AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches :)]) +],[ + AC_MSG_NOTICE([not building broken plug-ins]) +]) dnl ############################## dnl # Do automated configuration # @@ -105,191 +146,1283 @@ AS_AUTOTOOLS_ALTERNATE() dnl modify pkg-config path AC_ARG_WITH(pkg-config-path, - AC_HELP_STRING([--with-pkg-config-path], - [colon-separated list of pkg-config(1) dirs]), + AC_HELP_STRING([--with-pkg-config-path],[colon-separated list of pkg-config(1) dirs]), [export PKG_CONFIG_PATH=${withval}]) -GST_DOC() +dnl check architecture GST_ARCH() -dnl Perl is used in building documentation -AC_PATH_PROG(PERL_PATH, perl, no) -if test x$PERL_PATH = xno; then - AC_MSG_ERROR(Could not find perl) +dnl Check for nasm +AC_PATH_PROG(NASM_PATH, nasm, no) +AC_SUBST(NASM_PATH) +if test x$NASM_PATH = xno; then + AC_MSG_WARN(Couldn't find nasm) + HAVE_NASM="no" +else + AC_DEFINE(HAVE_NASM, 1, [Define if NASM, the netwide assembler, is available]) + HAVE_NASM="yes" fi -dnl we require bison for building of some of the marshal files -dnl FIXME: check if AC_PROG_YACC is suitable here -AC_PATH_PROG(BISON_PATH, bison, no) -if test x$BISON_PATH = xno; then - AC_MSG_ERROR(Could not find bison) -fi - -dnl we require flex for building the parser -dnl FIXME: check if AC_PROG_LEX is suitable here -AC_PATH_PROG(FLEX_PATH, flex, no) -if test x$FLEX_PATH = xno; then - AC_MSG_ERROR(Could not find flex) -fi - -dnl -dnl We should really use AC_SYS_LARGEFILE, but the problem is -dnl many of the plugins don't include "config.h". To assure -dnl binary compatibility, it is necessary that all gstreamer -dnl code be compiled with the same sizeof(off_t), so we use -dnl the following crude hack. -dnl - -dnl -dnl GST_CFLAGS are split up as GST_EXT_CFLAGS and GST_INT_CFLAGS -dnl same for libs -dnl this is so we can make GST_CFLAGS for external modules available -dnl without mixing in internal (uninstalled) CFLAGS -dnl - -dnl disable deprecated functions internally -GST_INT_CFLAGS="-DGST_DISABLE_DEPRECATED" - -AC_MSG_CHECKING(for large file support) -AC_TRY_RUN([ -#define _LARGEFILE_SOURCE -#define _FILE_OFFSET_BITS 64 -#include -int main () { return !(sizeof(off_t) == 8); } -], -[ -AC_MSG_RESULT(yes) -GST_EXT_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" -], -[ -AC_MSG_RESULT(no) -], -[ -AC_MSG_RESULT(no) +dnl check for gconftool-2 +translit(dnm, m, l) AM_CONDITIONAL(USE_GCONFTOOL, true) +GST_CHECK_FEATURE(GCONFTOOL, [GConf schemas], , [ + AC_PATH_PROG(GCONFTOOL, gconftool-2, no) + if test x$GCONFTOOL = xno; then + AC_MSG_WARN(Not installing GConf schemas) + HAVE_GCONFTOOL="no" + else + AM_GCONF_SOURCE_2 + HAVE_GCONFTOOL="yes" + fi + AC_SUBST(HAVE_GCONFTOOL) ]) -dnl check for makecontext and define HAVE_MAKECONTEXT if we have it -AC_CHECK_MCSC() -if test "$ac_cv_check_mcsc" = "yes"; then - AC_DEFINE_UNQUOTED(HAVE_MAKECONTEXT, $HAVE_MAKECONTEXT, - [defined if we have makecontext ()]) +dnl check for GConf libraries +translit(dnm, m, l) AM_CONDITIONAL(USE_GCONF, true) +GST_CHECK_FEATURE(GCONF, [GConf libraries], , [ + PKG_CHECK_MODULES(GCONF, gconf-2.0, HAVE_GCONF="yes", HAVE_GCONF="no") + AC_SUBST(GCONF_CFLAGS) + AC_SUBST(GCONF_LIBS) +]) + +dnl check for gstreamer; uninstalled is selected preferentially -- see pkg-config(1) +PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO, + HAVE_GST="yes", HAVE_GST="no") + +if test "x$HAVE_GST" = "xno"; then + AC_MSG_ERROR(no GStreamer found) fi -dnl Check for a way to display the function name in debug output -GST_CHECK_FUNCTION() +GST_TOOLS_DIR=`pkg-config --variable=toolsdir gstreamer-$GST_MAJORMINOR` +if test -z $GST_TOOLS_DIR; then + AC_MSG_ERROR([no tools dir defined in GStreamer pkg-config file; core upgrade needed.]) +fi +AC_SUBST(GST_TOOLS_DIR) -dnl check if we should use -Wa,-mregnames on PowerPC, so we can use -dnl symbolic register names in inline asm -if test x$HAVE_CPU_PPC = xyes ; then - AS_COMPILER_FLAG(["-Wa,-mregnames"], - [GST_INT_CFLAGS="$GST_INT_CFLAGS -Wa,-mregnames"], - true) +dnl check for gstreamer-control; uninstalled is selected preferentially +PKG_CHECK_MODULES(GST_CONTROL, gstreamer-control-$GST_MAJORMINOR >= $GST_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR.$GST_PLUGINS_VERSION_MICRO, + HAVE_GST_CONTROL="yes", HAVE_GST_CONTROL="no") + +if test "x$HAVE_GST_CONTROL" = "xno"; then + AC_MSG_ERROR(no GStreamer Control Libs found) fi -AC_ARG_ENABLE(gcov, - AC_HELP_STRING([--enable-gcov],[compile with coverage profiling instrumentation (gcc only)]), - enable_gcov=$enableval,enable_gcov=no) -if test x$enable_gcov = xyes ; then - AS_COMPILER_FLAG(["-fprofile-arcs"], - [GST_INT_CFLAGS="$GST_INT_CFLAGS -fprofile-arcs"], - true) - AS_COMPILER_FLAG(["-ftest-coverage"], - [GST_INT_CFLAGS="$GST_INT_CFLAGS -ftest-coverage"], - true) - GST_INT_CFLAGS=`echo "$GST_INT_CFLAGS" | sed -e 's/-O[0-9]*//g'` +AC_SUBST(GST_CONTROL_LIBS) - AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, [Defined if gcov is enabled to force a rebuild due to config.h changing]) -fi -AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes) +dnl Determine endianness +AC_C_BIGENDIAN +dnl Check for fast float to int casting as defined in C99 +AC_C99_FUNC_LRINT() +AC_C99_FUNC_LRINTF() dnl Check for essential libraries first: dnl ==================================== -dnl === GLib 2 === -dnl Minimum required version of GLib2 -dnl required for compilation without warnings -GLIB2_REQ="2.2" -AC_SUBST(GLIB2_REQ) +GST_GLIB2_CHECK() -dnl Check for glib2 -PKG_CHECK_MODULES(GLIB2, glib-2.0 >= $GLIB2_REQ gobject-2.0 gthread-2.0 gmodule-2.0,HAVE_GLIB2=yes,HAVE_GLIB2=no) -GLIB_LIBS=$GLIB2_LIBS -GLIB_CFLAGS=$GLIB2_CFLAGS -AC_SUBST(GLIB_LIBS) -AC_SUBST(GLIB_CFLAGS) - -if test "x$HAVE_GLIB2" = "xno"; then - AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.]) -fi - -GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0" -AC_SUBST(GST_PKG_DEPS) - -dnl === libxml 2 === -if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes" -then - AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2]) +dnl Check for additional libraries that we might use: +dnl ================================================= +dnl GTK +HAVE_GTK=NO +PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.2.0, HAVE_GTK_22=yes, HAVE_GTK_22=no) +if test "x$HAVE_GTK_22" = "xyes"; then + HAVE_GTK=yes + GTK_VERSION=`$PKG_CONFIG --variable=gtk_binary_version gtk+-2.0` + AC_SUBST(GTK_VERSION) + GTK_PREFIX=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` + GDK_PIXBUF_LIBDIR=`$PKG_CONFIG --variable=libdir gdk-pixbuf-2.0` + GDK_PIXBUF_PREFIXDIR=`$PKG_CONFIG --variable=prefix gdk-pixbuf-2.0` + AC_SUBST(GTK_BASE_DIR) else - dnl check for libxml2 with minimum req version - GST_LIBXML2_CHECK(2.4.9) + PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no) +fi +if test "x$HAVE_GTK_20" = "xyes"; then + HAVE_GTK=yes +fi +GTK_CFLAGS=$GTK2_CFLAGS +GTK_LIBS=$GTK2_LIBS +AC_SUBST(GTK_LIBS) +AC_SUBST(GTK_CFLAGS) +AC_SUBST(HAVE_GTK) + +# gdk_pixbuf gstreamer loader is considered experimental, so disable +# by default +if test "x$HAVE_GTK_22" = "xyes"; then + HAVE_GDK_LOADERS=yes +else + HAVE_GDK_LOADERS=no fi -dnl popt checks -dnl FIXME: This test passes on popt 1.6.2, maybe earlier, but popt 1.6.2 -dnl causes segfaults on gst_init. Write a working test if possible. -GST_CHECK_LIBHEADER(POPT, popt, poptStrippedArgv,, popt.h, POPT_LIBS="-lpopt", - AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can - download the latest version from - ftp://ftp.rpm.org/pub/rpm/dist/]) -) -AC_MSG_NOTICE(Checking for POPT_TABLEEND) -AC_COMPILE_IFELSE([ -#include -int main () -{ -#ifndef POPT_TABLEEND -#error -#else - return 0; -#endif -} -],, [ - dnl it failed - AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can - download the latest version from - ftp://ftp.rpm.org/pub/rpm/dist/]) +AC_ARG_ENABLE(gdk-pixbuf-loader, + AC_HELP_STRING([--enable-gdk-pixbuf-loader], + [whether to enable building of gdk_pixbuf loader]), + :, HAVE_GDK_LOADERS="no") + +# allow customization of pixbuf loader install location +# when nothing specified, adhere to prefix settings +# when called without any option with this argument, autodetect +# when called with a path, set to the given path + +if test "x$HAVE_GDK_LOADERS" == "xyes"; then + AC_PATH_PROG(QUERYLOADERS, gdk-pixbuf-query-loaders, no) + AC_ARG_WITH(gdk-pixbuf-loader-dir, + AC_HELP_STRING([--with-gdk-pixbuf-loader-dir], + [directory to install the gdk_pixbuf loader (none for pkg-config default)]), + [ + if test "x${withval}" != xyes ; then + GDK_PIXBUF_LOADER_DIR="${withval}" + else + GDK_PIXBUF_LOADER_DIR="$GDK_PIXBUF_LIBDIR/gtk-2.0/\$GTK_VERSION/loaders" + fi + ], + # nothing specified + GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders + ) + AS_AC_EXPAND(GDK_PIXBUF_LOADER_DIR, $GDK_PIXBUF_LOADER_DIR) + AC_SUBST(GDK_PIXBUF_LOADER_DIR) + AC_MSG_NOTICE([Putting GTK+-2 pixbuf loaders in $GDK_PIXBUF_LOADER_DIR]) + + # allow customization of pixbuf loader configuration file + # when nothing specified, adhere to prefix settings + # when called without any option with this argument, autodetect + # when called with a path, set to the given path + AC_ARG_WITH(gdk-pixbuf-conf-dir, + AC_HELP_STRING([--with-gdk-pixbuf-conf-dir], + [directory to install the gdk_pixbuf config (none for pkg-config default)]), + [ + if test "x${withval}" != xyes ; then + GDK_PIXBUF_CONF_DIR="${withval}" + else + GDK_PIXBUF_CONF_DIR="$GDK_PIXBUF_PREFIXDIR/etc/gtk-2.0/" + fi + ], + # nothing specified + GDK_PIXBUF_LOADER_DIR=${libdir}/gtk-2.0/\$GTK_VERSION/loaders + GDK_PIXBUF_CONF_DIR=${sysconfdir}/gtk-2.0 + ) + AS_AC_EXPAND(GDK_PIXBUF_CONF_DIR, $GDK_PIXBUF_CONF_DIR) + AC_SUBST(GDK_PIXBUF_CONF_DIR) + AC_MSG_NOTICE([Putting GTK+-2 pixbuf loader config in $GDK_PIXBUF_CONF_DIR]) +fi +AM_CONDITIONAL(HAVE_GDK_LOADERS, test "x$HAVE_GDK_LOADERS" = "xyes") + +PKG_CHECK_MODULES(LIBOIL, liboil-0.1, HAVE_LIBOIL=yes, HAVE_LIBOIL=no) +AC_SUBST(LIBOIL_CFLAGS) +AC_SUBST(LIBOIL_LIBS) +if test "x${HAVE_LIBOIL}" = xyes ; then + #AC_DEFINE_UNQUOTED(HAVE_LIBOIL, 1, [Define if liboil is being used]) + true +fi + +dnl =========================================================================== +dnl ============================= gst plug-ins ================================ +dnl =========================================================================== + +plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR" +AC_SUBST(plugindir) + +GST_PLUGIN_LDFLAGS='-module -avoid-version' +AC_SUBST(GST_PLUGIN_LDFLAGS) + +dnl these are all the gst plug-ins, compilable without additional libs +GST_PLUGINS_ALL="\ + adder \ + avi \ + cdxaparse \ + colorspace \ + effectv \ + goom \ + id3 \ + law \ + level \ + matroska \ + mpeg1sys \ + mpegaudio \ + playondemand \ + sine \ + spectrum \ + speed \ + tags \ + vbidec \ + videodrop \ + videoflip \ + videofilter \ + videoscale \ + videotestsrc \ + volume \ + wavenc \ + wavparse" + +GST_PLUGINS_SUBDIRS="\ + adder \ + avi \ + cdxaparse \ + colorspace \ + effectv \ + goom \ + id3 \ + law \ + level \ + matroska \ + mpeg1sys \ + mpegaudio \ + monoscope \ + playondemand \ + sine \ + spectrum \ + speed \ + tags \ + vbidec \ + videodrop \ + videoflip \ + videofilter \ + videoscale \ + videotestsrc \ + volume \ + wavenc \ + wavparse" +AC_SUBST(GST_PLUGINS_SUBDIRS) + +GST_PLUGINS_NO_SUBDIRS="\ + ac3parse \ + asfdemux \ + audioconvert \ + audioscale \ + auparse \ + chart \ + cutter \ + debug \ + deinterlace \ + festival \ + filter \ + flx \ + intfloat \ + median \ + mixmatrix \ + monoscope \ + mpeg1videoparse \ + mpeg2sub \ + mpegaudioparse \ + mpegstream \ + oneton \ + overlay \ + passthrough \ + qtdemux \ + realmedia \ + rtjpeg \ + rtp \ + silence \ + smooth \ + smpte \ + stereo \ + switch \ + synaesthesia \ + tcp \ + typefind \ + udp \ + videocrop \ + volenv \ + y4m" + +AC_SUBST(GST_PLUGINS_NO_SUBDIRS) + +dnl see if we can build C++ plug-ins +if test "x$HAVE_CXX" = "xyes"; then + GST_PLUGINS_ALL="$GST_PLUGINS_ALL \ + modplug" +else + AC_MSG_WARN([Not compiling plug-ins requiring C++ compiler]) +fi + +AC_SUBST(GST_PLUGINS_ALL) + +GST_PLUGINS_SELECTED="" + +AC_ARG_WITH(plugins, + AC_HELP_STRING([--with-plugins],[comma-separated list of plug-ins to compile]), + [for i in `echo $withval | tr , ' '`; do + if test -n `echo $i | grep $GST_PLUGINS_ALL`; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED $i" + else + echo "plug-in $i not recognized, ignoring..." + fi + done], + [GST_PLUGINS_SELECTED=$GST_PLUGINS_ALL]) + +AC_SUBST(GST_PLUGINS_SELECTED) + +dnl ========================================================================== +dnl ============================= sys plug-ins ================================ +dnl ========================================================================== + +dnl *** DXR3 card *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DXR3, true) +GST_CHECK_FEATURE(DXR3, [DXR3 hardware MPEG DVD decoder], + dxr3videosink dxr3audiosink dxr3spusink, [ + HAVE_DXR3=yes + AC_CHECK_HEADER(linux/em8300.h, , + [ AC_MSG_WARN([DXR3/em8300 header file not found]) && + HAVE_DXR3=no ] ) + AC_CHECK_HEADER(linux/soundcard.h, , + [ AC_MSG_WARN([Generic sound header file not found]) && + HAVE_DXR3=no ] ) ]) +dnl *** OSS audio *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OSS, true) +GST_CHECK_FEATURE(OSS, [OSS audio], osssrc osssink, [ + AC_CHECK_HEADER(sys/soundcard.h, HAVE_OSS="yes", HAVE_OSS="no") +]) + +dnl *** QuickCam *** +translit(dnm, m, l) AM_CONDITIONAL(USE_QCAM, true) +GST_CHECK_FEATURE(QCAM, [QuickCam], qcamsrc, [ + if test "x$HAVE_CPU_I386" != "xyes"; + then + HAVE_QCAM="no" + else + AC_CHECK_HEADER(sys/io.h, HAVE_QCAM="yes", HAVE_QCAM="no") + fi + if test "x$HAVE_QCAM" != "xyes"; + then + AC_MSG_WARN([QuickCam only works on i386-linux]) + fi +]) + +dnl *** Video CD *** +translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true) +GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [ + AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no") +]) + +dnl *** CDROM Audio *** +translit(dnm, m, l) AM_CONDITIONAL(USE_CDROM, true) +GST_CHECK_FEATURE(CDROM, [CDROM Audio], cdrom, [ + AC_CHECK_HEADERS(linux/cdrom.h) dnl linux + AC_CHECK_HEADERS(sys/cdio.h) dnl almost everything else +dnl AC_CHECK_HEADERS(dmedia/cdaudio.h) dnl irix + + if test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes" || test "${ac_cv_header_dmedia_cdaudio_h}" = "yes"; then + case "$host" in + *-sun-* | *-*-linux*) + AC_DEFINE(HAVE_CDROM_SOLARIS,, [Define if cdrom access is in Solaris style]) + ;; + *-*-freebsd*) + AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style]) + ;; + *-*-netbsd* | *-*-openbsd*) + AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style]) + AC_DEFINE(HAVE_CDROM_BSD_NETBSD,, [Define if cdrom access uses NetBSD variant]) + ;; + *-*darwin*) + AC_DEFINE(HAVE_CDROM_BSD,, [Define if cdrom access is in BSD style]) + AC_DEFINE(HAVE_CDROM_BSD_DARWIN,, [Define if cdrom access uses Darwin variant]) + ;; +dnl *-irix-*) +dnl AC_DEFINE(HAVE_CDROM_IRIX,, [Define if cdrom access is in Irix DMedia style]) +dnl ;; + esac + HAVE_CDROM="yes" + else + HAVE_CDROM="no" + fi +]) + +dnl Check for X11 +translit(dnm, m, l) AM_CONDITIONAL(USE_X, true) +GST_CHECK_FEATURE(X, [X libraries and plugins], + [ximagesink], [ + AC_PATH_XTRA +dnl if test "x$X_CFLAGS" == "x" -o "$X_CFLAGS" == "-DX_DISPLAY_MISSING" + if test "x$X_DISPLAY_MISSING" = "x1" + then + AC_MSG_NOTICE([cannot find X11 development files]) + HAVE_X="no" + else + dnl this is much more than we want + X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS" + dnl AC_PATH_XTRA only defines the path needed to find the X libs, not the libs + dnl therefore we add them here + X_LIBS="$X_LIBS -lX11" + AC_SUBST(X_CFLAGS) + AC_SUBST(X_LIBS) + HAVE_X="yes" + fi + AC_SUBST(HAVE_X) +]) + +dnl *** XVideo *** +dnl Look for the PIC library first, Debian requires it. +dnl Check debian-devel archives for gory details. +dnl 20020110: +dnl At the moment XFree86 doesn't distribute shared libXv due +dnl to unstable API. On many platforms you CAN NOT link a shared +dnl lib to a static non-PIC lib. This is what the xvideo GStreamer +dnl plug-in wants to do. So Debian distributes a PIC compiled +dnl version of the static lib for plug-ins to link to when it is +dnl inappropriate to link the main application to libXv directly. +dnl FIXME: add check if this platform can support linking to a +dnl non-PIC libXv, if not then don not use Xv. +dnl FIXME: perhaps warn user if they have a shared libXv since +dnl this is an error until XFree86 starts shipping one + +dnl Check for Xv extension +translit(dnm, m, l) AM_CONDITIONAL(USE_XVIDEO, true) +GST_CHECK_FEATURE(XVIDEO, [X11 XVideo extensions], + [xvimagesink xvideosink], [ + if test x$HAVE_X = xyes; then + AC_CHECK_LIB(Xv_pic, XvQueryExtension, + HAVE_XVIDEO="yes", HAVE_XVIDEO="no", + $X_LIBS -lXext) + + if test x$HAVE_XVIDEO = xyes; then + XVIDEO_LIBS="-lXv_pic -lXext" + AC_SUBST(XVIDEO_LIBS) + else + dnl try again using something else if we didn't find it first + if test x$HAVE_XVIDEO = xno; then + AC_CHECK_LIB(Xv, XvQueryExtension, + HAVE_XVIDEO="yes", HAVE_XVIDEO="no", + $X_LIBS -lXext) + + if test x$HAVE_XVIDEO = xyes; then + XVIDEO_LIBS="-lXv -lXext" + AC_SUBST(XVIDEO_LIBS) + fi + fi + fi + fi +]) + +dnl check for X Shm +translit(dnm, m, l) AM_CONDITIONAL(USE_XSHM, true) +GST_CHECK_FEATURE(XSHM, [X Shared Memory extension], xshm, [ + if test x$HAVE_X = xyes; then + AC_CHECK_LIB(Xext, XShmAttach, + HAVE_XSHM="yes", HAVE_XSHM="no", + $X_LIBS) + if test "x$HAVE_XSHM" = "xyes"; then + XSHM_LIBS="-lXext" + else + dnl On AIX, it is in XextSam instead, but we still need -lXext + AC_CHECK_LIB(XextSam, XShmAttach, + HAVE_XSHM="yes", HAVE_XSHM="no", + $X_LIBS) + if test "x$HAVE_XSHM" = "xyes"; then + XSHM_LIBS="-lXext -lXextSam" + fi + fi + fi +], , [ + AC_SUBST(HAVE_XSHM) + AC_SUBST(XSHM_LIBS) +] ) + +dnl v4l/v4l2 checks have been moved down because they require X + +dnl *** Video 4 Linux *** +dnl for information about the header/define, see sys/v4l/gstv4lelement.h +translit(dnm, m, l) AM_CONDITIONAL(USE_V4L, true) +GST_CHECK_FEATURE(V4L, [Video 4 Linux], v4lsrc v4lmjpegsrc v4lmjpegsink, [ + # first check X + HAVE_V4L="no" + if test "$HAVE_X" == "yes" + then + AC_CHECK_DECL(VID_TYPE_MPEG_ENCODER, HAVE_V4L="yes", HAVE_V4L="no", [ +#include +#define _LINUX_TIME_H +#include + ]) + fi +]) + +dnl *** Video 4 Linux 2 *** +dnl for information about the header/define, see sys/v4l2/gstv4l2element.h +translit(dnm, m, l) AM_CONDITIONAL(USE_V4L2, true) +GST_CHECK_FEATURE(V4L2, [Video 4 Linux 2], v4l2src, [ + HAVE_V4L2="no" + if test "$HAVE_X" == "yes" + then + AC_MSG_CHECKING([Checking for uptodate v4l2 installation]) + AC_TRY_COMPILE([ +#include +#include +#define _LINUX_TIME_H +#include +#if defined(V4L2_MAJOR_VERSION) || defined(V4L2_MINOR_VERSION) +#error too early v4l2 version or no v4l2 at all +#endif + ], [ +return 0; + ], [ HAVE_V4L2="yes" && AC_MSG_RESULT(yes)], + [ HAVE_V4L2="no" && AC_MSG_RESULT(no) && + AC_CHECK_HEADER(linux/videodev2.h, + [ AC_MSG_WARN([video4linux2 headers were found, but they're old. Please update v4l2 to compile the v4l2 plugins])], + [ AC_MSG_WARN([video4linux2 was not found])]) + ]) + fi +]) + +dnl Next, check for the optional libraries: +dnl These are all libraries used in building plug-ins +dnl ================================================ +dnl let's try and sort them alphabetically, shall we ? + +if test "x$BUILD_EXTERNAL" = "xyes"; then + +AC_MSG_NOTICE(Checking for plug-in dependency libraries) + +dnl *** a52dec *** +translit(dnm, m, l) AM_CONDITIONAL(USE_A52DEC, true) +GST_CHECK_FEATURE(A52DEC, [a52dec], a52dec, [ + AC_CHECK_A52DEC(HAVE_A52DEC=yes, HAVE_A52DEC=no) +]) + +dnl *** aalib *** +translit(dnm, m, l) AM_CONDITIONAL(USE_AALIB, true) +GST_CHECK_FEATURE(AALIB, [aasink plug-in], aasink, [ + AM_PATH_AALIB(, HAVE_AALIB=yes, HAVE_AALIB=no) + AS_SCRUB_INCLUDE(AALIB_CFLAGS) +]) + +dnl *** alsa *** +translit(dnm, m, l) AM_CONDITIONAL(USE_ALSA, true) +GST_CHECK_FEATURE(ALSA, [alsa plug-ins], gstalsa, [ + AM_PATH_ALSA(0.9.1, HAVE_ALSA=yes, HAVE_ALSA=no) +]) + +dnl *** arts *** +dnl if mcopidl can't be found there's no use in compiling it +AC_CHECK_PROG(MCOPIDL, mcopidl, yes, no) +if test "x$HAVE_MCOPIDL" = "xno"; +then + USE_ARTS=no +fi + +translit(dnm, m, l) AM_CONDITIONAL(USE_ARTS, true) +GST_CHECK_FEATURE(ARTS, [arts plug-ins], arts, [ + AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no) +]) + +dnl *** artsc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_ARTSC, true) +GST_CHECK_FEATURE(ARTSC, [artsd plug-ins], artsdsink, [ + GST_CHECK_ARTSC() +]) + +dnl *** audiofile *** +dnl this check uses the GST_CHECK_CONFIGPROG macro +translit(dnm, m, l) AM_CONDITIONAL(USE_AUDIOFILE, true) +GST_CHECK_FEATURE(AUDIOFILE, [audiofile], afsink afsrc, [ + translit(dnm, m, l) AC_SUBST(AUDIOFILE_LIBS) + translit(dnm, m, l) AC_SUBST(AUDIOFILE_CFLAGS) + dnl check with pkg-config first + PKG_CHECK_MODULES(AUDIOFILE, audiofile, HAVE_AUDIOFILE="yes", HAVE_AUDIOFILE="no") + if test "x$HAVE_AUDIOFILE" = "xno"; then + GST_CHECK_CONFIGPROG(AUDIOFILE, audiofile-config) + dnl we need this function + AC_CHECK_LIB(audiofile, afOpenVirtualFile, , HAVE_AUDIOFILE="no") + fi]) + +dnl *** CDParanoia *** +translit(dnm, m, l) AM_CONDITIONAL(USE_CDPARANOIA, true) +GST_CHECK_FEATURE(CDPARANOIA, [CDParanoia], cdparanoia, [ + GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, + cdda_open, -lm, + cdda_interface.h, + CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia" + HEADER_DIR="no" + FOUND_CDPARANOIA="yes") + if test "x$FOUND_CDPARANOIA" != "xyes"; + then + GST_CHECK_LIBHEADER(CDPARANOIA, cdda_interface, + cdda_open, -lm, + cdda/cdda_interface.h, + CDPARANOIA_LIBS="-lcdda_interface -lcdda_paranoia" + HEADER_DIR="yes" + FOUND_CDPARANOIA="yes") + fi + if test "x$HEADER_DIR" = "xyes"; + then + AC_DEFINE_UNQUOTED(CDPARANOIA_HEADERS_IN_DIR, , + defined if cdda headers are in a cdda/ directory) + fi + AC_SUBST(CDPARANOIA_LIBS) +]) +dnl FIXME : add second check somehow if that is necessary +dnl AC_CHECK_LIB(cdda_paranoia, paranoia_init, : , HAVE_CDPARANOIA=no, -lcdda_interface ) +dnl AC_CHECK_HEADER(cdda_paranoia.h, :, HAVE_CDPARANOIA=no) + +dnl *** DIVX *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true) +GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [ + HAVE_DIVX=yes + AC_CHECK_HEADER(encore2.h, , + [ AC_MSG_WARN([Divx4linux encore headers not found]) && + HAVE_DIVX=no ] ) + if [ test x$HAVE_DIVX = xyes ]; then + AC_MSG_CHECKING([Checking for valid divx4linux encore version]) + AC_TRY_COMPILE([ +#include +#if ENCORE_VERSION != 20021024 +#error Wrong version of divx encore libraries +#endif + ], [ +return 0; + ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)], + [ HAVE_DIVX=no && AC_MSG_RESULT(no) && + AC_MSG_WARN([Wrong version of divx4linux installed]) ]) + fi + if [ test x$HAVE_DIVX = xyes ]; then + AC_CHECK_HEADER(decore.h, , + [ AC_MSG_WARN([Divx4linux decoder headers not found]) && + HAVE_DIVX=no ] ) + fi + if [ test x$HAVE_DIVX = xyes ]; then + AC_MSG_CHECKING([Checking for valid divx4linux decore version]) + AC_TRY_COMPILE([ +#include +#if DECORE_VERSION != 20021112 +#error Wrong version of divx decore libraries +#endif + ], [ +return 0; + ], [ HAVE_DIVX=yes && AC_MSG_RESULT(yes)], + [ HAVE_DIVX=no && AC_MSG_RESULT(no) && + AC_MSG_WARN([Wrong version of divx4linux installed]) ]) + fi + LIBS="-lm" + if test x$HAVE_DIVX = xyes; then + AC_CHECK_LIB(divxencore, encore, , + [ AC_MSG_WARN([Divx4linux encore libs not found]) && + HAVE_DIVX=no ] ) + fi + if test x$HAVE_DIVX = xyes; then + AC_CHECK_LIB(divxdecore, decore, , + [ AC_MSG_WARN([Divx4linux decore libs not found]) && + HAVE_DIVX=no ] ) + fi + if test x$HAVE_DIVX = xyes; then + DIVXENC_LIBS="-ldivxencore -lm" + DIVXDEC_LIBS="-ldivxdecore -lm" + AC_SUBST(DIVXENC_LIBS) + AC_SUBST(DIVXDEC_LIBS) + fi +]) + +dnl *** dvdread *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DVDREAD, true) +GST_CHECK_FEATURE(DVDREAD, [dvdread library], dvdreadsrc, [ + GST_CHECK_LIBHEADER(DVDREAD, dvdread, DVDOpen, , dvdread/dvd_reader.h, DVDREAD_LIBS="-ldvdread") + AC_SUBST(DVDREAD_LIBS) +]) + +dnl *** dvdnav *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DVDNAV, true) +GST_CHECK_FEATURE(DVDNAV, [dvdnav library], dvdnavsrc, [ + translit(dnm, m, l) AC_SUBST(DVDNAV_LIBS) + translit(dnm, m, l) AC_SUBST(DVDNAV_CFLAGS) + GST_CHECK_CONFIGPROG(DVDNAV, dvdnav-config) + if test x"$HAVE_DVDNAV" = x"yes"; then + dnl check version + DVDNAV_VERSION=`dvdnav-config --version|head -n 1|sed 's/^.*) //'|sed 's/ (.*)//'` + DVDNAV_MAJOR=`echo $DVDNAV_VERSION | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` + DVDNAV_MINOR=`echo $DVDNAV_VERSION | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` + DVDNAV_MICRO=`echo $DVDNAV_VERSION | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` + if [[ "$DVDNAV_MAJOR" -eq "0" ]] && \ + [[ "$DVDNAV_MINOR" -lt "1" ]]; then + AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION]) + HAVE_DVDNAV="no" + elif [[ "$DVDNAV_MAJOR" -eq "0" ]] && \ + [[ "$DVDNAV_MINOR" -eq "1" ]] && \ + [[ "$DVDNAV_MICRO" -lt "7" ]]; then + AC_MSG_WARN([libdvdnav >= 0.1.7 is required, you have $DVDNAV_VERSION]) + HAVE_DVDNAV="no" + fi + fi + AS_SCRUB_INCLUDE(DVDNAV_CFLAGS) +]) + +dnl *** MAS *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MAS, true) +GST_CHECK_FEATURE(MAS, [mas library], massink, [ + translit(dnm, m, l) AC_SUBST(MAS_LIBS) + translit(dnm, m, l) AC_SUBST(MAS_CFLAGS) + GST_CHECK_CONFIGPROG(MAS, mas-config) + AS_SCRUB_INCLUDE(MAS_CFLAGS) +]) + +dnl **** ESound **** +translit(dnm, m, l) AM_CONDITIONAL(USE_ESD, true) +GST_CHECK_FEATURE(ESD, [esound plug-ins], esdsink esdmon, [ + AM_PATH_ESD(0.2.12, HAVE_ESD=yes, HAVE_ESD=no) + AS_SCRUB_INCLUDE(ESD_CFLAGS) +]) + +dnl **** Free AAC Encoder (FAAC) **** +translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true) +GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [ + GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, -lm, faac.h, FAAC_LIBS="-lfaac -lm") + AS_SCRUB_INCLUDE(FAAC_CFLAGS) + AC_SUBST(FAAC_LIBS) +]) + +dnl **** Free AAC Decoder (FAAD) **** +translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true) +GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [ + GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, -lm, faad.h, FAAD_LIBS="-lfaad -lm") + AC_MSG_CHECKING([Checking for FAAD >= 2]) + AC_TRY_COMPILE([ +#include +#if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE) +#error Not faad2 +#endif + ], [ return 0; ], + [ HAVE_FAAD="yes" && AC_MSG_RESULT(yes)], + [ HAVE_FAAD="no" && AC_MSG_RESULT(no)]) + AS_SCRUB_INCLUDE(FAAD_CFLAGS) + AC_SUBST(FAAD_LIBS) +]) + +dnl **** festival **** +dnl translit(dnm, m, l) AM_CONDITIONAL(USE_FESTIVAL, true) +dnl GST_CHECK_FEATURE(FESTIVAL, [festival plug-ins], festivalsrc, [ + dnl NOTE: just using local net connection now, add this lib check + dnl in the future if needed + dnl AC_LANG_PUSH(C++) + dnl dnl FIXME: took out func to check for + dnl dnl This check puts festival_tidy_up in extern "C". + dnl dnl But, at least on Debian as of 20020110, it is compiled with name + dnl dnl mangling C++ nonsense and symbols can't resolve + dnl dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, festival_tidy_up, , festival/festival.h, FESTIVAL_LIBS="-lFestival") + dnl GST_CHECK_LIBHEADER(FESTIVAL, Festival, , , festival/festival.h, FESTIVAL_LIBS="-lFestival") + dnl AC_LANG_POP(C++) + dnl AC_SUBST(FESTIVAL_LIBS) +dnl HAVE_FESTIVAL=yes +dnl]) + +dnl *** FLAC *** +translit(dnm, m, l) AM_CONDITIONAL(USE_FLAC, true) +GST_CHECK_FEATURE(FLAC, [FLAC lossless audio], flacenc flacdec, [ + GST_CHECK_LIBHEADER(FLAC, FLAC, FLAC__seekable_stream_encoder_new, -lm, FLAC/all.h, FLAC_LIBS="-lFLAC") + AC_SUBST(FLAC_LIBS) +]) + +dnl *** GDK pixbuf *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GDK_PIXBUF, true) +GST_CHECK_FEATURE(GDK_PIXBUF, [GDK pixbuf], gdkpixbufsrc, [ + if test $HAVE_GTK_22 = "yes"; then HAVE_GDK_PIXBUF=yes; fi; +]) + +dnl *** Gnome VFS *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GNOME_VFS, true) +GST_CHECK_FEATURE(GNOME_VFS, [Gnome VFS], gnomevfssrc, [ + PKG_CHECK_MODULES(GNOME_VFS, gnome-vfs-2.0, HAVE_GNOME_VFS="yes", HAVE_GNOME_VFS="no") + AC_SUBST(GNOME_VFS_CFLAGS) + AC_SUBST(GNOME_VFS_LIBS) +]) + +dnl *** gsm *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true) +GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [ + GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm") + if test $HAVE_GSM != "yes"; then + GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm") + if test $HAVE_GSM = "yes"; then + AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir]) + fi + fi + AC_SUBST(GSM_LIBS) +]) + +dnl *** Hermes *** +translit(dnm, m, l) AM_CONDITIONAL(USE_HERMES, true) +GST_CHECK_FEATURE(HERMES, [Hermes library], colorspace, [ + GST_CHECK_LIBHEADER(HERMES, Hermes, Hermes_ConverterInstance, , Hermes/Hermes.h, HERMES_LIBS="-lHermes") +], AC_SUBST(HERMES_LIBS)) + +dnl *** http *** +dnl translit(dnm, m, l) AM_CONDITIONAL(USE_HTTP, true) +dnl GST_CHECK_FEATURE(HTTP, [http plug-ins], gsthttpsrc, [ +dnl dnl FIXME: need to check for header +dnl GHTTP_LIBS= +dnl GST_HTTPSRC_GET_TYPE= +dnl if test x$USE_GLIB2 = xyes; then +dnl AC_MSG_WARN(ghttp disabled for glib2.0) +dnl else +dnl AC_CHECK_LIB(ghttp, ghttp_request_new, +dnl [HTTP_LIBS="-lghttp" +dnl GST_HTTPSRC_GET_TYPE="gst_httpsrc_get_type" +dnl HAVE_HTTP=yes +dnl ], :, $LIBS) +dnl fi +dnl AC_SUBST(HTTP_LIBS) +dnl AC_SUBST(GST_HTTPSRC_GET_TYPE) +dnl ]) + +dnl *** ivorbis *** +dnl AM_PATH_IVORBIS only takes two options +translit(dnm, m, l) AM_CONDITIONAL(USE_IVORBIS, true) +GST_CHECK_FEATURE(IVORBIS, [integer vorbis plug-in], ivorbisdec, [ + IVORBIS_LIBS= + IVORBIS_CFLAGS= + AC_CHECK_LIB(vorbisidec, vorbis_block_init, + [IVORBIS_LIBS=-lvorbisidec + HAVE_IVORBIS=yes], + HAVE_IVORBIS=no) + AC_SUBST(IVORBIS_LIBS) + AC_SUBST(IVORBIS_CFLAGS) +]) + +dnl *** Jack *** +translit(dnm, m, l) AM_CONDITIONAL(USE_JACK, true) +GST_CHECK_FEATURE(JACK, Jack, jack, [ + PKG_CHECK_MODULES(JACK, jack >= 0.29.0, HAVE_JACK="yes", HAVE_JACK="no") + AC_SUBST(JACK_CFLAGS) + AC_SUBST(JACK_LIBS) +]) + +dnl *** jpeg *** +dnl FIXME: we could use header checks here as well IMO +translit(dnm, m, l) AM_CONDITIONAL(USE_JPEG, true) +GST_CHECK_FEATURE(JPEG, [jpeg], jpegenc jpegdec, [ + AC_ARG_WITH(jpeg-mmx, + [ --with-jpeg-mmx, path to MMX'ified JPEG library]) + OLD_LIBS="$LIBS" + if test x$with_jpeg_mmx != x; then + LIBS="$LIBS -L$with_jpeg_mmx" + fi + AC_CHECK_LIB(jpeg-mmx, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") + JPEG_LIBS="$LIBS -ljpeg-mmx" + LIBS="$OLD_LIBS" + if test x$HAVE_JPEG != xyes; then + AC_CHECK_LIB(jpeg, jpeg_set_defaults, HAVE_JPEG="yes", HAVE_JPEG="no") + JPEG_LIBS="-ljpeg" + fi + AC_SUBST(JPEG_LIBS) +]) + +dnl *** ladspa *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true) +GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [ + AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no") +]) + +dnl *** lame *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LAME, true) +GST_CHECK_FEATURE(LAME, [lame mp3 encoder library], lame, [ + GST_CHECK_LIBHEADER(LAME, mp3lame, lame_init, -lm, lame/lame.h, HAVE_LAME="yes" LAME_LIBS="-lmp3lame") +]) +AC_SUBST(LAME_LIBS) + +dnl *** libcolorspace *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LCS, true) +GST_CHECK_FEATURE(LCS, Lcs, lcs, [ + PKG_CHECK_MODULES(LCS, lcs, HAVE_LCS="yes", HAVE_LCS="no") + AC_SUBST(LCS_CFLAGS) + AC_SUBST(LCS_LIBS) +]) + +dnl *** libdv *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBDV, true) +GST_CHECK_FEATURE(LIBDV, [libdv DV/video decoder], dvdec, [ + PKG_CHECK_MODULES(LIBDV, libdv >= 0.98, HAVE_LIBDV="yes", HAVE_LIBDV="no") + AC_SUBST(LIBDV_CFLAGS) + AC_SUBST(LIBDV_LIBS) +]) + +dnl *** libcaca *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBCACA, true) +GST_CHECK_FEATURE(LIBCACA, [libcaca], libcaca, [ + GST_CHECK_CONFIGPROG(LIBCACA, caca-config) + AC_SUBST(LIBCACA_CFLAGS) + AC_SUBST(LIBCACA_LIBS) +]) + +dnl *** libfame *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBFAME, true) +GST_CHECK_FEATURE(LIBFAME, [libfame MPEG1/4 encoder], libfame, [ + AM_PATH_LIBFAME(0.9.0, HAVE_LIBFAME="yes", HAVE_LIBFAME="no") + AC_SUBST(LIBFAME_CFLAGS) + AC_SUBST(LIBFAME_LIBS) +]) + +dnl *** libpng *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true) +GST_CHECK_FEATURE(LIBPNG, [libpng PNG encoder], pngenc, [ + PKG_CHECK_MODULES(LIBPNG, libpng12, HAVE_LIBPNG="yes", HAVE_LIBPNG="no") + AC_SUBST(LIBPNG_CFLAGS) + AC_SUBST(LIBPNG_LIBS) +]) + +dnl *** librfb *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBRFB, true) +GST_CHECK_FEATURE(LIBRFB, [librfb Remote Framebuffer], rfbsrc, [ + PKG_CHECK_MODULES(LIBRFB, librfb-0.1, HAVE_LIBRFB="yes", HAVE_LIBRFB="no") + AC_SUBST(LIBRFB_CFLAGS) + AC_SUBST(LIBRFB_LIBS) +]) + +dnl *** mad *** +dnl FIXME: we could use header checks here as well IMO +translit(dnm, m, l) AM_CONDITIONAL(USE_MAD, true) +GST_CHECK_FEATURE(MAD, [mad mp3 decoder], mad, [ + dnl check with pkg-config first + PKG_CHECK_MODULES(MAD, mad >= 0.15 id3tag >= 0.15, HAVE_MAD="yes", HAVE_MAD="no") + if test "x$HAVE_MAD" = "xno"; then + dnl fall back to oldskool detection + AC_CHECK_LIB(mad, mad_decoder_finish, HAVE_MAD="yes" MAD_LIBS="-lmad") + if test "x$HAVE_MAD" = "xyes"; then + HAVE_MAD="no" + save_libs=$LIBS + LIBS="-lz" + AC_CHECK_LIB(id3tag, id3_tag_options, HAVE_MAD="yes" MAD_LIBS="-lmad -lid3tag -lz") + LIBS=$save_LIBS + fi + fi +]) +AC_SUBST(MAD_LIBS) + +dnl *** mikmod *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MIKMOD, true) +GST_CHECK_FEATURE(MIKMOD, [mikmod plug-in], mikmod, [ + AM_PATH_LIBMIKMOD(, HAVE_MIKMOD=yes, HAVE_MIKMOD=no) + AC_SUBST(MIKMOD_LIBS, "$LIBMIKMOD_LIBS") + AC_SUBST(MIKMOD_CFLAGS, "$LIBMIKMODCFLAGS") +]) + +dnl *** mpeg2dec *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2DEC, true) +GST_CHECK_FEATURE(MPEG2DEC, [mpeg2dec], mpeg2dec, [ + PKG_CHECK_MODULES(MPEG2DEC, libmpeg2 >= 0.3.1, + HAVE_MPEG2DEC="yes", HAVE_MPEG2DEC="no") + AC_SUBST(MPEG2DEC_CFLAGS) + AC_SUBST(MPEG2DEC_LIBS) +]) + +dnl *** mpeg2enc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true) +GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [ + HAVE_MPEG2ENC="no" + dnl we require a c++ compiler for this one + if [ test x$HAVE_CXX = xyes ]; then + dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92) + dnl since many distros include mjpegtools specifically without mplex + dnl and mpeg2enc, we check for mpeg2enc on its own, too. + PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [ + dnl switch over to c++ to test things + AC_LANG_CPLUSPLUS + OLD_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $MPEG2ENC_CFLAGS" + AC_CHECK_HEADER(mpeg2encoder.hh, [ + MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp -lm -lpthread" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPEG2ENC_LIBS" + AC_MSG_CHECKING([for valid mpeg2enc objects]) + AC_TRY_RUN([ +#include +#include + +int +main (int argc, + char *argv[]) +{ + MPEG2EncOptions *options = new MPEG2EncOptions (); + MPEG2Encoder encoder (*options); + return 0; +} + ],[ + HAVE_MPEG2ENC="yes" + AC_SUBST(MPEG2ENC_CFLAGS) + AC_SUBST(MPEG2ENC_LIBS) + AC_MSG_RESULT(yes) + ], AC_MSG_RESULT(no)) + LIBS="$OLD_LIBS" + ]) + CPPFLAGS="$OLD_CPPFLAGS" + AC_LANG_C + ], + HAVE_MPEG2ENC="no") + fi +]) + +dnl *** mplex *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true) +GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [ + HAVE_MPLEX="no" + dnl we require a c++ compiler for this one + if [ test x$HAVE_CXX = xyes ]; then + dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93) + dnl since many distros include mjpegtools specifically without mplex + dnl and mpeg2enc, we check for mplex on its own, too. + PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.6.1.93, [ + dnl switch over to c++ to test things + AC_LANG_CPLUSPLUS + OLD_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS" + AC_CHECK_HEADER(interact.hpp, [ + MPLEX_LIBS="$MPLEX_LIBS -lmplex2 -lm" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPLEX_LIBS" + AC_MSG_CHECKING([for valid mplex objects]) + AC_TRY_RUN([ +#include +#include +#include + +int +main (int argc, + char *argv[]) +{ + class TestOutputStream : public OutputStream { + public: + TestOutputStream () : OutputStream () { } + void Write (uint8_t *a, unsigned int b) { } + void NextSegment () { } + off_t SegmentSize () { } + void Close () { } + int Open () { } + }; + MultiplexJob *job = new MultiplexJob (); + vector inputs; + job->SetupInputStreams (inputs); + TestOutputStream *out = new TestOutputStream (); + Multiplexor mux (*job, *out); + return 0; +} + ],[ + HAVE_MPLEX="yes" + AC_SUBST(MPLEX_CFLAGS) + AC_SUBST(MPLEX_LIBS) + AC_MSG_RESULT(yes) + ], AC_MSG_RESULT(no)) + LIBS="$OLD_LIBS" + ]) + CPPFLAGS="$OLD_CPPFLAGS" + AC_LANG_C + ], HAVE_MPLEX="no") + fi +]) + +dnl *** musicbrainz *** +dnl libmusicbrainz <= 2.0.2 has symbol clashes with ffmpeg +translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true) +GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz], musicbrainz, [ + PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz > 2.0.2, + HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no") + AC_SUBST(MUSICBRAINZ_CFLAGS) + AC_SUBST(MUSICBRAINZ_LIBS) +]) + +dnl *** nas *** +translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true) +GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [ + HAVE_NAS="no" + if test "x$HAVE_X" = "xyes"; then + save_cppflags=$CFLAGS + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h, + NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS") + CPPFLAGS="$save_cppflags" + fi + AC_SUBST(NAS_CFLAGS) + AC_SUBST(NAS_LIBS) +]) + +dnl *** pango *** +translit(dnm, m, l) AM_CONDITIONAL(USE_PANGO, true) +GST_CHECK_FEATURE(PANGO, [pango], pango, [ + PKG_CHECK_MODULES(PANGO, pango pangoft2, + HAVE_PANGO="yes", HAVE_PANGO="no") + AC_SUBST(PANGO_CFLAGS) + AC_SUBST(PANGO_LIBS) +]) + +dnl *** raw1394 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_RAW1394, true) +GST_CHECK_FEATURE(RAW1394, [raw1394 library], dv1394src, [ + GST_CHECK_LIBHEADER(RAW1394, raw1394, raw1394_new_handle,, libraw1394/raw1394.h, RAW1394_LIBS="-lraw1394") + AC_SUBST(RAW1394_LIBS) +]) + +dnl *** SDL *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true) +GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink, [ + dnl sdlvideosink depends on the xoverlay interface, which depends on X + if test x$HAVE_X = xyes; then + AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no) + fi +]) + +dnl *** shout *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT, true) +GST_CHECK_FEATURE(SHOUT, [shout plug-in], icecastsend, [ + GST_CHECK_LIBHEADER(SHOUT, shout, shout_init_connection,, shout/shout.h, SHOUT_LIBS="-lshout") + AC_SUBST(SHOUT_LIBS) +]) + +dnl *** shout2 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SHOUT2, true) +GST_CHECK_FEATURE(SHOUT2, [shout2 plug-in], shout2send, [ + AM_PATH_SHOUT2(HAVE_SHOUT2=yes, HAVE_SHOUT2=no) + AC_SUBST(SHOUT2_CFLAGS) + AC_SUBST(SHOUT2_LIBS) +]) + +dnl *** sidplay *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SIDPLAY, true) +GST_CHECK_FEATURE(SIDPLAY, [sidplay plug-in], sidplay, [ + GST_PATH_SIDPLAY() +]) + +dnl *** smoothwave *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SMOOTHWAVE, true) +GST_CHECK_FEATURE(SMOOTHWAVE, [smoothwave plug-in], smoothwave, [ + if test $HAVE_GTK = "yes"; then HAVE_SMOOTHWAVE=yes; fi; +]) + + +dnl *** snapshot *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBPNG, true) +GST_CHECK_FEATURE(LIBPNG, [snapshot plug-in], snapshot, [ + GST_CHECK_LIBHEADER(LIBPNG, png, png_read_info, -lz -lm, png.h, LIBPNG_LIBS="-lpng -lz -lm") + AC_SUBST(LIBPNG_LIBS) +]) + +dnl *** speex *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SPEEX, true) +GST_CHECK_FEATURE(SPEEX, [speex plug-in], speex, [ + GST_CHECK_LIBHEADER(SPEEX, speex, speex_bits_init, , speex.h, HAVE_SPEEX="yes" SPEEX_LIBS="-lspeex") + AC_SUBST(SPEEX_CFLAGS) + AC_SUBST(SPEEX_LIBS) +]) + +dnl *** sndfile *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true) +GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [ + PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.0, HAVE_SNDFILE="yes", HAVE_SNDFILE="no") + AC_SUBST(SNDFILE_CFLAGS) + AC_SUBST(SNDFILE_LIBS) +]) + +dnl *** swfdec *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true) +GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [ + PKG_CHECK_MODULES(SWFDEC, swfdec >= 0.1.3.1, HAVE_SWFDEC=yes, HAVE_SWFDEC=no) + AC_SUBST(SWFDEC_CFLAGS) + AC_SUBST(SWFDEC_LIBS) +]) + +dnl *** tarkin *** +dnl for now the sources are included in the plug-in +dnl and should be moved to ext-libs/ perhaps +translit(dnm, m, l) AM_CONDITIONAL(USE_TARKIN, true) +GST_CHECK_FEATURE(TARKIN, [tarkinenc tarkindec], tarkin, [ + HAVE_TARKIN="yes" +]) + +dnl *** ogg *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OGG, true) +GST_CHECK_FEATURE(OGG, [ogg de/encoder], oggdemux oggmux, [ + XIPH_PATH_OGG(HAVE_OGG=yes, HAVE_OGG=no) + AS_SCRUB_INCLUDE(OGG_CFLAGS) +]) + +dnl *** theora *** +dnl FIXME: theora doesn't have proper pc/m4 files yet, change this when this happens +translit(dnm, m, l) AM_CONDITIONAL(USE_THEORA, true) +GST_CHECK_FEATURE(THEORA, [ogg theora codec], theoradec, [ + GST_CHECK_LIBHEADER(THEORA, theora, theora_version_string, , theora/theora.h, THEORA_LIBS="-ltheora") + AC_SUBST(THEORA_LIBS) +]) + +dnl *** vorbis *** +dnl AM_PATH_VORBIS only takes two options +translit(dnm, m, l) AM_CONDITIONAL(USE_VORBIS, true) +GST_CHECK_FEATURE(VORBIS, [vorbis plug-in], vorbisenc vorbisdec, [ + XIPH_PATH_VORBIS(HAVE_VORBIS=yes, HAVE_VORBIS=no) + AS_SCRUB_INCLUDE(VORBIS_CFLAGS) +]) +if test "x$HAVE_VORBIS" = "xyes"; then + ac_cflags_save="$CFLAGS" + CFLAGS="-Wall -Werror" + AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([ +#include + ],[ +vorbis_dsp_state *v; + +vorbis_synthesis_restart (v); + ]), HAVE_VSR=yes, HAVE_VSR=no) + if test "x$HAVE_VSR" = "xyes"; then + AC_DEFINE_UNQUOTED(HAVE_VORBIS_SYNTHESIS_RESTART, 1, + [defined if vorbis_synthesis_restart is present]) + fi + CFLAGS="$ac_cflags_save" +fi + +dnl *** XVID *** +translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true) +GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [ + HAVE_XVID=no + AC_CHECK_HEADER(xvid.h, [ + OLD_LIBS="$LIBS" + LIBS="-lm" + AC_CHECK_LIB(xvidcore, xvid_encore, [ + AC_CHECK_LIB(xvidcore, xvid_decore, [ + AC_CHECK_LIB(xvidcore, xvid_global, [ + AC_MSG_CHECKING([for uptodate XviD API version]) + AC_TRY_RUN([ +#include +#if XVID_API != XVID_MAKE_API(4,0) +#error "Incompatible XviD API version" +#endif +int main () { return 0; } + ],[ AC_MSG_RESULT(yes) + XVID_LIBS="-lxvidcore -lm" + AC_SUBST(XVID_LIBS) + HAVE_XVID=yes + ], AC_MSG_RESULT(no) ) + ], ) + ], ) + ], ) + LIBS="$OLD_LIBS" + ], ) +]) + + +fi dnl of EXT plugins + dnl Check for atomic.h dnl Note: use AC_CHECK_HEADER not AC_CHECK_HEADERS, because the latter dnl defines the wrong default symbol as well (HAVE_ASM_ATOMIC_H) AC_CHECK_HEADER(asm/atomic.h, HAVE_ATOMIC_H=yes, HAVE_ATOMIC_H=no) dnl Do a compile to check that it has atomic_set (eg, linux 2.0 didn't) if test x$HAVE_ATOMIC_H = xyes; then - AC_LINK_IFELSE([ + AC_TRY_RUN([ #include "asm/atomic.h" -main() {atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;} +main() { atomic_t t; atomic_set(&t,0); atomic_inc(&t); atomic_add(1,&t);return 0;} ],, [ # Not successful if test x$HAVE_ATOMIC_H = xyes; then AC_MSG_WARN(Atomic reference counting is out of date: doing without.) fi HAVE_ATOMIC_H=no + ], [ + # Cross compiling + AC_MSG_RESULT(yes) + AC_MSG_WARN(Can't check properly for atomic reference counting. Assuming OK.) ]) fi -dnl Check for ucontext.h -AC_CHECK_HEADER(ucontext.h, AC_DEFINE(HAVE_UCONTEXT_H, 1, [defined if we have ucontext.h])) dnl ###################################################################### dnl # Check command line parameters, and set shell variables accordingly # dnl ###################################################################### -dnl FIXME: simplify all this down using a few m4 macros - AC_ARG_ENABLE(libmmx, -AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]), + AC_HELP_STRING([--enable-libmmx],[use libmmx, if available]), [case "${enableval}" in yes) USE_LIBMMX=$HAVE_LIBMMX ;; no) USE_LIBMMX=no ;; @@ -298,7 +1431,7 @@ esac], [USE_LIBMMX=$HAVE_LIBMMX]) dnl Default value AC_ARG_ENABLE(atomic, -AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]), + AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]), [case "${enableval}" in yes) USE_ATOMIC_H=$HAVE_ATOMIC_H;; noset) USE_ATOMIC_H=$HAVE_ATOMIC_H;; @@ -307,27 +1440,9 @@ AC_HELP_STRING([--enable-atomic],[use atomic reference counting header]), esac], [USE_ATOMIC_H=$HAVE_ATOMIC_H]) dnl Default value -AC_ARG_ENABLE(fast-stack-trash, -AC_HELP_STRING([--enable-fast-stack-trash],[use fast memory allocator (i586 or above)]), -[case "${enableval}" in - yes) USE_FAST_STACK_TRASH=yes;; - noset) USE_FAST_STACK_TRASH=no;; - no) USE_FAST_STACK_TRASH=no;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-atomic) ;; -esac], -[USE_FAST_STACK_TRASH=yes]) dnl Default value - -AC_ARG_ENABLE(plugin-builddir, -AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installed plugins]), -[case "${enableval}" in - yes) PLUGINS_USE_BUILDDIR=yes ;; - no) PLUGINS_USE_BUILDDIR=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-plugin-builddir) ;; -esac], -[PLUGINS_USE_BUILDDIR=no]) dnl Default value - AC_ARG_ENABLE(profiling, -AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]), + AC_HELP_STRING([--enable-profiling], + [-pg to compiler commandline, for profiling]), [case "${enableval}" in yes) USE_PROFILING=yes ;; no) UES_PROFILING=no ;; @@ -335,94 +1450,36 @@ AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profi esac], [USE_PROFILING=no]) dnl Default value -dnl use a cache dir for storing element registry info -dnl default to building registry in the source tree if we are enabling plugin build dir -if test "x$PLUGINS_USE_BUILDDIR" = "xyes"; then - GST_CACHE_DIR=`pwd` -else - dnl ${localstatedir} points to PREFIX/var - GST_CACHE_DIR=${localstatedir}/cache/gstreamer-$GST_MAJORMINOR -fi -AC_ARG_WITH(cachedir, -AC_HELP_STRING([--with-cachedir],[specify path to use for plugin and command completion registries]), -[case "${withval}" in - yes) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;; - no) AC_MSG_ERROR(bad value ${withval} for --with-cachedir) ;; - *) GST_CACHE_DIR="${withval}" ;; -esac], -[:]) dnl Default value - -AS_AC_EXPAND(GST_CACHE_DIR, $GST_CACHE_DIR) -AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Location of registry]) -AC_MSG_NOTICE(Using $GST_CACHE_DIR as registry cache dir) - -dnl building of tests AC_ARG_ENABLE(tests, -AC_HELP_STRING([--disable-tests],[disable building test apps]), + AC_HELP_STRING([--disable-tests],[disable building test apps]), [case "${enableval}" in yes) BUILD_TESTS=yes ;; no) BUILD_TESTS=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;; esac], [BUILD_TESTS=yes]) dnl Default value -AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes") - -dnl tests known to fail -AC_ARG_ENABLE(failing-tests, -AC_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]), -[case "${enableval}" in - yes) BUILD_FAILING_TESTS=yes ;; - no) BUILD_FAILING_TESTS=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-failing-tests) ;; -esac], -[BUILD_FAILING_TESTS=no]) dnl Default value -AM_CONDITIONAL(BUILD_FAILING_TESTS, test "x$BUILD_FAILING_TESTS" = "xyes") -if test x$BUILD_FAILING_TESTS = xyes; then - AC_MSG_WARN([building tests known to fail, use --disable-failing-tests to disable]) -else - AC_MSG_WARN([Sissy ! By asking to not build the tests known to fail, you hereby waive your right to customer support. If you do not agree with this EULA, please press Ctrl-C before the next line is printed. By allowing the next line to be printed, you expressly acknowledge your acceptance of this EULA.]) -fi AC_ARG_ENABLE(examples, -AC_HELP_STRING([--disable-examples],[disable building examples]), + AC_HELP_STRING([--disable-examples],[disable building examples]), [case "${enableval}" in yes) BUILD_EXAMPLES=yes ;; no) BUILD_EXAMPLES=no ;; *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;; esac], [BUILD_EXAMPLES=yes]) dnl Default value -AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes") -dnl poison destroyed objects -AC_ARG_ENABLE(poisoning, -AC_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]), -[case "${enableval}" in - yes) USE_POISONING=yes ;; - no) USE_POISONING=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;; -esac], -[USE_POISONING=no]) dnl Default value - -dnl Next, check for the optional components: -dnl ======================================== - -dnl debugging stuff -AC_ARG_ENABLE(debug, -AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]), -[case "${enableval}" in - yes) USE_DEBUG=yes ;; - no) USE_DEBUG=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; -esac], -[USE_DEBUG=yes]) dnl Default value +dnl seeking needs freetype, so check for it here +AC_CHECK_FT2(2.0.9,HAVE_FT2=yes,HAVE_FT2=no) +dnl make the HAVE_FT2 variable available to automake and Makefile.am +AM_CONDITIONAL(HAVE_FT2, test "x$HAVE_FT2" = "xyes") +AC_SUBST(FT2_CFLAGS) +AC_SUBST(FT2_LIBS) dnl ################################################ dnl # Set defines according to variables set above # dnl ################################################ -dnl These should be "USE_*" instead of "HAVE_*", but some packages expect -dnl HAVE_ and it is likely to be easier to stick with the old name if test "x$USE_LIBMMX" = xyes; then AC_DEFINE(HAVE_LIBMMX, 1, [Define if libmmx is available]) fi @@ -431,54 +1488,11 @@ if test "x$USE_ATOMIC_H" = xyes; then AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available]) fi -if test "x$USE_FAST_STACK_TRASH" = xyes; then - AC_DEFINE(USE_FAST_STACK_TRASH, 1, [Define if we should use i586 optimized stack functions]) -fi - -if test "x$USE_POISONING" = xyes; then - AC_DEFINE(USE_POISONING, 1, [Define if we should poison deallocated memory]) -fi - -dnl test if we have pthread_attr_setstack; if not use the older calls -AC_CHECK_LIB(pthread, pthread_attr_setstack, - AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACK, 1, - [Defined if libpthread has pthread_attr_setstack ()])) - -dnl test if we have posix_memalign; FreeBSD doesn't -AC_CHECK_FUNC(posix_memalign, - AC_DEFINE(HAVE_POSIX_MEMALIGN, 1, - [Defined if we have posix_memalign ()])) - -dnl test for sigaction() -AC_CHECK_FUNC(sigaction, - AC_DEFINE(HAVE_SIGACTION, 1, - [Defined if we have sigaction ()])) - -dnl test for register_printf_function -AC_CHECK_FUNC(register_printf_function, - [ - GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\"" - AC_DEFINE(HAVE_PRINTF_EXTENSION, 1, - [Defined if we have register_printf_function ()]) - ], - GST_PRINTF_EXTENSION_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\"" -) -AC_SUBST(GST_PRINTF_EXTENSION_FORMAT_DEFINE) - -dnl test if we have dladdr(); we use it for debugging -save_cflags="$CFLAGS" -CFLAGS="$CFLAGS -D_GNU_SOURCE" -AC_CHECK_LIB(dl, dladdr, - AC_DEFINE(HAVE_DLADDR, 1, - [Defined if we have dladdr ()])) -CFLAGS="$save_cflags" - -if test "x$PLUGINS_USE_BUILDDIR" = xyes; then - AC_DEFINE(PLUGINS_USE_BUILDDIR, 1, [Define if plugins should be loaded from the build tree - only developers should use this]) -fi +# do not use deprecated stuff +GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED" if test "x$USE_DEBUG" = xyes; then - GST_INT_CFLAGS="$GST_INT_CFLAGS -g" + GST_CFLAGS="$GST_CFLAGS -g" fi dnl ############################# @@ -487,13 +1501,33 @@ dnl ############################# dnl These should be "USE_*" instead of "HAVE_*", but some packages expect dnl HAVE_ and it is likely to be easier to stick with the old name +AM_CONDITIONAL(HAVE_LIBMMX, test "x$USE_LIBMMX" = "xyes") + AM_CONDITIONAL(HAVE_ATOMIC_H, test "x$USE_ATOMIC_H" = "xyes") AM_CONDITIONAL(EXPERIMENTAL, test "$EXPERIMENTAL" = "$xyes") AM_CONDITIONAL(BROKEN, test "$BROKEN" = "$xyes") -AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "xyes") +AM_CONDITIONAL(HAVE_NASM, test "x$HAVE_NASM" = "xyes") +AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes") +AM_CONDITIONAL(HAVE_GTK_DOC, $HAVE_GTK_DOC) +AM_CONDITIONAL(BUILD_DOCS, test "x$BUILD_DOCS" = "xyes") +AM_CONDITIONAL(BUILD_TESTS, test "x$BUILD_TESTS" = "xyes") +AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes") +AM_CONDITIONAL(BUILD_PLUGIN_DOCS, test "x$BUILD_PLUGIN_DOCS" = "xyes") +AM_CONDITIONAL(HAVE_FIG2DEV_PNG, $HAVE_FIG2DEV_PNG) +AM_CONDITIONAL(HAVE_FIG2DEV_PDF, $HAVE_FIG2DEV_PDF) +AM_CONDITIONAL(HAVE_RAW1394, test "x$HAVE_RAW1394" = "xyes") +dnl prefer internal headers to already installed ones +GST_CFLAGS="-I\$(top_srcdir)/gst-libs $GST_CFLAGS $GST_ERROR" + +AC_SUBST(GST_LIBS) +AC_SUBST(GST_CFLAGS) + +dnl ########################### +dnl # Configure external libs # +dnl ########################### dnl ############################ dnl # Set up some more defines # @@ -524,163 +1558,161 @@ esac], AC_MSG_NOTICE(Using $GST_ORIGIN as package origin) AC_DEFINE_UNQUOTED(GST_ORIGIN, "$GST_ORIGIN", [package origin]) -dnl Set location of plugin directory -if test "x${prefix}" = "xNONE"; then - PLUGINS_DIR=${ac_default_prefix}/lib/gstreamer-$GST_MAJORMINOR -else - PLUGINS_DIR=${prefix}/lib/gstreamer-$GST_MAJORMINOR -fi -AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory]) -AC_SUBST(PLUGINS_DIR) - -dnl Set location of uninstalled plugin directory -PLUGINS_BUILDDIR=`pwd` -AC_DEFINE_UNQUOTED(PLUGINS_BUILDDIR, "$PLUGINS_BUILDDIR", [Define the uninstalled plugin directory]) -AC_SUBST(PLUGINS_BUILDDIR) - -dnl since glib and xml are package deps, there's no need to include their cflags -dnl in the pkg-config file - -dnl for pkg-config -GST_PKG_CFLAGS=$GST_EXT_CFLAGS -GST_PKG_LIBS=$GST_EXT_LIBS -AC_SUBST(GST_PKG_CFLAGS) -AC_SUBST(GST_PKG_LIBS) - -dnl finalize _CFLAGS and _LIBS -dnl add GLIB and XML if necessary to EXT_* -GST_CFLAGS="$GST_EXT_CFLAGS $XML_CFLAGS $GLIB_CFLAGS" -GST_LIBS="$GST_EXT_LIBS $XML_LIBS $GLIB_LIBS -lpopt" - -dnl Private vars for libgst only -LIBGST_LIBS="$GST_LIBS" -LIBGST_CFLAGS="$GST_CFLAGS -I\$(top_srcdir) $GST_ERROR" -AC_SUBST(LIBGST_LIBS) -AC_SUBST(LIBGST_CFLAGS) - -dnl Vars for everyone else -GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la" -GST_INT_CFLAGS="$GST_INT_CFLAGS -I\$(top_srcdir)/libs -I\$(top_srcdir)/include" - -AC_SUBST(GST_CFLAGS, "$LIBGST_CFLAGS $GST_INT_CFLAGS") -AC_SUBST(GST_LIBS, "$LIBGST_LIBS $GST_INT_LIBS") - -GST_PLUGIN_LDFLAGS="-module -avoid-version" -AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS") - - -dnl ################################################## -dnl # deps for examples from manual # -dnl ################################################## - -PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0, - HAVE_LIBGNOMEUI="yes", HAVE_LIBGNOMEUI="no") -AC_SUBST(LIBGNOMEUI_CFLAGS) -AC_SUBST(LIBGNOMEUI_LIBS) -AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes") - -dnl ################################################## -dnl # Prepare informative messages to display at end # -dnl ################################################## - -infomessages= - -if test "x$PLUGINS_USE_BUILDDIR" = xyes; then - infomessages="$infomessages -*** Warning: You have configured using the --enable-plugin-builddir option. - -This option is for development purposes only: binaries built with -it should be used with code in the build tree only. To build an -installable version, use ./configure without the --enable-plugin-builddir -option. Note that the autogen.sh script supplies the plugin builddir -option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make -an installable build. - -" -fi - dnl ######################### dnl # Make the output files # dnl ######################### -dnl libs/ext/Makefile -dnl nothing there yet ! -AC_OUTPUT( +AC_CONFIG_FILES( Makefile -include/Makefile +pkgconfig/gstreamer-libs.pc +pkgconfig/gstreamer-libs-uninstalled.pc +pkgconfig/gstreamer-play.pc +pkgconfig/gstreamer-play-uninstalled.pc +pkgconfig/gstreamer-interfaces.pc +pkgconfig/gstreamer-interfaces-uninstalled.pc +gst-libs/gst/gconf/gstreamer-gconf.pc +gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc +gst-plugins.spec gst/Makefile -gst/gstconfig.h -gst/gstversion.h -gst/autoplug/Makefile -gst/indexers/Makefile -gst/elements/Makefile -gst/parse/Makefile -gst/schedulers/Makefile -gst/registries/Makefile -libs/Makefile -libs/gst/Makefile -libs/gst/bytestream/Makefile -libs/gst/control/Makefile -libs/gst/getbits/Makefile -po/Makefile.in -tests/Makefile -tests/bufspeed/Makefile -tests/instantiate/Makefile -tests/memchunk/Makefile -tests/muxing/Makefile -tests/seeking/Makefile -tests/sched/Makefile -tests/threadstate/Makefile -testsuite/Makefile -testsuite/bins/Makefile -testsuite/bytestream/Makefile -testsuite/caps/Makefile -testsuite/cleanup/Makefile -testsuite/clock/Makefile -testsuite/debug/Makefile -testsuite/dynparams/Makefile -testsuite/elements/Makefile -testsuite/ghostpads/Makefile -testsuite/indexers/Makefile -testsuite/parse/Makefile -testsuite/plugin/Makefile -testsuite/refcounting/Makefile -testsuite/tags/Makefile -testsuite/threads/Makefile +gst/adder/Makefile +gst/avi/Makefile +gst/cdxaparse/Makefile +gst/colorspace/Makefile +gst/effectv/Makefile +gst/goom/Makefile +gst/id3/Makefile +gst/law/Makefile +gst/level/Makefile +gst/matroska/Makefile +gst/mpeg1sys/Makefile +gst/mpegaudio/Makefile +gst/modplug/Makefile +gst/modplug/libmodplug/Makefile +gst/playondemand/Makefile +gst/sine/Makefile +gst/spectrum/Makefile +gst/speed/Makefile +gst/tags/Makefile +gst/vbidec/Makefile +gst/videodrop/Makefile +gst/videofilter/Makefile +gst/videoflip/Makefile +gst/videoscale/Makefile +gst/videotestsrc/Makefile +gst/volume/Makefile +gst/wavenc/Makefile +gst/wavparse/Makefile +sys/Makefile +sys/cdrom/Makefile +sys/dxr3/Makefile +sys/glsink/Makefile +sys/oss/Makefile +sys/qcam/Makefile +sys/v4l/Makefile +sys/v4l2/Makefile +sys/vcd/Makefile +sys/ximage/Makefile +sys/xvimage/Makefile +sys/xvideo/Makefile +ext/Makefile +ext/a52dec/Makefile +ext/aalib/Makefile +ext/alsa/Makefile +ext/arts/Makefile +ext/artsd/Makefile +ext/audiofile/Makefile +ext/cdparanoia/Makefile +ext/divx/Makefile +ext/dv/Makefile +ext/dvdread/Makefile +ext/dvdnav/Makefile +ext/esd/Makefile +ext/faac/Makefile +ext/faad/Makefile +ext/flac/Makefile +ext/gdk_pixbuf/Makefile +ext/gnomevfs/Makefile +ext/gsm/Makefile +ext/hermes/Makefile +dnl ext/http/Makefile +ext/jack/Makefile +ext/jpeg/Makefile +ext/ladspa/Makefile +ext/lame/Makefile +ext/ivorbis/Makefile +ext/lcs/Makefile +ext/libcaca/Makefile +ext/libfame/Makefile +ext/libpng/Makefile +ext/librfb/Makefile +ext/mad/Makefile +ext/mas/Makefile +ext/mikmod/Makefile +ext/mpeg2dec/Makefile +ext/mpeg2enc/Makefile +ext/mplex/Makefile +ext/musicbrainz/Makefile +ext/nas/Makefile +ext/ogg/Makefile +ext/pango/Makefile +ext/raw1394/Makefile +ext/sdl/Makefile +ext/shout/Makefile +ext/shout2/Makefile +ext/sidplay/Makefile +ext/smoothwave/Makefile +ext/snapshot/Makefile +ext/speex/Makefile +ext/sndfile/Makefile +ext/swfdec/Makefile +ext/tarkin/Makefile +ext/theora/Makefile +ext/vorbis/Makefile +ext/xvid/Makefile +gst-libs/Makefile +gst-libs/gst/Makefile +gst-libs/gst/audio/Makefile +gst-libs/gst/colorbalance/Makefile +gst-libs/gst/floatcast/Makefile +gst-libs/gst/gconf/Makefile +gst-libs/gst/idct/Makefile +gst-libs/gst/media-info/Makefile +gst-libs/gst/mixer/Makefile +gst-libs/gst/navigation/Makefile +gst-libs/gst/play/Makefile +gst-libs/gst/propertyprobe/Makefile +gst-libs/gst/resample/Makefile +gst-libs/gst/riff/Makefile +gst-libs/gst/tag/Makefile +gst-libs/gst/tuner/Makefile +gst-libs/gst/video/Makefile +gst-libs/gst/xoverlay/Makefile +gst-libs/gst/xwindowlistener/Makefile +gst-libs/ext/Makefile +examples/dynparams/Makefile +examples/capsfilter/Makefile +examples/seeking/Makefile +examples/indexing/Makefile +examples/gstplay/Makefile +examples/switch/Makefile examples/Makefile -examples/cutter/Makefile -examples/helloworld/Makefile -examples/launch/Makefile -examples/manual/Makefile -examples/mixer/Makefile -examples/pingpong/Makefile -examples/plugins/Makefile -examples/queue/Makefile -examples/queue2/Makefile -examples/queue3/Makefile -examples/queue4/Makefile -examples/retag/Makefile -examples/thread/Makefile -examples/typefind/Makefile -examples/xml/Makefile +testsuite/spider/Makefile +testsuite/alsa/Makefile +testsuite/Makefile tools/Makefile -docs/Makefile -docs/faq/Makefile -docs/gst/Makefile -docs/libs/Makefile -docs/manual/Makefile -docs/plugins/Makefile -docs/plugins/gstreamer-plugins.types -docs/pwg/Makefile -docs/xsl/Makefile -docs/version.entities +tools/gst-launch-ext +gconf/Makefile pkgconfig/Makefile -stamp.h -pkgconfig/gstreamer.pc -pkgconfig/gstreamer-uninstalled.pc -pkgconfig/gstreamer-control.pc -pkgconfig/gstreamer-control-uninstalled.pc -gstreamer.spec, -echo "$infomessages", infomessages="$infomessages" +po/Makefile.in ) +AC_OUTPUT +echo -n "configure: *** Plug-ins that will be built :" +echo -e "$GST_PLUGINS_YES" | sort +echo +echo -n "configure: *** Plug-ins that will not be built :" +echo -e "$GST_PLUGINS_NO" | sort +echo +if test "x$BUILD_EXTERNAL" = "xno"; then + echo "configure: *** No external plug-ins will be built" +fi