X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=configure.ac;h=75930a14e7047492e53d40a8e2604e99a77faf3b;hb=ef42e3811eba9580aacf87c6af81d956c4293e75;hp=6e6197556011ffa99cfb6248470a3f5f57395e18;hpb=8421a1453c9455c58ec9bc57d9aaede460730e99;p=platform%2Fupstream%2Fgstreamer.git diff --git a/configure.ac b/configure.ac index 6e61975..75930a1 100644 --- a/configure.ac +++ b/configure.ac @@ -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.7.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer]) +AC_INIT([GStreamer],[1.11.1.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, 700, 0, 700) +AS_LIBTOOL(GST, 1101, 0, 1101) dnl *** autotools stuff **** @@ -81,11 +81,14 @@ AG_GST_GETTEXT([gstreamer-$GST_API_VERSION]) dnl *** check for arguments to configure *** AG_GST_ARG_DISABLE_FATAL_WARNINGS +AG_GST_ARG_ENABLE_EXTRA_CHECKS dnl subsystems - can influence other decisions so needs to be high up dnl we need to AM_CONDITIONAL them here for automake 1.6.x compatibility AG_GST_CHECK_SUBSYSTEM_DISABLE(GST_DEBUG,[debugging subsystem]) AM_CONDITIONAL(GST_DISABLE_GST_DEBUG, test "x$GST_DISABLE_GST_DEBUG" = "xyes") +AG_GST_CHECK_SUBSYSTEM_DISABLE(GST_TRACER_HOOKS,[tracing subsystem hooks]) +AM_CONDITIONAL(GST_DISABLE_GST_TRACER_HOOKS, test "x$GST_DISABLE_GST_TRACER_HOOKS" = "xyes") AG_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 @@ -98,10 +101,6 @@ if test "x$GST_DISABLE_OPTION_PARSING" = xyes; then AC_DEFINE(GST_DISABLE_OPTION_PARSING, 1, [Define if option parsing is disabled]) fi -AG_GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem]) -AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes") -AG_GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing]) -AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes") AG_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 @@ -132,6 +131,11 @@ AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO], ["${srcdir}/gstreamer.doap"], [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO]) +# We only use this when building with MSVC, which is only done with the +# alternate Meson build system files +GSTCONFIG_BUILT_WITH_MSVC=0 +AC_SUBST(GSTCONFIG_BUILT_WITH_MSVC) + dnl check for bash completion AC_ARG_WITH([bash-completion-dir], AS_HELP_STRING([--with-bash-completion-dir[=PATH]], @@ -185,6 +189,12 @@ fi AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS) AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes") +dnl If only building static libraries, define GST_STATIC_COMPILATION. This is +dnl needed only on Windows, but it doesn't hurt to have it everywhere. +if test x$enable_static = xyes -a x$enable_shared = xno; then + GST_OBJ_STATIC_CFLAGS="-DGST_STATIC_COMPILATION" +fi + dnl building of tests AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[disable building test apps]), @@ -402,20 +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 common/m4/gst-arch.m4 -dnl check for unaligned access -AG_GST_UNALIGNED_ACCESS -dnl create a configure variable for gst/gstconfig.h -if test x${as_cv_unaligned_access} = xyes ; then - GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1" -else - GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0" -fi -AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE) dnl check for platform specific settings AG_GST_PLATFORM @@ -467,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]) @@ -604,6 +599,9 @@ AC_CHECK_FUNCS([strcasestr]) AC_CHECK_FUNCS([gmtime_r]) AC_CHECK_FUNCS([localtime_r]) AC_CHECK_FUNCS([sigaction]) +AC_CHECK_FUNCS([getrusage]) +AM_CONDITIONAL(HAVE_GETRUSAGE, test "x$ac_cv_func_getrusage" = "xyes") +AC_CHECK_HEADERS([sys/resource.h]) dnl check for fseeko() AC_FUNC_FSEEKO @@ -660,27 +658,61 @@ AC_RUN_IFELSE([AC_LANG_SOURCE([[ [broken_poll="no (cross compiling)"]) AC_MSG_RESULT($broken_poll) -dnl check for mmap() -AC_FUNC_MMAP -AM_CONDITIONAL(HAVE_MMAP, test "x$ac_cv_func_mmap_fixed_mapped" = "xyes") - -dnl check for posix_memalign(), getpagesize() -AC_CHECK_FUNCS([posix_memalign]) +dnl check for getpagesize() 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 +#include +#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 @@ -768,13 +800,42 @@ fi dnl *** checks for dependency libraries *** dnl GLib -GLIB_REQ=2.32.0 +GLIB_REQ=2.40.0 AG_GST_GLIB_CHECK([$GLIB_REQ]) dnl Check for documentation xrefs GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" AC_SUBST(GLIB_PREFIX) +dnl GTK is optional and only used in examples +HAVE_GTK=no +GTK_REQ=3.10 +if test "x$BUILD_EXAMPLES" = "xyes"; then + PKG_CHECK_MODULES(GTK, gtk+-3.0 >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no) + AC_SUBST(GTK_LIBS) + AC_SUBST(GTK_CFLAGS) +fi +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, [ + AC_CHECK_HEADERS([execinfo.h], [ + AC_DEFINE(HAVE_BACKTRACE,1,[Have backtrace]) + ], [], []) +]) + dnl building of unit test libraries AC_ARG_ENABLE(check, AS_HELP_STRING([--disable-check],[disable building unit test libraries]), @@ -810,7 +871,7 @@ AC_ARG_WITH([memory-alignment], esac fi ], [ - AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default]) + AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default]) ] ) @@ -818,15 +879,16 @@ 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}" + [SAVED_LDFLAGS="${LDFLAGS}" SAVED_LIBS="${LIBS}" AC_MSG_CHECKING([for -Bsymbolic-functions linker flag]) LDFLAGS=-Wl,-Bsymbolic-functions - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[ + LIBS= + AC_TRY_LINK([], [return 0], AC_MSG_RESULT(yes) - enable_Bsymbolic=yes],[ + enable_Bsymbolic=yes, AC_MSG_RESULT(no) - enable_Bsymbolic=no]) - LDFLAGS="${SAVED_LDFLAGS}"]) + enable_Bsymbolic=no) + LDFLAGS="${SAVED_LDFLAGS}" LIBS="${SAVED_LIBS}"]) dnl *** set variables based on configure arguments @@ -933,8 +995,8 @@ 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_CXXFLAGS="\$(GST_ALL_CXXFLAGS)" +GST_OBJ_CFLAGS="\$(GST_ALL_CFLAGS) $GST_OBJ_STATIC_CFLAGS" +GST_OBJ_CXXFLAGS="\$(GST_ALL_CXXFLAGS) $GST_OBJ_STATIC_CFLAGS" GST_OBJ_LIBS="\$(top_builddir)/gst/libgstreamer-$GST_API_VERSION.la \$(GST_ALL_LIBS)" AC_SUBST(GST_OBJ_CFLAGS) AC_SUBST(GST_OBJ_CXXFLAGS) @@ -959,7 +1021,7 @@ AC_SUBST(GST_PTP_HELPER_INSTALLED) dnl things for our internal libcheck (must be called even if building dnl libcheck is disabled because it defines conditionals) -AG_GST_CHECK_CHECKS() +AG_GST_CHECK_CHECKS AC_CONFIG_FILES( Makefile @@ -980,6 +1042,7 @@ libs/gst/helpers/Makefile libs/gst/net/Makefile plugins/Makefile plugins/elements/Makefile +plugins/tracers/Makefile po/Makefile.in tests/Makefile tests/benchmarks/Makefile @@ -990,7 +1053,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 @@ -1000,16 +1062,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 @@ -1024,54 +1080,15 @@ 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 if test "x${GST_DISABLE_GST_DEBUG}" = "xno"; then enable_gst_debug="yes"; fi +if test "x${GST_DISABLE_GST_TRACER_HOOKS}" = "xno"; then enable_gst_tracer_hooks="yes"; fi if test "x${GST_DISABLE_PARSE}" = "xno"; then enable_parse="yes"; fi if test "x${GST_DISABLE_OPTION_PARSING}" = "xno"; then enable_option_parsing="yes"; fi -if test "x${GST_DISABLE_TRACE}" = "xno"; then enable_trace="yes"; fi -if test "x${GST_DISABLE_ALLOC_TRACE}" = "xno"; then enable_alloc_trace="yes"; fi if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi @@ -1085,19 +1102,19 @@ 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} + Debug logging : ${enable_gst_debug} + Tracing subsystem hooks : ${enable_gst_tracer_hooks} Command-line parser : ${enable_parse} Option parsing in gst_init : ${enable_option_parsing} - Tracing subsystem : ${enable_trace} - Allocation tracing : ${enable_alloc_trace} Plugin registry : ${enable_registry} Plugin support : ${enable_plugin} Static plugins : ${enable_static_plugins} Unit testing support : ${BUILD_CHECK} PTP clock support : ${HAVE_PTP} + libunwind support : ${HAVE_UNWIND} + libdw support : ${HAVE_DW} Debug : ${USE_DEBUG} Profiling : ${USE_PROFILING}