diff options
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 1543 |
1 files changed, 1064 insertions, 479 deletions
diff --git a/configure.ac b/configure.ac index a7f85ea0..66dc9ca2 100644 --- a/configure.ac +++ b/configure.ac @@ -1,10 +1,11 @@ # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. -# $Id$ - # This file is part of PulseAudio. # +# Copyright 2004-2008 Lennart Poettering +# Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB +# # PulseAudio is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2 of the License, or @@ -19,118 +20,317 @@ # along with PulseAudio; if not, write to the Free Software Foundation, # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -AC_PREREQ(2.57) - -m4_define(PA_MAJOR, [0]) -m4_define(PA_MINOR, [9]) -m4_define(PA_MICRO, [2]) +AC_PREREQ(2.63) -AC_INIT([pulseaudio], PA_MAJOR.PA_MINOR.PA_MICRO,[mzcbylcnhqvb (at) 0pointer (dot) de]) +AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net],[pulseaudio],[http://pulseaudio.org/]) AC_CONFIG_SRCDIR([src/daemon/main.c]) +AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([foreign -Wall]) +AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax]) -AC_SUBST(PA_MAJORMINOR, "PA_MAJOR.PA_MINOR") -AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/pulseaudio/]) +m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`) +m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`) -AC_SUBST(PA_API_VERSION, 9) -AC_SUBST(PA_PROTOCOL_VERSION, 9) +AC_SUBST(PA_MAJOR, pa_major) +AC_SUBST(PA_MINOR, pa_minor) +AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor) -AC_SUBST(LIBPULSE_VERSION_INFO, [0:0:0]) -AC_SUBST(LIBPULSECORE_VERSION_INFO, [0:1:0]) -AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:0:0]) -AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [0:0:0]) -AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:0:0]) +AC_SUBST(PA_API_VERSION, 12) +AC_SUBST(PA_PROTOCOL_VERSION, 22) -if type -p stow > /dev/null && test -d /usr/local/stow ; then - AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***]) - ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}" -fi +# The stable ABI for client applications, for the version info x:y:z +# always will hold y=z +AC_SUBST(LIBPULSE_VERSION_INFO, [12:4:12]) -#### Platform hacks #### +# 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:3:0]) + +# The ABI-stable network browsing interface for client applications, +# for the version info x:y:z always will hold y=z +AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1: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_CANONICAL_HOST +AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.]) + +AC_CHECK_PROG([STOW], [stow], [yes], [no]) + +AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [ + AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***]) + ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}" +]) + +AM_SILENT_RULES([yes]) -case $host in - *-*-solaris* ) - AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) - AC_DEFINE(_XOPEN_SOURCE, 2, Needed to get declarations for msg_control and msg_controllen on Solaris) - AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris) - ;; -esac #### Checks for programs. #### +# mkdir -p + +AC_PROG_MKDIR_P + # CC AC_PROG_CC +AC_PROG_CC_C99 +AM_PROG_CC_C_O AC_PROG_GCC_TRADITIONAL -AC_GNU_SOURCE +AC_USE_SYSTEM_EXTENSIONS # M4 -AC_PATH_PROG([M4], [m4 gm4], [no]) -if test "x$M4" = xno ; then - AC_MSG_ERROR([m4 missing]) -fi +AC_CHECK_PROGS([M4], gm4 m4, no) +AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing])) -# GCC flags - -test_gcc_flag() { - AC_LANG_CONFTEST([int main() {}]) - $CC -c conftest.c $CFLAGS $@ > /dev/null 2> /dev/null - ret=$? - rm -f conftest.o - return $ret -} - -# If using GCC specify some additional parameters -if test "x$GCC" = "xyes" ; then - - # We use gnu99 instead of c99 because many have interpreted the standard - # in a way that int64_t isn't defined on non-64 bit platforms. - DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -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 -Winline -Wno-unused-parameter" - - for flag in $DESIRED_FLAGS ; do - AC_MSG_CHECKING([whether $CC accepts $flag]) - if test_gcc_flag $flag ; then - CFLAGS="$CFLAGS $flag" - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - fi - done -fi +# pkg-config -#### libtool stuff #### +PKG_PROG_PKG_CONFIG -AC_LTDL_ENABLE_INSTALL -AC_LIBLTDL_INSTALLABLE -AC_SUBST(LTDLINCL) -AC_SUBST(LIBLTDL) -AC_LIBTOOL_DLOPEN -AC_LIBTOOL_WIN32_DLL -AC_PROG_LIBTOOL -AC_CONFIG_SUBDIRS(libltdl) - -if test "x$enable_ltdl_install" = "xno" && test "x$ac_cv_lib_ltdl_lt_dlinit" = "xno" ; then - AC_MSG_ERROR([[ - - *** Cannot find the libltdl development files. - *** Maybe you need to install the libltdl-dev package. - ]]) -fi +# gettext + +IT_PROG_INTLTOOL([0.35.0]) +GETTEXT_PACKAGE=pulseaudio +AC_SUBST([GETTEXT_PACKAGE]) +AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package]) +AM_GLIB_GNU_GETTEXT + +pulselocaledir='${prefix}/${DATADIRNAME}/locale' +AX_DEFINE_DIR(PULSE_LOCALEDIR, pulselocaledir, [Gettext locale dir]) -#### Determine build environment #### +#### Determine host OS #### + +os_is_linux=0 os_is_win32=0 +os_is_darwin=0 +AC_MSG_CHECKING([host operating system]) case "$host_os" in - mingw*) - AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.]) + linux*) + AC_MSG_RESULT([linux]) + os_is_linux=1 + ;; + darwin*) + AC_MSG_RESULT([darwin]) + os_is_darwin=1 + AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.]) + ;; + mingw*) + AC_MSG_RESULT([win32]) os_is_win32=1 - ;; - esac + AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.]) + ;; + *) + AC_MSG_RESULT([unknown]) + ;; +esac +AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1") AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1") +AC_SUBST([OS_IS_WIN32], [$os_is_win32]) + +# Platform specific hacks +case "$host_os" in + darwin* ) + AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X]) + ;; + mingw* ) + AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows]) + ;; + solaris* ) + AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris]) + AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris]) + ;; +esac + + +#### Compiler flags #### + +AX_APPEND_COMPILE_FLAGS( + [-Wall -W -Wextra -pipe -Wno-long-long -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option], + [], [-pedantic -Werror]) + + +#### Linker flags #### + +# Check whether the linker supports the -version-script option. +# The Make variable $(srcdir) needs to be in the LDFLAGS in that form, +# so that it is expanded the right way in every subdir. +AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"], + [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file']) +AC_SUBST([VERSIONING_LDFLAGS]) + +# Use immediate (now) bindings; avoids the funky re-call in itself. +# The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later. +AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS]) +AC_SUBST([IMMEDIATE_LDFLAGS]) + +# On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly, +# so we request the nodelete flag to be enabled. +# On other systems, we don't really know how to do that, but it's welcome if somebody can tell. +AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS]) +AC_SUBST([NODELETE_LDFLAGS]) + +# Check for the proper way to build libraries that have no undefined symbols +case $host in + # FreeBSD (et al.) does not complete linking for shared objects when pthreads + # are requested, as different implementations are present. + *-freebsd* | *-openbsd*) ;; + *) + for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do + AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break]) + done + ;; +esac +AC_SUBST([NOUNDEFINED_LDFLAGS]) + + +#### Atomic operations #### + +# 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])) + +AC_ARG_ENABLE([atomic-arm-memory-barrier], + AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems])) + +if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then + AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) +fi + +# If everything else fails use libatomic_ops +need_libatomic_ops=yes + +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);]]), + [pulseaudio_cv_sync_bool_compare_and_swap=yes], + [pulseaudio_cv_sync_bool_compare_and_swap=no]) + ]) + +if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then + AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.]) + need_libatomic_ops=no +else + # HW specific atomic ops stuff + AC_MSG_CHECKING([architecture for native atomic operations]) + case $host 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$os_is_linux" = "x1" && test "x$enable_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 ARM atomic instructions.]) + need_libatomic_ops=no + ]) + fi + ;; + *-netbsdelf5*) + AC_MSG_RESULT([yes]) + need_libatomic_ops=no + ;; + *-freebsd*) + AC_MSG_RESULT([yes]) + need_libatomic_ops=no + ;; + *) + AC_MSG_RESULT([unknown]) + ;; + esac +fi + +# If we're on ARM, check for the ARMV6 instructions we need */ +case $host in + arm*) + AC_CACHE_CHECK([support for required armv6 instructions], + pulseaudio_cv_support_armv6, + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], + [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd; + asm volatile ("ldr r0, %2 \n" + "ldr r2, %3 \n" + "ldr r3, %4 \n" + "ssat r1, #8, r0 \n" + "str r1, %0 \n" + "pkhbt r1, r3, r2, LSL #8 \n" + "str r1, %1 \n" + : "=m" (a), "=m" (b) + : "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 "$pulseaudio_cv_support_armv6" = "yes"], [ + AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.]) + ]) + ;; + *) + ;; +esac + + +#### libtool stuff #### + +LT_PREREQ(2.2) +LT_INIT([dlopen win32-dll disable-static]) + +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 version 2. Makes sure you have libtool 2.2 or later installed.])]) +AC_SUBST([LIBLTDL]) + ################################### # Basic environment checks # @@ -142,34 +342,49 @@ AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1") AC_HEADER_STDC # POSIX -AC_CHECK_HEADERS([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \ - netinet/in_systm.h netinet/ip.h netinet/tcp.h pwd.h sched.h \ - sys/resource.h sys/select.h sys/socket.h sys/wait.h \ - syslog.h]) -AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0]) +AC_CHECK_HEADERS_ONCE([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/select.h sys/socket.h sys/wait.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 + ]) +AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0]) +AC_SUBST(HAVE_SYS_RESOURCE_H) AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0]) - -AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1") AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1") - -# XPG4-UNIX -AC_CHECK_HEADERS([sys/poll.h]) +AC_SUBST(HAVE_AF_UNIX) # Linux AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0]) - AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"]) -AC_CHECK_HEADERS([sys/prctl.h]) +AC_CHECK_HEADERS_ONCE([sys/prctl.h]) # Solaris -AC_CHECK_HEADERS([sys/filio.h]) +AC_CHECK_HEADERS_ONCE([sys/filio.h]) # Windows -AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h]) +AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h]) + +# NetBSD +AC_CHECK_HEADERS_ONCE([sys/atomic.h]) # Other -AC_CHECK_HEADERS([sys/ioctl.h]) +AC_CHECK_HEADERS_ONCE([sys/ioctl.h]) +AC_CHECK_HEADERS_ONCE([byteswap.h]) +AC_CHECK_HEADERS_ONCE([sys/syscall.h]) +AC_CHECK_HEADERS_ONCE([sys/eventfd.h]) +AC_CHECK_HEADERS_ONCE([execinfo.h]) +AC_CHECK_HEADERS_ONCE([langinfo.h]) +AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h]) + #### Typdefs, structures, etc. #### @@ -177,23 +392,49 @@ AC_C_CONST AC_C_BIGENDIAN AC_TYPE_PID_T AC_TYPE_SIZE_T -AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long], - [Define ssize_t if it is not done by the standard libs.])]) +AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.])) AC_TYPE_OFF_T -AC_TYPE_SIGNAL + AC_TYPE_UID_T +AC_CHECK_DECLS(environ) -AC_CHECK_DEFINE([SIGXCPU], [signal.h], [ -HAVE_SIGXCPU=1 -AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]) -], [HAVE_SIGXCPU=0]) +# SIGXCPU +AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0]) +AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])) AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1") -# Solaris lacks this -AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [], - [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [], +# INADDR_NONE, Solaris lacks this +AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [], + [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [], [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])]) + +# _Bool +AC_CACHE_CHECK([whether $CC knows _Bool], + pulseaudio_cv__Bool, + [AC_COMPILE_IFELSE( + AC_LANG_PROGRAM([], [[_Bool b;]]), + [pulseaudio_cv__Bool=yes], + [pulseaudio_cv__Bool=no]) + ]) + +AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])) + + +#### Thread support #### + +AX_TLS +AS_IF([test "$ac_cv_tls" == "__thread"], + AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage])) + +# Win32 build breaks with win32 pthread installed +AS_IF([test "x$os_is_win32" != "x1"], + [AX_PTHREAD]) + +AS_IF([test "x$ax_pthread_ok" == "xyes"], + AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris])) + + #### Check for libs #### # ISO @@ -202,91 +443,114 @@ AC_SEARCH_LIBS([pow], [m]) # POSIX AC_SEARCH_LIBS([sched_setscheduler], [rt]) AC_SEARCH_LIBS([dlopen], [dl]) +AC_SEARCH_LIBS([shm_open], [rt]) +AC_SEARCH_LIBS([inet_ntop], [nsl]) +AC_SEARCH_LIBS([timer_create], [rt]) +AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread]) +AC_SEARCH_LIBS([pthread_getname_np], [pthread]) +AC_SEARCH_LIBS([pthread_setname_np], [pthread]) # BSD AC_SEARCH_LIBS([connect], [socket]) +AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace]) + +# Darwin/OS X +if test "x$os_is_darwin" = "x1" ; then + AC_MSG_CHECKING([looking for Apple CoreService Framework]) + # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope + AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h], + [LIBS="$LIBS -framework CoreServices"], + [AC_MSG_ERROR([CoreServices.h header file not found])] + ) + + AC_MSG_RESULT([ok]) + AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement]) + HAVE_BONJOUR=1 +fi -# Non-standard +AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1]) -# This magic is needed so we do not needlessly add static libs to the win32 -# build, disabling its ability to make dlls. +# Windows +AC_SEARCH_LIBS([regexec], [pcreposix]) +# This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls. AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])]) + #### Check for functions #### +# ISO +AC_CHECK_FUNCS_ONCE([lrintf strtof]) + # POSIX AC_FUNC_FORK AC_FUNC_GETGROUPS AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([chmod chown getaddrinfo getgrgid_r getpwuid_r gettimeofday \ - getuid inet_ntop inet_pton nanosleep pipe setpgid setsid sigaction sleep]) +AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \ + getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \ + pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \ + sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np]) AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0]) - +AC_SUBST(HAVE_MKFIFO) AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1") # X/OPEN -AC_CHECK_FUNCS([readlink]) +AC_CHECK_FUNCS_ONCE([readlink]) # SUSv2 -AC_CHECK_FUNCS([ctime_r usleep]) +AC_CHECK_FUNCS_ONCE([ctime_r usleep]) # SUSv3 -AC_CHECK_FUNCS([strerror_r]) +AC_CHECK_FUNCS_ONCE([strerror_r]) # BSD -AC_CHECK_FUNCS([lstat]) +AC_CHECK_FUNCS_ONCE([lstat]) # Non-standard +AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4]) -AC_CHECK_FUNCS(setresuid) -AC_CHECK_FUNCS(setresgid) -AC_CHECK_FUNCS(setreuid) -AC_CHECK_FUNCS(setregid) -AC_CHECK_FUNCS(seteuid) -AC_CHECK_FUNCS(setegid) - -#### POSIX threads #### - -ACX_PTHREAD +AC_FUNC_ALLOCA -#### Large File-Support (LFS) #### +AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0]) +AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"]) +# Large File-Support (LFS) AC_SYS_LARGEFILE - # Check for open64 to know if the current system does have open64() and similar functions -AC_CHECK_FUNCS([open64]) +AC_CHECK_FUNCS_ONCE([open64]) -#### [lib]iconv #### - -AM_ICONV ################################### # External libraries # ################################### +#### [lib]iconv #### + +AM_ICONV + #### X11 (optional) #### -HAVE_X11=0 +AC_ARG_ENABLE([x11], + AS_HELP_STRING([--disable-x11],[Disable optional X11 support])) -# The macro tests the host, not the build target -if test "x$os_is_win32" != "x1" ; then - AC_PATH_XTRA - test "x$no_x" != "xyes" && HAVE_X11=1 -fi +AS_IF([test "x$enable_x11" != "xno"], + [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)], + HAVE_X11=0) +AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"], + [AC_MSG_ERROR([*** X11 not found])]) + +AC_SUBST(X11_CFLAGS) +AC_SUBST(X11_LIBS) AC_SUBST(HAVE_X11) -AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "x1") -if test "x$HAVE_X11" = "x1" ; then - AC_DEFINE([HAVE_X11], 1, [Have X11]) -fi +AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1]) +AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?])) #### Capabilities (optional) #### CAP_LIBS='' -AC_ARG_WITH( - [caps], - AC_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.])) +AC_ARG_WITH([caps], + AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.])) if test "x${with_caps}" != "xno"; then AC_SEARCH_LIBS([cap_init], [cap], [], [ @@ -299,313 +563,496 @@ if test "x${with_caps}" != "xno"; then fi]) fi -#### pkg-config #### +#### Valgrind (optional) #### + +AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h]) + +#### json parsing #### + +PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ]) +AC_SUBST(LIBJSON_CFLAGS) +AC_SUBST(LIBJSON_LIBS) + +#### Sound file #### + +PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ]) +AC_SUBST(LIBSNDFILE_CFLAGS) +AC_SUBST(LIBSNDFILE_LIBS) + +PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ]) +AC_SUBST(LIBSPEEX_CFLAGS) +AC_SUBST(LIBSPEEX_LIBS) -# 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) +#### atomic-ops #### -if test x"$have_pkg_config" = "xno"; then - AC_MSG_ERROR(pkg-config is required to install this program) +AC_MSG_CHECKING([whether we need libatomic_ops]) +if test "x$need_libatomic_ops" = "xyes"; then + AC_MSG_RESULT([yes]) + AC_CHECK_HEADERS([atomic_ops.h], + [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"], + [AC_MSG_ERROR([*** libatomic-ops headers not found])]) + + # Win32 does not need the lib and breaks horribly if we try to include it + AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"]) +else + AC_MSG_RESULT([no]) fi -PKG_PROG_PKG_CONFIG +#### Libsamplerate support (optional) #### + +AC_ARG_ENABLE([samplerate], + AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support])) + +AS_IF([test "x$enable_samplerate" != "xno"], + [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)], + HAVE_LIBSAMPLERATE=0) -#### Sample rate conversion #### +AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"], + [AC_MSG_ERROR([*** Libsamplerate not found])]) -PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ]) AC_SUBST(LIBSAMPLERATE_CFLAGS) AC_SUBST(LIBSAMPLERATE_LIBS) +AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1]) +AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])) -#### Sound file #### +#### Database support #### + +AC_ARG_WITH([database], + AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto]) -PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.10 ]) -AC_SUBST(LIBSNDFILE_CFLAGS) -AC_SUBST(LIBSNDFILE_LIBS) + +AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"], + [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)], + HAVE_TDB=0) +AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb) + +AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"], + [AC_MSG_ERROR([*** tdb not found])]) + + +AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"], + [ + HAVE_GDBM=1 + AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0) + AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0) + ], + HAVE_GDBM=0) +AS_IF([test "x$HAVE_GDBM" = "x1"], + [ + with_database=gdbm + GDBM_CFLAGS= + GDBM_LIBS=-lgdbm + ]) + +AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"], + [AC_MSG_ERROR([*** gdbm not found])]) + + +AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"], + HAVE_SIMPLEDB=1, + HAVE_SIMPLEDB=0) +AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple) + +AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1], + AC_MSG_ERROR([*** missing database backend])) + + +AC_SUBST(TDB_CFLAGS) +AC_SUBST(TDB_LIBS) +AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1]) +AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?])) + +AC_SUBST(GDBM_CFLAGS) +AC_SUBST(GDBM_LIBS) +AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1]) +AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])) + +AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1]) +AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])) #### OSS support (optional) #### -AC_ARG_ENABLE([oss], - AC_HELP_STRING([--disable-oss], [Disable optional OSS support]), - [ - case "${enableval}" in - yes) oss=yes ;; - no) oss=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;; - esac - ], - [oss=auto]) - -if test "x${oss}" != xno ; then - AC_CHECK_HEADERS([sys/soundcard.h], - [ - HAVE_OSS=1 - AC_DEFINE([HAVE_OSS], 1, [Have OSS?]) - ], - [ - HAVE_OSS=0 - if test "x$oss" = xyes ; then - AC_MSG_ERROR([*** OSS support not found]) - fi - ]) -else - HAVE_OSS=0 -fi +AC_ARG_ENABLE([oss-output], + AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support])) + +AC_ARG_ENABLE([oss-wrapper], + AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support])) + +AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"], + [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)], + HAVE_OSS=0) + +AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"], + [AC_MSG_ERROR([*** OSS support not found])]) + +AS_IF([test "x$enable_oss_output" != "xno"], + [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)], + HAVE_OSS_OUTPUT=0) -AC_SUBST(HAVE_OSS) -AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1]) +AS_IF([test "x$enable_oss_wrapper" != "xno"], + [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)], + HAVE_OSS_WRAPPER=0) +AC_SUBST(HAVE_OSS_OUTPUT) +AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"]) +AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"]) +AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])) +AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])) + +#### CoreAudio support (optional) #### + +AC_ARG_ENABLE([coreaudio-output], + AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support])) + +AS_IF([test "x$enable_coreaudio_output" != "xno"], + [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)], + HAVE_COREAUDIO=0) + +AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"], + [AC_MSG_ERROR([*** CoreAudio output support not found])]) + +AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"]) #### ALSA support (optional) #### -AC_ARG_ENABLE([alsa], - AC_HELP_STRING([--disable-alsa], [Disable optional ALSA support]), - [ - case "${enableval}" in - yes) alsa=yes ;; - no) alsa=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;; - esac - ], - [alsa=auto]) - -if test "x${alsa}" != xno ; then - PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.0 ], - [ - HAVE_ALSA=1 - AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]) - ], - [ - HAVE_ALSA=0 - if test "x$alsa" = xyes ; then - AC_MSG_ERROR([*** ALSA support not found]) - fi - ]) -else - HAVE_ALSA=0 -fi +AC_ARG_ENABLE([alsa], + AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support])) + +AS_IF([test "x$enable_alsa" != "xno"], + [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)], + HAVE_ALSA=0) + +AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"], + [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])]) AC_SUBST(ASOUNDLIB_CFLAGS) -AC_SUBST(ASOUNDLIB_LIBS) +AC_SUBST(ASOUNDLIB_LIBS) AC_SUBST(HAVE_ALSA) AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1]) +AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])) #### Solaris audio support (optional) #### -AC_ARG_ENABLE([solaris], - AC_HELP_STRING([--disable-solaris], [Disable optional Solaris audio support]), - [ - case "${enableval}" in - yes) solaris=yes ;; - no) solaris=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;; - esac - ], - [solaris=auto]) - -if test "x${solaris}" != xno ; then - AC_CHECK_HEADERS([sys/audio.h], - [ - HAVE_SOLARIS=1 - AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]) - ], - [ - HAVE_SOLARIS=0 - if test "x$solaris" = xyes ; then - AC_MSG_ERROR([*** Solaris audio support not found]) - fi - ]) -else - HAVE_SOLARIS=0 -fi +AC_ARG_ENABLE([solaris], + AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support])) + +AS_IF([test "x$enable_solaris" != "xno"], + [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)], + HAVE_SOLARIS=0) + +AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"], + [AC_MSG_ERROR([*** Solaris audio support not found])]) -AC_SUBST(HAVE_SOLARIS) AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1]) +AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])) + +#### WaveOut audio support (optional) #### + +AC_ARG_ENABLE([waveout], + AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support])) + +AS_IF([test "x$enable_waveout" != "xno"], + [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])], + HAVE_WAVEOUT=0) + +AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"], + [AC_MSG_ERROR([*** WaveOut audio support not found])]) + +AC_SUBST(HAVE_WAVEOUT) +AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1]) +AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?])) #### GLib 2 support (optional) #### -AC_ARG_ENABLE([glib2], - AC_HELP_STRING([--disable-glib2], [Disable optional GLib 2 support]), - [ - case "${enableval}" in - yes) glib2=yes ;; - no) glib2=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;; - esac - ], - [glib2=auto]) - -if test "x${glib2}" != xno ; then - PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], - HAVE_GLIB20=1, - [ - HAVE_GLIB20=0 - if test "x$glib2" = xyes ; then - AC_MSG_ERROR([*** GLib 2 support not found]) - fi - ]) -else - HAVE_GLIB20=0 -fi +AC_ARG_ENABLE([glib2], + AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support])) + +AS_IF([test "x$enable_glib2" != "xno"], + [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)], + HAVE_GLIB20=0) + +AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"], + [AC_MSG_ERROR([*** GLib 2 support not found])]) AC_SUBST(GLIB20_CFLAGS) AC_SUBST(GLIB20_LIBS) -AC_SUBST(HAVE_GLIB20) AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1]) +AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])) + +#### GTK2 support (optional) #### + +AC_ARG_ENABLE([gtk2], + AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support])) + +AS_IF([test "x$enable_gtk2" != "xno"], + [PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], HAVE_GTK20=1, HAVE_GTK20=0)], + HAVE_GTK20=0) + +AS_IF([test "x$enable_gtk2" = "xyes" && test "x$HAVE_GTK20" = "x0"], + [AC_MSG_ERROR([*** Gtk+ 2 support not found])]) + +AC_SUBST(GTK20_CFLAGS) +AC_SUBST(GTK20_LIBS) +AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1]) +AS_IF([test "x$HAVE_GTK20" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?])) + +#### GConf support (optional) #### + +AC_ARG_ENABLE([gconf], + AS_HELP_STRING([--disable-gconf],[Disable optional GConf support])) + +AS_IF([test "x$enable_gconf" != "xno"], + [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)], + HAVE_GCONF=0) + +AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"], + [AC_MSG_ERROR([*** GConf support not found])]) + +AC_SUBST(GCONF_CFLAGS) +AC_SUBST(GCONF_LIBS) +AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1]) #### Avahi support (optional) #### -AC_ARG_ENABLE([avahi], - AC_HELP_STRING([--disable-avahi], [Disable optional Avahi support]), - [ - case "${enableval}" in - yes) avahi=yes ;; - no) avahi=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;; - esac - ], - [avahi=auto]) - -if test "x${avahi}" != xno ; then - PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], - HAVE_AVAHI=1, - [ - HAVE_AVAHI=0 - if test "x$avahi" = xyes ; then - AC_MSG_ERROR([*** Avahi support not found]) - fi - ]) -else - HAVE_AVAHI=0 -fi +AC_ARG_ENABLE([avahi], + AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support])) + +AS_IF([test "x$enable_avahi" != "xno"], + [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)], + HAVE_AVAHI=0) + +AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"], + [AC_MSG_ERROR([*** Avahi support not found])]) AC_SUBST(AVAHI_CFLAGS) AC_SUBST(AVAHI_LIBS) AC_SUBST(HAVE_AVAHI) AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1]) -### LIBOIL #### - -PKG_CHECK_MODULES(LIBOIL, [ liboil-0.3 >= 0.3.0 ]) -AC_SUBST(LIBOIL_CFLAGS) -AC_SUBST(LIBOIL_LIBS) - -### JACK (optional) #### - -AC_ARG_ENABLE([jack], - AC_HELP_STRING([--disable-jack], [Disable optional JACK support]), - [ - case "${enableval}" in - yes) jack=yes ;; - no) jack=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;; - esac - ], - [jack=auto]) - -if test "x${jack}" != xno ; then - PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ], - HAVE_JACK=1, - [ - HAVE_JACK=0 - if test "x$jack" = xyes ; then - AC_MSG_ERROR([*** JACK support not found]) - fi - ]) -else - HAVE_JACK=0 -fi +#### JACK (optional) #### + +AC_ARG_ENABLE([jack], + AS_HELP_STRING([--disable-jack],[Disable optional JACK support])) + +AS_IF([test "x$enable_jack" != "xno"], + [PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ], HAVE_JACK=1, HAVE_JACK=0)], + HAVE_JACK=0) + +AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"], + [AC_MSG_ERROR([*** JACK support not found])]) AC_SUBST(JACK_CFLAGS) AC_SUBST(JACK_LIBS) -AC_SUBST(HAVE_JACK) AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1]) #### Async DNS support (optional) #### -AC_ARG_ENABLE([asyncns], - AC_HELP_STRING([--disable-asyncns], [Disable optional Async DNS support]), - [ - case "${enableval}" in - yes) asyncns=yes ;; - no) asyncns=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;; - esac - ], - [asyncns=auto]) - -if test "x${asyncns}" != xno ; then - PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], - HAVE_LIBASYNCNS=1, - [ - HAVE_LIBASYNCNS=0 - if test "x$asyncns" = xyes ; then - AC_MSG_ERROR([*** Async DNS support not found]) - fi - ]) -else - HAVE_LIBASYNCNS=0 -fi +AC_ARG_ENABLE([asyncns], + AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support])) + +AS_IF([test "x$enable_asyncns" != "xno"], + [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)], + HAVE_LIBASYNCNS=0) + +AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"], + [AC_MSG_ERROR([*** Async DNS support not found])]) AC_SUBST(LIBASYNCNS_CFLAGS) AC_SUBST(LIBASYNCNS_LIBS) -AC_SUBST(HAVE_LIBASYNCNS) AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1]) - -if test "x$HAVE_LIBASYNCNS" != "x0" ; then - AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]) -fi +AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])) #### TCP wrappers (optional) #### -AC_ARG_ENABLE([tcpwrap], - AC_HELP_STRING([--disable-tcpwrap], [Disable optional TCP wrappers support]), - [ - case "${enableval}" in - yes) tcpwrap=yes ;; - no) tcpwrap=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;; - esac - ], - [tcpwrap=auto]) - -if test "x${tcpwrap}" != xno ; then - ACX_LIBWRAP - if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then - AC_MSG_ERROR([*** TCP wrappers support not found]) - fi -else - LIBWRAP_LIBS= -fi +AC_ARG_ENABLE([tcpwrap], + AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support])) + +AS_IF([test "x$enable_tcpwrap" != "xno"], + [ + ACX_LIBWRAP + AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0) + ], + HAVE_TCPWRAP=0) + +AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"], + [AC_MSG_ERROR([*** TCP wrappers support not found])]) AC_SUBST(LIBWRAP_LIBS) #### LIRC support (optional) #### -AC_ARG_ENABLE([lirc], - AC_HELP_STRING([--disable-lirc], [Disable optional LIRC support]), - [ - case "${enableval}" in - yes) lirc=yes ;; - no) lirc=no ;; - *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;; - esac - ], - [lirc=auto]) - -if test "x${lirc}" != xno ; then - ACX_LIRC - if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then - AC_MSG_ERROR([*** LIRC support not found]) - fi -else - HAVE_LIRC=0 -fi +AC_ARG_ENABLE([lirc], + AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support])) + +LIRC_CFLAGS= +LIRC_LIBS= + +AS_IF([test "x$enable_lirc" != "xno"], + [ + HAVE_LIRC=1 + AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0]) + AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0]) + ], + HAVE_LIRC=0) + +AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"], + [AC_MSG_ERROR([*** LIRC support not found])]) AC_SUBST(LIRC_CFLAGS) AC_SUBST(LIRC_LIBS) AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1]) +#### D-Bus support (optional) #### + +AC_ARG_ENABLE([dbus], + AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support])) + +AS_IF([test "x$enable_dbus" != "xno"], + [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], HAVE_DBUS=1, HAVE_DBUS=0)], + HAVE_DBUS=0) + +AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"], + [AC_MSG_ERROR([*** D-Bus support not found])]) + +AS_IF([test "x$HAVE_DBUS" = "x1"], + [ + save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS" + save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS" + AC_CHECK_FUNCS(dbus_watch_get_unix_fd) + CFLAGS="$save_CFLAGS" + LIBS="$save_LIBS" + ]) + +AC_SUBST(DBUS_CFLAGS) +AC_SUBST(DBUS_LIBS) +AC_SUBST(HAVE_DBUS) +AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1]) +AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])) + +PA_MACHINE_ID="${localstatedir}/lib/dbus/machine-id" +AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file]) + +#### HAL support (optional), dependant on D-Bus #### + +AC_ARG_ENABLE([hal], + AS_HELP_STRING([--disable-hal],[Disable optional HAL support])) + +AS_IF([test "x$enable_hal" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)], + [PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], HAVE_HAL=1, HAVE_HAL=0)], + HAVE_HAL=0) +AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_HAL=0) + +AS_IF([test "x$enable_hal" = "xyes" && test "x$HAVE_HAL" = "x0"], + [AC_MSG_ERROR([*** HAL support not found (requires D-Bus)])]) + +AC_SUBST(HAL_CFLAGS) +AC_SUBST(HAL_LIBS) +AC_SUBST(HAVE_HAL) +AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1]) +AS_IF([test "x$HAVE_HAL" = "x1"], AC_DEFINE([HAVE_HAL], 1, [Have HAL.])) + +#### BlueZ support (optional, dependant on D-Bus) #### + +AC_ARG_ENABLE([bluez], + AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support])) + +AS_IF([test "x$enable_bluez" != "xno"], + [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)], + 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 D-Bus)])]) + +AC_SUBST(BLUEZ_CFLAGS) +AC_SUBST(BLUEZ_LIBS) +AC_SUBST(HAVE_BLUEZ) +AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1]) + +#### UDEV support (optional) #### + +AC_ARG_ENABLE([udev], + AS_HELP_STRING([--disable-udev],[Disable optional UDEV support])) + +AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)], + [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)], + HAVE_UDEV=0) + +AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"], + [AC_MSG_ERROR([*** UDEV support not found])]) + +AC_SUBST(UDEV_CFLAGS) +AC_SUBST(UDEV_LIBS) +AC_SUBST(HAVE_UDEV) +AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1]) +AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])) + +#### HAL compat support (optional, dependant on UDEV) #### + +AC_ARG_ENABLE([hal-compat], + AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support])) + +AS_IF([test "x$enable_hal_compat" != "xno"], + [AS_IF([test "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)], + HAVE_HAL_COMPAT=0) + +AS_IF([test "x$enable_hal_compat" = "xyes" && test "x$HAVE_HAL_COMPAT" = "x0"], + [AC_MSG_ERROR([*** HAL-compat support requires UDEV and no HAL])]) + +AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1]) +AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])) + +#### IPv6 connection support (optional) #### + +AC_ARG_ENABLE([ipv6], + AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support])) + +AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0]) + +AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support])) + +#### OpenSSL support (optional) #### + +AC_ARG_ENABLE([openssl], + AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)])) + +AS_IF([test "x$enable_openssl" != "xno"], + [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)], + HAVE_OPENSSL=0) + +AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"], + [AC_MSG_ERROR([*** OpenSSL support not found])]) + +AC_SUBST(OPENSSL_CFLAGS) +AC_SUBST(OPENSSL_LIBS) +AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1]) +AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])) + +#### FFTW (optional) #### + +AC_ARG_WITH([fftw], + AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)])) + +AS_IF([test "x$with_fftw" != "xno"], + [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)], + HAVE_FFTW=0) + +AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"], + [AC_MSG_ERROR([*** FFTW support not found])]) + +AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"]) + +#### ORC (optional) #### + +ORC_CHECK([0.4.11]) + +#### Build and Install man pages #### + +AC_ARG_ENABLE([manpages], + AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages])) + +AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"]) + #### PulseAudio system group & user ##### AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)])) @@ -626,15 +1073,6 @@ fi AC_SUBST(PA_SYSTEM_GROUP) AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon]) -AC_ARG_WITH(realtime_group,AS_HELP_STRING([--with-realtime-group=<group>],[Group for users that are allowed to start the PulseAudio daemon with realtime scheduling (realtime)])) -if test -z "$with_realtime_group" ; then - PA_REALTIME_GROUP=realtime -else - PA_REALTIME_GROUP=$with_realtime_group -fi -AC_SUBST(PA_REALTIME_GROUP) -AC_DEFINE_UNQUOTED(PA_REALTIME_GROUP,"$PA_REALTIME_GROUP", [Realtime group]) - AC_ARG_WITH(access_group,AS_HELP_STRING([--with-access-group=<group>],[Group which is allowed access to a system-wide PulseAudio daemon (pulse-access)])) if test -z "$with_access_group" ; then PA_ACCESS_GROUP=pulse-access @@ -644,23 +1082,95 @@ fi AC_SUBST(PA_ACCESS_GROUP) AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group]) +AC_ARG_ENABLE([per-user-esound-socket], + AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.])) + +if test "x$enable_per_user_esound_socket" != "xno"; then + USE_PER_USER_ESOUND_SOCKET=1 + AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories]) +else + USE_PER_USER_ESOUND_SOCKET=0 +fi + #### PulseAudio system runtime dir #### + PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse" -AC_SUBST(PA_SYSTEM_RUNTIME_PATH) +AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir]) +PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse" +AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir]) +PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse" +AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir]) + +PA_BINARY=${bindir}/pulseaudio${EXEEXT} +AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary]) + +PACTL_BINARY=${bindir}/pactl${EXEEXT} +AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary]) + +AC_SUBST(PA_SOEXT, [.so]) + +AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"]) +AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files]) + +AC_DEFINE_UNQUOTED(PA_BUILDDIR, "${ac_pwd}/src", [Location of uninstalled binaries]) + +#### Mac OSX specific stuff ##### + +AC_ARG_ENABLE(mac-universal, + AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]), + enable_mac_universal=$enableval, enable_mac_universal="no") + +AC_ARG_WITH(mac-version-min, + AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]), + mac_version_min=$withval, mac_version_min="10.5") + +AC_ARG_WITH(mac-sysroot, + AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]), + mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk") + +if test "x$os_is_darwin" = "x1" ; then + LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min" + CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min" + + if test "x$enable_mac_universal" = "xyes" ; then + mac_arches="-arch i386 -arch x86_64" + LDFLAGS="$LDFLAGS $mac_arches" + CFLAGS="$CFLAGS $mac_arches" + fi +fi + ################################### # Output # ################################### -AC_ARG_ENABLE( - [static-bins], - AC_HELP_STRING([--enable-static-bins],[Statically link executables.]), - [STATIC_BINS=1], [STATIC_BINS=0]) -AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"]) +AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation]) + +# 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"]) + +AC_ARG_ENABLE([legacy-runtime-dir], + AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.])) +if test "x$enable_legacy_runtime_dir" != "xno" ; then + AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir]) +fi + +AC_ARG_ENABLE([legacy-database-entry-format], + AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).])) +if test "x$enable_legacy_database_entry_format" != "xno" ; then + AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format]) +fi +AC_DEFINE([WIBBLE], 1, [Just a test.]) + +AC_ARG_ENABLE([static-bins], + AS_HELP_STRING([--enable-static-bins],[Statically link executables.])) +AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"]) AC_ARG_WITH( [preopen-mods], - AC_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]), + AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]), [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"]) AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"]) if test "x$PREOPEN_MODS" != "xall" ; then @@ -674,102 +1184,177 @@ fi AC_ARG_WITH( [module-dir], - AC_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules/]), - [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules/"]) + AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]), + [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"]) AC_SUBST(modlibexecdir) +AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir]) + +AC_ARG_WITH( + [udev-rules-dir], + AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]), + [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"]) -AC_ARG_ENABLE( - [force-preopen], - AC_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"]) +AC_SUBST(udevrulesdir) + +AC_ARG_ENABLE([force-preopen], + AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.])) + +if test "x$enable_force_preopen" = "xyes"; then + FORCE_PREOPEN=yes +else + FORCE_PREOPEN=no +fi + +AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"]) AC_CONFIG_FILES([ Makefile src/Makefile +man/Makefile libpulse.pc libpulse-simple.pc -libpulse-browse.pc libpulse-mainloop-glib.pc doxygen/Makefile doxygen/doxygen.conf src/pulse/version.h +po/Makefile.in +man/pulseaudio.1.xml +man/esdcompat.1.xml +man/pax11publish.1.xml +man/paplay.1.xml +man/pacat.1.xml +man/pacmd.1.xml +man/pactl.1.xml +man/pasuspender.1.xml +man/padsp.1.xml +man/pulse-daemon.conf.5.xml +man/pulse-client.conf.5.xml +man/default.pa.5.xml ]) -AC_OUTPUT -# ========================================================================== -ENABLE_X11=no -if test "x$HAVE_X11" = "x1" ; then - ENABLE_X11=yes -fi - -ENABLE_OSS=no -if test "x$HAVE_OSS" = "x1" ; then - ENABLE_OSS=yes -fi +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]) +AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in], + [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa]) +AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in], + [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa]) -ENABLE_ALSA=no -if test "x$HAVE_ALSA" = "x1" ; then - ENABLE_ALSA=yes -fi - -ENABLE_SOLARIS=no -if test "x$HAVE_SOLARIS" = "x1" ; then - ENABLE_SOLARIS=yes -fi - -ENABLE_GLIB20=no -if test "x$HAVE_GLIB20" = "x1" ; then - ENABLE_GLIB20=yes -fi +AC_OUTPUT -ENABLE_AVAHI=no -if test "x$HAVE_AVAHI" = "x1" ; then - ENABLE_AVAHI=yes -fi +# ========================================================================== -ENABLE_JACK=no -if test "x$HAVE_JACK" = "x1" ; then - ENABLE_JACK=yes -fi +AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no) +AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no) +AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no) +AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no) +AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no) +AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no) +AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no) +AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no) +AS_IF([test "x$HAVE_GTK20" = "x1"], ENABLE_GTK20=yes, ENABLE_GTK20=no) +AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no) +AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no) +AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no) +AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no) +AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no) +AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no) +AS_IF([test "x$HAVE_HAL" = "x1"], ENABLE_HAL=yes, ENABLE_HAL=no) +AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no) +AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=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) +AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no) +AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no) +AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no) +AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no) +AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no) +AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no) +AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no) +AS_IF([test "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no) +AS_IF([test "x$enable_legacy_runtime_dir" != "xno"], ENABLE_LEGACY_RUNTIME_DIR=yes, ENABLE_LEGACY_RUNTIME_DIR=no) +AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no) -ENABLE_LIBASYNCNS=no -if test "x$HAVE_LIBASYNCNS" = "x1" ; then - ENABLE_LIBASYNCNS=yes -fi +echo " + ---{ $PACKAGE_NAME $VERSION }--- -ENABLE_LIRC=no -if test "x$HAVE_LIRC" = "x1" ; then - ENABLE_LIRC=yes -fi + prefix: ${prefix} + sysconfdir: ${sysconfdir} + localstatedir: ${localstatedir} + modlibexecdir: ${modlibexecdir} + System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH} + System State Path: ${PA_SYSTEM_STATE_PATH} + System Config Path: ${PA_SYSTEM_CONFIG_PATH} + Compiler: ${CC} + CFLAGS: ${CFLAGS} + LIBS: ${LIBS} + + Enable X11: ${ENABLE_X11} + Enable OSS Output: ${ENABLE_OSS_OUTPUT} + Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER} + Enable Alsa: ${ENABLE_ALSA} + Enable CoreAudio: ${ENABLE_COREAUDIO} + Enable Solaris: ${ENABLE_SOLARIS} + Enable WaveOut: ${ENABLE_WAVEOUT} + Enable GLib 2.0: ${ENABLE_GLIB20} + Enable Gtk+ 2.0: ${ENABLE_GTK20} + Enable GConf: ${ENABLE_GCONF} + Enable Avahi: ${ENABLE_AVAHI} + Enable Jack: ${ENABLE_JACK} + Enable Async DNS: ${ENABLE_LIBASYNCNS} + Enable LIRC: ${ENABLE_LIRC} + Enable D-Bus: ${ENABLE_DBUS} + Enable HAL: ${ENABLE_HAL} + Enable BlueZ: ${ENABLE_BLUEZ} + Enable udev: ${ENABLE_UDEV} + Enable HAL->udev compat: ${ENABLE_HAL_COMPAT} + Enable TCP Wrappers: ${ENABLE_TCPWRAP} + Enable libsamplerate: ${ENABLE_LIBSAMPLERATE} + Enable IPv6: ${ENABLE_IPV6} + Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL} + Enable fftw: ${ENABLE_FFTW} + Enable orc: ${ENABLE_ORC} + Database + tdb: ${ENABLE_TDB} + gdbm: ${ENABLE_GDBM} + simple database: ${ENABLE_SIMPLEDB} + + System User: ${PA_SYSTEM_USER} + System Group: ${PA_SYSTEM_GROUP} + Access Group: ${PA_ACCESS_GROUP} + Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET} + Force preopen: ${FORCE_PREOPEN} + Preopened modules: ${PREOPEN_MODS} + + Legacy Runtime Dir Support: ${ENABLE_LEGACY_RUNTIME_DIR} + Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT} +" -ENABLE_TCPWRAP=no -if test "x${LIBWRAP_LIBS}" != x ; then - ENABLE_TCPWRAP=yes +if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then + echo " +===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING ===== +You do not have D-Bus support enabled. It is strongly recommended +that you enable D-Bus support if your platform supports it. +Many parts of PulseAudio use D-Bus, from ConsoleKit interaction +to the Device Reservation Protocol to speak to JACK, Bluetooth +support and even a native control protocol for communicating and +controling the PulseAudio daemon itself. +===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING ===== +" fi -echo " - ---{ $PACKAGE_NAME $VERSION }--- - - prefix: ${prefix} - sysconfdir: ${sysconfdir} - localstatedir: ${localstatedir} - System Runtime Path: ${PA_SYSTEM_RUNTIME_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 Avahi: ${ENABLE_AVAHI} - Enable Jack: ${ENABLE_JACK} - Enable Async DNS: ${ENABLE_LIBASYNCNS} - Enable LIRC: ${ENABLE_LIRC} - Enable TCP Wrappers: ${ENABLE_TCPWRAP} - System User: ${PA_SYSTEM_USER} - System Group: ${PA_SYSTEM_GROUP} - Realtime Group: ${PA_REALTIME_GROUP} - Access Group: ${PA_ACCESS_GROUP} +if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then + echo " +===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING ===== +You do not have udev support enabled. It is strongly recommended +that you enable udev support if your platform supports it as it is +the primary method used to detect hardware audio devices (on Linux) +and is thus a critical part of PulseAudio on that platform. +===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING ===== " +fi |
