gst/gsttagsetter.h: Can't cast ifaces to a class
[platform/upstream/gstreamer.git] / configure.ac
index 8dc6e97..41c96ad 100644 (file)
@@ -1,13 +1,20 @@
 AC_PREREQ(2.52)
 
 dnl initialize autoconf
-dnl we don't specify PACKAGE and VERSION because AS_VERSION puts it together
-AC_INIT
-
 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, 9, 3, 1,
-    GST_CVS="no", GST_CVS="yes")
+AC_INIT(GStreamer, 0.10.6.1,
+    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
+    gstreamer)
+
+dnl initialize automake
+AM_INIT_AUTOMAKE
+
+dnl define PACKAGE_VERSION_* variables
+AS_VERSION
+
+dnl check if this is a release version
+AS_NANO(GST_CVS="no", GST_CVS="yes")
 
 dnl can autoconf find the source ?
 AC_CONFIG_SRCDIR([gst/gst.c])
@@ -18,24 +25,30 @@ AM_CONFIG_HEADER([config.h])
 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
 AM_MAINTAINER_MODE
 
-dnl initialize automake
-dnl FIXME: this is deprecated use, we should move PACKAGE and VERSION to
-dnl AC_INIT, but then we need to parse the version to pass to AS_VERSION
-AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
+dnl sets host_* variables
+AC_CANONICAL_HOST
 
 dnl our libraries and install dirs use major.minor as a version
-GST_MAJORMINOR=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
+GST_MAJORMINOR=$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR
 dnl we override it here for release candidates for a new series
-# GST_MAJORMINOR=0.9
+GST_MAJORMINOR=0.10
 AC_SUBST(GST_MAJORMINOR)
+AC_DEFINE_UNQUOTED(GST_MAJORMINOR, "$GST_MAJORMINOR",
+  [library major.minor version])
 
 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, 7, 0, 0)
-AS_LIBTOOL_TAGS
+dnl sets GST_LT_LDFLAGS
+AS_LIBTOOL(GST, 7, 0, 7)
+
+dnl FIXME: this macro doesn't actually work;
+dnl the generated libtool script has no support for the listed tags.
+dnl So this needs to be fixed first if we want to use this
+dnl AS_LIBTOOL_TAGS
+
 AM_PROG_LIBTOOL
 
 dnl *** autotools stuff ****
@@ -46,6 +59,12 @@ AS_AUTOTOOLS_ALTERNATE
 dnl Add parameters for aclocal
 AC_SUBST(ACLOCAL_AMFLAGS, "-I common/m4")
 
+dnl set up gettext
+dnl the version check needs to stay here because autopoint greps for it
+AM_GNU_GETTEXT_VERSION([0.11.5])
+AM_GNU_GETTEXT([external])
+GST_GETTEXT([gstreamer-$GST_MAJORMINOR])
+
 dnl *** check for arguments to configure ***
 
 dnl subsystems - can influence other decisions so needs to be high up
@@ -54,18 +73,40 @@ GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem])
 AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_GST_DISABLE_DEBUG" = "xyes")
 GST_CHECK_SUBSYSTEM_DISABLE(LOADSAVE,[pipeline XML load/save])
 AM_CONDITIONAL(GST_DISABLE_LOADSAVE, test "x$GST_DISABLE_LOADSAVE" = "xyes")
+dnl define a substitution to use in docs/gst/gstreamer.types
+if test "x$GST_DISABLE_LOADSAVE" = "xyes"
+then
+  GST_LOADSAVE_DOC_TYPES="%"
+else
+  GST_LOADSAVE_DOC_TYPES=
+fi
+AC_SUBST(GST_LOADSAVE_DOC_TYPES)
 GST_CHECK_SUBSYSTEM_DISABLE(PARSE,[command-line parser])
 AM_CONDITIONAL(GST_DISABLE_PARSE, test "x$GST_DISABLE_PARSE" = "xyes")
+if test "x$GST_DISABLE_PARSE" = xyes; then
+  AC_DEFINE(GST_DISABLE_PARSE, 1,
+    [Define if pipeline parsing code is disabled])
+fi
 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")
