diff --git a/configure.ac b/configure.ac index 66cae65de8..6041a6fb9b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,48 +1,36 @@ -dnl autoconf configuration file for gst-plugins AC_INIT AC_CANONICAL_TARGET([]) -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 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 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_PLUGINS_VERSION_MAJOR.$GST_PLUGINS_VERSION_MINOR +GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_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_PLUGINS, 2, 0, 0) +AS_LIBTOOL(GST, 6, 0, 0) AM_PROG_LIBTOOL -dnl FIXME take something else ? -AC_CONFIG_SRCDIR([gst/law/alaw.c]) +AC_CONFIG_SRCDIR([gst/gst.c]) AM_CONFIG_HEADER(config.h) dnl Add parameters for aclocal -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_SUBST(ACLOCAL_AMFLAGS, "-I common/m4") -AC_PROG_CC AM_PROG_CC_STDC AM_PROG_AS AS="${CC}" @@ -50,43 +38,31 @@ AS="${CC}" dnl the gettext stuff needed AM_GNU_GETTEXT_VERSION(0.11.5) AM_GNU_GETTEXT([external]) - -GETTEXT_PACKAGE=gst-plugins-$GST_MAJORMINOR + +GETTEXT_PACKAGE=gstreamer-$GST_VERSION_MAJOR.$GST_VERSION_MINOR 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_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 +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" fi -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 +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 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 @@ -94,45 +70,28 @@ if test "x$GST_CVS" = "xyes"; then AC_DEFINE(GST_LEVEL_DEFAULT, GST_LEVEL_ERROR, [Default errorlevel to use]) fi -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 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 # Do automated configuration # @@ -146,1283 +105,191 @@ 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}]) -dnl check architecture +GST_DOC() GST_ARCH() -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" +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) fi -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 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 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) +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 ()]) fi -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 for a way to display the function name in debug output +GST_CHECK_FUNCTION() -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) +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) fi -AC_SUBST(GST_CONTROL_LIBS) +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'` -dnl Determine endianness -AC_C_BIGENDIAN + 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 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 ==================================== -GST_GLIB2_CHECK() +dnl === GLib 2 === +dnl Minimum required version of GLib2 +dnl required for compilation without warnings +GLIB2_REQ="2.2" +AC_SUBST(GLIB2_REQ) -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 - 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) +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) -# 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 +if test "x$HAVE_GLIB2" = "xno"; then + AC_MSG_ERROR([GStreamer requires GLib 2.0 to compile.]) fi -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]) +GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0" +AC_SUBST(GST_PKG_DEPS) - # 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"; +dnl === libxml 2 === +if test "x$GST_DISABLE_LOADSAVE" = "xyes" && test "x$GST_DISABLE_REGISTRY" = "xyes" then - USE_ARTS=no + AC_MSG_NOTICE([Registry and load/save are disabled, not checking for libxml2]) +else + dnl check for libxml2 with minimum req version + GST_LIBXML2_CHECK(2.4.9) 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[]) +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 () { - MPEG2EncOptions *options = new MPEG2EncOptions (); - MPEG2Encoder encoder (*options); +#ifndef POPT_TABLEEND +#error +#else 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" - ], ) +} +],, [ + 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/]) ]) - -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_TRY_RUN([ + AC_LINK_IFELSE([ #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 ;; @@ -1431,7 +298,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;; @@ -1440,9 +307,27 @@ AC_ARG_ENABLE(atomic, 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], - [-pg to compiler commandline, for profiling]), +AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]), [case "${enableval}" in yes) USE_PROFILING=yes ;; no) UES_PROFILING=no ;; @@ -1450,36 +335,94 @@ AC_ARG_ENABLE(profiling, 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 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 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 ################################################ 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 @@ -1488,11 +431,54 @@ if test "x$USE_ATOMIC_H" = xyes; then AC_DEFINE(HAVE_ATOMIC_H, 1, [Define if atomic.h header file is available]) fi -# do not use deprecated stuff -GST_CFLAGS="$GST_CFLAGS -DGST_DISABLE_DEPRECATED" +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 if test "x$USE_DEBUG" = xyes; then - GST_CFLAGS="$GST_CFLAGS -g" + GST_INT_CFLAGS="$GST_INT_CFLAGS -g" fi dnl ############################# @@ -1501,33 +487,13 @@ 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(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") +AM_CONDITIONAL(PLUGINS_USE_BUILDDIR, test "x$PLUGINS_USE_BUILDDIR" = "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 # @@ -1558,161 +524,163 @@ 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 ######################### -AC_CONFIG_FILES( +dnl libs/ext/Makefile +dnl nothing there yet ! +AC_OUTPUT( 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 +include/Makefile gst/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 -testsuite/spider/Makefile -testsuite/alsa/Makefile -testsuite/Makefile -tools/Makefile -tools/gst-launch-ext -gconf/Makefile -pkgconfig/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 +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 +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 +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" ) -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