build-sys: Include the .version file in the distribution tarball
[profile/ivi/pulseaudio-panda.git] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 # This file is part of PulseAudio.
5 #
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
8 #
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.
13 #
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.
18 #
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.
22
23 AC_PREREQ(2.63)
24
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])
30
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`)
33
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/])
38
39 AC_SUBST(PA_API_VERSION, 12)
40 AC_SUBST(PA_PROTOCOL_VERSION, 19)
41
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])
45
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])
49
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])
53
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])
57
58 AC_CANONICAL_HOST
59 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
60
61 AC_CHECK_PROG([STOW], [stow], [yes], [no])
62
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}"
66 ])
67
68 AM_SILENT_RULES([yes])
69
70 #### Checks for programs. ####
71
72 # mkdir -p
73
74 AC_PROG_MKDIR_P
75
76 # CC
77
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
83
84 #### Platform hacks ####
85
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
96
97 # M4
98
99 AC_CHECK_PROGS([M4], gm4 m4, no)
100 if test "x$M4" = xno ; then
101    AC_MSG_ERROR([m4 missing])
102 fi
103
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])
106
107 dnl Linker flags.
108 dnl Check whether the linker supports the -version-script option.
109
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"
113
114 CC_CHECK_LDFLAGS([${tmp_ldflag}],
115     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
116 AC_SUBST([VERSIONING_LDFLAGS])
117
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])
123
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.
127 dnl
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])
132
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
137
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]))
141
142 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
143
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])
155
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         ],)
165
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
181
182 # If everything else fails use libatomic_ops
183 need_libatomic_ops=yes
184
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   ])
192
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
247 fi
248
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
279
280 CC_CHECK_TLS
281
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   ])
289
290 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
291     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
292   ])
293
294 #### libtool stuff ####
295 LT_PREREQ(2.2)
296 LT_INIT([dlopen win32-dll disable-static])
297
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.
302 dnl
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.
306 dnl
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.
310 dnl
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.
314
315 AC_CHECK_HEADER([ltdl.h],
316     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
317     [LIBLTDL=])
318
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])
322
323 #### Determine build environment ####
324
325 os_is_win32=0
326 os_is_darwin=0
327
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
338
339 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
340 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
341
342 ###################################
343 #   Basic environment checks      #
344 ###################################
345
346 #### Checks for header files. ####
347
348 # ISO
349 AC_HEADER_STDC
350
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])
367
368 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
369 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
370
371 # Linux
372 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
373
374 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
375
376 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
377
378 # Solaris
379 AC_CHECK_HEADERS_ONCE([sys/filio.h])
380
381 # Windows
382 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
383
384 # NetBSD
385 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
386
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])
393
394 #### Typdefs, structures, etc. ####
395
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
403
404 AC_TYPE_UID_T
405 AC_CHECK_DECLS(environ)
406
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")
412
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>])])])
417
418 #### POSIX threads ####
419
420 ACX_PTHREAD
421
422 #### Check for libs ####
423
424 # ISO
425 AC_SEARCH_LIBS([pow], [m])
426
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])
434
435 # BSD
436 AC_SEARCH_LIBS([connect], [socket])
437 AC_SEARCH_LIBS([backtrace], [execinfo])
438
439 # Non-standard
440
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])])
444
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]) ])
452
453     AC_MSG_RESULT([ok])
454     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
455     HAVE_BONJOUR=1
456 fi
457
458 AC_SUBST(HAVE_BONJOUR)
459 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
460
461 #### Check for functions ####
462
463 # ISO
464 AC_CHECK_FUNCS_ONCE([lrintf strtof])
465
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])
475
476 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
477
478 # X/OPEN
479 AC_CHECK_FUNCS_ONCE([readlink])
480
481 # SUSv2
482 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
483
484 # SUSv3
485 AC_CHECK_FUNCS_ONCE([strerror_r])
486
487 # BSD
488 AC_CHECK_FUNCS_ONCE([lstat])
489
490 # Non-standard
491
492 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
493
494 AC_FUNC_ALLOCA
495
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   ])
513
514 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
515     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
516   ])
517
518 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
519
520 #### Large File-Support (LFS) ####
521
522 AC_SYS_LARGEFILE
523
524 # Check for open64 to know if the current system does have open64() and similar functions
525 AC_CHECK_FUNCS_ONCE([open64])
526
527 #### [lib]iconv ####
528
529 AM_ICONV
530
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
536
537 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
538 AC_SUBST(pulselocaledir)
539
540 ###################################
541 #      External libraries         #
542 ###################################
543
544 #### pkg-config ####
545
546 PKG_PROG_PKG_CONFIG
547
548 #### X11 (optional) ####
549
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])
560
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
572 fi
573
574 if test "x${HAVE_X11}" = x1 ; then
575    AC_DEFINE([HAVE_X11], 1, [Have X11?])
576 fi
577
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])
582
583 #### Capabilities (optional) ####
584
585 CAP_LIBS=''
586
587 AC_ARG_WITH(
588         [caps],
589         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
590
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])
600 fi
601
602 #### Valgrind (optional) ####
603
604 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
605
606 #### Sound file ####
607
608 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
609 AC_SUBST(LIBSNDFILE_CFLAGS)
610 AC_SUBST(LIBSNDFILE_LIBS)
611
612 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
613 AC_SUBST(LIBSPEEX_CFLAGS)
614 AC_SUBST(LIBSPEEX_LIBS)
615
616 #### atomic-ops ###
617
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    ])
624
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])
631 fi
632
633 #### Libsamplerate support (optional) ####
634
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])
645
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
657 fi
658
659 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
660    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
661 fi
662
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])
667
668 #### Database support ####
669
670 HAVE_TDB=0
671 HAVE_GDBM=0
672 HAVE_SIMPLEDB=0
673
674 AC_ARG_WITH(
675         [database],
676         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
677
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         ])
688 fi
689
690 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
691    have_gdbm=yes
692
693    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
694    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
695
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
704 fi
705
706 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
707     HAVE_SIMPLEDB=1
708     with_database=simple
709 fi
710
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])
713 fi
714
715 if test "x${HAVE_TDB}" = x1 ; then
716    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
717 fi
718
719 if test "x${HAVE_GDBM}" = x1 ; then
720    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
721 fi
722
723 if test "x${HAVE_SIMPLEDB}" = x1 ; then
724     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
725 fi
726
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])
731
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])
736
737 AC_SUBST(HAVE_SIMPLEDB)
738 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
739
740 #### OSS support (optional) ####
741
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])
752
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])
763
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
783 fi
784
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"])
788
789 #### CoreAudio support (optional) ####
790
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])
801
802 if test "x${coreaudio_enabled}" != xno ; then
803     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
804 else
805     HAVE_COREAUDIO=0
806 fi
807
808 AC_SUBST(HAVE_COREAUDIO)
809 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
810
811 #### ALSA support (optional) ####
812
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])
823
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
838 fi
839
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])
844
845 #### Solaris audio support (optional) ####
846
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])
857
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
872 fi
873
874 AC_SUBST(HAVE_SOLARIS)
875 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
876
877 #### GLib 2 support (optional) ####
878
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])
889
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
901 fi
902
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])
907
908 if test "x$HAVE_GLIB20" = x1 ; then
909    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
910 fi
911
912 #### GTK2 support (optional) ####
913
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])
924
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
936 fi
937
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])
942
943 if test "x$HAVE_GTK20" = x1 ; then
944    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
945 fi
946
947 #### GConf support (optional) ####
948
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])
959
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
971 fi
972
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])
977
978 #### Avahi support (optional) ####
979
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])
990
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
1002 fi
1003
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])
1008
1009 ### JACK (optional) ####
1010
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])
1021
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
1033 fi
1034
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])
1039
1040 #### Async DNS support (optional) ####
1041
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])
1052
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
1064 fi
1065
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])
1070
1071 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1072    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1073 fi
1074
1075 #### TCP wrappers (optional) ####
1076
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])
1087
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=
1095 fi
1096
1097 AC_SUBST(LIBWRAP_LIBS)
1098
1099 #### LIRC support (optional) ####
1100
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])
1111
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
1119 fi
1120
1121 AC_SUBST(LIRC_CFLAGS)
1122 AC_SUBST(LIRC_LIBS)
1123 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1124
1125 #### HAL support (optional) ####
1126
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
1151 fi
1152
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])
1157
1158 #### UDEV support (optional) ####
1159
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
1184 fi
1185
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])
1190
1191 #### HAL compat support (optional) ####
1192
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
1208 fi
1209
1210 AC_SUBST(HAVE_HAL_COMPAT)
1211 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1212
1213 #### BlueZ support (optional) ####
1214
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
1236 fi
1237
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])
1242
1243 #### D-Bus support (optional) ####
1244
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])
1255
1256 if test "x$HAVE_HAL" = x1 ; then
1257    dbus=yes
1258 fi
1259
1260 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1261
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
1280 fi
1281
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])
1286
1287 ### IPv6 connection support (optional) ###
1288
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])
1299
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
1305 fi
1306
1307 #### OpenSSL support (optional) ####
1308
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])
1319
1320 if test "x${openssl}" != xno ; then
1321
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
1335 fi
1336
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])
1341
1342 #### FFTW (optional) ####
1343 AC_ARG_WITH(
1344         [fftw],
1345         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1346
1347 if test "x${with_fftw}" != "xno"; then
1348     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1349 fi
1350 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1351
1352 ### ORC (optional) ###
1353 ORC_CHECK([0.4.9])
1354
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])
1363
1364 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1365
1366 #### PulseAudio system group & user  #####
1367
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
1373 fi
1374 AC_SUBST(PA_SYSTEM_USER)
1375 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1376
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
1382 fi
1383 AC_SUBST(PA_SYSTEM_GROUP)
1384 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1385
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
1391 fi
1392 AC_SUBST(PA_ACCESS_GROUP)
1393 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1394
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])
1406
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])
1409 fi
1410
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)
1418
1419 ###################################
1420 #            Output               #
1421 ###################################
1422
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])
1427 fi
1428
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"])
1434
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)
1447 fi
1448
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"])
1453
1454 AC_SUBST(modlibexecdir)
1455
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"])
1460
1461 AC_SUBST(udevrulesdir)
1462
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"])
1468
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/gconf/Makefile
1489 src/modules/jack/Makefile
1490 src/modules/oss/Makefile
1491 src/modules/raop/Makefile
1492 src/modules/rtp/Makefile
1493 src/modules/x11/Makefile
1494 src/pulse/Makefile
1495 src/pulsecore/Makefile
1496 src/pulsecore/ffmpeg/Makefile
1497 src/tests/Makefile
1498 src/utils/Makefile
1499 ])
1500
1501 AC_OUTPUT
1502
1503 # ==========================================================================
1504 ENABLE_X11=no
1505 if test "x$HAVE_X11" = "x1" ; then
1506    ENABLE_X11=yes
1507 fi
1508
1509 ENABLE_OSS_OUTPUT=no
1510 ENABLE_OSS_WRAPPER=no
1511 if test "x$HAVE_OSS" = "x1" ; then
1512    if test "x$enable_oss_output" != "xno"; then
1513       ENABLE_OSS_OUTPUT=yes
1514    fi
1515    if test "x$enable_oss_wrapper" != "xno"; then
1516       ENABLE_OSS_WRAPPER=yes
1517    fi
1518 fi
1519
1520 ENABLE_COREAUDIO=no
1521 if test "x$HAVE_COREAUDIO" = "x1" ; then
1522    ENABLE_COREAUDIO=yes
1523 fi
1524
1525 ENABLE_ALSA=no
1526 if test "x$HAVE_ALSA" = "x1" ; then
1527    ENABLE_ALSA=yes
1528 fi
1529
1530 ENABLE_SOLARIS=no
1531 if test "x$HAVE_SOLARIS" = "x1" ; then
1532    ENABLE_SOLARIS=yes
1533 fi
1534
1535 ENABLE_GTK20=no
1536 if test "x$HAVE_GTK20" = "x1" ; then
1537    ENABLE_GTK20=yes
1538 fi
1539
1540 ENABLE_GLIB20=no
1541 if test "x$HAVE_GLIB20" = "x1" ; then
1542    ENABLE_GLIB20=yes
1543 fi
1544
1545 ENABLE_GCONF=no
1546 if test "x$HAVE_GCONF" = "x1" ; then
1547    ENABLE_GCONF=yes
1548 fi
1549
1550 ENABLE_AVAHI=no
1551 if test "x$HAVE_AVAHI" = "x1" ; then
1552    ENABLE_AVAHI=yes
1553 fi
1554
1555 ENABLE_JACK=no
1556 if test "x$HAVE_JACK" = "x1" ; then
1557    ENABLE_JACK=yes
1558 fi
1559
1560 ENABLE_LIBASYNCNS=no
1561 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1562    ENABLE_LIBASYNCNS=yes
1563 fi
1564
1565 ENABLE_LIRC=no
1566 if test "x$HAVE_LIRC" = "x1" ; then
1567    ENABLE_LIRC=yes
1568 fi
1569
1570 ENABLE_DBUS=no
1571 if test "x$HAVE_DBUS" = "x1" ; then
1572    ENABLE_DBUS=yes
1573 fi
1574
1575 ENABLE_HAL=no
1576 if test "x$HAVE_HAL" = "x1" ; then
1577    ENABLE_HAL=yes
1578 fi
1579
1580 ENABLE_UDEV=no
1581 if test "x$HAVE_UDEV" = "x1" ; then
1582    ENABLE_UDEV=yes
1583 fi
1584
1585 ENABLE_HAL_COMPAT=no
1586 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1587    ENABLE_HAL_COMPAT=yes
1588 fi
1589
1590 ENABLE_TCPWRAP=no
1591 if test "x${LIBWRAP_LIBS}" != x ; then
1592    ENABLE_TCPWRAP=yes
1593 fi
1594
1595 ENABLE_LIBSAMPLERATE=no
1596 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1597    ENABLE_LIBSAMPLERATE=yes
1598 fi
1599
1600 ENABLE_BLUEZ=no
1601 if test "x${HAVE_BLUEZ}" = "x1" ; then
1602    ENABLE_BLUEZ=yes
1603 fi
1604
1605 ENABLE_GDBM=no
1606 if test "x${HAVE_GDBM}" = "x1" ; then
1607    ENABLE_GDBM=yes
1608 fi
1609
1610 ENABLE_TDB=no
1611 if test "x${HAVE_TDB}" = "x1" ; then
1612    ENABLE_TDB=yes
1613 fi
1614
1615 ENABLE_SIMPLEDB=no
1616 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1617     ENABLE_SIMPLEDB=yes
1618 fi
1619
1620 ENABLE_FFTW=no
1621 if test "x${HAVE_FFTW}" = "x1" ; then
1622    ENABLE_FFTW=yes
1623 fi
1624
1625 ENABLE_ORC=no
1626 if test "x${HAVE_ORC}" = "xyes" ; then
1627    ENABLE_ORC=yes
1628 fi
1629
1630 ENABLE_OPENSSL=no
1631 if test "x${HAVE_OPENSSL}" = "x1" ; then
1632    ENABLE_OPENSSL=yes
1633 fi
1634
1635 ENABLE_IPV6=no
1636 if test "x${HAVE_IPV6}" = "x1" ; then
1637    ENABLE_IPV6=yes
1638 fi
1639
1640 ENABLE_PER_USER_ESOUND_SOCKET=no
1641 if test "x$per_user_esound_socket" = "x1" ; then
1642    ENABLE_PER_USER_ESOUND_SOCKET=yes
1643 fi
1644
1645 echo "
1646  ---{ $PACKAGE_NAME $VERSION }---
1647
1648     prefix:                        ${prefix}
1649     sysconfdir:                    ${sysconfdir}
1650     localstatedir:                 ${localstatedir}
1651     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1652     System State Path:             ${PA_SYSTEM_STATE_PATH}
1653     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1654     Compiler:                      ${CC}
1655     CFLAGS:                        ${CFLAGS}
1656
1657     Have X11:                      ${ENABLE_X11}
1658     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1659     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1660     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1661     Enable Alsa:                   ${ENABLE_ALSA}
1662     Enable Solaris:                ${ENABLE_SOLARIS}
1663     Enable GLib 2.0:               ${ENABLE_GLIB20}
1664     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1665     Enable GConf:                  ${ENABLE_GCONF}
1666     Enable Avahi:                  ${ENABLE_AVAHI}
1667     Enable Jack:                   ${ENABLE_JACK}
1668     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1669     Enable LIRC:                   ${ENABLE_LIRC}
1670     Enable DBUS:                   ${ENABLE_DBUS}
1671     Enable HAL:                    ${ENABLE_HAL}
1672     Enable udev:                   ${ENABLE_UDEV}
1673     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1674     Enable BlueZ:                  ${ENABLE_BLUEZ}
1675     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1676     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1677     Enable IPv6:                   ${ENABLE_IPV6}
1678     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1679     Enable tdb:                    ${ENABLE_TDB}
1680     Enable gdbm:                   ${ENABLE_GDBM}
1681     Enable simple database:        ${ENABLE_SIMPLEDB}
1682     Enable fftw:                   ${ENABLE_FFTW}
1683     Enable orc:                    ${ENABLE_ORC}
1684
1685     System User:                   ${PA_SYSTEM_USER}
1686     System Group:                  ${PA_SYSTEM_GROUP}
1687     Access Group:                  ${PA_ACCESS_GROUP}
1688     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1689     Force preopen:                 ${FORCE_PREOPEN}
1690     Preopened modules:             ${PREOPEN_MODS}
1691 "