rtsp-stream: Always unref return value of gst_object_get_parent()
[platform/upstream/gstreamer.git] / configure.ac
index e3f5b4b..50b6128 100644 (file)
@@ -1,14 +1,14 @@
-AC_PREREQ(2.62)
+AC_PREREQ(2.69)
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, cvs and prerelease does Werror too
 dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, cvs and prerelease does Werror too
-AC_INIT(Gst-RTSP, 0.11.90.1,
-    http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
-    gst-rtsp)
+AC_INIT([GStreamer RTSP Server Library], [1.6.0],
+    [http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],
+    [gst-rtsp-server])
 AG_GST_INIT
 
 dnl initialize automake
 AG_GST_INIT
 
 dnl initialize automake
-AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar])
+AM_INIT_AUTOMAKE([-Wno-portability 1.14 no-dist-gzip dist-xz tar-ustar subdir-objects])
 
 dnl define PACKAGE_VERSION_* variables
 AS_VERSION
 
 dnl define PACKAGE_VERSION_* variables
 AS_VERSION
@@ -20,7 +20,7 @@ dnl can autoconf find the source ?
 AC_CONFIG_SRCDIR([gst/rtsp-server/rtsp-server.c])
 
 dnl define the output header for config
 AC_CONFIG_SRCDIR([gst/rtsp-server/rtsp-server.c])
 
 dnl define the output header for config
-AM_CONFIG_HEADER([config.h])
+AC_CONFIG_HEADERS([config.h])
 
 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
 AM_MAINTAINER_MODE([enable])
 
 dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
 AM_MAINTAINER_MODE([enable])
@@ -39,12 +39,27 @@ dnl we override it here if we need to for the release candidate of new series
 GST_API_VERSION=1.0
 AC_SUBST(GST_API_VERSION)
 
 GST_API_VERSION=1.0
 AC_SUBST(GST_API_VERSION)
 
-AS_LIBTOOL(GST, 0, 0, 0)
+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
+dnl
+dnl Keep CURRENT as MINOR * 100 + MICRO
+dnl Ex : 1.0.0 => 0
+dnl      1.0.3 => 3
+dnl      1.1.0 => 100
+dnl      1.2.5 => 205
+dnl      1.10.9 (who knows) => 1009
+dnl
+dnl sets GST_LT_LDFLAGS
+AS_LIBTOOL(GST, 600, 0, 600)
 
 dnl *** required versions of GStreamer stuff ***
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.0.0
-GSTPB_REQ=1.0.0
-GSTPG_REQ=1.0.0
+GST_REQ=1.6.0
+GSTPB_REQ=1.6.0
+GSTPG_REQ=1.6.0
+GSTPD_REQ=1.6.0
 
 dnl *** autotools stuff ****
 
 
 dnl *** autotools stuff ****
 
@@ -57,20 +72,42 @@ AC_CONFIG_MACRO_DIR([m4])
 
 dnl set up gettext
 dnl the version check needs to stay here because autopoint greps for it
 
 dnl set up gettext
 dnl the version check needs to stay here because autopoint greps for it
-AM_GNU_GETTEXT_VERSION([0.17])
-AM_GNU_GETTEXT([external])
-AG_GST_GETTEXT([gstreamer-$GST_API_VERSION])
+#AM_GNU_GETTEXT_VERSION([0.17])
+#AM_GNU_GETTEXT([external])
+#AG_GST_GETTEXT([gst-rtsp-server-$GST_API_VERSION])
 
 dnl *** check for arguments to configure ***
 
 
 dnl *** check for arguments to configure ***
 
+AG_GST_ARG_DISABLE_FATAL_WARNINGS
+
 AG_GST_ARG_DEBUG
 AG_GST_ARG_VALGRIND
 AG_GST_ARG_GCOV
 AG_GST_ARG_DEBUG
 AG_GST_ARG_VALGRIND
 AG_GST_ARG_GCOV
+AG_GST_ARG_WITH_PKG_CONFIG_PATH
 AG_GST_ARG_WITH_PACKAGE_NAME
 AG_GST_ARG_WITH_PACKAGE_ORIGIN
 
 AG_GST_ARG_WITH_PACKAGE_NAME
 AG_GST_ARG_WITH_PACKAGE_ORIGIN
 
+AG_GST_ARG_EXAMPLES
+
 AG_GST_PKG_CONFIG_PATH
 
 AG_GST_PKG_CONFIG_PATH
 
+AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
+  ["${srcdir}/gst-rtsp-server.doap"],
+  [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
+
+dnl building of tests
+AC_ARG_ENABLE(tests,
+  AS_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 *** checks for platform ***
 
 dnl * hardware/architecture *
 dnl *** checks for platform ***
 
 dnl * hardware/architecture *
@@ -79,29 +116,23 @@ dnl *** checks for programs ***
 
 dnl find a compiler
 AC_PROG_CC
 
 dnl find a compiler
 AC_PROG_CC
+AC_PROG_CC_STDC
+
+dnl check if the compiler supports '-c' and '-o' options
 AM_PROG_CC_C_O
 
 AM_PROG_CC_C_O
 
+dnl find an assembler
+AM_PROG_AS
+
 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 
 dnl check for gobject-introspection
 AC_PATH_PROG(VALGRIND_PATH, valgrind, no)
 AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno")
 
 dnl check for gobject-introspection
-GOBJECT_INTROSPECTION_CHECK([0.6.3])
+GOBJECT_INTROSPECTION_CHECK([1.31.1])
 
 dnl check for documentation tools
 AG_GST_DOCBOOK_CHECK
 
 dnl check for documentation tools
 AG_GST_DOCBOOK_CHECK
-GTK_DOC_CHECK([1.3])
-
-dnl Check for Vala
-AC_ARG_ENABLE([vala],
-  AC_HELP_STRING([--enable-vala],[enable Vala bindings (default=yes)]),
-  [case "${enableval}" in
-    yes) enable_vala=yes ;;
-    no)  enable_vala=no ;;
-    *) AC_MSG_ERROR(bad value ${enableval} for --enable-vala) ;;
-   esac
-  ],
-  [enable_vala=yes]) dnl Default value
-AM_CONDITIONAL(WITH_VALA, [test "x$enable_vala" = "xyes"])
+GTK_DOC_CHECK([1.12])
 
 dnl *** checks for libraries ***
 
 
 dnl *** checks for libraries ***
 
@@ -117,8 +148,8 @@ dnl *** checks for library functions ***
 
 dnl *** checks for dependancy libraries ***
 
 
 dnl *** checks for dependancy libraries ***
 
-dnl GLib is required (GStreamer is ok with GLib-2.8, but we want at least 2.10)
-GLIB_REQ=2.10.0
+dnl GLib is required
+GLIB_REQ=2.32.0
 AC_SUBST([GLIB_REQ])
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
 AC_SUBST([GLIB_REQ])
 AG_GST_GLIB_CHECK([$GLIB_REQ])
 
