Change strtod() -> g_ascii_strtod(), since strtod() is locale dependent.
[platform/upstream/gstreamer.git] / configure.ac
index b48c249..b1d5c1a 100644 (file)
@@ -3,7 +3,8 @@ 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, 5, 0, 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)
@@ -12,12 +13,16 @@ 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, 1, 0, 0)
+AS_LIBTOOL(GST, 3, 0, 0)
 
 AC_CONFIG_SRCDIR([gst/gst.c])
 AM_CONFIG_HEADER(config.h)
@@ -26,13 +31,16 @@ 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
-dnl For interactive UNIX (a Sun thing)
-AC_ISC_POSIX
 AM_PROG_CC_STDC
 AM_PROG_AS
 AS="${CC}"
 
+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
 dnl AM_DISABLE_STATIC
@@ -59,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)
@@ -88,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
@@ -107,7 +124,11 @@ AC_MSG_RESULT(no)
 ])
 
 dnl check for makecontext and define HAVE_MAKECONTEXT if we have it
-GST_CHECK_MAKECONTEXT()
+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()
@@ -122,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)
@@ -145,27 +165,29 @@ 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
@@ -174,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 ######################################################################
@@ -215,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
@@ -224,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
@@ -296,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)
@@ -306,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 #
@@ -326,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, 
@@ -336,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
@@ -418,7 +477,7 @@ 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'
+GST_PLUGIN_LDFLAGS="-module -avoid-version"
 AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
 
 AC_CONFIG_SUBDIRS(libs/ext/cothreads)
@@ -447,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.
 
 "
@@ -458,13 +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/caches/Makefile
+gst/indexers/Makefile
 gst/elements/Makefile
 gst/parse/Makefile
 gst/schedulers/Makefile
@@ -489,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
@@ -513,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"
 )