+dnl define a substitution to use in docs/gst/gstreamer.types
+if test "x$GST_DISABLE_REGISTRY" = "xyes"
+then
+  GST_REGISTRY_DOC_TYPES="%"
+else
+  GST_REGISTRY_DOC_TYPES=
+fi
+AC_SUBST(GST_REGISTRY_DOC_TYPES)
 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(NET,[network distribution])
+AM_CONDITIONAL(GST_DISABLE_NET, test "x$GST_DISABLE_NET" = "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])
@@ -76,8 +117,10 @@ GST_ARG_PROFILING
 GST_ARG_VALGRIND
 GST_ARG_GCOV
 
+GST_ARG_EXAMPLES
+
 GST_ARG_WITH_PKG_CONFIG_PATH
-GST_ARG_WITH_PACKAGE_NAME([GStreamer])
+GST_ARG_WITH_PACKAGE_NAME
 GST_ARG_WITH_PACKAGE_ORIGIN
 
 dnl use a cache dir for storing element registry info.
@@ -131,18 +174,6 @@ 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]),
-    [
-      case "${enableval}" in
-        yes) BUILD_EXAMPLES=yes ;;
-        no)  BUILD_EXAMPLES=no ;;
-        *)   AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;;
-      esac
-    ], 
-    [BUILD_EXAMPLES=yes]) dnl Default value
-AM_CONDITIONAL(BUILD_EXAMPLES,      test "x$BUILD_EXAMPLES" = "xyes")
-
 dnl poison destroyed objects
 AC_ARG_ENABLE(poisoning,
   AC_HELP_STRING([--enable-poisoning],
@@ -160,13 +191,16 @@ if test "x$USE_POISONING" = xyes; then
     [Define if we should poison deallocated memory])
 fi
 
-dnl *** platform checks ***
+dnl *** checks for platform ***
 
 dnl * hardware/architecture *
 
 dnl common/m4/gst-arch.m4
 dnl check CPU type
 GST_ARCH
+dnl substitution for win32/common/config.h
+HOST_CPU=$host_cpu
+AC_SUBST(HOST_CPU)
 
 dnl common/m4/gst-arch.m4
 dnl check for unaligned access
@@ -179,7 +213,6 @@ else
 fi
 AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE)
 
-
 dnl * software *
 
 dnl check for large file support
@@ -244,6 +277,7 @@ AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 dnl check for documentation tools
 GST_DOCBOOK_CHECK
 GTK_DOC_CHECK([1.3])
+AS_PATH_PYTHON([2.1])
 
 dnl *** checks for libraries ***
 
@@ -260,11 +294,39 @@ dnl Check for ucontext.h
 AC_CHECK_HEADERS([ucontext.h])
 AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes)
 AM_CONDITIONAL(HAVE_SYS_SOCKET_H, test "x$HAVE_SYS_SOCKET_H" = "xyes")
+AC_CHECK_HEADERS([process.h])
+
+dnl *** checks for types/defines ***
+
+dnl *** checks for structures ***
+
+dnl *** checks for compiler characteristics ***
+
+dnl make sure we can use "inline" from C code
+AC_C_INLINE
+
+OPT_CFLAGS=
+dnl Check for some compiler flags that optimize our code.
+if test "x$GCC" = xyes; then
+  AS_COMPILER_FLAG(-fno-common, OPT_CFLAGS="$OPT_CFLAGS -fno-common")
+fi
+
+dnl FIXME: decide what kind of flag this is, maybe it's not an optimization
+dnl flag
+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"],
+    [OPT_CFLAGS="$OPT_CFLAGS -Wa,-mregnames"])
+fi
 
 dnl *** checks for library functions ***
 
 AC_CHECK_FUNCS([sigaction])
 
+dnl we use fork in the registry code
+AC_CHECK_FUNCS([fork])
+
 dnl check for fseeko()
 AC_FUNC_FSEEKO
 dnl check for ftello()
