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, 4, 2, 1, GST_ERROR="-Wall", GST_ERROR="-Wall -Werror")
+AS_VERSION(gstreamer, GST_VERSION, 0, 7, 0, 1, GST_CVS="no", GST_CVS="yes")
+
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
AM_MAINTAINER_MODE
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)
-AS_LIBTOOL(GST, 0, 0, 0, yes)
+
+dnl our libraries and install dirs use major.minor as a version
+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, 3, 0, 0)
AC_CONFIG_SRCDIR([gst/gst.c])
AM_CONFIG_HEADER(config.h)
dnl (This must come after AM_INIT_AUTOMAKE, since it modifies ACLOCAL)
ACLOCAL="$ACLOCAL -I common/m4 $ACLOCAL_FLAGS"
-AC_PROG_CC
AM_PROG_CC_STDC
AM_PROG_AS
AS="${CC}"
-AC_ISC_POSIX
+
+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")
+fi
dnl We disable static building for development, for time savings
dnl *NOTE*: dnl this line before release, so release does static too
GST_DOC()
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)
+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)
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
AC_MSG_RESULT(no)
])
+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
+
+dnl Check for a way to display the function name in debug output
+GST_CHECK_FUNCTION()
+
dnl Check for essential libraries first:
dnl ====================================
AC_SUBST(GLIB2_REQ)
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)
+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)
dnl === libxml 2 ===
dnl Minimum required version of libxml2
-LIBXML2_REQ="2.4.0"
+LIBXML2_REQ="2.4.9"
AC_SUBST(LIBXML2_REQ)
dnl check for libxml2
GST_LIBXML2_CHECK()
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.1 or newer is required to build gstreamer. You can
+ AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
download the latest version from
- ftp://people.redhat.com/sopwith/popt/])
+ ftp://ftp.rpm.org/pub/rpm/dist/])
)
AC_MSG_NOTICE(Checking for POPT_TABLEEND)
-AC_TRY_RUN([
+AC_COMPILE_IFELSE([
#include <popt.h>
int main ()
{
#ifndef POPT_TABLEEND
- return 1;
+#error
#else
return 0;
#endif
}
],, [
dnl it failed
- AC_MSG_ERROR([popt 1.6.1 or newer is required to build gstreamer. You can
+ AC_MSG_ERROR([popt 1.6.3 or newer is required to build gstreamer. You can
download the latest version from
- ftp://people.redhat.com/sopwith/popt/])
+ ftp://ftp.rpm.org/pub/rpm/dist/])
])
dnl Check for 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 ######################################################################
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
esac],
[PLUGINS_USE_BUILDDIR=no]) dnl Default value
-GST_DEBUGINFO
-
AC_ARG_ENABLE(profiling,
AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profiling]),
[case "${enableval}" in
esac],
[USE_PROFILING=no]) dnl Default value
-dnl set up a configuration dir
-GST_CONFIG_DIR=${sysconfdir}/gstreamer
-AC_ARG_WITH(configdir,
-AC_HELP_STRING([--with-configdir],[specify path to use for configuration files]),
-[case "${withval}" in
- yes) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
- no) AC_MSG_ERROR(bad value ${withval} for --with-configdir) ;;
- *) GST_CONFIG_DIR="${withval}" ;;
-esac],
-[:]) dnl Default value
-
-AS_AC_EXPAND(GST_CONFIG_DIR, $GST_CONFIG_DIR)
-AC_MSG_NOTICE(Using $GST_CONFIG_DIR as configuration dir)
-
-
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_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]),
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
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, true)
+GST_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
+
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_LOADSAVE, true)
GST_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TYPEFIND, true)
GST_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_TRACE, true)
GST_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, true)
+GST_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing])
+
translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_REGISTRY, true)
GST_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
-
-GST_EXT_CFLAGS="$GST_EXT_CFLAGS $GST_SUBSYSTEM_DISABLE_DEFINES"
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_ENUMTYPES, true)
+GST_SUBSYSTEM_DISABLE(ENUMTYPES,[enum types])
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_INDEX, true)
+GST_SUBSYSTEM_DISABLE(INDEX,[index])
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PLUGIN, true)
+GST_SUBSYSTEM_DISABLE(PLUGIN,[plugin])
+translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_URI, true)
+GST_SUBSYSTEM_DISABLE(URI,[uri handlers])
dnl ################################################
dnl # Set defines according to variables set above #
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
+
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,
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 ()]))
+
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
dnl # Set up some more defines #
dnl ############################
-dnl Set location of configuration dir.
-AC_DEFINE_UNQUOTED(GST_CONFIG_DIR, "$GST_CONFIG_DIR", [Define the configuration directory])
-AC_SUBST(GST_CONFIG_DIR)
-
dnl Set location of registry dir.
AC_DEFINE_UNQUOTED(GST_CACHE_DIR, "$GST_CACHE_DIR", [Define the registry directory])
AC_SUBST(GST_CACHE_DIR)
dnl Set location of plugin directory
if test "x${prefix}" = "xNONE"; then
- PLUGINS_DIR=${ac_default_prefix}/lib/gst
+ PLUGINS_DIR=${ac_default_prefix}/lib/gstreamer-$GST_MAJORMINOR
else
- PLUGINS_DIR=${prefix}/lib/gst
+ PLUGINS_DIR=${prefix}/lib/gstreamer-$GST_MAJORMINOR
fi
AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
AC_SUBST(PLUGINS_DIR)
AC_SUBST(LIBGST_CFLAGS)
dnl Vars for everyone else
-GST_INT_LIBS="\$(top_builddir)/gst/libgstreamer.la"
+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="-module -avoid-version"
+AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
AC_CONFIG_SUBDIRS(libs/ext/cothreads)
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-buildddir to make
+option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
an installable build.
"
dnl #########################
dnl libs/ext/Makefile
+dnl nothing there yet !
AC_OUTPUT(
Makefile
include/Makefile
gst/Makefile
+gst/gstconfig.h
gst/gstversion.h
gst/autoplug/Makefile
+gst/indexers/Makefile
gst/elements/Makefile
gst/parse/Makefile
gst/schedulers/Makefile
testsuite/caps/Makefile
testsuite/cleanup/Makefile
testsuite/clock/Makefile
+testsuite/debug/Makefile
testsuite/dynparams/Makefile
testsuite/elements/Makefile
+testsuite/indexers/Makefile
+testsuite/parse/Makefile
testsuite/plugin/Makefile
testsuite/refcounting/Makefile
testsuite/threads/Makefile
examples/xml/Makefile
tools/Makefile
docs/Makefile
-docs/devhelp/Makefile
-docs/devhelp/html2xml.py
docs/faq/Makefile
docs/gst/Makefile
-docs/gst/gstreamer.types
docs/libs/Makefile
docs/manual/Makefile
docs/pwg/Makefile
docs/plugins/Makefile
docs/plugins/gstreamer-plugins.types
docs/xsl/Makefile
+pkgconfig/Makefile
stamp.h
-gstreamer.pc
-gstreamer-uninstalled.pc
+pkgconfig/gstreamer.pc
+pkgconfig/gstreamer-uninstalled.pc
+pkgconfig/gstreamer-control.pc
+pkgconfig/gstreamer-control-uninstalled.pc
gstreamer.spec,
echo "$infomessages", infomessages="$infomessages"
)