Change strtod() -> g_ascii_strtod(), since strtod() is locale dependent.
[platform/upstream/gstreamer.git] / configure.ac
index 9e9c91b..b1d5c1a 100644 (file)
@@ -3,11 +3,26 @@ 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, 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)
@@ -16,11 +31,15 @@ dnl Add parameters for aclocal
 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
@@ -48,6 +67,12 @@ AC_ARG_WITH(pkg-config-path,
 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)
@@ -77,6 +102,9 @@ 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
@@ -95,6 +123,16 @@ AC_MSG_RESULT(no)
 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 ====================================
 
@@ -105,8 +143,7 @@ GLIB2_REQ="2.0.1"
 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)
@@ -121,34 +158,36 @@ AC_SUBST(GST_PKG_DEPS)
   
 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
@@ -157,22 +196,21 @@ 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 ######################################################################
@@ -198,6 +236,16 @@ 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
@@ -207,8 +255,6 @@ AC_HELP_STRING([--enable-plugin-builddir],[allow tests/demos to use non-installe
 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
@@ -218,28 +264,13 @@ AC_HELP_STRING([--enable-profiling],[adds -pg to compiler commandline, for profi
 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]),
@@ -294,6 +325,18 @@ AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
 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)
@@ -304,10 +347,19 @@ translit(dnm, m, l) AM_CONDITIONAL(GST_DISABLE_PARSE, 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 #
@@ -324,6 +376,10 @@ 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
+
 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, 
@@ -334,6 +390,11 @@ 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 ()]))
+
 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
@@ -371,19 +432,15 @@ dnl ############################
 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)
@@ -414,14 +471,14 @@ AC_SUBST(LIBGST_LIBS)
 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)
 
@@ -449,7 +506,7 @@ 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-buildddir to make
+option automatically -- run ./autogen.sh -- --disable-plugin-builddir to make
 an installable build.
 
 "
@@ -460,12 +517,15 @@ dnl # Make the output files #
 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
@@ -490,8 +550,11 @@ testsuite/bytestream/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
@@ -514,20 +577,20 @@ examples/typefind/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"
 )