@@ -277,14 +339,6 @@ dnl check for mmap()
 AC_FUNC_MMAP
 AM_CONDITIONAL(HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes")
 
-dnl common/m4/gst-mcsc.m4
-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, 1,
-                     [defined if we have makecontext ()])
-fi
-
 dnl Check for a way to display the function name in debug output
 GST_CHECK_FUNCTION
 
@@ -307,60 +361,14 @@ AC_CHECK_LIB(dl, dladdr,
              [Defined if we have dladdr ()]))
 CFLAGS="$save_cflags"
 
-dnl *** checks for compiler characteristics ***
-
-dnl make sure we can use "inline" from C code
-AC_C_INLINE
-
-dnl *** TODO: decide where to put ***
-
-dnl set up gettext
-GST_GETTEXT([gstreamer-$GST_MAJORMINOR])
-
-dnl define an ERROR_CFLAGS Makefile variable
-GST_SET_ERROR_CFLAGS($GST_CVS)
-
-dnl define correct errorlevel for debugging messages. We want to have GST_ERROR
-dnl messages printed when running cvs builds
-if test "x$GST_CVS" = "xyes"; then
-  GST_LEVEL_DEFAULT=GST_LEVEL_ERROR
-else
-  GST_LEVEL_DEFAULT=GST_LEVEL_NONE
-fi
-AC_DEFINE_UNQUOTED(GST_LEVEL_DEFAULT, $GST_LEVEL_DEFAULT,
-  [Default errorlevel to use])
-AC_SUBST(GST_LEVEL_DEFAULT)
-
-dnl *** checks for dependency libraries ***
+dnl *** checks for dependancy libraries ***
 
 dnl GLib
 
-dnl Minimum required version of GLib
-GLIB_REQ="2.6"
-AC_SUBST(GLIB_REQ)
-
-dnl Check for glib2 with sugar on top
-PKG_CHECK_MODULES(GLIB,
-    glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-2.0,
-    HAVE_GLIB=yes,
-    HAVE_GLIB=no)
-
-if test "x$HAVE_GLIB" = "xno"; then
-  AC_MSG_ERROR([GStreamer requires GLib >= $GLIB_REQ to compile.])
-fi
-
-dnl for the poor souls who for example have glib in /usr/local
-AS_SCRUB_INCLUDE(GLIB_CFLAGS)
+GST_GLIB_CHECK([2.8])
 
-dnl GLib 2.8 has some bug fixes that we like, so make sure our code knows
-AC_MSG_CHECKING([glib version >= 2.8])
-if pkg-config --atleast-version=2.8 glib-2.0; then
-  AC_MSG_RESULT(yes)
-  GST_HAVE_GLIB_2_8_DEFINE="#define GST_HAVE_GLIB_2_8 1"
-else
-  AC_MSG_RESULT(no)
-  GST_HAVE_GLIB_2_8_DEFINE="/* #undef GST_HAVE_GLIB_2_8 */"
-fi
+dnl Guess we need to keep this around until 0.11
+GST_HAVE_GLIB_2_8_DEFINE="#define GST_HAVE_GLIB_2_8 1"
 AC_SUBST(GST_HAVE_GLIB_2_8_DEFINE)
 
 dnl Check for glib2 without extra fat, useful for the unversioned tool frontends
@@ -386,22 +394,7 @@ AM_PATH_CHECK(0.9.2,
     HAVE_CHECK=no)
 AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_CHECK" = "xyes")
 
-OPT_CFLAGS=
-dnl Check for some compiler flags that optimize our code.
-if test "x$GCC" = xyes; then
-  AS_COMPILER_FLAG(-fno-common, OPT_CFLAGS="$OPT_CFLAGS -fno-common")
-fi
-
-dnl FIXME: decide what kind of flag this is, maybe it's not an optimization
-dnl flag
-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"],
-    [OPT_CFLAGS="$OPT_CFLAGS -Wa,-mregnames"])
-fi
-
-dnl *** FIXME: name this part
+dnl *** set variables based on configure arguments
 
 dnl set license and copyright notice
 GST_LICENSE="LGPL"
