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.5.0.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.7.1.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AG_GST_INIT
dnl initialize automake (we require GNU make)
dnl sets host_* variables
AC_CANONICAL_HOST
-dnl use pretty build output with automake >= 1.11
-m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])],
- [AM_DEFAULT_VERBOSITY=1
- AC_SUBST(AM_DEFAULT_VERBOSITY)])
+dnl use pretty build output by default
+AM_SILENT_RULES([yes])
dnl GStreamer versioning, this is mostly informational
GST_VERSION_MAJOR=$PACKAGE_VERSION_MAJOR
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 501, 0, 501)
+AS_LIBTOOL(GST, 701, 0, 701)
dnl *** autotools stuff ****
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
AC_DEFINE(GST_DISABLE_OPTION_PARSING, 1,
[Define if option parsing is disabled])
fi
-AG_GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[tracing subsystem])
+AG_GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[historic 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")
[Define if we should poison deallocated memory])
fi
+dnl PTP support parts
+AC_MSG_CHECKING([whether PTP support can be enabled])
+case "$host_os" in
+ *android*)
+ dnl Can't run on Android because of permissions
+ HAVE_PTP=no
+ ;;
+ mingw*|pw32*|cygwin*)
+ dnl Not ported to Windows yet
+ HAVE_PTP=no
+ ;;
+ darwin*)
+ dnl Can't run on iOS because of permissions
+ AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_PTP="no", HAVE_PTP="yes", [-])
+ ;;
+ linux*|darwin*|solaris*|netbsd*|freebsd*|openbsd*|kfreebsd*|dragonfly*|gnu*)
+ HAVE_PTP=yes
+ ;;
+ *)
+ HAVE_PTP=no
+ ;;
+esac
+AC_MSG_RESULT([$HAVE_PTP])
+
+dnl user/group to change to in gst-ptp-helper
+AC_ARG_WITH([ptp-helper-setuid-user],
+ AS_HELP_STRING([--with-ptp-helper-setuid-user],[User to switch to when installing gst-ptp-helper setuid root]),
+ [
+ if test "x$withval" != "x"
+ then
+ AC_DEFINE_UNQUOTED(HAVE_PTP_HELPER_SETUID_USER, "$withval", [PTP helper setuid user])
+ fi
+ ], []
+)
+
+dnl group/group to change to in gst-ptp-helper
+AC_ARG_WITH([ptp-helper-setuid-group],
+ AS_HELP_STRING([--with-ptp-helper-setuid-group],[Group to switch to when installing gst-ptp-helper setuid root]),
+ [
+ if test "x$withval" != "x"
+ then
+ AC_DEFINE_UNQUOTED(HAVE_PTP_HELPER_SETUID_GROUP, "$withval", [PTP helper setuid group])
+ fi
+ ], []
+)
+
+AC_ARG_WITH(
+ ptp-helper-permissions,
+ AC_HELP_STRING(
+ [--with-ptp-helper-permissions],
+ [how to gain PTP permissions (none, setuid-root, capabilities, auto)]),
+ [],
+ [with_ptp_helper_permissions=auto])
+
+gst_ptp_have_cap=no
+AG_GST_CHECK_LIBHEADER(CAP, cap,
+ cap_init, ,
+ sys/capability.h,
+ CAP_LIBS="-lcap"
+ AC_SUBST(CAP_LIBS)
+ gst_ptp_have_cap=yes)
+
+AC_PATH_PROG([SETCAP], [setcap], [no], [$PATH:/usr/bin:/bin:/usr/sbin:/sbin])
+
+if test "x$HAVE_PTP" = "xyes"; then
+AC_DEFINE(HAVE_PTP, 1, [PTP support available])
+
+AC_MSG_CHECKING([for SIOCGIFCONF, SIOCGIFFLAGS and SIOCGIFHWADDR])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [[
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+ ]],
+ [[
+ struct ifreq ifr;
+ struct ifconf ifc;
+ ioctl(0, SIOCGIFCONF, &ifc);
+ ioctl(0, SIOCGIFFLAGS, &ifr);
+ ioctl(0, SIOCGIFHWADDR, &ifr);
+ int dummy = ifr.ifr_hwaddr.sa_data[0];
+ ]])], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_SIOCGIFCONF_SIOCGIFFLAGS_SIOCGIFHWADDR, 1, [SIOCGIFCONF, SIOCGIFFLAGS and SIOCGIFHWADDR is available])
+ ], [
+ AC_MSG_RESULT(no)
+])
+
+AC_MSG_CHECKING([for getifaddrs() and AF_LINK])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [[
+ #include <ifaddrs.h>
+ #include <net/if.h>
+ #include <net/if_dl.h>
+ ]],
+ [[
+ struct ifaddrs *ifaddr;
+ getifaddrs(&ifaddr);
+ int dummy = (ifaddr->ifa_flags & IFF_LOOPBACK) && ifaddr->ifa_addr->sa_family != AF_LINK;
+ ]])], [
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_GETIFADDRS_AF_LINK, 1, [getifaddrs() and AF_LINK is available])
+ ], [
+ AC_MSG_RESULT(no)
+ ])
+
+AC_MSG_CHECKING([how to install gst-ptp-helper])
+if test "x$with_ptp_helper_permissions" = "xauto"; then
+ if test "x$gst_ptp_have_cap" = "xyes" -a "x$SETCAP" != "xno"; then
+ with_ptp_helper_permissions="capabilities"
+ else
+ with_ptp_helper_permissions="setuid-root"
+ fi
+fi
+AC_MSG_RESULT([$with_ptp_helper_permissions])
+
+case "$with_ptp_helper_permissions" in
+ none)
+ ;;
+ setuid-root)
+ AC_DEFINE(HAVE_PTP_HELPER_SETUID, 1,
+ [Use setuid-root for permissions in PTP helper])
+ ;;
+ capabilities)
+ AC_DEFINE(HAVE_PTP_HELPER_CAPABILITIES, 1,
+ [Use capabilities for permissions in PTP helper])
+ ;;
+ *)
+ AC_MSG_ERROR(Invalid parameter [$with_ptp_helper_permissions])
+ ;;
+esac
+
+fi
+
+AM_CONDITIONAL(HAVE_PTP, test "x$HAVE_PTP" = "xyes")
+AM_CONDITIONAL(HAVE_PTP_HELPER_SETUID, test "x$with_ptp_helper_permissions" = "xsetuid-root")
+AM_CONDITIONAL(HAVE_PTP_HELPER_CAPABILITIES, test "x$with_ptp_helper_permissions" = "xcapabilities")
+
dnl *** checks for platform ***
dnl * hardware/architecture *
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
AC_CHECK_FUNCS([ppoll])
AC_CHECK_FUNCS([pselect])
+dnl check for socketpair()
+AC_CHECK_FUNC(socketpair, [], [
+ AC_CHECK_LIB(socket, socketpair, [
+ SOCKET_LIBS="-lsocket"
+ AC_SUBST(SOCKET_LIBS)
+ ])
+])
+
dnl ****************************************
dnl *** GLib POLL* compatibility defines ***
dnl ****************************************
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 building of unit test libraries
AC_ARG_ENABLE(check,
AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
esac
fi
], [
- AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default])
+ AC_DEFINE(MEMORY_ALIGNMENT_MALLOC, 1, [Memory alignment by malloc default])
]
)
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
"$GST_PLUGIN_SCANNER_INSTALLED", [location of the installed gst-plugin-scanner])
AC_SUBST(GST_PLUGIN_SCANNER_INSTALLED)
+dnl ptp helper locations
+AS_AC_EXPAND(GST_PTP_HELPER_INSTALLED,${libexecdir}/gstreamer-$GST_API_VERSION/gst-ptp-helper)
+AC_DEFINE_UNQUOTED(GST_PTP_HELPER_INSTALLED,
+ "$GST_PTP_HELPER_INSTALLED", [location of the installed gst-ptp-helper])
+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()
libs/gst/net/Makefile
plugins/Makefile
plugins/elements/Makefile
+plugins/tracers/Makefile
po/Makefile.in
tests/Makefile
tests/benchmarks/Makefile
tests/examples/controller/Makefile
tests/examples/stepping/Makefile
tests/examples/helloworld/Makefile
-tests/examples/launch/Makefile
tests/examples/manual/Makefile
tests/examples/memory/Makefile
-tests/examples/metadata/Makefile
tests/examples/netclock/Makefile
-tests/examples/queue/Makefile
+tests/examples/ptp/Makefile
tests/examples/streamiddemux/Makefile
tests/examples/streams/Makefile
-tests/examples/typefind/Makefile
tools/Makefile
common/Makefile
common/m4/Makefile
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
Documentation (manuals) : ${enable_docbook}
Documentation (API) : ${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}
+ Historic 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}
Debug : ${USE_DEBUG}
Profiling : ${USE_PROFILING}