2 # Process this file with autoconf to produce a configure script.
4 # This file is part of PulseAudio.
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
9 # PulseAudio is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
14 # PulseAudio is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
25 AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[pulseaudio-discuss (at) lists (dot) freedesktop (dot) org],[pulseaudio],[http://pulseaudio.org/])
26 AC_CONFIG_SRCDIR([src/daemon/main.c])
27 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
29 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules color-tests dist-xz tar-ustar])
31 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
32 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
34 AC_SUBST(PA_MAJOR, pa_major)
35 AC_SUBST(PA_MINOR, pa_minor)
36 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
38 AC_SUBST(PA_API_VERSION, 12)
39 AC_SUBST(PA_PROTOCOL_VERSION, 25)
41 # The stable ABI for client applications, for the version info x:y:z
42 # always will hold y=z
43 AC_SUBST(LIBPULSE_VERSION_INFO, [13:4:13])
45 # A simplified, synchronous, ABI-stable interface for client
46 # applications, for the version info x:y:z always will hold y=z
47 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
49 # The ABI-stable network browsing interface for client applications,
50 # for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
53 # The ABI-stable GLib adapter for client applications, for the version
54 # info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
58 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
60 AC_CHECK_PROG([STOW], [stow], [yes], [no])
62 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
63 AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
64 ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
67 AM_SILENT_RULES([yes])
70 #### Checks for programs. ####
81 # Only required if you want the WebRTC canceller -- no runtime dep on
84 AC_PROG_GCC_TRADITIONAL
85 AC_USE_SYSTEM_EXTENSIONS
89 AC_CHECK_PROGS([M4], gm4 m4, no)
90 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
98 if test "x$enable_nls" != "xno"; then
99 IT_PROG_INTLTOOL([0.35.0])
100 GETTEXT_PACKAGE=pulseaudio
101 AC_SUBST([GETTEXT_PACKAGE])
102 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
105 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
106 AX_DEFINE_DIR(PULSE_LOCALEDIR, pulselocaledir, [Gettext locale dir])
110 #### Determine host OS ####
116 AC_MSG_CHECKING([host operating system])
119 AC_MSG_RESULT([linux])
123 AC_MSG_RESULT([darwin])
125 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
128 AC_MSG_RESULT([win32])
130 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
133 AC_MSG_RESULT([unknown])
137 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
138 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
139 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
141 # Platform specific hacks
144 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
147 AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
150 AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
151 AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
156 #### Compiler flags ####
158 AX_APPEND_COMPILE_FLAGS(
159 [-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],
160 [], [-pedantic -Werror])
162 # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
163 AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [AX_APPEND_FLAG(["-DFASTPATH"], [CPPFLAGS])])
166 #### Linker flags ####
168 # Check whether the linker supports the -version-script option.
169 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
170 # so that it is expanded the right way in every subdir.
171 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
172 [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
173 AC_SUBST([VERSIONING_LDFLAGS])
175 # Use immediate (now) bindings; avoids the funky re-call in itself.
176 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
177 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
178 AC_SUBST([IMMEDIATE_LDFLAGS])
180 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
181 # so we request the nodelete flag to be enabled.
182 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
183 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS])
184 AC_SUBST([NODELETE_LDFLAGS])
186 # Check for the proper way to build libraries that have no undefined symbols
188 # FreeBSD (et al.) does not complete linking for shared objects when pthreads
189 # are requested, as different implementations are present.
190 *-freebsd* | *-openbsd*) ;;
192 for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
193 AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
197 AC_SUBST([NOUNDEFINED_LDFLAGS])
200 #### Atomic operations ####
202 # Native atomic operation support
203 AC_ARG_ENABLE([atomic-arm-linux-helpers],
204 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
206 AC_ARG_ENABLE([atomic-arm-memory-barrier],
207 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
209 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
210 AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
213 # If everything else fails use libatomic_ops
214 need_libatomic_ops=yes
216 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
217 pulseaudio_cv_sync_bool_compare_and_swap, [
219 AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
220 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
221 [pulseaudio_cv_sync_bool_compare_and_swap=no])
224 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
225 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
226 need_libatomic_ops=no
228 # HW specific atomic ops stuff
229 AC_MSG_CHECKING([architecture for native atomic operations])
233 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
234 # The Linux kernel helper functions have been there since 2.6.16. However
235 # compile time checking for kernel version in cross compile environment
236 # (which is usually the case for arm cpu) is tricky (or impossible).
237 if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
239 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
240 need_libatomic_ops=no
243 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
244 pulseaudio_cv_support_arm_atomic_ops, [
246 AC_LANG_PROGRAM([], [[
249 asm volatile ("ldrex %0, [%1]\n"
251 "strexeq %0, %3, [%1]\n"
253 : "r" (&a), "Ir" (o), "r" (n)
255 return (a==1 ? 0 : -1);
257 [pulseaudio_cv_support_arm_atomic_ops=yes],
258 [pulseaudio_cv_support_arm_atomic_ops=no])
260 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
261 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
262 need_libatomic_ops=no
268 need_libatomic_ops=no
272 need_libatomic_ops=no
275 AC_MSG_RESULT([unknown])
280 # If we're on ARM, check for the ARMV6 instructions we need */
283 AC_CACHE_CHECK([support for required armv6 instructions],
284 pulseaudio_cv_support_armv6,
287 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
288 asm volatile ("ldr r0, %2 \n"
293 "pkhbt r1, r3, r2, LSL #8 \n"
296 : "m" (a), "m" (b), "m" (c)
297 : "r0", "r1", "r2", "r3", "cc");
298 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
300 [pulseaudio_cv_support_armv6=yes],
301 [pulseaudio_cv_support_armv6=no])
303 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
304 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
312 #### libtool stuff ####
315 LT_INIT([dlopen win32-dll disable-static])
317 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
318 dnl exactly which version of libltdl is present in the system, so we
319 dnl just assume that it's a working version as long as we have the
320 dnl library and the header files.
322 dnl As an extra safety device, check for lt_dladvise_init() which is
323 dnl only implemented in libtool 2.x, and refine as we go if we have
324 dnl refined requirements.
326 dnl Check the header files first since the system may have a
327 dnl libltdl.so for runtime, but no headers, and we want to bail out as
328 dnl soon as possible.
330 dnl We don't need any special variable for this though, since the user
331 dnl can give the proper place to find libltdl through the standard
332 dnl variables like LDFLAGS and CPPFLAGS.
334 AC_CHECK_HEADER([ltdl.h],
335 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
338 AS_IF([test "x$LIBLTDL" = "x"],
339 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
343 ###################################
344 # Basic environment checks #
345 ###################################
347 #### Checks for header files. ####
353 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
354 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
355 sys/mman.h sys/select.h sys/socket.h sys/wait.h \
356 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
357 AC_CHECK_HEADERS([netinet/ip.h], [], [],
358 [#include <sys/types.h>
359 #if HAVE_NETINET_IN_H
360 # include <netinet/in.h>
362 #if HAVE_NETINET_IN_SYSTM_H
363 # include <netinet/in_systm.h>
366 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
367 AC_SUBST(HAVE_SYS_RESOURCE_H)
368 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
369 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
370 AC_SUBST(HAVE_AF_UNIX)
373 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
374 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
376 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
379 AC_CHECK_HEADERS_ONCE([sys/filio.h])
382 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
385 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
388 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
389 AC_CHECK_HEADERS_ONCE([byteswap.h])
390 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
391 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
392 AC_CHECK_HEADERS_ONCE([execinfo.h])
393 AC_CHECK_HEADERS_ONCE([langinfo.h])
394 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
397 #### Typdefs, structures, etc. ####
403 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
407 AC_CHECK_DECLS(environ)
410 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
411 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
412 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
414 # INADDR_NONE, Solaris lacks this
415 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
416 [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
417 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
421 AC_CACHE_CHECK([whether $CC knows _Bool],
424 AC_LANG_PROGRAM([], [[_Bool b;]]),
425 [pulseaudio_cv__Bool=yes],
426 [pulseaudio_cv__Bool=no])
429 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
432 #### Thread support ####
435 AS_IF([test "$ac_cv_tls" == "__thread"],
436 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
438 # Win32 build breaks with win32 pthread installed
439 AS_IF([test "x$os_is_win32" != "x1"],
442 AS_IF([test "x$ax_pthread_ok" == "xyes"],
443 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
446 #### Check for libs ####
449 AC_SEARCH_LIBS([pow], [m])
452 AC_SEARCH_LIBS([sched_setscheduler], [rt])
453 AC_SEARCH_LIBS([dlopen], [dl])
454 AC_SEARCH_LIBS([shm_open], [rt])
455 AC_SEARCH_LIBS([inet_ntop], [nsl])
456 AC_SEARCH_LIBS([timer_create], [rt])
457 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
458 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
459 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
462 AC_SEARCH_LIBS([connect], [socket])
463 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
466 if test "x$os_is_darwin" = "x1" ; then
467 AC_MSG_CHECKING([looking for Apple CoreService Framework])
468 # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
469 AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
470 [LIBS="$LIBS -framework CoreServices"],
471 [AC_MSG_ERROR([CoreServices.h header file not found])]
475 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
479 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
482 AC_SEARCH_LIBS([regexec], [pcreposix])
483 # This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls.
484 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
487 #### Check for functions ####
490 AC_CHECK_FUNCS_ONCE([lrintf strtof])
495 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
496 getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
497 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
498 sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
499 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
500 AC_SUBST(HAVE_MKFIFO)
501 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
504 AC_CHECK_FUNCS_ONCE([readlink])
507 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
510 AC_CHECK_FUNCS_ONCE([strerror_r])
513 AC_CHECK_FUNCS_ONCE([lstat])
516 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
520 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
521 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
523 # Large File-Support (LFS)
525 # Check for open64 to know if the current system does have open64() and similar functions
526 AC_CHECK_FUNCS_ONCE([open64])
529 ###################################
530 # External libraries #
531 ###################################
537 #### X11 (optional) ####
540 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
542 AS_IF([test "x$enable_x11" != "xno"],
543 [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
546 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
547 [AC_MSG_ERROR([*** X11 not found])])
552 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
553 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
555 #### Capabilities (optional) ####
560 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
562 if test "x${with_caps}" != "xno"; then
563 AC_SEARCH_LIBS([cap_init], [cap], [], [
564 if test "x${with_caps}" = "xyes" ; then
565 AC_MSG_ERROR([*** POSIX caps libraries not found])
567 AC_CHECK_HEADERS([sys/capability.h], [], [
568 if test "x${with_caps}" = "xyes" ; then
569 AC_MSG_ERROR([*** POSIX caps headers not found])
573 #### Valgrind (optional) ####
575 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
577 #### json parsing ####
579 PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ])
580 AC_SUBST(LIBJSON_CFLAGS)
581 AC_SUBST(LIBJSON_LIBS)
585 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
586 AC_SUBST(LIBSNDFILE_CFLAGS)
587 AC_SUBST(LIBSNDFILE_LIBS)
591 AC_MSG_CHECKING([whether we need libatomic_ops])
592 if test "x$need_libatomic_ops" = "xyes"; then
594 AC_CHECK_HEADERS([atomic_ops.h],
595 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
596 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
598 # Win32 does not need the lib and breaks horribly if we try to include it
599 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
604 #### Libsamplerate support (optional) ####
606 AC_ARG_ENABLE([samplerate],
607 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
609 AS_IF([test "x$enable_samplerate" != "xno"],
610 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
611 HAVE_LIBSAMPLERATE=0)
613 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
614 [AC_MSG_ERROR([*** Libsamplerate not found])])
616 AC_SUBST(LIBSAMPLERATE_CFLAGS)
617 AC_SUBST(LIBSAMPLERATE_LIBS)
618 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
619 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
621 #### Database support ####
623 AC_ARG_WITH([database],
624 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
627 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
628 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
630 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
632 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
633 [AC_MSG_ERROR([*** tdb not found])])
636 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
639 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
640 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
643 AS_IF([test "x$HAVE_GDBM" = "x1"],
650 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
651 [AC_MSG_ERROR([*** gdbm not found])])
654 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
657 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
659 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
660 AC_MSG_ERROR([*** missing database backend]))
665 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
666 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
668 AC_SUBST(GDBM_CFLAGS)
670 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
671 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
673 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
674 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
676 #### OSS support (optional) ####
678 AC_ARG_ENABLE([oss-output],
679 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
681 AC_ARG_ENABLE([oss-wrapper],
682 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
684 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
685 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
688 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
689 [AC_MSG_ERROR([*** OSS support not found])])
691 AS_IF([test "x$enable_oss_output" != "xno"],
692 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
695 AS_IF([test "x$enable_oss_wrapper" != "xno"],
696 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
699 AC_SUBST(HAVE_OSS_OUTPUT)
700 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
701 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
702 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
703 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
705 #### CoreAudio support (optional) ####
707 AC_ARG_ENABLE([coreaudio-output],
708 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
710 AS_IF([test "x$enable_coreaudio_output" != "xno"],
711 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
714 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
715 [AC_MSG_ERROR([*** CoreAudio output support not found])])
717 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
719 #### ALSA support (optional) ####
721 AC_ARG_ENABLE([alsa],
722 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
724 AS_IF([test "x$enable_alsa" != "xno"],
725 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
728 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
729 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
731 AC_SUBST(ASOUNDLIB_CFLAGS)
732 AC_SUBST(ASOUNDLIB_LIBS)
734 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
735 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
737 #### Solaris audio support (optional) ####
739 AC_ARG_ENABLE([solaris],
740 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
742 AS_IF([test "x$enable_solaris" != "xno"],
743 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
746 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
747 [AC_MSG_ERROR([*** Solaris audio support not found])])
749 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
750 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
752 #### WaveOut audio support (optional) ####
754 AC_ARG_ENABLE([waveout],
755 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
757 AS_IF([test "x$enable_waveout" != "xno"],
758 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
761 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
762 [AC_MSG_ERROR([*** WaveOut audio support not found])])
764 AC_SUBST(HAVE_WAVEOUT)
765 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
766 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
768 #### GLib 2 support (optional) ####
770 AC_ARG_ENABLE([glib2],
771 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
773 AS_IF([test "x$enable_glib2" != "xno"],
774 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
777 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
778 [AC_MSG_ERROR([*** GLib 2 support not found])])
780 AC_SUBST(GLIB20_CFLAGS)
781 AC_SUBST(GLIB20_LIBS)
782 AC_SUBST(HAVE_GLIB20)
783 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
784 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
786 #### GTK2 support (optional) ####
788 AC_ARG_ENABLE([gtk2],
789 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]))
791 AS_IF([test "x$enable_gtk2" != "xno"],
792 [PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], HAVE_GTK20=1, HAVE_GTK20=0)],
795 AS_IF([test "x$enable_gtk2" = "xyes" && test "x$HAVE_GTK20" = "x0"],
796 [AC_MSG_ERROR([*** Gtk+ 2 support not found])])
798 AC_SUBST(GTK20_CFLAGS)
800 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
801 AS_IF([test "x$HAVE_GTK20" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
803 #### GConf support (optional) ####
805 AC_ARG_ENABLE([gconf],
806 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
808 AS_IF([test "x$enable_gconf" != "xno"],
809 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
812 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
813 [AC_MSG_ERROR([*** GConf support not found])])
815 AC_SUBST(GCONF_CFLAGS)
817 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
819 #### Avahi support (optional) ####
821 AC_ARG_ENABLE([avahi],
822 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
824 AS_IF([test "x$enable_avahi" != "xno"],
825 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
828 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
829 [AC_MSG_ERROR([*** Avahi support not found])])
831 AC_SUBST(AVAHI_CFLAGS)
834 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
836 #### JACK (optional) ####
838 AC_ARG_ENABLE([jack],
839 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
841 AS_IF([test "x$enable_jack" != "xno"],
842 [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
845 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
846 [AC_MSG_ERROR([*** JACK support not found])])
848 AC_SUBST(JACK_CFLAGS)
850 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
852 #### Async DNS support (optional) ####
854 AC_ARG_ENABLE([asyncns],
855 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
857 AS_IF([test "x$enable_asyncns" != "xno"],
858 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
861 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
862 [AC_MSG_ERROR([*** Async DNS support not found])])
864 AC_SUBST(LIBASYNCNS_CFLAGS)
865 AC_SUBST(LIBASYNCNS_LIBS)
866 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
867 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
869 #### TCP wrappers (optional) ####
871 AC_ARG_ENABLE([tcpwrap],
872 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
874 AS_IF([test "x$enable_tcpwrap" != "xno"],
877 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
881 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
882 [AC_MSG_ERROR([*** TCP wrappers support not found])])
884 AC_SUBST(LIBWRAP_LIBS)
886 #### LIRC support (optional) ####
888 AC_ARG_ENABLE([lirc],
889 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
894 AS_IF([test "x$enable_lirc" != "xno"],
897 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
898 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
902 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
903 [AC_MSG_ERROR([*** LIRC support not found])])
905 AC_SUBST(LIRC_CFLAGS)
907 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
909 #### D-Bus support (optional) ####
911 AC_ARG_ENABLE([dbus],
912 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
914 AS_IF([test "x$enable_dbus" != "xno"],
915 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.3.0 ], HAVE_DBUS=1, HAVE_DBUS=0)],
918 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
919 [AC_MSG_ERROR([*** D-Bus (1.3.0+) support not found])])
921 AS_IF([test "x$HAVE_DBUS" = "x1"],
923 save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
924 save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
925 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
926 CFLAGS="$save_CFLAGS"
930 AC_SUBST(DBUS_CFLAGS)
933 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
934 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
936 PA_MACHINE_ID="${localstatedir}/lib/dbus/machine-id"
937 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
938 PA_MACHINE_ID_FALLBACK="${sysconfdir}/machine-id"
939 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
940 [Fallback machine-id file])
942 #### HAL support (optional), dependant on D-Bus ####
945 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]))
947 AS_IF([test "x$enable_hal" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
948 [PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], HAVE_HAL=1, HAVE_HAL=0)],
950 AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_HAL=0)
952 AS_IF([test "x$enable_hal" = "xyes" && test "x$HAVE_HAL" = "x0"],
953 [AC_MSG_ERROR([*** HAL support not found (requires D-Bus)])])
958 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
959 AS_IF([test "x$HAVE_HAL" = "x1"], AC_DEFINE([HAVE_HAL], 1, [Have HAL.]))
961 #### BlueZ support (optional, dependant on D-Bus) ####
963 AC_ARG_ENABLE([bluez],
964 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
966 AS_IF([test "x$enable_bluez" != "xno"],
967 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
969 AS_IF([test "x$HAVE_DBUS" != "x1"], HAVE_BLUEZ=0)
971 AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
972 [AC_MSG_ERROR([*** BLUEZ support not found (requires D-Bus)])])
974 AC_SUBST(BLUEZ_CFLAGS)
977 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
979 #### UDEV support (optional) ####
981 AC_ARG_ENABLE([udev],
982 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
984 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
985 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
988 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
989 [AC_MSG_ERROR([*** UDEV support not found])])
991 AC_SUBST(UDEV_CFLAGS)
994 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
995 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
997 #### HAL compat support (optional, dependant on UDEV) ####
999 AC_ARG_ENABLE([hal-compat],
1000 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1002 AS_IF([test "x$enable_hal_compat" != "xno"],
1003 [AS_IF([test "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1006 AS_IF([test "x$enable_hal_compat" = "xyes" && test "x$HAVE_HAL_COMPAT" = "x0"],
1007 [AC_MSG_ERROR([*** HAL-compat support requires UDEV and no HAL])])
1009 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1010 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1012 #### IPv6 connection support (optional) ####
1014 AC_ARG_ENABLE([ipv6],
1015 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1017 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1019 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1021 #### OpenSSL support (optional) ####
1023 AC_ARG_ENABLE([openssl],
1024 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1026 AS_IF([test "x$enable_openssl" != "xno"],
1027 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1030 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1031 [AC_MSG_ERROR([*** OpenSSL support not found])])
1033 AC_SUBST(OPENSSL_CFLAGS)
1034 AC_SUBST(OPENSSL_LIBS)
1035 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1036 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1038 #### FFTW (optional) ####
1041 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1043 AS_IF([test "x$with_fftw" != "xno"],
1044 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1047 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1048 [AC_MSG_ERROR([*** FFTW support not found])])
1050 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1052 #### speex (optional) ####
1054 AC_ARG_WITH([speex],
1055 AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1057 AS_IF([test "x$with_speex" != "xno"],
1058 [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1061 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1062 [AC_MSG_ERROR([*** speex support not found])])
1064 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1065 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1067 AC_SUBST(LIBSPEEX_CFLAGS)
1068 AC_SUBST(LIBSPEEX_LIBS)
1070 #### ORC (optional) ####
1074 #### Build and Install man pages ####
1076 AC_ARG_ENABLE([manpages],
1077 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1079 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1081 #### PulseAudio system group & user #####
1083 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1084 if test -z "$with_system_user" ; then
1085 PA_SYSTEM_USER=pulse
1087 PA_SYSTEM_USER=$with_system_user
1089 AC_SUBST(PA_SYSTEM_USER)
1090 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1092 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1093 if test -z "$with_system_group" ; then
1094 PA_SYSTEM_GROUP=pulse
1096 PA_SYSTEM_GROUP=$with_system_group
1098 AC_SUBST(PA_SYSTEM_GROUP)
1099 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1101 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)]))
1102 if test -z "$with_access_group" ; then
1103 PA_ACCESS_GROUP=pulse-access
1105 PA_ACCESS_GROUP=$with_access_group
1107 AC_SUBST(PA_ACCESS_GROUP)
1108 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1110 AC_ARG_ENABLE([per-user-esound-socket],
1111 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1113 if test "x$enable_per_user_esound_socket" != "xno"; then
1114 USE_PER_USER_ESOUND_SOCKET=1
1115 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1117 USE_PER_USER_ESOUND_SOCKET=0
1120 #### PulseAudio system runtime dir ####
1122 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1123 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1124 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1125 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1126 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1127 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1129 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1130 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1132 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1133 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1135 AC_SUBST(PA_SOEXT, [.so])
1137 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1138 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1140 AC_DEFINE_UNQUOTED(PA_BUILDDIR, "${ac_pwd}/src", [Location of uninstalled binaries])
1142 #### Mac OSX specific stuff #####
1144 AC_ARG_ENABLE(mac-universal,
1145 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1146 enable_mac_universal=$enableval, enable_mac_universal="no")
1148 AC_ARG_WITH(mac-version-min,
1149 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1150 mac_version_min=$withval, mac_version_min="10.5")
1152 AC_ARG_WITH(mac-sysroot,
1153 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1154 mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1156 if test "x$os_is_darwin" = "x1" ; then
1157 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1158 CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1160 if test "x$enable_mac_universal" = "xyes" ; then
1161 mac_arches="-arch i386 -arch x86_64"
1162 LDFLAGS="$LDFLAGS $mac_arches"
1163 CFLAGS="$CFLAGS $mac_arches"
1167 AC_ARG_ENABLE([webrtc-aec],
1168 AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1170 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1171 [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1174 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1175 [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1177 AC_SUBST(WEBRTC_CFLAGS)
1178 AC_SUBST(WEBRTC_LIBS)
1179 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1181 AC_ARG_ENABLE([adrian-aec],
1182 AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1183 AS_IF([test "x$enable_adrian_aec" != "xno"],
1185 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1189 ###################################
1191 ###################################
1193 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1195 # Check whether to build tests by default (as compile-test) or not
1196 AC_ARG_ENABLE([default-build-tests],
1197 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1198 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1200 AC_ARG_ENABLE([legacy-runtime-dir],
1201 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1202 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1203 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1206 AC_ARG_ENABLE([legacy-database-entry-format],
1207 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1208 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1209 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1211 AC_DEFINE([WIBBLE], 1, [Just a test.])
1213 AC_ARG_ENABLE([static-bins],
1214 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1215 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1219 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1220 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1221 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1222 if test "x$PREOPEN_MODS" != "xall" ; then
1224 for mod in $PREOPEN_MODS; do
1225 tmpLIBS="$tmpLIBS module-$mod.la"
1227 PREOPEN_MODS="$tmpLIBS"
1228 AC_SUBST(PREOPEN_MODS)
1233 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1234 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1236 AC_SUBST(modlibexecdir)
1237 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1241 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1242 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1244 AC_SUBST(udevrulesdir)
1246 AC_ARG_ENABLE([force-preopen],
1247 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1249 if test "x$enable_force_preopen" = "xyes"; then
1255 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1263 libpulse-mainloop-glib.pc
1265 doxygen/doxygen.conf
1268 man/pulseaudio.1.xml
1270 man/pax11publish.1.xml
1275 man/pasuspender.1.xml
1277 man/pulse-daemon.conf.5.xml
1278 man/pulse-client.conf.5.xml
1279 man/default.pa.5.xml
1280 man/start-pulseaudio-kde.1.xml
1281 man/start-pulseaudio-x11.1.xml
1284 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1285 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1286 AC_CONFIG_FILES([src/start-pulseaudio-kde:src/daemon/start-pulseaudio-kde.in], [chmod +x src/start-pulseaudio-kde])
1287 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1288 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1289 [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1290 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1291 [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1292 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1293 [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1295 # CMake related ProjectConfig files
1297 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1298 PA_INCDIR="$includedir"
1299 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1301 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1302 [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1303 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1307 # ==========================================================================
1309 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1310 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1311 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1312 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1313 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1314 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1315 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1316 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1317 AS_IF([test "x$HAVE_GTK20" = "x1"], ENABLE_GTK20=yes, ENABLE_GTK20=no)
1318 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1319 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1320 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1321 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1322 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1323 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1324 AS_IF([test "x$HAVE_HAL" = "x1"], ENABLE_HAL=yes, ENABLE_HAL=no)
1325 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1326 AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
1327 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1328 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1329 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1330 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1331 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1332 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1333 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1334 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1335 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1336 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1337 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1338 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1339 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1340 AS_IF([test "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1341 AS_IF([test "x$enable_legacy_runtime_dir" != "xno"], ENABLE_LEGACY_RUNTIME_DIR=yes, ENABLE_LEGACY_RUNTIME_DIR=no)
1342 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1345 ---{ $PACKAGE_NAME $VERSION }---
1348 sysconfdir: ${sysconfdir}
1349 localstatedir: ${localstatedir}
1350 modlibexecdir: ${modlibexecdir}
1351 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1352 System State Path: ${PA_SYSTEM_STATE_PATH}
1353 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1358 Enable X11: ${ENABLE_X11}
1359 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1360 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1361 Enable Alsa: ${ENABLE_ALSA}
1362 Enable CoreAudio: ${ENABLE_COREAUDIO}
1363 Enable Solaris: ${ENABLE_SOLARIS}
1364 Enable WaveOut: ${ENABLE_WAVEOUT}
1365 Enable GLib 2.0: ${ENABLE_GLIB20}
1366 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1367 Enable GConf: ${ENABLE_GCONF}
1368 Enable Avahi: ${ENABLE_AVAHI}
1369 Enable Jack: ${ENABLE_JACK}
1370 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1371 Enable LIRC: ${ENABLE_LIRC}
1372 Enable D-Bus: ${ENABLE_DBUS}
1373 Enable HAL: ${ENABLE_HAL}
1374 Enable BlueZ: ${ENABLE_BLUEZ}
1375 Enable udev: ${ENABLE_UDEV}
1376 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1377 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1378 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1379 Enable IPv6: ${ENABLE_IPV6}
1380 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1381 Enable fftw: ${ENABLE_FFTW}
1382 Enable orc: ${ENABLE_ORC}
1383 Enable Adrian echo canceller: ${ENABLE_ADRIAN_EC}
1384 Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1385 Enable WebRTC echo canceller: ${ENABLE_WEBRTC}
1388 gdbm: ${ENABLE_GDBM}
1389 simple database: ${ENABLE_SIMPLEDB}
1391 System User: ${PA_SYSTEM_USER}
1392 System Group: ${PA_SYSTEM_GROUP}
1393 Access Group: ${PA_ACCESS_GROUP}
1394 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1395 Force preopen: ${FORCE_PREOPEN}
1396 Preopened modules: ${PREOPEN_MODS}
1398 Legacy Runtime Dir Support: ${ENABLE_LEGACY_RUNTIME_DIR}
1399 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1402 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1403 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1406 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1408 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1409 You do not have D-Bus support enabled. It is strongly recommended
1410 that you enable D-Bus support if your platform supports it.
1411 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1412 to the Device Reservation Protocol to speak to JACK, Bluetooth
1413 support and even a native control protocol for communicating and
1414 controling the PulseAudio daemon itself.
1415 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1419 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1421 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1422 You do not have udev support enabled. It is strongly recommended
1423 that you enable udev support if your platform supports it as it is
1424 the primary method used to detect hardware audio devices (on Linux)
1425 and is thus a critical part of PulseAudio on that platform.
1426 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1430 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1432 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1433 You do not have speex support enabled. It is strongly recommended
1434 that you enable speex support if your platform supports it as it is
1435 the primary method used for audio resampling and is thus a critical
1436 part of PulseAudio on that platform.
1437 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====