X-Git-Url: https://code.delx.au/pulseaudio/blobdiff_plain/dd9ca70759b8370db5df50ae8e84f86d01555106..c1892f29de7962a95806f78719d0ff9af87b49a3:/configure.ac diff --git a/configure.ac b/configure.ac index ae6dd964..ddf7a1cc 100644 --- a/configure.ac +++ b/configure.ac @@ -22,18 +22,21 @@ AC_PREREQ(2.63) -m4_define(PA_MAJOR, [0]) -m4_define(PA_MINOR, [9]) -m4_define(PA_MICRO, [14]) +m4_define(pa_major, [0]) +m4_define(pa_minor, [9]) +m4_define(pa_micro, [15]) -AC_INIT([pulseaudio],[PA_MAJOR.PA_MINOR.PA_MICRO],[mzchyfrnhqvb (at) 0pointer (dot) net]) +AC_INIT([pulseaudio],[pa_major.pa_minor.pa_micro-test2],[mzchyfrnhqvb (at) 0pointer (dot) net]) AC_CONFIG_SRCDIR([src/daemon/main.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign 1.10 -Wall]) +AM_INIT_AUTOMAKE([foreign 1.10 -Wall -Wno-portability]) -AC_SUBST(PA_MAJORMINOR, PA_MAJOR.PA_MINOR) -AC_SUBST(PA_MAJORMINORMICRO, PA_MAJOR.PA_MINOR.PA_MICRO) +AC_SUBST(PA_MAJOR, pa_major) +AC_SUBST(PA_MINOR, pa_minor) +AC_SUBST(PA_MICRO, pa_micro) +AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor) +AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro) AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/]) AC_SUBST(PA_API_VERSION, 12) @@ -41,7 +44,7 @@ AC_SUBST(PA_PROTOCOL_VERSION, 15) # The stable ABI for client applications, for the version info x:y:z # always will hold y=z -AC_SUBST(LIBPULSE_VERSION_INFO, [7:0:7]) +AC_SUBST(LIBPULSE_VERSION_INFO, [8:0:8]) # A simplified, synchronous, ABI-stable interface for client # applications, for the version info x:y:z always will hold y=z @@ -95,12 +98,18 @@ if test "x$M4" = xno ; then fi dnl Compiler flags -DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wno-long-long -Wvla -Wno-overlength-strings -Wundef -Wformat -Wlogical-op -Wpacked -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wno-unused-parameter -ffast-math" +DESIRED_FLAGS="-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -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=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option" for flag in $DESIRED_FLAGS ; do CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"]) done +dnl Check whether to build tests by default (as compile-test) or not +AC_ARG_ENABLE([default-build-tests], + AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check])) + +AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"]) + # Native atomic operation support AC_ARG_ENABLE([atomic-arm-linux-helpers], AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]), @@ -123,16 +132,31 @@ AC_ARG_ENABLE([atomic-arm-memory-barrier], esac ],) +AC_ARG_ENABLE([netbsd-atomic-ops], + AS_HELP_STRING([--enable-netbsd-atomic-ops],[Use the native NetBSD atomic_ops implementation]), + [ + case "${enableval}" in + yes) atomic_netbsd_helpers=yes ;; + no) atomic_netbsd_helpers=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-netbsd-atomic-ops) ;; + esac + ], + [atomic_netbsd_helpers=auto]) + AC_MSG_CHECKING([target operating system]) case $host in - *-*-linux*) - AC_MSG_RESULT([linux]) - pulse_target_os=linux - ;; - *) - AC_MSG_RESULT([unknown]) - pulse_target_os=unknown - ;; + *-*-linux*) + AC_MSG_RESULT([linux]) + pulse_target_os=linux + ;; + *-*-netbsd*) + AC_MSG_RESULT([netbsd]) + pulse_target_os=netbsd + ;; + *) + AC_MSG_RESULT([unknown]) + pulse_target_os=unknown + ;; esac # If everything else fails use libatomic_ops @@ -154,42 +178,48 @@ else AC_MSG_CHECKING([architecture for native atomic operations]) case $host_cpu in arm*) - AC_MSG_RESULT([arm]) - AC_MSG_CHECKING([whether we can use Linux kernel helpers]) - # The Linux kernel helper functions have been there since 2.6.16. However - # compile time checking for kernel version in cross compile environment - # (which is usually the case for arm cpu) is tricky (or impossible). - if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then - AC_MSG_RESULT([yes]) - AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation]) - need_libatomic_ops=no - else - AC_MSG_RESULT([no]) - AC_CACHE_CHECK([compiler support for arm inline asm atomic operations], - pulseaudio_cv_support_arm_atomic_ops, - [AC_COMPILE_IFELSE( - AC_LANG_PROGRAM([], - [[volatile int a=0; - int o=0, n=1, r; - asm volatile ("ldrex %0, [%1]\n" - "subs %0, %0, %2\n" - "strexeq %0, %3, [%1]\n" - : "=&r" (r) - : "r" (&a), "Ir" (o), "r" (n) - : "cc"); + AC_MSG_RESULT([arm]) + AC_MSG_CHECKING([whether we can use Linux kernel helpers]) + # The Linux kernel helper functions have been there since 2.6.16. However + # compile time checking for kernel version in cross compile environment + # (which is usually the case for arm cpu) is tricky (or impossible). + if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation]) + need_libatomic_ops=no + else + AC_MSG_RESULT([no]) + AC_CACHE_CHECK([compiler support for arm inline asm atomic operations], + pulseaudio_cv_support_arm_atomic_ops, + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], + [[volatile int a=0; + int o=0, n=1, r; + asm volatile ("ldrex %0, [%1]\n" + "subs %0, %0, %2\n" + "strexeq %0, %3, [%1]\n" + : "=&r" (r) + : "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]) - ]) - AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [ - AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.]) - need_libatomic_ops=no - ]) - fi - ;; + ]]), + [pulseaudio_cv_support_arm_atomic_ops=yes], + [pulseaudio_cv_support_arm_atomic_ops=no]) + ]) + AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [ + AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.]) + need_libatomic_ops=no + ]) + fi + ;; *) - AC_MSG_RESULT([unknown]) + if test "x$pulse_target_os" = "xnetbsd" && test "x$atomic_netbsd_helpers" = "xyes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(NETBSD_ATOMIC_OPS, 1, [netbsd implementation]) + need_libatomic_ops=no + else + AC_MSG_RESULT([unknown]) + fi ;; esac fi @@ -210,20 +240,43 @@ AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [ #### libtool stuff #### LT_PREREQ(2.2) -LT_CONFIG_LTDL_DIR([libltdl]) LT_INIT([dlopen win32-dll disable-static]) -LTDL_INIT([convenience recursive]) + +dnl Unfortunately, even up to libtool 2.2.6a there is no way to know +dnl exactly which version of libltdl is present in the system, so we +dnl just assume that it's a working version as long as we have the +dnl library and the header files. +dnl +dnl As an extra safety device, check for lt_dladvise_init() which is +dnl only implemented in libtool 2.x, and refine as we go if we have +dnl refined requirements. +dnl +dnl Check the header files first since the system may have a +dnl libltdl.so for runtime, but no headers, and we want to bail out as +dnl soon as possible. +dnl +dnl We don't need any special variable for this though, since the user +dnl can give the proper place to find libltdl through the standard +dnl variables like LDFLAGS and CPPFLAGS. + +AC_CHECK_HEADER([ltdl.h], + [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])], + [LIBLTDL=]) + +AS_IF([test "x$LIBLTDL" = "x"], + [AC_MSG_ERROR([Unable to find libltdl.])]) +AC_SUBST([LIBLTDL]) #### Determine build environment #### os_is_win32=0 case "$host_os" in - mingw*) + mingw*) AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.]) os_is_win32=1 - ;; - esac + ;; + esac AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1") @@ -240,16 +293,16 @@ AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \ sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \ - syslog.h sys/dl.h dlfcn.h linux/sockios.h]) + sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h]) AC_CHECK_HEADERS([netinet/ip.h], [], [], - [#include - #if HAVE_NETINET_IN_H - # include - #endif - #if HAVE_NETINET_IN_SYSTM_H - # include - #endif - ]) + [#include + #if HAVE_NETINET_IN_H + # include + #endif + #if HAVE_NETINET_IN_SYSTM_H + # include + #endif + ]) AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0]) AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0]) @@ -269,6 +322,9 @@ AC_CHECK_HEADERS([sys/filio.h]) # Windows AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) +# NetBSD +AC_CHECK_HEADERS([sys/atomic.h]) + # Other AC_CHECK_HEADERS([sys/ioctl.h]) AC_CHECK_HEADERS([byteswap.h]) @@ -337,10 +393,10 @@ AC_CHECK_FUNCS([lrintf strtof]) AC_FUNC_FORK AC_FUNC_GETGROUPS AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r \ - getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ +AC_CHECK_FUNCS([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \ + getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \ pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ - sigaction sleep sysconf]) + sigaction sleep sysconf pthread_setaffinity_np]) AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1") @@ -413,14 +469,6 @@ AC_SUBST(pulselocaledir) #### pkg-config #### -# Check for pkg-config manually first, as if its not installed the -# PKG_PROG_PKG_CONFIG macro won't be defined. -AC_CHECK_PROG(have_pkg_config, pkg-config, yes, no) - -if test x"$have_pkg_config" = "xno"; then - AC_MSG_ERROR(pkg-config is required to install this program) -fi - PKG_PROG_PKG_CONFIG #### X11 (optional) #### @@ -437,7 +485,7 @@ AC_ARG_ENABLE([x11], [x11=auto]) if test "x${x11}" != xno ; then - PKG_CHECK_MODULES(X11, [ x11 ], + PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ], HAVE_X11=1, [ HAVE_X11=0 @@ -590,7 +638,7 @@ AC_ARG_ENABLE([alsa], [alsa=auto]) if test "x${alsa}" != xno ; then - PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.17 ], + PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], [ HAVE_ALSA=1 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]) @@ -598,7 +646,7 @@ if test "x${alsa}" != xno ; then [ HAVE_ALSA=0 if test "x$alsa" = xyes ; then - AC_MSG_ERROR([*** Needed alsa >= 1.0.17 support not found]) + AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found]) fi ]) else @@ -673,6 +721,45 @@ AC_SUBST(GLIB20_LIBS) AC_SUBST(HAVE_GLIB20) AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1]) +if test "x$HAVE_GLIB20" = x1 ; then + AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]) +fi + +#### GTK2 support (optional) #### + +AC_ARG_ENABLE([gtk2], + AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]), + [ + case "${enableval}" in + yes) gtk2=yes ;; + no) gtk2=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;; + esac + ], + [gtk2=auto]) + +if test "x${gtk2}" != xno ; then + PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], + HAVE_GTK20=1, + [ + HAVE_GTK20=0 + if test "x$gtk2" = xyes ; then + AC_MSG_ERROR([*** Gtk+ 2 support not found]) + fi + ]) +else + HAVE_GTK20=0 +fi + +AC_SUBST(GTK20_CFLAGS) +AC_SUBST(GTK20_LIBS) +AC_SUBST(HAVE_GTK20) +AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1]) + +if test "x$HAVE_GTK20" = x1 ; then + AC_DEFINE([HAVE_GTK], 1, [Have GTK?]) +fi + #### GConf support (optional) #### AC_ARG_ENABLE([gconf], @@ -870,8 +957,11 @@ AC_ARG_ENABLE([hal], ], [hal=auto]) if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then - PKG_CHECK_MODULES(HAL, [ hal >= 0.5.7 ], - HAVE_HAL=1, + PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], + [ + HAVE_HAL=1 + AC_DEFINE([HAVE_HAL], 1, [Have HAL.]) + ], [ HAVE_HAL=0 if test "x$hal" = xyes ; then @@ -997,6 +1087,27 @@ AC_SUBST(POLKIT_LIBS) AC_SUBST(HAVE_POLKIT) AM_CONDITIONAL([HAVE_POLKIT], [test "x$HAVE_POLKIT" = x1]) + +### IPv6 connection support (optional) ### + +AC_ARG_ENABLE([ipv6], + AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]), + [ + case "${enableval}" in + yes) ipv6=yes ;; + no) ipv6=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;; + esac + ], + [ipv6=auto]) + +if test "x${ipv6}" != xno ; then + AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support]) + HAVE_IPV6=1 +else + HAVE_IPV6=0 +fi + #### OpenSSL support (optional) #### AC_ARG_ENABLE([openssl], @@ -1139,12 +1250,11 @@ AC_SUBST(modlibexecdir) AC_ARG_ENABLE( [force-preopen], AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]), - [FORCE_PREOPEN=1], [FORCE_PREOPEN=0]) -AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "x1"]) + [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no]) +AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"]) AC_CONFIG_FILES([ Makefile -libltdl/Makefile src/Makefile man/Makefile libpulse.pc @@ -1179,6 +1289,11 @@ if test "x$HAVE_SOLARIS" = "x1" ; then ENABLE_SOLARIS=yes fi +ENABLE_GTK20=no +if test "x$HAVE_GTK20" = "x1" ; then + ENABLE_GTK20=yes +fi + ENABLE_GLIB20=no if test "x$HAVE_GLIB20" = "x1" ; then ENABLE_GLIB20=yes @@ -1239,6 +1354,11 @@ if test "x${HAVE_OPENSSL}" = "x1" ; then ENABLE_OPENSSL=yes fi +ENABLE_IPV6=no +if test "x${HAVE_IPV6}" = "x1" ; then + ENABLE_IPV6=yes +fi + ENABLE_PER_USER_ESOUND_SOCKET=no if test "x$per_user_esound_socket" = "x1" ; then ENABLE_PER_USER_ESOUND_SOCKET=yes @@ -1255,11 +1375,13 @@ echo " System Config Path: ${PA_SYSTEM_CONFIG_PATH} Compiler: ${CC} CFLAGS: ${CFLAGS} + Have X11: ${ENABLE_X11} Enable OSS: ${ENABLE_OSS} Enable Alsa: ${ENABLE_ALSA} Enable Solaris: ${ENABLE_SOLARIS} Enable GLib 2.0: ${ENABLE_GLIB20} + Enable Gtk+ 2.0: ${ENABLE_GTK20} Enable GConf: ${ENABLE_GCONF} Enable Avahi: ${ENABLE_AVAHI} Enable Jack: ${ENABLE_JACK} @@ -1270,10 +1392,14 @@ echo " Enable TCP Wrappers: ${ENABLE_TCPWRAP} Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} Enable PolicyKit: ${ENABLE_POLKIT} + Enable IPv6: ${ENABLE_IPV6} Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} + System User: ${PA_SYSTEM_USER} System Group: ${PA_SYSTEM_GROUP} Realtime Group: ${PA_REALTIME_GROUP} Access Group: ${PA_ACCESS_GROUP} Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET} + Force preopen: ${FORCE_PREOPEN} + Preopened modules: ${PREOPEN_MODS} "