-AC_PREREQ(2.62)
+AC_PREREQ([2.68])
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
-dnl
-dnl ==========> REMOVE GST_USE_UNSTABLE_API when doing 1.0.0 <=============
-dnl (also check libtool version)
-dnl
-AC_INIT(GStreamer, 0.11.94,
- http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
- gstreamer)
+AC_INIT([GStreamer],[1.3.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AG_GST_INIT
dnl initialize automake (we require GNU make)
-AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar])
+AM_INIT_AUTOMAKE([-Wno-portability 1.11 no-dist-gzip dist-xz tar-ustar subdir-objects])
dnl define PACKAGE_VERSION_* variables
AS_VERSION
AC_CONFIG_SRCDIR([gst/gst.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])
AC_SUBST(AM_DEFAULT_VERBOSITY)])
dnl GStreamer versioning, this is mostly informational
-dnl GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
-dnl GST_VERSION_MINOR=$PACKAGE_VERSION_MINOR
-dnl GST_VERSION_MICRO=$PACKAGE_VERSION_MICRO
-dnl GST_VERSION_NANO=$PACKAGE_VERSION_NANO
-dnl Change this to the above for non-pre
-GST_VERSION_MAJOR=1
-GST_VERSION_MINOR=0
-GST_VERSION_MICRO=0
-GST_VERSION_NANO=0
+GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
+GST_VERSION_MINOR=$PACKAGE_VERSION_MINOR
+GST_VERSION_MICRO=$PACKAGE_VERSION_MICRO
+GST_VERSION_NANO=$PACKAGE_VERSION_NANO
AC_SUBST(GST_VERSION_MAJOR)
AC_SUBST(GST_VERSION_MINOR)
AC_SUBST(GST_VERSION_MICRO)
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, 0, 0, 0)
+AS_LIBTOOL(GST, 300, 0, 300)
dnl *** autotools stuff ****
["${srcdir}/gstreamer.doap"],
[$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
+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 building of tests
AC_ARG_ENABLE(tests,
- AC_HELP_STRING([--disable-tests], [disable building test apps]),
+ AS_HELP_STRING([--disable-tests],[disable building test apps]),
[
case "${enableval}" in
yes) BUILD_TESTS=yes ;;
dnl tests known to fail
AC_ARG_ENABLE(failing-tests,
- AC_HELP_STRING([--disable-failing-tests],
- [disable building tests known to fail]),
+ AS_HELP_STRING([--disable-failing-tests],[disable building tests known to fail]),
[
case "${enableval}" in
yes) BUILD_FAILING_TESTS=yes ;;
dnl building of benchmarks
AC_ARG_ENABLE(benchmarks,
- AC_HELP_STRING([--disable-benchmarks], [disable building benchmarks apps]),
+ AS_HELP_STRING([--disable-benchmarks],[disable building benchmarks apps]),
[
case "${enableval}" in
yes) BUILD_BENCHMARKS=yes ;;
dnl building of tools
AC_ARG_ENABLE(tools,
- AC_HELP_STRING([--disable-tools], [disable building tools]),
+ AS_HELP_STRING([--disable-tools],[disable building tools]),
[
case "${enableval}" in
yes) BUILD_TOOLS=yes ;;
dnl poison destroyed objects
AC_ARG_ENABLE(poisoning,
- AC_HELP_STRING([--enable-poisoning],
- [enable poisoning of deallocated objects]),
+ AS_HELP_STRING([--enable-poisoning],[enable poisoning of deallocated objects]),
[
case "${enableval}" in
yes) USE_POISONING=yes ;;
dnl CXX may be set to some default even if no c++ compiler is available
dnl (thanks autotools!), so just try to compile some c++ code to make sure
AC_LANG_PUSH([C++])
-AC_TRY_COMPILE([ class Foo { int bar; };], , working_cxx=yes, working_cxx=no)
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ class Foo { int bar; };]], [[]])],[working_cxx=yes],[working_cxx=no])
AC_LANG_POP([C++])
AC_MSG_NOTICE([working c++ compiler found: $working_cxx])
AM_CONDITIONAL(HAVE_CXX, test "x$working_cxx" = "xyes")
dnl check for documentation tools
AG_GST_DOCBOOK_CHECK
GTK_DOC_CHECK([1.12])
-AS_PATH_PYTHON([2.1])
-AG_GST_PLUGIN_DOCS([1.3],[2.1])
+AG_GST_PLUGIN_DOCS([1.12])
dnl *** checks for libraries ***
AC_CHECK_HEADERS([stdio_ext.h], [], [], [AC_INCLUDES_DEFAULT])
dnl check for pthreads
-AC_CHECK_HEADERS([pthread.h], [HAVE_PTHREAD_H=yes], [HAVE_PTHREAD_H=no], [AC_INCLUDES_DEFAULT])
-AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes")
+AX_PTHREAD([HAVE_PTHREAD=yes], [HAVE_PTHREAD=no])
+AM_CONDITIONAL(HAVE_PTHREAD, test "x$HAVE_PTHREAD" = "xyes")
dnl check for sys/prctl for setting thread name on Linux
AC_CHECK_HEADERS([sys/prctl.h], [], [], [AC_INCLUDES_DEFAULT])
dnl Actually check for 128-bit division, since that's what we use
dnl uint128_t for.
AC_CACHE_CHECK(for __uint128_t, gst_cv_uint128_t,
- AC_TRY_LINK([ ], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ]], [[
static __uint128_t v1 = 100;
static __uint128_t v2 = 10;
static __uint128_t u;
u = v1 / v2;
- ], [
+ ]])],[
gst_cv_uint128_t=yes
- ], [
+ ],[
gst_cv_uint128_t=no
])
)
AC_CHECK_LIB(rt, clock_gettime, [
AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
LIBS="$LIBS -lrt"
+ ], [
+ AC_CHECK_LIB(pthread, clock_gettime, [
+ AC_DEFINE(HAVE_CLOCK_GETTIME, 1)
+ LIBS="$LIBS -lpthread"
+ ])
])
])
AC_CACHE_CHECK(for posix timers, gst_cv_posix_timers,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <time.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
- ], [
+ ]], [[
#if !defined(_POSIX_TIMERS) || _POSIX_TIMERS < 0 || !defined(CLOCK_REALTIME)
#error Either _POSIX_TIMERS or CLOCK_REALTIME not defined
#endif
- ], [
+ ]])],[
gst_cv_posix_timers=yes
- ], [
+ ],[
gst_cv_posix_timers=no
])
)
AM_CONDITIONAL(GST_HAVE_POSIX_TIMERS, test "$gst_cv_posix_timers" = "yes")
AC_CACHE_CHECK(for monotonic clock, gst_cv_monotonic_clock,
- AC_TRY_COMPILE([
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <time.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
- ], [
+ ]], [[
#if !defined(_POSIX_MONOTONIC_CLOCK) || _POSIX_MONOTONIC_CLOCK < 0 || !defined(CLOCK_MONOTONIC)
#error Either _POSIX_MONOTONIC_CLOCK or CLOCK_MONOTONIC not defined
#endif
- ], [
+ ]])],[
gst_cv_monotonic_clock=yes
- ], [
+ ],[
gst_cv_monotonic_clock=no
])
)
dnl Check for a way to display the function name in debug output
AG_GST_CHECK_FUNCTION
-dnl test for register_printf_specifier or register_printf_function
-AC_CHECK_FUNCS([register_printf_specifier register_printf_function],
- [HAVE_PRINTF_EXTENSION=yes])
-
-if test "$HAVE_PRINTF_EXTENSION" = yes; then
- GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"P\""
- GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"Q\""
- GST_USING_PRINTF_EXTENSION_DEFINE="#define GST_USING_PRINTF_EXTENSION"
- AC_DEFINE(HAVE_PRINTF_EXTENSION, 1,
- [Defined if we have printf specifier extensions available])
-else
- GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE="#define GST_PTR_FORMAT \"p\""
- GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE="#define GST_SEGMENT_FORMAT \"p\""
- GST_USING_PRINTF_EXTENSION_DEFINE="#undef GST_USING_PRINTF_EXTENSION"
-fi
-AC_SUBST(GST_PRINTF_EXTENSION_POINTER_FORMAT_DEFINE)
-AC_SUBST(GST_PRINTF_EXTENSION_SEGMENT_FORMAT_DEFINE)
-AC_SUBST(GST_USING_PRINTF_EXTENSION_DEFINE)
-
dnl test if we have dladdr(); we use it for debugging; see gst/gstinfo.c
save_cflags="$CFLAGS"
CFLAGS="$CFLAGS -D_GNU_SOURCE"
LIBS="$LIBS -ldl")
CFLAGS="$save_cflags"
+dnl Check printf stuff
+if test "x${GST_DISABLE_GST_DEBUG}" != "xyes"; then
+ AC_TYPE_LONG_LONG_INT
+ AC_TYPE_UNSIGNED_LONG_LONG_INT
+
+ if test x$ac_cv_type_long_long_int$ac_cv_type_unsigned_long_long_int = xyesyes; then
+ AC_DEFINE([HAVE_LONG_LONG], [1], [Define to 1 if the system has the type long long])
+ fi
+
+ dnl /usr/share/aclocal/inttypes_h.m4 - ships with gettext apparently
+ gl_AC_HEADER_INTTYPES_H
+
+ dnl /usr/share/aclocal/stdint_h.m4 - ships with gettext apparently
+ gl_AC_HEADER_STDINT_H
+
+ AC_CHECK_TYPES(ptrdiff_t)
+
+ AC_TYPE_INTMAX_T
+ AC_TYPE_SIZE_T
+fi
+
dnl *** checks for dependency libraries ***
dnl GLib
dnl building of unit test libraries
AC_ARG_ENABLE(check,
- AC_HELP_STRING([--disable-check], [disable building unit test libraries]),
+ AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
[
case "${enableval}" in
yes) BUILD_CHECK=yes ;;
dnl Check for -Bsymbolic-functions linker flag used to avoid
dnl intra-library PLT jumps, if available.
AC_ARG_ENABLE(Bsymbolic,
- [AC_HELP_STRING([--disable-Bsymbolic],
- [avoid linking with -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_TRY_LINK([], [int main (void) { return 0; }],
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[int main (void) { return 0; }]])],[
AC_MSG_RESULT(yes)
- enable_Bsymbolic=yes,
+ enable_Bsymbolic=yes],[
AC_MSG_RESULT(no)
- enable_Bsymbolic=no)
+ enable_Bsymbolic=no])
LDFLAGS="${SAVED_LDFLAGS}"])
dnl set location of plugin directory
AG_GST_SET_PLUGINDIR
-GST_PKG_DEPS="glib-2.0, gobject-2.0, gmodule-no-export-2.0, gthread-2.0"
-AC_SUBST(GST_PKG_DEPS)
-
dnl make sure it doesn't complain about unused variables if debugging is disabled
NO_WARNINGS=""
if test "x${GST_DISABLE_GST_DEBUG}" = "xyes"; then
dnl define an ERROR_CFLAGS Makefile variable
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 special warning flags for gst/printf
+AS_COMPILER_FLAG([-Wno-format-nonliteral], [PRINTF_CFLAGS="-Wno-format-nonliteral"])
+AC_SUBST(PRINTF_CFLAGS)
+
dnl define correct level for debugging messages
AG_GST_SET_LEVEL_DEFAULT($GST_GIT)
dnl make DEPRECATED_CFLAGS=''
GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)"
-GST_OPTION_CFLAGS="$GST_OPTION_CFLAGS -DGST_USE_UNSTABLE_API"
-GST_OPTION_CXXFLAGS="$GST_OPTION_CXXFLAGS -DGST_USE_UNSTABLE_API"
+GST_OPTION_CFLAGS="$GST_OPTION_CFLAGS"
+GST_OPTION_CXXFLAGS="$GST_OPTION_CXXFLAGS"
AC_SUBST(GST_OPTION_CFLAGS)
AC_SUBST(GST_OPTION_CXXFLAGS)
dnl GST_PLUGIN_LDFLAGS
dnl LDFLAGS for plugins; includes GST_ALL_LDFLAGS
-GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS"
+GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
AC_SUBST(GST_PLUGIN_LDFLAGS, "$GST_PLUGIN_LDFLAGS")
dnl plugin scanner locations
gst/gstconfig.h
gst/gstversion.h
gst/parse/Makefile
+gst/printf/Makefile
libs/Makefile
libs/gst/Makefile
libs/gst/base/Makefile
Allocation tracing : ${enable_alloc_trace}
Plugin registry : ${enable_registry}
Plugin support : ${enable_plugin}
+ Static plugins : ${enable_static_plugins}
Unit testing support : ${BUILD_CHECK}
Debug : ${USE_DEBUG}