libcheck: Update the compatibility code and checks
[platform/upstream/gstreamer.git] / configure.ac
index bf14e2b..57cb69b 100644 (file)
@@ -4,7 +4,7 @@ dnl initialize autoconf
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
 dnl
-AC_INIT([GStreamer],[1.9.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.11.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
 AG_GST_INIT
 
 dnl initialize automake (we require GNU make)
@@ -62,7 +62,7 @@ dnl      1.2.5 => 205
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 990, 0, 990)
+AS_LIBTOOL(GST, 1100, 0, 1100)
 
 dnl *** autotools stuff ****
 
@@ -412,9 +412,6 @@ dnl * hardware/architecture *
 dnl common/m4/gst-arch.m4
 dnl check CPU type
 AG_GST_ARCH
-dnl substitution for win32/common/config.h
-HOST_CPU=$host_cpu
-AC_SUBST(HOST_CPU)
 
 dnl check for platform specific settings
 AG_GST_PLATFORM
@@ -466,7 +463,6 @@ dnl check for gobject-introspection
 GOBJECT_INTROSPECTION_CHECK([1.31.1])
 
 dnl check for documentation tools
-AG_GST_DOCBOOK_CHECK
 GTK_DOC_CHECK([1.12])
 AG_GST_PLUGIN_DOCS([1.12])
 
@@ -671,18 +667,57 @@ AC_CHECK_FUNCS([posix_memalign])
 AC_CHECK_FUNCS([getpagesize])
 
 dnl Check for POSIX timers
-AC_CHECK_FUNCS(clock_gettime, [], [
+CLOCK_GETTIME_FOUND="no"
+AC_CHECK_FUNC(clock_gettime, [CLOCK_GETTIME_FOUND="yes"], [
   AC_CHECK_LIB(rt, clock_gettime, [
-    AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
+    CLOCK_GETTIME_FOUND="yes"
     LIBS="$LIBS -lrt"
   ], [
     AC_CHECK_LIB(pthread, clock_gettime, [
-      AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
+      CLOCK_GETTIME_FOUND="yes"
       LIBS="$LIBS -lpthread"
     ])
   ])
 ])
 
+# With XCode 8, clock_gettime will be incorrectly detected as being available
+# regardless of what version of OS X you target because the symbol is available
+# in the .tbd file as a weak symbol.
+# See: https://bugzilla.gnome.org/show_bug.cgi?id=772451 
+#
+# We cannot simply do AC_CHECK_FUNCS with -Wl,-no_weak_imports because the
+# autoconf check does its own prototype declaration that doesn't trigger that
+# compiler flag.
+#
+# It's only starting from macOS 10.12 and iOS 10.0 that clock_gettime is
+# actually available, so we can unconditionally disable it for older versions.
+case "$host_os" in
+  darwin*)
+    AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
+#include <AvailabilityMacros.h>
+#include <TargetConditionals.h>
+#if defined(TARGET_OS_MAC)
+#  if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12
+#    error "Not compiling for OS X 10.12 or later"
+#  endif
+#else
+#  if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0
+#    error "Not compiling for iOS 10.0 or later"
+#  endif
+#endif
+    ]])], [], [
+    if test "$CLOCK_GETTIME_FOUND" = "yes"; then
+      AC_MSG_NOTICE([Disabling incorrectly detected clock_gettime on OS X])
+    fi
+    CLOCK_GETTIME_FOUND="no"
+    ])
+    ;;
+esac
+
+if test "$CLOCK_GETTIME_FOUND" = "yes"; then
+  AC_DEFINE(HAVE_CLOCK_GETTIME, 1, [Have clock_gettime])
+fi
+
 AC_CACHE_CHECK(for posix timers, gst_cv_posix_timers,
     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
 #include <time.h>
@@ -789,6 +824,15 @@ AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
 
 dnl libunwind is optionally used by the leaks tracer
 PKG_CHECK_MODULES(UNWIND, libunwind, HAVE_UNWIND=yes, HAVE_UNWIND=no)
+if test "x$HAVE_UNWIND" = "xyes"; then
+  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+fi
+
+dnl libdw is optionally used to add source lines and numbers to backtraces
+PKG_CHECK_MODULES(DW, libdw, HAVE_DW=yes, HAVE_DW=no)
+if test "x$HAVE_DW" = "xyes"; then
+  AC_DEFINE(HAVE_DW, 1, [libdw available])
+fi
 
 dnl Check for backtrace() from libc
 AC_CHECK_FUNC(backtrace, [
@@ -797,10 +841,6 @@ AC_CHECK_FUNC(backtrace, [
   ], [], [])
 ])
 
-if test "x$HAVE_UNWIND" = "xyes"; then
-  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
-fi
-
 dnl building of unit test libraries
 AC_ARG_ENABLE(check,
   AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
@@ -1018,7 +1058,6 @@ tests/examples/adapter/Makefile
 tests/examples/controller/Makefile
 tests/examples/stepping/Makefile
 tests/examples/helloworld/Makefile
-tests/examples/manual/Makefile
 tests/examples/memory/Makefile
 tests/examples/netclock/Makefile
 tests/examples/ptp/Makefile
@@ -1028,16 +1067,10 @@ 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
 m4/Makefile
 pkgconfig/Makefile
@@ -1052,46 +1085,8 @@ pkgconfig/gstreamer-controller.pc
 pkgconfig/gstreamer-controller-uninstalled.pc
 pkgconfig/gstreamer-net.pc
 pkgconfig/gstreamer-net-uninstalled.pc
-gstreamer.spec
 )
 
-dnl Create the config.h file for Visual Studio builds
-dnl Beware of spaces and /'s in some of the shell variable contents.
-sed \
-    -e 's/.*config.h.in.*autoheader.*/\/* Autogenerated config.h created for win32 Visual Studio builds *\/\n\n\/* PREFIX -- specifically added for Windows for easier moving *\/\n#define PREFIX "C:\\\\gstreamer"/' \
-    -e 's/.* GETTEXT_PACKAGE$/#define GETTEXT_PACKAGE "'$GETTEXT_PACKAGE'"/' \
-    -e 's/.* GST_DATADIR$/#define GST_DATADIR PREFIX "\\\\share"/' \
-    -e 's/.* GST_LEVEL_DEFAULT$/#define GST_LEVEL_DEFAULT GST_LEVEL_ERROR/' \
-    -e 's/.* GST_LICENSE$/#define GST_LICENSE "'$GST_LICENSE'"/' \
-    -e 's/.* GST_API_VERSION$/#define GST_API_VERSION "'$GST_API_VERSION'"/' \
-    -e "s,.* GST_PACKAGE_NAME$,#define GST_PACKAGE_NAME \"${GST_PACKAGE_NAME}\"," \
-    -e 's/.* GST_PACKAGE_ORIGIN$/#define GST_PACKAGE_ORIGIN "Unknown package origin"/' \
-    -e "s,.* GST_PACKAGE_RELEASE_DATETIME$,#define GST_PACKAGE_RELEASE_DATETIME \"${GST_PACKAGE_RELEASE_DATETIME}\"," \
-    -e 's/.* HAVE_CPU_I386$/#define HAVE_CPU_I386 1/' \
-    -e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
-    -e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
-    -e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
-    -e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
-    -e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
-    -e 's/.* HAVE_SYS_STAT_H$/#define HAVE_SYS_STAT_H 1/' \
-    -e 's/.* HAVE_SYS_TYPES_H$/#define HAVE_SYS_TYPES_H 1/' \
-    -e 's/.* HAVE_WIN32$/#define HAVE_WIN32 1/' \
-    -e 's/.* HAVE_WINSOCK2_H$/#define HAVE_WINSOCK2_H 1/' \
-    -e 's/.* HOST_CPU$/#define HOST_CPU "i686"/' \
-    -e 's/.* MEMORY_ALIGNMENT_MALLOC/#define MEMORY_ALIGNMENT_MALLOC 1/' \
-    -e 's/.* LIBDIR$/#ifdef _DEBUG\n#  define LIBDIR PREFIX "\\\\debug\\\\lib"\n#else\n#  define LIBDIR PREFIX "\\\\lib"\n#endif/' \
-    -e 's/.* LOCALEDIR$/#define LOCALEDIR PREFIX "\\\\share\\\\locale"/' \
-    -e 's/.* PACKAGE$/#define PACKAGE "gstreamer"/' \
-    -e 's/.* PACKAGE_BUGREPORT$/#define PACKAGE_BUGREPORT "http:\/\/bugzilla.gnome.org\/enter_bug.cgi?product=GStreamer"/' \
-    -e 's/.* PACKAGE_NAME$/#define PACKAGE_NAME "'$PACKAGE_NAME'"/' \
-    -e "s/.* PACKAGE_STRING$/#define PACKAGE_STRING \"$PACKAGE_STRING\"/" \
-    -e 's/.* PACKAGE_TARNAME$/#define PACKAGE_TARNAME "'$PACKAGE_TARNAME'"/' \
-    -e 's/.* PACKAGE_VERSION$/#define PACKAGE_VERSION "'$PACKAGE_VERSION'"/' \
-    -e 's/.* PLUGINDIR$/#ifdef _DEBUG\n#  define PLUGINDIR PREFIX "\\\\debug\\\\lib\\\\gstreamer-1.0"\n#else\n#  define PLUGINDIR PREFIX "\\\\lib\\\\gstreamer-1.0"\n#endif/' \
-    -e 's/.* GST_PLUGIN_SCANNER_INSTALLED$/#define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\\\gst-plugin-scanner"/' \
-    -e 's/.* VERSION$/#define VERSION "'$VERSION'"/' \
-    config.h.in >win32/common/config.h-new
-
 AC_OUTPUT
 
 dnl negate for output
@@ -1112,8 +1107,7 @@ Configuration
        Package name               : ${GST_PACKAGE_NAME}
        Package origin             : ${GST_PACKAGE_ORIGIN}
 
-       Documentation (manuals)    : ${enable_docbook}
-       Documentation (API)        : ${enable_gtk_doc}
+       API Documentation          : ${enable_gtk_doc}
 
        Debug logging              : ${enable_gst_debug}
        Tracing subsystem hooks    : ${enable_gst_tracer_hooks}
@@ -1125,6 +1119,7 @@ Configuration
        Unit testing support       : ${BUILD_CHECK}
        PTP clock support          : ${HAVE_PTP}
        libunwind support          : ${HAVE_UNWIND}
+       libdw support              : ${HAVE_DW}
 
        Debug                      : ${USE_DEBUG}
        Profiling                  : ${USE_PROFILING}