console-kit: Console Kit support is dependent on DBUS and is thus optional.
[pulseaudio-mirror.git] / configure.ac
blob5216c01d82eb2b5390072bb7bccc71872a13d79a
1 # -*- Autoconf -*-
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.
23 AC_PREREQ(2.63)
25 AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net])
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 tar-pax])
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)
37 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
39 AC_SUBST(PA_API_VERSION, 12)
40 AC_SUBST(PA_PROTOCOL_VERSION, 19)
42 # The stable ABI for client applications, for the version info x:y:z
43 # always will hold y=z
44 AC_SUBST(LIBPULSE_VERSION_INFO, [12:3:12])
46 # A simplified, synchronous, ABI-stable interface for client
47 # applications, for the version info x:y:z always will hold y=z
48 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
50 # The ABI-stable network browsing interface for client applications,
51 # for the version info x:y:z always will hold y=z
52 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
54 # The ABI-stable GLib adapter for client applications, for the version
55 # info x:y:z always will hold y=z
56 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
58 AC_CANONICAL_HOST
59 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
61 AC_CHECK_PROG([STOW], [stow], [yes], [no])
63 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
64    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
65    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
68 AM_SILENT_RULES([yes])
70 #### Checks for programs. ####
72 # mkdir -p
74 AC_PROG_MKDIR_P
76 # CC
78 AC_PROG_CC
79 AC_PROG_CC_C99
80 AM_PROG_CC_C_O
81 AC_PROG_GCC_TRADITIONAL
82 AC_USE_SYSTEM_EXTENSIONS
84 #### Platform hacks ####
86 case $host in
87    *-*-solaris* )
88       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
89       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
90       ;;
91    *-*-darwin* )
92       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
93       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
94       ;;
95 esac
97 # M4
99 AC_CHECK_PROGS([M4], gm4 m4, no)
100 if test "x$M4" = xno ; then
101    AC_MSG_ERROR([m4 missing])
104 dnl Compiler flags
105 CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option])
107 dnl Linker flags.
108 dnl Check whether the linker supports the -version-script option.
110 dnl This variable is used to make sure ${srcdir} is expanded and not
111 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
112 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
114 CC_CHECK_LDFLAGS([${tmp_ldflag}],
115     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
116 AC_SUBST([VERSIONING_LDFLAGS])
118 dnl Use immediate (now) bindings; avoids the funky re-call in itself
119 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
120 dnl  other linkes might be added later
121 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
122 AC_SUBST([IMMEDIATE_LDFLAGS])
124 dnl On ELF systems we don't want the libraries to be unloaded since we
125 dnl don't clean them up properly, so we request the nodelete flag to be
126 dnl enabled.
128 dnl On other systems, we don't really know how to do that, but it's
129 dnl welcome if somebody can tell.
130 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
131 AC_SUBST([NODELETE_LDFLAGS])
133 dnl Check for the proper way to build libraries that have no undefined
134 dnl symbols; on some hosts this needs to be avoided but the macro
135 dnl takes care of it.
136 CC_NOUNDEFINED
138 dnl Check whether to build tests by default (as compile-test) or not
139 AC_ARG_ENABLE([default-build-tests],
140     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
142 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
144 # Native atomic operation support
145 AC_ARG_ENABLE([atomic-arm-linux-helpers],
146     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
147         [
148             case "${enableval}" in
149                 yes) atomic_arm_linux_helpers=yes ;;
150                 no) atomic_arm_linux_helpers=no ;;
151                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
152             esac
153         ],
154         [atomic_arm_linux_helpers=auto])
156 AC_ARG_ENABLE([atomic-arm-memory-barrier],
157     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
158         [
159             case "${enableval}" in
160                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
161                 no) ;;
162                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
163             esac
164         ],)
166 AC_MSG_CHECKING([target operating system])
167 case $host in
168         *-*-linux*)
169             AC_MSG_RESULT([linux])
170             pulse_target_os=linux
171         ;;
172         *-*-darwin*)
173             AC_MSG_RESULT([darwin])
174             pulse_target_os=darwin
175         ;;
176         *)
177             AC_MSG_RESULT([unknown])
178             pulse_target_os=unknown
179         ;;
180 esac
182 # If everything else fails use libatomic_ops
183 need_libatomic_ops=yes
185 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
186   pulseaudio_cv_sync_bool_compare_and_swap,
187   [AC_LINK_IFELSE(
188      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
189      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
190      [pulseaudio_cv_sync_bool_compare_and_swap=no])
191   ])
193 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
194     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
195     need_libatomic_ops=no
196 else
197     # HW specific atomic ops stuff
198     AC_MSG_CHECKING([architecture for native atomic operations])
199     case $host in
200         arm*)
201             AC_MSG_RESULT([arm])
202             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
203             # The Linux kernel helper functions have been there since 2.6.16. However
204             # compile time checking for kernel version in cross compile environment
205             # (which is usually the case for arm cpu) is tricky (or impossible).
206             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
207                 AC_MSG_RESULT([yes])
208                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
209                 need_libatomic_ops=no
210             else
211                AC_MSG_RESULT([no])
212                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
213                  pulseaudio_cv_support_arm_atomic_ops,
214                  [AC_COMPILE_IFELSE(
215                     AC_LANG_PROGRAM([],
216                       [[volatile int a=0;
217                         int o=0, n=1, r;
218                         asm volatile ("ldrex    %0, [%1]\n"
219                                          "subs  %0, %0, %2\n"
220                                          "strexeq %0, %3, [%1]\n"
221                                          : "=&r" (r)
222                                          : "r" (&a), "Ir" (o), "r" (n)
223                                          : "cc");
224                         return (a==1 ? 0 : -1);
225                       ]]),
226                     [pulseaudio_cv_support_arm_atomic_ops=yes],
227                     [pulseaudio_cv_support_arm_atomic_ops=no])
228                  ])
229                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
230                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
231                    need_libatomic_ops=no
232                  ])
233            fi
234         ;;
235         *-netbsdelf5*)
236             AC_MSG_RESULT([yes])
237             need_libatomic_ops=no
238         ;;
239         *-freebsd*)
240             AC_MSG_RESULT([yes])
241             need_libatomic_ops=no
242         ;;
243         *)
244             AC_MSG_RESULT([unknown])
245         ;;
246     esac
249 # If we're on ARM, check for the ARMV6 instructions we need */
250 case $host in
251   arm*)
252     AC_CACHE_CHECK([support for required armv6 instructions],
253       pulseaudio_cv_support_armv6,
254       [AC_COMPILE_IFELSE(
255          AC_LANG_PROGRAM([],
256            [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
257              asm volatile ("ldr r0, %2 \n"
258                            "ldr r2, %3 \n"
259                            "ldr r3, %4 \n"
260                            "ssat r1, #8, r0 \n"
261                            "str r1, %0 \n"
262                            "pkhbt r1, r3, r2, LSL #8 \n"
263                            "str r1, %1 \n"
264                            : "=m" (a), "=m" (b)
265                            : "m" (a), "m" (b), "m" (c)
266                            : "r0", "r1", "r2", "r3", "cc");
267              return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
268            ]]),
269          [pulseaudio_cv_support_armv6=yes],
270          [pulseaudio_cv_support_armv6=no])
271       ])
272     AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
273         AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
274       ])
275   ;;
276   *)
277   ;;
278 esac
280 CC_CHECK_TLS
282 AC_CACHE_CHECK([whether $CC knows _Bool],
283   pulseaudio_cv__Bool,
284   [AC_COMPILE_IFELSE(
285      AC_LANG_PROGRAM([], [[_Bool b;]]),
286      [pulseaudio_cv__Bool=yes],
287      [pulseaudio_cv__Bool=no])
288   ])
290 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
291     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
292   ])
294 #### libtool stuff ####
295 LT_PREREQ(2.2)
296 LT_INIT([dlopen win32-dll disable-static])
298 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
299 dnl exactly which version of libltdl is present in the system, so we
300 dnl just assume that it's a working version as long as we have the
301 dnl library and the header files.
303 dnl As an extra safety device, check for lt_dladvise_init() which is
304 dnl only implemented in libtool 2.x, and refine as we go if we have
305 dnl refined requirements.
307 dnl Check the header files first since the system may have a
308 dnl libltdl.so for runtime, but no headers, and we want to bail out as
309 dnl soon as possible.
311 dnl We don't need any special variable for this though, since the user
312 dnl can give the proper place to find libltdl through the standard
313 dnl variables like LDFLAGS and CPPFLAGS.
315 AC_CHECK_HEADER([ltdl.h],
316     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
317     [LIBLTDL=])
319 AS_IF([test "x$LIBLTDL" = "x"],
320     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
321 AC_SUBST([LIBLTDL])
323 #### Determine build environment ####
325 os_is_win32=0
326 os_is_darwin=0
328 case "$host_os" in
329         mingw*)
330         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
331         os_is_win32=1
332                 ;;
333         darwin*)
334         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
335         os_is_darwin=1
336                 ;;
337         esac
339 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
340 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
342 ###################################
343 #   Basic environment checks      #
344 ###################################
346 #### Checks for header files. ####
348 # ISO
349 AC_HEADER_STDC
351 # POSIX
352 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
353     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
354     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
355     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
356 AC_CHECK_HEADERS([netinet/ip.h], [], [],
357                  [#include <sys/types.h>
358                   #if HAVE_NETINET_IN_H
359                   # include <netinet/in.h>
360                   #endif
361                   #if HAVE_NETINET_IN_SYSTM_H
362                   # include <netinet/in_systm.h>
363                   #endif
364                  ])
365 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
366 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
368 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
369 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
371 # Linux
372 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])
378 # Solaris
379 AC_CHECK_HEADERS_ONCE([sys/filio.h])
381 # Windows
382 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
384 # NetBSD
385 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
387 # Other
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])
394 #### Typdefs, structures, etc. ####
396 AC_C_CONST
397 AC_C_BIGENDIAN
398 AC_TYPE_PID_T
399 AC_TYPE_SIZE_T
400 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
401     [Define ssize_t if it is not done by the standard libs.])])
402 AC_TYPE_OFF_T
404 AC_TYPE_UID_T
405 AC_CHECK_DECLS(environ)
407 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
408 HAVE_SIGXCPU=1
409 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
410 ], [HAVE_SIGXCPU=0])
411 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
413 # Solaris lacks this
414 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
415     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
416         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
418 #### POSIX threads ####
420 ACX_PTHREAD
422 #### Check for libs ####
424 # ISO
425 AC_SEARCH_LIBS([pow], [m])
427 # POSIX
428 AC_SEARCH_LIBS([sched_setscheduler], [rt])
429 AC_SEARCH_LIBS([dlopen], [dl])
430 AC_SEARCH_LIBS([shm_open], [rt])
431 AC_SEARCH_LIBS([inet_ntop], [nsl])
432 AC_SEARCH_LIBS([timer_create], [rt])
433 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
435 # BSD
436 AC_SEARCH_LIBS([connect], [socket])
437 AC_SEARCH_LIBS([backtrace], [execinfo])
439 # Non-standard
441 # This magic is needed so we do not needlessly add static libs to the win32
442 # build, disabling its ability to make dlls.
443 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
445 # Darwin/OS X
446 if test "x$os_is_darwin" = "x1" ; then
447     AC_MSG_CHECKING([looking for Apple CoreService Framework])
448     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
449     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
450     [LIBS="$LIBS -framework CoreServices"],
451     [AC_MSG_ERROR([CoreServices.h header file not found]) ])
453     AC_MSG_RESULT([ok])
454     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
455     HAVE_BONJOUR=1
458 AC_SUBST(HAVE_BONJOUR)
459 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
461 #### Check for functions ####
463 # ISO
464 AC_CHECK_FUNCS_ONCE([lrintf strtof])
466 # POSIX
467 AC_FUNC_FORK
468 AC_FUNC_GETGROUPS
469 AC_FUNC_SELECT_ARGTYPES
470 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
471     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
472     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
473     sigaction sleep sysconf pthread_setaffinity_np])
474 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
476 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
478 # X/OPEN
479 AC_CHECK_FUNCS_ONCE([readlink])
481 # SUSv2
482 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
484 # SUSv3
485 AC_CHECK_FUNCS_ONCE([strerror_r])
487 # BSD
488 AC_CHECK_FUNCS_ONCE([lstat])
490 # Non-standard
492 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
494 AC_FUNC_ALLOCA
496 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
497   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
498   [save_CC=$CC; CC=$PTHREAD_CC
499    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
500    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
501    AC_LINK_IFELSE(
502      AC_LANG_PROGRAM(
503        [[
504          #include <pthread.h>
505        ]],
506        [[int i = PTHREAD_PRIO_INHERIT;]]),
507      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
508      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
509    CC=$save_CC
510    CFLAGS=$save_CFLAGS
511    LIBS=$save_LIBS
512   ])
514 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
515     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
516   ])
518 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
520 #### Large File-Support (LFS) ####
522 AC_SYS_LARGEFILE
524 # Check for open64 to know if the current system does have open64() and similar functions
525 AC_CHECK_FUNCS_ONCE([open64])
527 #### [lib]iconv ####
529 AM_ICONV
531 IT_PROG_INTLTOOL([0.35.0])
532 GETTEXT_PACKAGE=pulseaudio
533 AC_SUBST([GETTEXT_PACKAGE])
534 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
535 AM_GLIB_GNU_GETTEXT
537 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
538 AC_SUBST(pulselocaledir)
540 ###################################
541 #      External libraries         #
542 ###################################
544 #### pkg-config ####
546 PKG_PROG_PKG_CONFIG
548 #### X11 (optional) ####
550 AC_ARG_ENABLE([x11],
551     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
552         [
553             case "${enableval}" in
554                 yes) x11=yes ;;
555                 no) x11=no ;;
556                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
557             esac
558         ],
559         [x11=auto])
561 if test "x${x11}" != xno ; then
562     PKG_CHECK_MODULES(X11, [ x11-xcb ice sm xtst xcb-atom ],
563         HAVE_X11=1,
564         [
565             HAVE_X11=0
566             if test "x$x11" = xyes ; then
567                 AC_MSG_ERROR([*** X11 not found])
568             fi
569         ])
570 else
571     HAVE_X11=0
574 if test "x${HAVE_X11}" = x1 ; then
575    AC_DEFINE([HAVE_X11], 1, [Have X11?])
578 AC_SUBST(X11_CFLAGS)
579 AC_SUBST(X11_LIBS)
580 AC_SUBST(HAVE_X11)
581 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
583 #### Capabilities (optional) ####
585 CAP_LIBS=''
587 AC_ARG_WITH(
588         [caps],
589         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
591 if test "x${with_caps}" != "xno"; then
592     AC_SEARCH_LIBS([cap_init], [cap], [], [
593                     if test "x${with_caps}" = "xyes" ; then
594                         AC_MSG_ERROR([*** POSIX caps libraries not found])
595                     fi])
596     AC_CHECK_HEADERS([sys/capability.h], [], [
597                     if test "x${with_caps}" = "xyes" ; then
598                         AC_MSG_ERROR([*** POSIX caps headers not found])
599                     fi])
602 #### Valgrind (optional) ####
604 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
606 #### Sound file ####
608 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
609 AC_SUBST(LIBSNDFILE_CFLAGS)
610 AC_SUBST(LIBSNDFILE_LIBS)
612 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
613 AC_SUBST(LIBSPEEX_CFLAGS)
614 AC_SUBST(LIBSPEEX_LIBS)
616 #### atomic-ops ###
618 AC_MSG_CHECKING([whether we need libatomic_ops])
619 if test "x$need_libatomic_ops" = "xyes"; then
620    AC_MSG_RESULT([yes])
621    AC_CHECK_HEADERS([atomic_ops.h], [], [
622    AC_MSG_ERROR([*** libatomic-ops headers not found])
623    ])
625    # Win32 does not need the lib and breaks horribly if we try to include it
626    if test "x$os_is_win32" != "x1" ; then
627        LIBS="$LIBS -latomic_ops"
628    fi
629 else
630    AC_MSG_RESULT([no])
633 #### Libsamplerate support (optional) ####
635 AC_ARG_ENABLE([samplerate],
636     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
637         [
638             case "${enableval}" in
639                 yes) samplerate=yes ;;
640                 no) samplerate=no ;;
641                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
642             esac
643         ],
644         [samplerate=auto])
646 if test "x${samplerate}" != xno ; then
647     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
648         HAVE_LIBSAMPLERATE=1,
649         [
650             HAVE_LIBSAMPLERATE=0
651             if test "x$samplerate" = xyes ; then
652                 AC_MSG_ERROR([*** Libsamplerate not found])
653             fi
654         ])
655 else
656     HAVE_LIBSAMPLERATE=0
659 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
660    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
663 AC_SUBST(LIBSAMPLERATE_CFLAGS)
664 AC_SUBST(LIBSAMPLERATE_LIBS)
665 AC_SUBST(HAVE_LIBSAMPLERATE)
666 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
668 #### Database support ####
670 HAVE_TDB=0
671 HAVE_GDBM=0
672 HAVE_SIMPLEDB=0
674 AC_ARG_WITH(
675         [database],
676         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
678 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
679     PKG_CHECK_MODULES(TDB, [ tdb ],
680         [
681             HAVE_TDB=1
682             with_database=tdb
683         ], [
684             if test "x${with_database}" = "xtdb" ; then
685                 AC_MSG_ERROR([*** tdb not found])
686             fi
687         ])
690 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
691    have_gdbm=yes
693    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
694    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
696    if test "x${have_gdbm}" = "xyes" ; then
697        HAVE_GDBM=1
698        GDBM_CFLAGS=
699        GDBM_LIBS=-lgdbm
700        with_database=gdbm
701    elif test "x${with_database}" = "xgdbm"; then
702        AC_MSG_ERROR([*** gdbm not found])
703    fi
706 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
707     HAVE_SIMPLEDB=1
708     with_database=simple
711 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
712    AC_MSG_ERROR([*** missing database backend])
715 if test "x${HAVE_TDB}" = x1 ; then
716    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
719 if test "x${HAVE_GDBM}" = x1 ; then
720    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
723 if test "x${HAVE_SIMPLEDB}" = x1 ; then
724     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
727 AC_SUBST(TDB_CFLAGS)
728 AC_SUBST(TDB_LIBS)
729 AC_SUBST(HAVE_TDB)
730 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
732 AC_SUBST(GDBM_CFLAGS)
733 AC_SUBST(GDBM_LIBS)
734 AC_SUBST(HAVE_GDBM)
735 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
737 AC_SUBST(HAVE_SIMPLEDB)
738 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
740 #### OSS support (optional) ####
742 AC_ARG_ENABLE([oss-output],
743     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
744         [
745             case "${enableval}" in
746                 yes) oss_output=yes ;;
747                 no) oss_output=no ;;
748                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
749             esac
750         ],
751         [oss_output=auto])
753 AC_ARG_ENABLE([oss-wrapper],
754     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
755         [
756             case "${enableval}" in
757                 yes) oss_wrapper=yes ;;
758                 no) oss_wrapper=no ;;
759                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
760             esac
761         ],
762         [oss_wrapper=auto])
764 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
765     AC_CHECK_HEADERS([sys/soundcard.h],
766         [
767             if test "x${oss_output}" != "xno"; then
768                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
769             fi
770             if test "x${oss_wrapper}" != "xno"; then
771                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
772             fi
773             HAVE_OSS=1
774         ],
775         [
776             HAVE_OSS=0
777             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
778                 AC_MSG_ERROR([*** OSS support not found])
779             fi
780         ])
781 else
782     HAVE_OSS=0
785 AC_SUBST(HAVE_OSS)
786 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
787 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
789 #### CoreAudio support (optional) ####
791 AC_ARG_ENABLE([coreaudio-output],
792     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
793         [
794             case "${enableval}" in
795                 yes) coreaudio_enabled=yes ;;
796                 no) coreaudio_enabled=no ;;
797                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
798             esac
799         ],
800         [coreaudio_enabled=auto])
802 if test "x${coreaudio_enabled}" != xno ; then
803     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
804 else
805     HAVE_COREAUDIO=0
808 AC_SUBST(HAVE_COREAUDIO)
809 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
811 #### ALSA support (optional) ####
813 AC_ARG_ENABLE([alsa],
814     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
815         [
816             case "${enableval}" in
817                 yes) alsa=yes ;;
818                 no) alsa=no ;;
819                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
820             esac
821         ],
822         [alsa=auto])
824 if test "x${alsa}" != xno ; then
825     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
826         [
827             HAVE_ALSA=1
828             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
829         ],
830         [
831             HAVE_ALSA=0
832             if test "x$alsa" = xyes ; then
833                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
834             fi
835         ])
836 else
837     HAVE_ALSA=0
840 AC_SUBST(ASOUNDLIB_CFLAGS)
841 AC_SUBST(ASOUNDLIB_LIBS)
842 AC_SUBST(HAVE_ALSA)
843 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
845 #### Solaris audio support (optional) ####
847 AC_ARG_ENABLE([solaris],
848     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
849         [
850             case "${enableval}" in
851                 yes) solaris=yes ;;
852                 no) solaris=no ;;
853                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
854             esac
855         ],
856         [solaris=auto])
858 if test "x${solaris}" != xno ; then
859     AC_CHECK_HEADERS([sys/audio.h],
860         [
861             HAVE_SOLARIS=1
862             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
863         ],
864         [
865             HAVE_SOLARIS=0
866             if test "x$solaris" = xyes ; then
867                 AC_MSG_ERROR([*** Solaris audio support not found])
868             fi
869         ])
870 else
871     HAVE_SOLARIS=0
874 AC_SUBST(HAVE_SOLARIS)
875 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
877 #### GLib 2 support (optional) ####
879 AC_ARG_ENABLE([glib2],
880     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
881         [
882             case "${enableval}" in
883                 yes) glib2=yes ;;
884                 no) glib2=no ;;
885                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
886             esac
887         ],
888         [glib2=auto])
890 if test "x${glib2}" != xno ; then
891     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
892         HAVE_GLIB20=1,
893         [
894             HAVE_GLIB20=0
895             if test "x$glib2" = xyes ; then
896                 AC_MSG_ERROR([*** GLib 2 support not found])
897             fi
898         ])
899 else
900     HAVE_GLIB20=0
903 AC_SUBST(GLIB20_CFLAGS)
904 AC_SUBST(GLIB20_LIBS)
905 AC_SUBST(HAVE_GLIB20)
906 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
908 if test "x$HAVE_GLIB20" = x1 ; then
909    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
912 #### GTK2 support (optional) ####
914 AC_ARG_ENABLE([gtk2],
915     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
916         [
917             case "${enableval}" in
918                 yes) gtk2=yes ;;
919                 no) gtk2=no ;;
920                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
921             esac
922         ],
923         [gtk2=auto])
925 if test "x${gtk2}" != xno ; then
926     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
927         HAVE_GTK20=1,
928         [
929             HAVE_GTK20=0
930             if test "x$gtk2" = xyes ; then
931                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
932             fi
933         ])
934 else
935     HAVE_GTK20=0
938 AC_SUBST(GTK20_CFLAGS)
939 AC_SUBST(GTK20_LIBS)
940 AC_SUBST(HAVE_GTK20)
941 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
943 if test "x$HAVE_GTK20" = x1 ; then
944    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
947 #### GConf support (optional) ####
949 AC_ARG_ENABLE([gconf],
950     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
951         [
952             case "${enableval}" in
953                 yes) gconf=yes ;;
954                 no) gconf=no ;;
955                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
956             esac
957         ],
958         [gconf=auto])
960 if test "x${gconf}" != xno ; then
961     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ],
962         HAVE_GCONF=1,
963         [
964             HAVE_GCONF=0
965             if test "x$gconf" = xyes ; then
966                 AC_MSG_ERROR([*** GConf support not found])
967             fi
968         ])
969 else
970     HAVE_GCONF=0
973 AC_SUBST(GCONF_CFLAGS)
974 AC_SUBST(GCONF_LIBS)
975 AC_SUBST(HAVE_GCONF)
976 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
978 #### Avahi support (optional) ####
980 AC_ARG_ENABLE([avahi],
981     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
982         [
983             case "${enableval}" in
984                 yes) avahi=yes ;;
985                 no) avahi=no ;;
986                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
987             esac
988         ],
989         [avahi=auto])
991 if test "x${avahi}" != xno ; then
992     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
993         HAVE_AVAHI=1,
994         [
995                 HAVE_AVAHI=0
996                 if test "x$avahi" = xyes ; then
997                         AC_MSG_ERROR([*** Avahi support not found])
998                 fi
999         ])
1000 else
1001     HAVE_AVAHI=0
1004 AC_SUBST(AVAHI_CFLAGS)
1005 AC_SUBST(AVAHI_LIBS)
1006 AC_SUBST(HAVE_AVAHI)
1007 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
1009 ### JACK (optional) ####
1011 AC_ARG_ENABLE([jack],
1012     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
1013         [
1014             case "${enableval}" in
1015                 yes) jack=yes ;;
1016                 no) jack=no ;;
1017                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
1018             esac
1019         ],
1020         [jack=auto])
1022 if test "x${jack}" != xno ; then
1023     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
1024         HAVE_JACK=1,
1025         [
1026             HAVE_JACK=0
1027             if test "x$jack" = xyes ; then
1028                 AC_MSG_ERROR([*** JACK support not found])
1029             fi
1030         ])
1031 else
1032     HAVE_JACK=0
1035 AC_SUBST(JACK_CFLAGS)
1036 AC_SUBST(JACK_LIBS)
1037 AC_SUBST(HAVE_JACK)
1038 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1040 #### Async DNS support (optional) ####
1042 AC_ARG_ENABLE([asyncns],
1043     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1044         [
1045             case "${enableval}" in
1046                 yes) asyncns=yes ;;
1047                 no) asyncns=no ;;
1048                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1049             esac
1050         ],
1051         [asyncns=auto])
1053 if test "x${asyncns}" != xno ; then
1054     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1055         HAVE_LIBASYNCNS=1,
1056         [
1057             HAVE_LIBASYNCNS=0
1058             if test "x$asyncns" = xyes ; then
1059                 AC_MSG_ERROR([*** Async DNS support not found])
1060             fi
1061         ])
1062 else
1063     HAVE_LIBASYNCNS=0
1066 AC_SUBST(LIBASYNCNS_CFLAGS)
1067 AC_SUBST(LIBASYNCNS_LIBS)
1068 AC_SUBST(HAVE_LIBASYNCNS)
1069 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1071 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1072    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1075 #### TCP wrappers (optional) ####
1077 AC_ARG_ENABLE([tcpwrap],
1078     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1079         [
1080             case "${enableval}" in
1081                 yes) tcpwrap=yes ;;
1082                 no) tcpwrap=no ;;
1083                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1084             esac
1085         ],
1086         [tcpwrap=auto])
1088 if test "x${tcpwrap}" != xno ; then
1089     ACX_LIBWRAP
1090     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1091         AC_MSG_ERROR([*** TCP wrappers support not found])
1092     fi
1093 else
1094     LIBWRAP_LIBS=
1097 AC_SUBST(LIBWRAP_LIBS)
1099 #### LIRC support (optional) ####
1101 AC_ARG_ENABLE([lirc],
1102     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1103         [
1104             case "${enableval}" in
1105                 yes) lirc=yes ;;
1106                 no) lirc=no ;;
1107                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1108             esac
1109         ],
1110         [lirc=auto])
1112 if test "x${lirc}" != xno ; then
1113     ACX_LIRC
1114     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1115         AC_MSG_ERROR([*** LIRC support not found])
1116     fi
1117 else
1118     HAVE_LIRC=0
1121 AC_SUBST(LIRC_CFLAGS)
1122 AC_SUBST(LIRC_LIBS)
1123 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1125 #### HAL support (optional) ####
1127 AC_ARG_ENABLE([hal],
1128     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1129         [
1130             case "${enableval}" in
1131                 yes) hal=yes ;;
1132                 no) hal=no ;;
1133                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1134             esac
1135         ],
1136         [hal=auto])
1137 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1138     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1139         [
1140             HAVE_HAL=1
1141             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1142         ],
1143         [
1144             HAVE_HAL=0
1145             if test "x$hal" = xyes ; then
1146                 AC_MSG_ERROR([*** HAL support not found])
1147             fi
1148         ])
1149 else
1150     HAVE_HAL=0
1153 AC_SUBST(HAL_CFLAGS)
1154 AC_SUBST(HAL_LIBS)
1155 AC_SUBST(HAVE_HAL)
1156 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1158 #### UDEV support (optional) ####
1160 AC_ARG_ENABLE([udev],
1161     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1162         [
1163             case "${enableval}" in
1164                 yes) udev=yes ;;
1165                 no) udev=no ;;
1166                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1167             esac
1168         ],
1169         [udev=auto])
1170 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1171     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1172         [
1173             HAVE_UDEV=1
1174             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1175         ],
1176         [
1177             HAVE_UDEV=0
1178             if test "x$udev" = xyes ; then
1179                 AC_MSG_ERROR([*** UDEV support not found])
1180             fi
1181         ])
1182 else
1183     HAVE_UDEV=0
1186 AC_SUBST(UDEV_CFLAGS)
1187 AC_SUBST(UDEV_LIBS)
1188 AC_SUBST(HAVE_UDEV)
1189 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1191 #### HAL compat support (optional) ####
1193 AC_ARG_ENABLE([hal-compat],
1194     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1195         [
1196             case "${enableval}" in
1197                 yes) halcompat=yes ;;
1198                 no) halcompat=no ;;
1199                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1200             esac
1201         ],
1202         [halcompat=auto])
1203 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1204     HAVE_HAL_COMPAT=1
1205     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1206 else
1207     HAVE_HAL_COMPAT=0
1210 AC_SUBST(HAVE_HAL_COMPAT)
1211 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1213 #### BlueZ support (optional) ####
1215 AC_ARG_ENABLE([bluez],
1216     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1217         [
1218             case "${enableval}" in
1219                 yes) bluez=yes ;;
1220                 no) bluez=no ;;
1221                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1222             esac
1223         ],
1224         [bluez=auto])
1225 if test "x${bluez}" != xno ; then
1226     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1227         HAVE_BLUEZ=1,
1228         [
1229             HAVE_BLUEZ=0
1230             if test "x$bluez" = xyes ; then
1231                 AC_MSG_ERROR([*** BLUEZ support not found])
1232             fi
1233         ])
1234 else
1235     HAVE_BLUEZ=0
1238 AC_SUBST(BLUEZ_CFLAGS)
1239 AC_SUBST(BLUEZ_LIBS)
1240 AC_SUBST(HAVE_BLUEZ)
1241 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1243 #### D-Bus support (optional) ####
1245 AC_ARG_ENABLE([dbus],
1246     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1247         [
1248             case "${enableval}" in
1249                 yes) dbus=yes ;;
1250                 no) dbus=no ;;
1251                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1252             esac
1253         ],
1254         [dbus=auto])
1256 if test "x$HAVE_HAL" = x1 ; then
1257    dbus=yes
1260 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1262     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1263         [
1264             HAVE_DBUS=1
1265             saved_LIBS="$LIBS"
1266             LIBS="$LIBS $DBUS_LIBS"
1267             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1268             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1269             LIBS="$saved_LIBS"
1270             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1271         ],
1272         [
1273             HAVE_DBUS=0
1274             if test "x$dbus" = xyes ; then
1275                 AC_MSG_ERROR([*** D-Bus support not found])
1276             fi
1277         ])
1278 else
1279     HAVE_DBUS=0
1282 AC_SUBST(DBUS_CFLAGS)
1283 AC_SUBST(DBUS_LIBS)
1284 AC_SUBST(HAVE_DBUS)
1285 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1287 ### IPv6 connection support (optional) ###
1289 AC_ARG_ENABLE([ipv6],
1290     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1291         [
1292             case "${enableval}" in
1293                 yes) ipv6=yes ;;
1294                 no) ipv6=no ;;
1295                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1296             esac
1297         ],
1298         [ipv6=auto])
1300 if test "x${ipv6}" != xno ; then
1301     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1302     HAVE_IPV6=1
1303 else
1304     HAVE_IPV6=0
1307 #### OpenSSL support (optional) ####
1309 AC_ARG_ENABLE([openssl],
1310     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1311         [
1312             case "${enableval}" in
1313                 yes) openssl=yes ;;
1314                 no) openssl=no ;;
1315                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1316             esac
1317         ],
1318         [openssl=auto])
1320 if test "x${openssl}" != xno ; then
1322     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1323         [
1324             HAVE_OPENSSL=1
1325             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1326         ],
1327         [
1328             HAVE_OPENSSL=0
1329             if test "x$openssl" = xyes ; then
1330                 AC_MSG_ERROR([*** OpenSSL support not found])
1331             fi
1332         ])
1333 else
1334     HAVE_OPENSSL=0
1337 AC_SUBST(OPENSSL_CFLAGS)
1338 AC_SUBST(OPENSSL_LIBS)
1339 AC_SUBST(HAVE_OPENSSL)
1340 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1342 #### FFTW (optional) ####
1343 AC_ARG_WITH(
1344         [fftw],
1345         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1347 if test "x${with_fftw}" != "xno"; then
1348     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1350 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1352 ### ORC (optional) ###
1353 ORC_CHECK([0.4.9])
1355 ### Build and Install man pages ###
1356 AC_ARG_ENABLE(manpages,
1357         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1358 [case "${enableval}" in
1359   yes) manpages=yes ;;
1360   no)  manpages=no ;;
1361   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1362 esac],[manpages=yes])
1364 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1366 #### PulseAudio system group & user  #####
1368 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1369 if test -z "$with_system_user" ; then
1370     PA_SYSTEM_USER=pulse
1371 else
1372     PA_SYSTEM_USER=$with_system_user
1374 AC_SUBST(PA_SYSTEM_USER)
1375 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1377 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1378 if test -z "$with_system_group" ; then
1379     PA_SYSTEM_GROUP=pulse
1380 else
1381     PA_SYSTEM_GROUP=$with_system_group
1383 AC_SUBST(PA_SYSTEM_GROUP)
1384 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1386 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)]))
1387 if test -z "$with_access_group" ; then
1388     PA_ACCESS_GROUP=pulse-access
1389 else
1390     PA_ACCESS_GROUP=$with_access_group
1392 AC_SUBST(PA_ACCESS_GROUP)
1393 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1395 AC_ARG_ENABLE(
1396         per_user_esound_socket,
1397         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1398         [
1399             case "${enableval}" in
1400                 yes) per_user_esound_socket=1 ;;
1401                 no) per_user_esound_socket=0 ;;
1402                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1403             esac
1404         ],
1405         [per_user_esound_socket=1])
1407 if test "x$per_user_esound_socket" = "x1"; then
1408    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1411 #### PulseAudio system runtime dir ####
1412 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1413 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1414 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1415 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1416 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1417 AC_SUBST(PA_SYSTEM_STATE_PATH)
1419 ###################################
1420 #            Output               #
1421 ###################################
1423 AC_ARG_ENABLE([legacy-runtime-dir],
1424         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1425 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1426         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1429 AC_ARG_ENABLE(
1430         [static-bins],
1431         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1432         [STATIC_BINS=1], [STATIC_BINS=0])
1433 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1435 AC_ARG_WITH(
1436         [preopen-mods],
1437         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1438         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1439 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1440 if test "x$PREOPEN_MODS" != "xall" ; then
1441     tmpLIBS=""
1442     for mod in $PREOPEN_MODS; do
1443         tmpLIBS="$tmpLIBS module-$mod.la"
1444     done
1445     PREOPEN_MODS="$tmpLIBS"
1446     AC_SUBST(PREOPEN_MODS)
1449 AC_ARG_WITH(
1450         [module-dir],
1451         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1452         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1454 AC_SUBST(modlibexecdir)
1456 AC_ARG_WITH(
1457         [udev-rules-dir],
1458         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1459         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1461 AC_SUBST(udevrulesdir)
1463 AC_ARG_ENABLE(
1464         [force-preopen],
1465         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1466         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1467 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1469 AC_CONFIG_FILES([
1470 Makefile
1471 src/Makefile
1472 man/Makefile
1473 libpulse.pc
1474 libpulse-simple.pc
1475 libpulse-browse.pc
1476 libpulse-mainloop-glib.pc
1477 doxygen/Makefile
1478 doxygen/doxygen.conf
1479 src/pulse/version.h
1480 po/Makefile.in
1481 src/daemon/Makefile
1482 src/modules/Makefile
1483 src/modules/alsa/Makefile
1484 src/modules/alsa/mixer/Makefile
1485 src/modules/alsa/mixer/paths/Makefile
1486 src/modules/alsa/mixer/profile-sets/Makefile
1487 src/modules/bluetooth/Makefile
1488 src/modules/dbus/Makefile
1489 src/modules/gconf/Makefile
1490 src/modules/jack/Makefile
1491 src/modules/oss/Makefile
1492 src/modules/raop/Makefile
1493 src/modules/rtp/Makefile
1494 src/modules/x11/Makefile
1495 src/pulse/Makefile
1496 src/pulsecore/Makefile
1497 src/pulsecore/ffmpeg/Makefile
1498 src/tests/Makefile
1499 src/utils/Makefile
1502 AC_OUTPUT
1504 # ==========================================================================
1505 ENABLE_X11=no
1506 if test "x$HAVE_X11" = "x1" ; then
1507    ENABLE_X11=yes
1510 ENABLE_OSS_OUTPUT=no
1511 ENABLE_OSS_WRAPPER=no
1512 if test "x$HAVE_OSS" = "x1" ; then
1513    if test "x$enable_oss_output" != "xno"; then
1514       ENABLE_OSS_OUTPUT=yes
1515    fi
1516    if test "x$enable_oss_wrapper" != "xno"; then
1517       ENABLE_OSS_WRAPPER=yes
1518    fi
1521 ENABLE_COREAUDIO=no
1522 if test "x$HAVE_COREAUDIO" = "x1" ; then
1523    ENABLE_COREAUDIO=yes
1526 ENABLE_ALSA=no
1527 if test "x$HAVE_ALSA" = "x1" ; then
1528    ENABLE_ALSA=yes
1531 ENABLE_SOLARIS=no
1532 if test "x$HAVE_SOLARIS" = "x1" ; then
1533    ENABLE_SOLARIS=yes
1536 ENABLE_GTK20=no
1537 if test "x$HAVE_GTK20" = "x1" ; then
1538    ENABLE_GTK20=yes
1541 ENABLE_GLIB20=no
1542 if test "x$HAVE_GLIB20" = "x1" ; then
1543    ENABLE_GLIB20=yes
1546 ENABLE_GCONF=no
1547 if test "x$HAVE_GCONF" = "x1" ; then
1548    ENABLE_GCONF=yes
1551 ENABLE_AVAHI=no
1552 if test "x$HAVE_AVAHI" = "x1" ; then
1553    ENABLE_AVAHI=yes
1556 ENABLE_JACK=no
1557 if test "x$HAVE_JACK" = "x1" ; then
1558    ENABLE_JACK=yes
1561 ENABLE_LIBASYNCNS=no
1562 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1563    ENABLE_LIBASYNCNS=yes
1566 ENABLE_LIRC=no
1567 if test "x$HAVE_LIRC" = "x1" ; then
1568    ENABLE_LIRC=yes
1571 ENABLE_DBUS=no
1572 if test "x$HAVE_DBUS" = "x1" ; then
1573    ENABLE_DBUS=yes
1576 ENABLE_HAL=no
1577 if test "x$HAVE_HAL" = "x1" ; then
1578    ENABLE_HAL=yes
1581 ENABLE_UDEV=no
1582 if test "x$HAVE_UDEV" = "x1" ; then
1583    ENABLE_UDEV=yes
1586 ENABLE_HAL_COMPAT=no
1587 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1588    ENABLE_HAL_COMPAT=yes
1591 ENABLE_TCPWRAP=no
1592 if test "x${LIBWRAP_LIBS}" != x ; then
1593    ENABLE_TCPWRAP=yes
1596 ENABLE_LIBSAMPLERATE=no
1597 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1598    ENABLE_LIBSAMPLERATE=yes
1601 ENABLE_BLUEZ=no
1602 if test "x${HAVE_BLUEZ}" = "x1" ; then
1603    ENABLE_BLUEZ=yes
1606 ENABLE_GDBM=no
1607 if test "x${HAVE_GDBM}" = "x1" ; then
1608    ENABLE_GDBM=yes
1611 ENABLE_TDB=no
1612 if test "x${HAVE_TDB}" = "x1" ; then
1613    ENABLE_TDB=yes
1616 ENABLE_SIMPLEDB=no
1617 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1618     ENABLE_SIMPLEDB=yes
1621 ENABLE_FFTW=no
1622 if test "x${HAVE_FFTW}" = "x1" ; then
1623    ENABLE_FFTW=yes
1626 ENABLE_ORC=no
1627 if test "x${HAVE_ORC}" = "xyes" ; then
1628    ENABLE_ORC=yes
1631 ENABLE_OPENSSL=no
1632 if test "x${HAVE_OPENSSL}" = "x1" ; then
1633    ENABLE_OPENSSL=yes
1636 ENABLE_IPV6=no
1637 if test "x${HAVE_IPV6}" = "x1" ; then
1638    ENABLE_IPV6=yes
1641 ENABLE_PER_USER_ESOUND_SOCKET=no
1642 if test "x$per_user_esound_socket" = "x1" ; then
1643    ENABLE_PER_USER_ESOUND_SOCKET=yes
1646 echo "
1647  ---{ $PACKAGE_NAME $VERSION }---
1649     prefix:                        ${prefix}
1650     sysconfdir:                    ${sysconfdir}
1651     localstatedir:                 ${localstatedir}
1652     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1653     System State Path:             ${PA_SYSTEM_STATE_PATH}
1654     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1655     Compiler:                      ${CC}
1656     CFLAGS:                        ${CFLAGS}
1658     Have X11:                      ${ENABLE_X11}
1659     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1660     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1661     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1662     Enable Alsa:                   ${ENABLE_ALSA}
1663     Enable Solaris:                ${ENABLE_SOLARIS}
1664     Enable GLib 2.0:               ${ENABLE_GLIB20}
1665     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1666     Enable GConf:                  ${ENABLE_GCONF}
1667     Enable Avahi:                  ${ENABLE_AVAHI}
1668     Enable Jack:                   ${ENABLE_JACK}
1669     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1670     Enable LIRC:                   ${ENABLE_LIRC}
1671     Enable DBUS:                   ${ENABLE_DBUS}
1672     Enable HAL:                    ${ENABLE_HAL}
1673     Enable udev:                   ${ENABLE_UDEV}
1674     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1675     Enable BlueZ:                  ${ENABLE_BLUEZ}
1676     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1677     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1678     Enable IPv6:                   ${ENABLE_IPV6}
1679     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1680     Enable tdb:                    ${ENABLE_TDB}
1681     Enable gdbm:                   ${ENABLE_GDBM}
1682     Enable simple database:        ${ENABLE_SIMPLEDB}
1683     Enable fftw:                   ${ENABLE_FFTW}
1684     Enable orc:                    ${ENABLE_ORC}
1686     System User:                   ${PA_SYSTEM_USER}
1687     System Group:                  ${PA_SYSTEM_GROUP}
1688     Access Group:                  ${PA_ACCESS_GROUP}
1689     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1690     Force preopen:                 ${FORCE_PREOPEN}
1691     Preopened modules:             ${PREOPEN_MODS}