diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 212 |
1 files changed, 133 insertions, 79 deletions
diff --git a/configure.ac b/configure.ac index c24658b1..c02b20ed 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],[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]) -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, [7:1:7]) # A simplified, synchronous, ABI-stable interface for client # applications, for the version info x:y:z always will hold y=z @@ -101,6 +104,12 @@ 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 <sys/types.h> - #if HAVE_NETINET_IN_H - # include <netinet/in.h> - #endif - #if HAVE_NETINET_IN_SYSTM_H - # include <netinet/in_systm.h> - #endif - ]) + [#include <sys/types.h> + #if HAVE_NETINET_IN_H + # include <netinet/in.h> + #endif + #if HAVE_NETINET_IN_SYSTM_H + # include <netinet/in_systm.h> + #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) #### @@ -870,8 +918,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 @@ -1139,12 +1190,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 @@ -1255,6 +1305,7 @@ echo " System Config Path: ${PA_SYSTEM_CONFIG_PATH} Compiler: ${CC} CFLAGS: ${CFLAGS} + Have X11: ${ENABLE_X11} Enable OSS: ${ENABLE_OSS} Enable Alsa: ${ENABLE_ALSA} @@ -1271,9 +1322,12 @@ echo " Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} Enable PolicyKit: ${ENABLE_POLKIT} 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} " |