@@ -148,12 +179,27 @@ GSTPG_PLUGINS_DIR=`$PKG_CONFIG gstreamer-plugins-good-$GST_API_VERSION --variabl
 AC_SUBST(GSTPG_PLUGINS_DIR)
 AC_MSG_NOTICE(Using GStreamer Good Plugins in $GSTPG_PLUGINS_DIR)
 
 AC_SUBST(GSTPG_PLUGINS_DIR)
 AC_MSG_NOTICE(Using GStreamer Good Plugins in $GSTPG_PLUGINS_DIR)
 
-AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
+AG_GST_CHECK_GST_PLUGINS_BAD($GST_API_VERSION, [$GSTPD_REQ], [yes])
+GSTPD_PLUGINS_DIR=`$PKG_CONFIG gstreamer-plugins-bad-$GST_API_VERSION --variable pluginsdir`
+AC_SUBST(GSTPD_PLUGINS_DIR)
+AC_MSG_NOTICE(Using GStreamer Bad Plugins in $GSTPD_PLUGINS_DIR)
 
 
-dnl FIXME: get rid of this by making sure gstreamer-check brings it in
-dnl check for "check", unit testing library/header
-AM_PATH_CHECK(0.9.2, HAVE_CHECK=yes, HAVE_CHECK=no)
-AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_CHECK" = "xyes")
+AG_GST_CHECK_GST_CHECK($GST_API_VERSION, [$GST_REQ], no)
+AM_CONDITIONAL(HAVE_CHECK, test "x$HAVE_GST_CHECK" = "xyes")
+
+dnl Check for -Bsymbolic-functions linker flag used to avoid
+dnl intra-library PLT jumps, if available.
+AC_ARG_ENABLE(Bsymbolic,
+              [AS_HELP_STRING([--disable-Bsymbolic],[avoid linking with -Bsymbolic])],,
+              [SAVED_LDFLAGS="${LDFLAGS}"
+               AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
+               LDFLAGS=-Wl,-Bsymbolic-functions
+               AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[
+                           AC_MSG_RESULT(yes)
+                           enable_Bsymbolic=yes],[
+                           AC_MSG_RESULT(no)
+                           enable_Bsymbolic=no])
+               LDFLAGS="${SAVED_LDFLAGS}"])
 
 dnl *** set variables based on configure arguments ***
 
 
 dnl *** set variables based on configure arguments ***
 
@@ -165,13 +211,18 @@ AC_SUBST(GST_LICENSE)
 dnl set location of plugin directory
 AG_GST_SET_PLUGINDIR
 
 dnl set location of plugin directory
 AG_GST_SET_PLUGINDIR
 
+dnl set release date/time (and check that release version is in doap file)
+AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
+  ["${srcdir}/gst-rtsp-server.doap"],
+  [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
+
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 dnl make sure it doesn't complain about unused variables if debugging is disabled
 NO_WARNINGS=""
 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
 
 dnl define an ERROR_CFLAGS Makefile variable
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 dnl make sure it doesn't complain about unused variables if debugging is disabled
 NO_WARNINGS=""
 AG_GST_CHECK_GST_DEBUG_DISABLED([NO_WARNINGS="-Wno-unused"], [NO_WARNINGS=""])
 
 dnl define an ERROR_CFLAGS Makefile variable
-AG_GST_SET_ERROR_CFLAGS($GST_GIT, [$NO_WARNINGS])
+AG_GST_SET_ERROR_CFLAGS($FATAL_WARNINGS, [-Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs $NO_WARNINGS])
 
 dnl define correct level for debugging messages
 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
 
 dnl define correct level for debugging messages
 AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
@@ -195,7 +246,15 @@ if test "x$USE_DEBUG" = xyes; then
 fi
 AC_SUBST(PROFILE_CFLAGS)
 
 fi
 AC_SUBST(PROFILE_CFLAGS)
 
-DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
+# GST_DISABLE_DEPRECATED: hide the visibility of deprecated
+# functionality from the API that gstreamer uses
+# GST_REMOVE_DEPRECATED: don't compile deprecated functionality (breaks ABI)
+if test "x$PACKAGE_VERSION_NANO" = "x1"; then
+  dnl Define _only_ when compiling from git (not for pre-releases or releases)
+  DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED"
+else
+  DEPRECATED_CFLAGS=""
+fi
 AC_SUBST(DEPRECATED_CFLAGS)
 
 dnl every flag in GST_OPTION_CFLAGS can be overridden at make time
 AC_SUBST(DEPRECATED_CFLAGS)
 
 dnl every flag in GST_OPTION_CFLAGS can be overridden at make time
@@ -205,7 +264,7 @@ AC_SUBST(GST_OPTION_CFLAGS)
 dnl FIXME: do we want to rename to GST_ALL_* ?
 dnl prefer internal headers to already installed ones
 dnl add GST_OPTION_CFLAGS, but overridable
 dnl FIXME: do we want to rename to GST_ALL_* ?
 dnl prefer internal headers to already installed ones
 dnl add GST_OPTION_CFLAGS, but overridable
-GST_CFLAGS="$GST_CFLAGS -DGST_USE_UNSTABLE_API \$(GST_OPTION_CFLAGS)"
+GST_CFLAGS="$GST_CFLAGS \$(GST_OPTION_CFLAGS)"
 AC_SUBST(GST_CFLAGS)
 AC_SUBST(GST_LIBS)
 
 AC_SUBST(GST_CFLAGS)
 AC_SUBST(GST_LIBS)
 
@@ -225,6 +284,10 @@ AC_SUBST([GST_ALL_LIBS])
 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"
 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"
+if test "x${enable_Bsymbolic}" = "xyes"; then
+  GST_ALL_LDFLAGS="$GST_ALL_LDFLAGS -Wl,-Bsymbolic-functions"
+fi
+
 AC_SUBST(GST_ALL_LDFLAGS)
 
 dnl GST_LIB_LDFLAGS
 AC_SUBST(GST_ALL_LDFLAGS)
 
 dnl GST_LIB_LDFLAGS
@@ -241,6 +304,11 @@ AC_SUBST([GST_OBJ_CFLAGS])
 GST_OBJ_LIBS="\$(top_builddir)/gst/rtsp-server/libgstrtspserver-$GST_API_VERSION.la \$(GST_ALL_LIBS)"
 AC_SUBST([GST_OBJ_LIBS])
 
 GST_OBJ_LIBS="\$(top_builddir)/gst/rtsp-server/libgstrtspserver-$GST_API_VERSION.la \$(GST_ALL_LIBS)"
 AC_SUBST([GST_OBJ_LIBS])
 
+PKG_CHECK_MODULES(LIBCGROUP, libcgroup >= 0.26, HAVE_LIBCGROUP="yes", HAVE_LIBCGROUP="no")
+AC_SUBST(LIBCGROUP_CFLAGS)
+AC_SUBST(LIBCGROUP_LIBS)
+AM_CONDITIONAL(HAVE_LIBCGROUP, test "x$HAVE_LIBCGROUP" = "xyes")
+
 dnl this really should only contain flags, not libs - they get added before
 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
 
 dnl this really should only contain flags, not libs - they get added before
 dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
 
@@ -257,8 +325,6 @@ gst/rtsp-server/Makefile
 examples/Makefile
 tests/Makefile
 tests/check/Makefile
 examples/Makefile
 tests/Makefile
 tests/check/Makefile
-bindings/Makefile
-bindings/vala/Makefile
 pkgconfig/Makefile
 pkgconfig/gstreamer-rtsp-server.pc
 pkgconfig/gstreamer-rtsp-server-uninstalled.pc
 pkgconfig/Makefile
 pkgconfig/gstreamer-rtsp-server.pc
 pkgconfig/gstreamer-rtsp-server-uninstalled.pc
@@ -275,7 +341,7 @@ Configuration
        Source code location       : ${srcdir}
        Prefix                     : ${prefix}
        Compiler                   : ${CC}
        Source code location       : ${srcdir}
        Prefix                     : ${prefix}
        Compiler                   : ${CC}
-       Vala bindings              : ${enable_vala}
+       CGroups example            : ${HAVE_LIBCGROUP}
 
 gst-rtsp-server configured. Type 'make' to build.
 "
 
 gst-rtsp-server configured. Type 'make' to build.
 "