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.11.91],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.15.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AG_GST_INIT
dnl initialize automake (we require GNU make)
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 1191, 0, 1191)
+AS_LIBTOOL(GST, 1500, 0, 1500)
dnl *** autotools stuff ****
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")
+if test "x$GST_DISABLE_GST_TRACER_HOOKS" = xyes; then
+ AC_DEFINE(GST_DISABLE_GST_TRACER_HOOKS, 1,
+ [Define if tracing subsystem hooks is disabled])
+fi
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
AC_SUBST([BASH_HELPERS_DIR])
AM_CONDITIONAL([ENABLE_BASH_COMPLETION],[test "x$with_bash_completion_dir" != "xno"])
-dnl build static plugins or not
-AC_MSG_CHECKING([whether to build static plugins or not])
-AC_ARG_ENABLE(
- static-plugins,
- AC_HELP_STRING(
- [--enable-static-plugins],
- [build static plugins @<:@default=no@:>@]),
- [AS_CASE(
- [$enableval], [no], [], [yes], [],
- [AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
- [enable_static_plugins=no])
-AC_MSG_RESULT([$enable_static_plugins])
-if test "x$enable_static_plugins" = xyes; then
- AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
- [Define if static plugins should be built])
- GST_PLUGIN_LIBTOOLFLAGS=""
-else
- GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
-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
*) AC_MSG_ERROR(bad value ${enableval} for --enable-poisoning) ;;
esac
],
- [USE_POISONING=no]) dnl Default value
+ [USE_POISONING=$GST_GIT]) dnl Default value
if test "x$USE_POISONING" = xyes; then
AC_DEFINE(USE_POISONING, 1,
[Define if we should poison deallocated memory])
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])
+AC_ARG_WITH([unwind],[AS_HELP_STRING([--with-unwind=yes|no|auto],[use libunwind])],
+ [], [with_unwind=auto])
+if [ test "x${with_unwind}" != "xno" ]; then
+ PKG_CHECK_MODULES(UNWIND, [libunwind],
+ [
+ HAVE_UNWIND=yes
+ AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+ UNWIND_REQUIRE=libunwind
+ AC_SUBST(UNWIND_REQUIRE)
+ ],
+ [
+ HAVE_UNWIND=no
+ if [ test "x${with_unwind}" = "xyes" ]; then
+ AC_MSG_ERROR([could not find libunwind])
+ fi
+ ])
+else
+ HAVE_UNWIND=no
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])
+AC_ARG_WITH([dw],[AS_HELP_STRING([--with-dw=yes|no|auto],[use libdw])],
+ [], [with_dw=auto])
+if [ test "x${with_dw}" != "xno" ]; then
+ PKG_CHECK_MODULES(DW, [libdw],
+ [
+ HAVE_DW=yes
+ AC_DEFINE(HAVE_DW, 1, [libdw available])
+ DW_REQUIRE=libdw
+ AC_SUBST(DW_REQUIRE)
+ ],
+ [
+ HAVE_DW=no
+ if [ test "x${with_dw}" = "xyes" ]; then
+ AC_MSG_ERROR([could not find libdw])
+ fi
+ ])
+else
+ HAVE_DW=no
fi
dnl Check for backtrace() from libc
]
)
+dnl Symbol visibility
+VISIBILITY_CFLAGS=""
+AS_COMPILER_FLAG([-fvisibility=hidden], [
+ VISIBILITY_CFLAGS="-fvisibility=hidden"
+ AC_DEFINE(GST_API_EXPORT, [extern __attribute__ ((visibility ("default")))], [public symbol export define])
+], [
+ VISIBILITY_CFLAGS=""
+ AC_DEFINE(GST_API_EXPORT, [extern], [public symbol export define])
+])
+AC_SUBST(VISIBILITY_CFLAGS)
+
dnl Check for -Bsymbolic-functions linker flag used to avoid
dnl intra-library PLT jumps, if available.
AC_ARG_ENABLE(Bsymbolic,
AS_COMPILER_FLAG([-Wno-format-nonliteral], [PRINTF_CFLAGS="-Wno-format-nonliteral"])
AC_SUBST(PRINTF_CFLAGS)
+dnl disable strict aliasing
+AS_COMPILER_FLAG([-fno-strict-aliasing], [EXTRA_CFLAGS="-fno-strict-aliasing"])
+AC_SUBST(EXTRA_CFLAGS)
+
dnl define correct level for debugging messages
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
dnl Overview:
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_LIB_LDFLAGS: additional linker flags for all libraries
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 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 except for in the core library
-GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
-GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $XML_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS)"
+GST_ALL_CXXFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS) \$(ERROR_CXXFLAGS)"
+GST_ALL_CFLAGS="-I\$(top_srcdir)/libs -I\$(top_srcdir) -I\$(top_builddir)/libs -I\$(top_builddir) $GLIB_CFLAGS \$(GLIB_EXTRA_CFLAGS) $EXTRA_CFLAGS \$(GST_OPTION_CFLAGS) \$(ERROR_CFLAGS) \$(VISIBILITY_CFLAGS)"
dnl FIXME: check if LTLIBINTL is needed everywhere
dnl I presume it is given that it contains the symbols that _() stuff maps to
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_\).*"
+GST_LIB_LDFLAGS=""
AC_SUBST(GST_LIB_LDFLAGS)
dnl GST_OBJ_*
dnl GST_PLUGIN_LDFLAGS
dnl LDFLAGS for plugins; includes GST_ALL_LDFLAGS
-GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
+GST_PLUGIN_LDFLAGS="-module -avoid-version $GST_ALL_LDFLAGS"
AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
dnl plugin scanner locations
"$GST_PLUGIN_SCANNER_INSTALLED", [location of the installed gst-plugin-scanner])
AC_SUBST(GST_PLUGIN_SCANNER_INSTALLED)
+case "${libexecdir}" in
+ *libexec)
+ GST_PLUGIN_SCANNER_SUBDIR="libexec";;
+ *lib)
+ GST_PLUGIN_SCANNER_SUBDIR="lib";;
+ *)
+ GST_PLUGIN_SCANNER_SUBDIR=`basename ${libexecdir}`;
+ if test -z "$GST_PLUGIN_SCANNER_SUBDIR"; then
+ AC_MSG_WARN([Couldn't determined libexecdir suffix, using "lib"])
+ GST_PLUGIN_SCANNER_SUBDIR="lib";
+ fi
+ ;;
+esac
+AC_DEFINE_UNQUOTED(GST_PLUGIN_SCANNER_SUBDIR,
+ "$GST_PLUGIN_SCANNER_SUBDIR", [libexecdir path component, used to find plugin-scanner on relocatable builds on windows])
+
+
dnl completion helper locations
AS_AC_EXPAND(GST_COMPLETION_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-completion-helper)
AC_DEFINE_UNQUOTED(GST_COMPLETION_HELPER_INSTALLED,