AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules color-tests dist-xz tar-ustar])
+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability subdir-objects silent-rules color-tests dist-xz tar-ustar])
AS_IF([! test -n "$VERSION"], [
AC_MSG_ERROR([git-version-gen failed])
#### Determine host OS ####
+# if the host has the possibility of sys/capability.h for dropping privileges
+# used to determine if we should error out if it is not found
+host_has_caps=0
+
os_is_linux=0
os_is_win32=0
os_is_darwin=0
case "$host_os" in
linux*)
AC_MSG_RESULT([linux])
+ host_has_caps=1
os_is_linux=1
;;
+ freebsd*)
+ AC_MSG_RESULT([freebsd])
+ host_has_caps=1
+ ;;
darwin*)
AC_MSG_RESULT([darwin])
os_is_darwin=1
#### Compiler flags ####
AX_APPEND_COMPILE_FLAGS(
- [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option],
+ [-Wall -W -Wextra -pipe -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option],
[], [-pedantic -Werror])
# Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [AX_APPEND_FLAG(["-DFASTPATH"], [CPPFLAGS])])
+# Only set _FORTIFY_SOURCE when optimizations are enabled. If optimizations
+# are disabled, _FORTIFY_SOURCE doesn't do anything, and causes tons of
+# warnings during compiling on some distributions (at least Fedora).
+AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [AX_APPEND_FLAG(["-D_FORTIFY_SOURCE=2"], [CPPFLAGS])])
+
#### Linker flags ####
AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
pulseaudio_cv_sync_bool_compare_and_swap, [
AC_LINK_IFELSE(
- AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
+ [AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
[pulseaudio_cv_sync_bool_compare_and_swap=yes],
[pulseaudio_cv_sync_bool_compare_and_swap=no])
])
AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
pulseaudio_cv_support_arm_atomic_ops, [
AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([], [[
+ [AC_LANG_PROGRAM([], [[
volatile int a=0;
int o=0, n=1, r;
asm volatile ("ldrex %0, [%1]\n"
: "r" (&a), "Ir" (o), "r" (n)
: "cc");
return (a==1 ? 0 : -1);
- ]]),
+ ]])],
[pulseaudio_cv_support_arm_atomic_ops=yes],
[pulseaudio_cv_support_arm_atomic_ops=no])
])
AC_CACHE_CHECK([support for required armv6 instructions],
pulseaudio_cv_support_armv6,
[AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([],
+ [AC_LANG_PROGRAM([],
[[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
asm volatile ("ldr r0, %2 \n"
"ldr r2, %3 \n"
: "m" (a), "m" (b), "m" (c)
: "r0", "r1", "r2", "r3", "cc");
return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
- ]]),
+ ]])],
[pulseaudio_cv_support_armv6=yes],
[pulseaudio_cv_support_armv6=no])
])
AS_IF([test "x$enable_neon_opt" != "xno"],
[save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([[#include <arm_neon.h>]], []),
+ [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
[
HAVE_NEON=1
NEON_CFLAGS="-mfpu=neon"
AC_CACHE_CHECK([whether $CC knows _Bool],
pulseaudio_cv__Bool,
[AC_COMPILE_IFELSE(
- AC_LANG_PROGRAM([], [[_Bool b;]]),
+ [AC_LANG_PROGRAM([], [[_Bool b;]])],
[pulseaudio_cv__Bool=yes],
[pulseaudio_cv__Bool=no])
])
CAP_LIBS=''
AC_ARG_WITH([caps],
- AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
+ AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
if test "x${with_caps}" != "xno"; then
- AC_SEARCH_LIBS([cap_init], [cap], [], [
- if test "x${with_caps}" = "xyes" ; then
- AC_MSG_ERROR([*** POSIX caps libraries not found])
- fi])
+ AC_SEARCH_LIBS([cap_init], [cap], [], [])
+
+ # Only give an error on hosts that we know could support capabilities
AC_CHECK_HEADERS([sys/capability.h], [], [
- if test "x${with_caps}" = "xyes" ; then
- AC_MSG_ERROR([*** POSIX caps headers not found])
- fi])
+ if test "${host_has_caps}" = "1"; then
+ AC_MSG_ERROR([*** sys/capability.h not found. Use --without-caps to disable capabilities support.])
+ fi])
fi
#### Valgrind (optional) ####
AS_IF([test "x$HAVE_ALSA" = "x1"],
[
- save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $ASOUNDLIB_CFLAGS"
+ save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
- CFLAGS="$save_CFLAGS"
+ CPPFLAGS="$save_CPPFLAGS"
],
HAVE_ALSA_UCM=0)
AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
[Fallback machine-id file])
-#### BlueZ support (optional, dependent on D-Bus) ####
+#### BlueZ support (optional, dependent on D-Bus and SBC) ####
-AC_ARG_ENABLE([bluez],
- AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
+AC_ARG_ENABLE([bluez4],
+ AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
+AC_ARG_ENABLE([bluez5],
+ AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
-AS_IF([test "x$enable_bluez" != "xno"],
- [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 4.99 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
- HAVE_BLUEZ=0)
-AS_IF([test "x$enable_bluez" != "xno"],
+## SBC ##
+AS_IF([test "x$enable_bluez4" != "xno" || test "x$enable_bluez5" != "xno"],
[PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
HAVE_SBC=0)
-AS_IF([test "x$HAVE_SBC" != "x1"], HAVE_BLUEZ=0)
-AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ=0)
-
-AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
- [AC_MSG_ERROR([*** BLUEZ support not found (requires BlueZ, sbc, and D-Bus)])])
+## BlueZ 4 ##
+AS_IF([test "x$enable_bluez4" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_4=1)
+AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" != "x1"],
+ [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires sbc and D-Bus)])])
+AC_SUBST(HAVE_BLUEZ_4)
+AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
+
+## BlueZ 5 ##
+AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1)
+AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
+ [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
+AC_SUBST(HAVE_BLUEZ_5)
+AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
+
+AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1)
AC_SUBST(HAVE_BLUEZ)
AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$HAVE_SYSTEMD" = x1])
AS_IF([test "x$HAVE_SYSTEMD" = "x1"], AC_DEFINE([HAVE_SYSTEMD], 1, [Have SYSTEMD?]))
+#### journal support (optional) ####
+
+AC_ARG_ENABLE([systemd-journal],
+ AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
+
+AS_IF([test "x$enable_systemd_journal" != "xno"],
+ [PKG_CHECK_MODULES(JOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)],
+ HAVE_SYSTEMD_JOURNAL=0)
+
+AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
+ [AC_MSG_ERROR([*** Needed systemd journal support not found])])
+
+AC_SUBST(HAVE_SYSTEMD_JOURNAL)
+AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
+AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_JOURNAL], 1, [Have JOURNAL?]))
+
#### Build and Install man pages ####
AC_ARG_ENABLE([manpages],
AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
AC_SUBST(PA_SOEXT, [.so])
+AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
-AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
+AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
+AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
+AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
System Config Path: ${PA_SYSTEM_CONFIG_PATH}
Compiler: ${CC}
CFLAGS: ${CFLAGS}
+ CPPFLAGS: ${CPPFLAGS}
LIBS: ${LIBS}
Enable X11: ${ENABLE_X11}
Enable LIRC: ${ENABLE_LIRC}
Enable Xen PV driver: ${ENABLE_XEN}
Enable D-Bus: ${ENABLE_DBUS}
- Enable BlueZ: ${ENABLE_BLUEZ}
+ Enable BlueZ 4: ${ENABLE_BLUEZ_4}
+ Enable BlueZ 5: ${ENABLE_BLUEZ_5}
Enable udev: ${ENABLE_UDEV}
Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
Enable systemd login: ${ENABLE_SYSTEMD}
+ Enable systemd journal: ${ENABLE_SYSTEMD_JOURNAL}
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
Enable IPv6: ${ENABLE_IPV6}