X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/b58ab2b3514670d687cca46e18cfc49b9ee1ea25..HEAD:/configure.ac diff --git a/configure.ac b/configure.ac index 438fd06f..76490f46 100644 --- a/configure.ac +++ b/configure.ac @@ -45,15 +45,15 @@ AC_SUBST(PA_PROTOCOL_VERSION, 29) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z -AC_SUBST(LIBPULSE_VERSION_INFO, [16:2:16]) +AC_SUBST(LIBPULSE_VERSION_INFO, [17:3:17]) # A simplified, synchronous, ABI-stable interface for client # applications, for the version info x:y:z always will hold y=z -AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:4:0]) +AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [1:0:1]) # The ABI-stable GLib adapter for client applications, for the version # info x:y:z always will hold y=z -AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0]) +AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:5:0]) AC_CANONICAL_HOST AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) @@ -118,6 +118,10 @@ fi #### 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 @@ -126,8 +130,13 @@ AC_MSG_CHECKING([host operating system]) 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 @@ -165,12 +174,23 @@ esac #### 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])]) +AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [ + # Don't append the flag if it already exists. + # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh. + AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS]) + + # Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags. + # Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications + # if CPPFLAGS already contain -D_FORTIFY_SOURCE=2. + # Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE: + # On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp] + # On Gentoo with -O2: "_FORTIFY_SOURCE" redefined [enabled by default] + AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"]) +]) #### Linker flags #### @@ -590,17 +610,16 @@ AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?])) 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) #### @@ -770,9 +789,9 @@ AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"], 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) @@ -979,23 +998,33 @@ PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id" 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]) @@ -1145,6 +1174,22 @@ AC_SUBST(HAVE_SYSTEMD) 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], @@ -1207,6 +1252,7 @@ PACTL_BINARY=${bindir}/pactl${EXEEXT} 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]) @@ -1342,13 +1388,11 @@ man/pulse-daemon.conf.5.xml man/pulse-client.conf.5.xml man/default.pa.5.xml man/pulse-cli-syntax.5.xml -man/start-pulseaudio-kde.1.xml man/start-pulseaudio-x11.1.xml ]) AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat]) AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11]) -AC_CONFIG_FILES([src/start-pulseaudio-kde:src/daemon/start-pulseaudio-kde.in], [chmod +x src/start-pulseaudio-kde]) AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in]) AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in], [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf]) @@ -1389,7 +1433,9 @@ AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no) 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) @@ -1421,6 +1467,7 @@ echo " System Config Path: ${PA_SYSTEM_CONFIG_PATH} Compiler: ${CC} CFLAGS: ${CFLAGS} + CPPFLAGS: ${CPPFLAGS} LIBS: ${LIBS} Enable X11: ${ENABLE_X11} @@ -1440,10 +1487,12 @@ echo " 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}