@@ -413,25 +406,25 @@ AS_AC_EXPAND(LIBDIR, $libdir)
 AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir])
 
 dnl set location of plugin directory
-AS_AC_EXPAND(PLUGINS_DIR, ${libdir}/gstreamer-$GST_MAJORMINOR)
-AC_DEFINE_UNQUOTED(PLUGINS_DIR, "$PLUGINS_DIR", [Define the plugin directory])
-AC_SUBST(PLUGINS_DIR)
-AC_MSG_NOTICE([Using $PLUGINS_DIR as the plugin install location])
-
-dnl plugin directory configure-time variable for use in Makefile.am
-plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR"
-AC_SUBST(plugindir)
+GST_SET_PLUGINDIR
 
 dnl FIXME: add LIBXML_PKG here
 GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-2.0, gthread-2.0"
 AC_SUBST(GST_PKG_DEPS)
 
+dnl define an ERROR_CFLAGS Makefile variable
+GST_SET_ERROR_CFLAGS($GST_CVS)
+
+dnl define correct level for debugging messages
+GST_SET_LEVEL_DEFAULT($GST_CVS)
+
 dnl *** finalize CFLAGS, LDFLAGS, LIBS
 
 dnl Overview:
-dnl GST_OPTION_CFLAGS:  common flags for profiling, debugging, errors, ...
-dnl GST_ALL_*:          flags shared by all built objects
-dnl GST_OBJ_*:          additional flags to link to the core library
+dnl GST_OPTION_CFLAGS:  common cflags for profiling, debugging, errors, ...
+dnl GST_ALL_*:          vars shared by all built objects
+dnl GST_LIB_LDFLAGS:    additional linker flags for all libaries
+dnl GST_OBJ_*:          additional vars to link to the core library
 dnl                    include GST_ALL_*
 dnl GST_LT_LDFLAGS:    library versioning of our libraries
 dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins
@@ -456,109 +449,80 @@ dnl - XML needs to be added because xmlPtr is used in core
 dnl - src and build dirs need to be added because every piece that gets built
 dnl   will need the GStreamer source and generated headers
 dnl LIBS: XML doesn't need to be added because we don't explicitly use symbols
-dnl       from LibXML
+dnl       from LibXML except for in the core library
 GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir) $GLIB_CFLAGS $XML_CFLAGS \$(GST_OPTION_CFLAGS)"
 dnl FIXME: check if LTLIBINTL is needed everywhere
 dnl I presume it is given that it contains the symbols that _() stuff maps to
 GST_ALL_LIBS="$GLIB_LIBS $LTLIBINTL"
-dnl LDFLAGS modifier defining exported symbols from built shared objects
-EXPORT_LDFLAGS="-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*"
-GST_ALL_LDFLAGS="$EXPORT_LDFLAGS -no-undefined"
+dnl LDFLAGS really should only contain flags, not libs - they get added before
+dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
+GST_ALL_LDFLAGS="-no-undefined"
+
 AC_SUBST(GST_ALL_CFLAGS)
 AC_SUBST(GST_ALL_LIBS)
 AC_SUBST(GST_ALL_LDFLAGS)
 
+dnl GST_LIB_LDFLAGS
+dnl linker flags shared by all libraries
+dnl LDFLAGS modifier defining exported symbols from built libraries
+GST_LIB_LDFLAGS="-export-symbols-regex [_]*\(gst_\|Gst\|GST_\).*"
+AC_SUBST(GST_LIB_LDFLAGS)
+
 dnl GST_OBJ_*
 dnl default vars for all internal objects built on libgstreamer
+dnl includes GST_ALL_*
 GST_OBJ_CFLAGS="\$(GST_ALL_CFLAGS)"
 GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_MAJORMINOR.la \$(GST_ALL_LIBS)"
-GST_OBJ_LDFLAGS="$GST_LT_LDFLAGS $GST_ALL_LDFLAGS"
 AC_SUBST(GST_OBJ_CFLAGS)
 AC_SUBST(GST_OBJ_LIBS)
-AC_SUBST(GST_OBJ_LDFLAGS)
 
 dnl GST_PLUGIN_LDFLAGS
-dnl LDFLAGS for plugins; include GST_ALL_LDFLAGS
-GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
+dnl LDFLAGS for plugins; includes GST_ALL_LDFLAGS
+GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc\$\$' $GST_ALL_LDFLAGS"
 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")
-AM_CONDITIONAL(HAVE_LIBGNOMEUI, test "x$HAVE_LIBGNOMEUI" = "xyes")
-
-dnl ##################################################
-dnl # Prepare informative messages to display at end #
-dnl ##################################################
-
-infomessages=
-
-dnl *** output files ***
-
-dnl libs/ext/Makefile
-dnl nothing there yet !
 AC_CONFIG_FILES(
 Makefile
 gst/Makefile
 gst/gstconfig.h
 gst/gstversion.h
-gst/base/Makefile
-gst/check/Makefile
-gst/indexers/Makefile
-gst/elements/Makefile
 gst/parse/Makefile
 libs/Makefile
 libs/gst/Makefile
+libs/gst/base/Makefile
+libs/gst/check/Makefile
 libs/gst/controller/Makefile
 libs/gst/dataprotocol/Makefile
+libs/gst/net/Makefile
+plugins/Makefile
+plugins/indexers/Makefile
+plugins/elements/Makefile
 po/Makefile.in
-check/Makefile
 tests/Makefile
-tests/instantiate/Makefile
-tests/muxing/Makefile
-tests/seeking/Makefile
-tests/sched/Makefile
-tests/threadstate/Makefile
-testsuite/Makefile
-testsuite/caps/Makefile
-testsuite/debug/Makefile
-testsuite/dlopen/Makefile
-testsuite/elements/Makefile
-testsuite/indexers/Makefile
-testsuite/parse/Makefile
-testsuite/plugin/Makefile
-testsuite/refcounting/Makefile
-testsuite/states/Makefile
-testsuite/threads/Makefile
-testsuite/trigger/Makefile
-examples/Makefile
-examples/controller/Makefile
-examples/cutter/Makefile
-examples/helloworld/Makefile
-examples/launch/Makefile
-examples/manual/Makefile
-examples/mixer/Makefile
-examples/metadata/Makefile
-examples/pingpong/Makefile
-examples/plugins/Makefile
-examples/pwg/Makefile
-examples/queue/Makefile
-examples/retag/Makefile
-examples/thread/Makefile
-examples/typefind/Makefile
-examples/xml/Makefile
+tests/benchmarks/Makefile
+tests/check/Makefile
+tests/misc/Makefile
+tests/examples/Makefile
+tests/examples/controller/Makefile
+tests/examples/helloworld/Makefile
+tests/examples/launch/Makefile
+tests/examples/metadata/Makefile
+tests/examples/queue/Makefile
+tests/examples/typefind/Makefile
+tests/examples/xml/Makefile
 tools/Makefile
 common/Makefile
 common/m4/Makefile
 docs/Makefile
+docs/design/Makefile
 docs/faq/Makefile
 docs/gst/Makefile
+docs/gst/gstreamer.types
 docs/libs/Makefile
+docs/plugins/Makefile
 docs/manual/Makefile
 docs/pwg/Makefile
+docs/slides/Makefile
 docs/xsl/Makefile
 docs/version.entities
 win32/common/config.h
@@ -574,7 +538,9 @@ pkgconfig/gstreamer-controller.pc
 pkgconfig/gstreamer-controller-uninstalled.pc
 pkgconfig/gstreamer-dataprotocol.pc
 pkgconfig/gstreamer-dataprotocol-uninstalled.pc
+pkgconfig/gstreamer-net.pc
+pkgconfig/gstreamer-net-uninstalled.pc
 gstreamer.spec
 )
-AC_CONFIG_COMMANDS(echo "$infomessages", infomessages="$infomessages")
+
 AC_OUTPUT