Merge remote branch 'phish3/master'
[platform/upstream/pulseaudio.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 m4_define(pa_micro, `echo $VERSION | cut -d. -f3 | cut -d- -f1`)
34
35 AC_SUBST(PA_MAJOR, pa_major)
36 AC_SUBST(PA_MINOR, pa_minor)
37 AC_SUBST(PA_MICRO, pa_micro)
38 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
39 AC_SUBST(PA_MAJORMINORMICRO, pa_major.pa_minor.pa_micro)
40 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
41
42 AC_SUBST(PA_API_VERSION, 12)
43 AC_SUBST(PA_PROTOCOL_VERSION, 17)
44
45 # The stable ABI for client applications, for the version info x:y:z
46 # always will hold y=z
47 AC_SUBST(LIBPULSE_VERSION_INFO, [12:0:12])
48
49 # A simplified, synchronous, ABI-stable interface for client
50 # applications, for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
52
53 # The ABI-stable network browsing interface for client applications,
54 # for the version info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
56
57 # The ABI-stable GLib adapter for client applications, for the version
58 # info x:y:z always will hold y=z
59 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
60
61 AC_CANONICAL_HOST
62 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
63
64 AC_CHECK_PROG([STOW], [stow], [yes], [no])
65
66 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
67    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
68    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
69 ])
70
71 AM_SILENT_RULES([yes])
72
73 #### Checks for programs. ####
74
75 # mkdir -p
76
77 AC_PROG_MKDIR_P
78
79 # CC
80
81 AC_PROG_CC
82 AC_PROG_CC_C99
83 AM_PROG_CC_C_O
84 AC_PROG_GCC_TRADITIONAL
85 AC_USE_SYSTEM_EXTENSIONS
86
87 #### Platform hacks ####
88
89 case $host in
90    *-*-solaris* )
91       AC_DEFINE(_XOPEN_SOURCE,        600, Needed to get declarations for msg_control and msg_controllen on Solaris)
92       AC_DEFINE(__EXTENSIONS__,         1, Needed to get declarations for msg_control and msg_controllen on Solaris)
93       ;;
94    *-*-darwin* )
95       AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
96       AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
97       ;;
98 esac
99
100 # M4
101
102 AC_CHECK_PROGS([M4], gm4 m4, no)
103 if test "x$M4" = xno ; then
104    AC_MSG_ERROR([m4 missing])
105 fi
106
107 dnl Compiler flags
108 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])
109
110 dnl Linker flags.
111 dnl Check whether the linker supports the -version-script option.
112
113 dnl This variable is used to make sure ${srcdir} is expanded and not
114 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
115 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
116
117 CC_CHECK_LDFLAGS([${tmp_ldflag}],
118     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
119 AC_SUBST([VERSIONING_LDFLAGS])
120
121 dnl Use immediate (now) bindings; avoids the funky re-call in itself
122 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
123 dnl  other linkes might be added later
124 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
125 AC_SUBST([IMMEDIATE_LDFLAGS])
126
127 dnl On ELF systems we don't want the libraries to be unloaded since we
128 dnl don't clean them up properly, so we request the nodelete flag to be
129 dnl enabled.
130 dnl
131 dnl On other systems, we don't really know how to do that, but it's
132 dnl welcome if somebody can tell.
133 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
134 AC_SUBST([NODELETE_LDFLAGS])
135
136 dnl Check for the proper way to build libraries that have no undefined
137 dnl symbols; on some hosts this needs to be avoided but the macro
138 dnl takes care of it.
139 CC_NOUNDEFINED
140
141 dnl Check whether to build tests by default (as compile-test) or not
142 AC_ARG_ENABLE([default-build-tests],
143     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
144
145 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
146
147 # Native atomic operation support
148 AC_ARG_ENABLE([atomic-arm-linux-helpers],
149     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
150         [
151             case "${enableval}" in
152                 yes) atomic_arm_linux_helpers=yes ;;
153                 no) atomic_arm_linux_helpers=no ;;
154                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
155             esac
156         ],
157         [atomic_arm_linux_helpers=auto])
158
159 AC_ARG_ENABLE([atomic-arm-memory-barrier],
160     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
161         [
162             case "${enableval}" in
163                 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
164                 no) ;;
165                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
166             esac
167         ],)
168
169 AC_MSG_CHECKING([target operating system])
170 case $host in
171         *-*-linux*)
172             AC_MSG_RESULT([linux])
173             pulse_target_os=linux
174         ;;
175         *)
176             AC_MSG_RESULT([unknown])
177             pulse_target_os=unknown
178         ;;
179 esac
180
181 # If everything else fails use libatomic_ops
182 need_libatomic_ops=yes
183
184 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
185   pulseaudio_cv_sync_bool_compare_and_swap,
186   [AC_LINK_IFELSE(
187      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
188      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
189      [pulseaudio_cv_sync_bool_compare_and_swap=no])
190   ])
191
192 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
193     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
194     need_libatomic_ops=no
195 else
196     # HW specific atomic ops stuff
197     AC_MSG_CHECKING([architecture for native atomic operations])
198     case $host in
199         arm*)
200             AC_MSG_RESULT([arm])
201             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
202             # The Linux kernel helper functions have been there since 2.6.16. However
203             # compile time checking for kernel version in cross compile environment
204             # (which is usually the case for arm cpu) is tricky (or impossible).
205             if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
206                 AC_MSG_RESULT([yes])
207                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
208                 need_libatomic_ops=no
209             else
210                AC_MSG_RESULT([no])
211                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
212                  pulseaudio_cv_support_arm_atomic_ops,
213                  [AC_COMPILE_IFELSE(
214                     AC_LANG_PROGRAM([],
215                       [[volatile int a=0;
216                         int o=0, n=1, r;
217                         asm volatile ("ldrex    %0, [%1]\n"
218                                          "subs  %0, %0, %2\n"
219                                          "strexeq %0, %3, [%1]\n"
220                                          : "=&r" (r)
221                                          : "r" (&a), "Ir" (o), "r" (n)
222                                          : "cc");
223                         return (a==1 ? 0 : -1);
224                       ]]),
225                     [pulseaudio_cv_support_arm_atomic_ops=yes],
226                     [pulseaudio_cv_support_arm_atomic_ops=no])
227                  ])
228                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
229                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARMv6 instructions.])
230                    need_libatomic_ops=no
231                  ])
232            fi
233         ;;
234         *-netbsdelf5*)
235             AC_MSG_RESULT([yes])
236             need_libatomic_ops=no
237         ;;
238         *-freebsd*)
239             AC_MSG_RESULT([yes])
240             need_libatomic_ops=no
241         ;;
242         *)
243             AC_MSG_RESULT([unknown])
244         ;;
245     esac
246 fi
247
248 CC_CHECK_TLS
249
250 AC_CACHE_CHECK([whether $CC knows _Bool],
251   pulseaudio_cv__Bool,
252   [AC_COMPILE_IFELSE(
253      AC_LANG_PROGRAM([], [[_Bool b;]]),
254      [pulseaudio_cv__Bool=yes],
255      [pulseaudio_cv__Bool=no])
256   ])
257
258 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
259     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
260   ])
261
262 #### libtool stuff ####
263 LT_PREREQ(2.2)
264 LT_INIT([dlopen win32-dll disable-static])
265
266 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
267 dnl exactly which version of libltdl is present in the system, so we
268 dnl just assume that it's a working version as long as we have the
269 dnl library and the header files.
270 dnl
271 dnl As an extra safety device, check for lt_dladvise_init() which is
272 dnl only implemented in libtool 2.x, and refine as we go if we have
273 dnl refined requirements.
274 dnl
275 dnl Check the header files first since the system may have a
276 dnl libltdl.so for runtime, but no headers, and we want to bail out as
277 dnl soon as possible.
278 dnl
279 dnl We don't need any special variable for this though, since the user
280 dnl can give the proper place to find libltdl through the standard
281 dnl variables like LDFLAGS and CPPFLAGS.
282
283 AC_CHECK_HEADER([ltdl.h],
284     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
285     [LIBLTDL=])
286
287 AS_IF([test "x$LIBLTDL" = "x"],
288     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
289 AC_SUBST([LIBLTDL])
290
291 #### Determine build environment ####
292
293 os_is_win32=0
294
295 case "$host_os" in
296         mingw*)
297         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
298         os_is_win32=1
299                 ;;
300         esac
301
302 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
303
304 ###################################
305 #   Basic environment checks      #
306 ###################################
307
308 #### Checks for header files. ####
309
310 # ISO
311 AC_HEADER_STDC
312
313 # POSIX
314 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
315     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
316     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
317     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
318 AC_CHECK_HEADERS([netinet/ip.h], [], [],
319                  [#include <sys/types.h>
320                   #if HAVE_NETINET_IN_H
321                   # include <netinet/in.h>
322                   #endif
323                   #if HAVE_NETINET_IN_SYSTM_H
324                   # include <netinet/in_systm.h>
325                   #endif
326                  ])
327 AC_CHECK_HEADERS([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
328 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
329
330 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
331 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
332
333 # Linux
334 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
335
336 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
337
338 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
339
340 # Solaris
341 AC_CHECK_HEADERS_ONCE([sys/filio.h])
342
343 # Windows
344 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
345
346 # NetBSD
347 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
348
349 # Other
350 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
351 AC_CHECK_HEADERS_ONCE([byteswap.h])
352 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
353 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
354 AC_CHECK_HEADERS_ONCE([execinfo.h])
355
356 #### Typdefs, structures, etc. ####
357
358 AC_C_CONST
359 AC_C_BIGENDIAN
360 AC_TYPE_PID_T
361 AC_TYPE_SIZE_T
362 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
363     [Define ssize_t if it is not done by the standard libs.])])
364 AC_TYPE_OFF_T
365
366 AC_TYPE_UID_T
367 AC_CHECK_DECLS(environ)
368
369 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
370 HAVE_SIGXCPU=1
371 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
372 ], [HAVE_SIGXCPU=0])
373 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
374
375 # Solaris lacks this
376 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
377     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
378         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
379
380 #### POSIX threads ####
381
382 ACX_PTHREAD
383
384 #### Check for libs ####
385
386 # ISO
387 AC_SEARCH_LIBS([pow], [m])
388
389 # POSIX
390 AC_SEARCH_LIBS([sched_setscheduler], [rt])
391 AC_SEARCH_LIBS([dlopen], [dl])
392 AC_SEARCH_LIBS([shm_open], [rt])
393 AC_SEARCH_LIBS([inet_ntop], [nsl])
394 AC_SEARCH_LIBS([timer_create], [rt])
395
396 # BSD
397 AC_SEARCH_LIBS([connect], [socket])
398 AC_SEARCH_LIBS([backtrace], [execinfo])
399
400 # Non-standard
401
402 # This magic is needed so we do not needlessly add static libs to the win32
403 # build, disabling its ability to make dlls.
404 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
405
406 #### Check for functions ####
407
408 # ISO
409 AC_CHECK_FUNCS_ONCE([lrintf strtof])
410
411 # POSIX
412 AC_FUNC_FORK
413 AC_FUNC_GETGROUPS
414 AC_FUNC_SELECT_ARGTYPES
415 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
416     getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
417     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
418     sigaction sleep sysconf pthread_setaffinity_np])
419 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
420
421 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
422
423 # X/OPEN
424 AC_CHECK_FUNCS_ONCE([readlink])
425
426 # SUSv2
427 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
428
429 # SUSv3
430 AC_CHECK_FUNCS_ONCE([strerror_r])
431
432 # BSD
433 AC_CHECK_FUNCS_ONCE([lstat])
434
435 # Non-standard
436
437 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
438
439 AC_FUNC_ALLOCA
440
441 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
442   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
443   [save_CC=$CC; CC=$PTHREAD_CC
444    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
445    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
446    AC_LINK_IFELSE(
447      AC_LANG_PROGRAM(
448        [[
449          #include <pthread.h>
450        ]],
451        [[int i = PTHREAD_PRIO_INHERIT;]]),
452      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
453      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
454    CC=$save_CC
455    CFLAGS=$save_CFLAGS
456    LIBS=$save_LIBS
457   ])
458
459 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
460     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
461   ])
462
463 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
464
465 #### Large File-Support (LFS) ####
466
467 AC_SYS_LARGEFILE
468
469 # Check for open64 to know if the current system does have open64() and similar functions
470 AC_CHECK_FUNCS_ONCE([open64])
471
472 #### [lib]iconv ####
473
474 AM_ICONV
475
476 IT_PROG_INTLTOOL([0.35.0])
477 GETTEXT_PACKAGE=pulseaudio
478 AC_SUBST([GETTEXT_PACKAGE])
479 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
480 AM_GLIB_GNU_GETTEXT
481
482 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
483 AC_SUBST(pulselocaledir)
484
485 ###################################
486 #      External libraries         #
487 ###################################
488
489 #### pkg-config ####
490
491 PKG_PROG_PKG_CONFIG
492
493 #### X11 (optional) ####
494
495 AC_ARG_ENABLE([x11],
496     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
497         [
498             case "${enableval}" in
499                 yes) x11=yes ;;
500                 no) x11=no ;;
501                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
502             esac
503         ],
504         [x11=auto])
505
506 if test "x${x11}" != xno ; then
507     PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
508         HAVE_X11=1,
509         [
510             HAVE_X11=0
511             if test "x$x11" = xyes ; then
512                 AC_MSG_ERROR([*** X11 not found])
513             fi
514         ])
515 else
516     HAVE_X11=0
517 fi
518
519 if test "x${HAVE_X11}" = x1 ; then
520    AC_DEFINE([HAVE_X11], 1, [Have X11?])
521 fi
522
523 AC_SUBST(X11_CFLAGS)
524 AC_SUBST(X11_LIBS)
525 AC_SUBST(HAVE_X11)
526 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
527
528 #### Capabilities (optional) ####
529
530 CAP_LIBS=''
531
532 AC_ARG_WITH(
533         [caps],
534         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
535
536 if test "x${with_caps}" != "xno"; then
537     AC_SEARCH_LIBS([cap_init], [cap], [], [
538                     if test "x${with_caps}" = "xyes" ; then
539                         AC_MSG_ERROR([*** POSIX caps libraries not found])
540                     fi])
541     AC_CHECK_HEADERS([sys/capability.h], [], [
542                     if test "x${with_caps}" = "xyes" ; then
543                         AC_MSG_ERROR([*** POSIX caps headers not found])
544                     fi])
545 fi
546
547 #### Valgrind (optional) ####
548
549 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
550
551 #### Sound file ####
552
553 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
554 AC_SUBST(LIBSNDFILE_CFLAGS)
555 AC_SUBST(LIBSNDFILE_LIBS)
556
557 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
558 AC_SUBST(LIBSPEEX_CFLAGS)
559 AC_SUBST(LIBSPEEX_LIBS)
560
561 #### atomic-ops ###
562
563 AC_MSG_CHECKING([whether we need libatomic_ops])
564 if test "x$need_libatomic_ops" = "xyes"; then
565    AC_MSG_RESULT([yes])
566    AC_CHECK_HEADERS([atomic_ops.h], [], [
567    AC_MSG_ERROR([*** libatomic-ops headers not found])
568    ])
569
570    # Win32 does not need the lib and breaks horribly if we try to include it
571    if test "x$os_is_win32" != "x1" ; then
572        LIBS="$LIBS -latomic_ops"
573    fi
574 else
575    AC_MSG_RESULT([no])
576 fi
577
578 #### Libsamplerate support (optional) ####
579
580 AC_ARG_ENABLE([samplerate],
581     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
582         [
583             case "${enableval}" in
584                 yes) samplerate=yes ;;
585                 no) samplerate=no ;;
586                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
587             esac
588         ],
589         [samplerate=auto])
590
591 if test "x${samplerate}" != xno ; then
592     PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
593         HAVE_LIBSAMPLERATE=1,
594         [
595             HAVE_LIBSAMPLERATE=0
596             if test "x$samplerate" = xyes ; then
597                 AC_MSG_ERROR([*** Libsamplerate not found])
598             fi
599         ])
600 else
601     HAVE_LIBSAMPLERATE=0
602 fi
603
604 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
605    AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
606 fi
607
608 AC_SUBST(LIBSAMPLERATE_CFLAGS)
609 AC_SUBST(LIBSAMPLERATE_LIBS)
610 AC_SUBST(HAVE_LIBSAMPLERATE)
611 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
612
613 #### Database support ####
614
615 HAVE_TDB=0
616 HAVE_GDBM=0
617 HAVE_SIMPLEDB=0
618
619 AC_ARG_WITH(
620         [database],
621         AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
622
623 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
624     PKG_CHECK_MODULES(TDB, [ tdb ],
625         [
626             HAVE_TDB=1
627             with_database=tdb
628         ], [
629             if test "x${with_database}" = "xtdb" ; then
630                 AC_MSG_ERROR([*** tdb not found])
631             fi
632         ])
633 fi
634
635 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
636    have_gdbm=yes
637
638    AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
639    AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
640
641    if test "x${have_gdbm}" = "xyes" ; then
642        HAVE_GDBM=1
643        GDBM_CFLAGS=
644        GDBM_LIBS=-lgdbm
645        with_database=gdbm
646    elif test "x${with_database}" = "xgdbm"; then
647        AC_MSG_ERROR([*** gdbm not found])
648    fi
649 fi
650
651 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
652     HAVE_SIMPLEDB=1
653     with_database=simple
654 fi
655
656 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
657    AC_MSG_ERROR([*** missing database backend])
658 fi
659
660 if test "x${HAVE_TDB}" = x1 ; then
661    AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
662 fi
663
664 if test "x${HAVE_GDBM}" = x1 ; then
665    AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
666 fi
667
668 if test "x${HAVE_SIMPLEDB}" = x1 ; then
669     AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
670 fi
671
672 AC_SUBST(TDB_CFLAGS)
673 AC_SUBST(TDB_LIBS)
674 AC_SUBST(HAVE_TDB)
675 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
676
677 AC_SUBST(GDBM_CFLAGS)
678 AC_SUBST(GDBM_LIBS)
679 AC_SUBST(HAVE_GDBM)
680 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
681
682 AC_SUBST(HAVE_SIMPLEDB)
683 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
684
685 #### OSS support (optional) ####
686
687 AC_ARG_ENABLE([oss-output],
688     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
689         [
690             case "${enableval}" in
691                 yes) oss_output=yes ;;
692                 no) oss_output=no ;;
693                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
694             esac
695         ],
696         [oss_output=auto])
697
698 AC_ARG_ENABLE([oss-wrapper],
699     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
700         [
701             case "${enableval}" in
702                 yes) oss_wrapper=yes ;;
703                 no) oss_wrapper=no ;;
704                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
705             esac
706         ],
707         [oss_wrapper=auto])
708
709 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
710     AC_CHECK_HEADERS([sys/soundcard.h],
711         [
712             if test "x${oss_output}" != "xno"; then
713                 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
714             fi
715             if test "x${oss_wrapper}" != "xno"; then
716                 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
717             fi
718             HAVE_OSS=1
719         ],
720         [
721             HAVE_OSS=0
722             if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
723                 AC_MSG_ERROR([*** OSS support not found])
724             fi
725         ])
726 else
727     HAVE_OSS=0
728 fi
729
730 AC_SUBST(HAVE_OSS)
731 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
732 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
733
734 #### CoreAudio support (optional) ####
735
736 AC_ARG_ENABLE([coreaudio-output],
737     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
738         [
739             case "${enableval}" in
740                 yes) coreaudio_enabled=yes ;;
741                 no) coreaudio_enabled=no ;;
742                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
743             esac
744         ],
745         [coreaudio_enabled=auto])
746
747 if test "x${coreaudio_enabled}" != xno ; then
748     AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
749 else
750     HAVE_COREAUDIO=0
751 fi
752
753 AC_SUBST(HAVE_COREAUDIO)
754 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
755
756 #### ALSA support (optional) ####
757
758 AC_ARG_ENABLE([alsa],
759     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
760         [
761             case "${enableval}" in
762                 yes) alsa=yes ;;
763                 no) alsa=no ;;
764                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
765             esac
766         ],
767         [alsa=auto])
768
769 if test "x${alsa}" != xno ; then
770     PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
771         [
772             HAVE_ALSA=1
773             AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
774         ],
775         [
776             HAVE_ALSA=0
777             if test "x$alsa" = xyes ; then
778                 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
779             fi
780         ])
781 else
782     HAVE_ALSA=0
783 fi
784
785 AC_SUBST(ASOUNDLIB_CFLAGS)
786 AC_SUBST(ASOUNDLIB_LIBS)
787 AC_SUBST(HAVE_ALSA)
788 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
789
790 #### Solaris audio support (optional) ####
791
792 AC_ARG_ENABLE([solaris],
793     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
794         [
795             case "${enableval}" in
796                 yes) solaris=yes ;;
797                 no) solaris=no ;;
798                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
799             esac
800         ],
801         [solaris=auto])
802
803 if test "x${solaris}" != xno ; then
804     AC_CHECK_HEADERS([sys/audio.h],
805         [
806             HAVE_SOLARIS=1
807             AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
808         ],
809         [
810             HAVE_SOLARIS=0
811             if test "x$solaris" = xyes ; then
812                 AC_MSG_ERROR([*** Solaris audio support not found])
813             fi
814         ])
815 else
816     HAVE_SOLARIS=0
817 fi
818
819 AC_SUBST(HAVE_SOLARIS)
820 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
821
822 #### GLib 2 support (optional) ####
823
824 AC_ARG_ENABLE([glib2],
825     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
826         [
827             case "${enableval}" in
828                 yes) glib2=yes ;;
829                 no) glib2=no ;;
830                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
831             esac
832         ],
833         [glib2=auto])
834
835 if test "x${glib2}" != xno ; then
836     PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
837         HAVE_GLIB20=1,
838         [
839             HAVE_GLIB20=0
840             if test "x$glib2" = xyes ; then
841                 AC_MSG_ERROR([*** GLib 2 support not found])
842             fi
843         ])
844 else
845     HAVE_GLIB20=0
846 fi
847
848 AC_SUBST(GLIB20_CFLAGS)
849 AC_SUBST(GLIB20_LIBS)
850 AC_SUBST(HAVE_GLIB20)
851 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
852
853 if test "x$HAVE_GLIB20" = x1 ; then
854    AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
855 fi
856
857 #### GTK2 support (optional) ####
858
859 AC_ARG_ENABLE([gtk2],
860     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
861         [
862             case "${enableval}" in
863                 yes) gtk2=yes ;;
864                 no) gtk2=no ;;
865                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
866             esac
867         ],
868         [gtk2=auto])
869
870 if test "x${gtk2}" != xno ; then
871     PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
872         HAVE_GTK20=1,
873         [
874             HAVE_GTK20=0
875             if test "x$gtk2" = xyes ; then
876                 AC_MSG_ERROR([*** Gtk+ 2 support not found])
877             fi
878         ])
879 else
880     HAVE_GTK20=0
881 fi
882
883 AC_SUBST(GTK20_CFLAGS)
884 AC_SUBST(GTK20_LIBS)
885 AC_SUBST(HAVE_GTK20)
886 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
887
888 if test "x$HAVE_GTK20" = x1 ; then
889    AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
890 fi
891
892 #### GConf support (optional) ####
893
894 AC_ARG_ENABLE([gconf],
895     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
896         [
897             case "${enableval}" in
898                 yes) gconf=yes ;;
899                 no) gconf=no ;;
900                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
901             esac
902         ],
903         [gconf=auto])
904
905 if test "x${gconf}" != xno ; then
906     PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
907         HAVE_GCONF=1,
908         [
909             HAVE_GCONF=0
910             if test "x$gconf" = xyes ; then
911                 AC_MSG_ERROR([*** GConf support not found])
912             fi
913         ])
914 else
915     HAVE_GCONF=0
916 fi
917
918 AC_SUBST(GCONF_CFLAGS)
919 AC_SUBST(GCONF_LIBS)
920 AC_SUBST(HAVE_GCONF)
921 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
922
923 #### Avahi support (optional) ####
924
925 AC_ARG_ENABLE([avahi],
926     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
927         [
928             case "${enableval}" in
929                 yes) avahi=yes ;;
930                 no) avahi=no ;;
931                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
932             esac
933         ],
934         [avahi=auto])
935
936 if test "x${avahi}" != xno ; then
937     PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
938         HAVE_AVAHI=1,
939         [
940                 HAVE_AVAHI=0
941                 if test "x$avahi" = xyes ; then
942                         AC_MSG_ERROR([*** Avahi support not found])
943                 fi
944         ])
945 else
946     HAVE_AVAHI=0
947 fi
948
949 AC_SUBST(AVAHI_CFLAGS)
950 AC_SUBST(AVAHI_LIBS)
951 AC_SUBST(HAVE_AVAHI)
952 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
953
954 ### JACK (optional) ####
955
956 AC_ARG_ENABLE([jack],
957     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
958         [
959             case "${enableval}" in
960                 yes) jack=yes ;;
961                 no) jack=no ;;
962                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
963             esac
964         ],
965         [jack=auto])
966
967 if test "x${jack}" != xno ; then
968     PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
969         HAVE_JACK=1,
970         [
971             HAVE_JACK=0
972             if test "x$jack" = xyes ; then
973                 AC_MSG_ERROR([*** JACK support not found])
974             fi
975         ])
976 else
977     HAVE_JACK=0
978 fi
979
980 AC_SUBST(JACK_CFLAGS)
981 AC_SUBST(JACK_LIBS)
982 AC_SUBST(HAVE_JACK)
983 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
984
985 #### Async DNS support (optional) ####
986
987 AC_ARG_ENABLE([asyncns],
988     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
989         [
990             case "${enableval}" in
991                 yes) asyncns=yes ;;
992                 no) asyncns=no ;;
993                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
994             esac
995         ],
996         [asyncns=auto])
997
998 if test "x${asyncns}" != xno ; then
999     PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1000         HAVE_LIBASYNCNS=1,
1001         [
1002             HAVE_LIBASYNCNS=0
1003             if test "x$asyncns" = xyes ; then
1004                 AC_MSG_ERROR([*** Async DNS support not found])
1005             fi
1006         ])
1007 else
1008     HAVE_LIBASYNCNS=0
1009 fi
1010
1011 AC_SUBST(LIBASYNCNS_CFLAGS)
1012 AC_SUBST(LIBASYNCNS_LIBS)
1013 AC_SUBST(HAVE_LIBASYNCNS)
1014 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1015
1016 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1017    AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1018 fi
1019
1020 #### TCP wrappers (optional) ####
1021
1022 AC_ARG_ENABLE([tcpwrap],
1023     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1024         [
1025             case "${enableval}" in
1026                 yes) tcpwrap=yes ;;
1027                 no) tcpwrap=no ;;
1028                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1029             esac
1030         ],
1031         [tcpwrap=auto])
1032
1033 if test "x${tcpwrap}" != xno ; then
1034     ACX_LIBWRAP
1035     if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1036         AC_MSG_ERROR([*** TCP wrappers support not found])
1037     fi
1038 else
1039     LIBWRAP_LIBS=
1040 fi
1041
1042 AC_SUBST(LIBWRAP_LIBS)
1043
1044 #### LIRC support (optional) ####
1045
1046 AC_ARG_ENABLE([lirc],
1047     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1048         [
1049             case "${enableval}" in
1050                 yes) lirc=yes ;;
1051                 no) lirc=no ;;
1052                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1053             esac
1054         ],
1055         [lirc=auto])
1056
1057 if test "x${lirc}" != xno ; then
1058     ACX_LIRC
1059     if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1060         AC_MSG_ERROR([*** LIRC support not found])
1061     fi
1062 else
1063     HAVE_LIRC=0
1064 fi
1065
1066 AC_SUBST(LIRC_CFLAGS)
1067 AC_SUBST(LIRC_LIBS)
1068 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1069
1070 #### HAL support (optional) ####
1071
1072 AC_ARG_ENABLE([hal],
1073     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1074         [
1075             case "${enableval}" in
1076                 yes) hal=yes ;;
1077                 no) hal=no ;;
1078                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1079             esac
1080         ],
1081         [hal=auto])
1082 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1083     PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1084         [
1085             HAVE_HAL=1
1086             AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1087         ],
1088         [
1089             HAVE_HAL=0
1090             if test "x$hal" = xyes ; then
1091                 AC_MSG_ERROR([*** HAL support not found])
1092             fi
1093         ])
1094 else
1095     HAVE_HAL=0
1096 fi
1097
1098 AC_SUBST(HAL_CFLAGS)
1099 AC_SUBST(HAL_LIBS)
1100 AC_SUBST(HAVE_HAL)
1101 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1102
1103 #### UDEV support (optional) ####
1104
1105 AC_ARG_ENABLE([udev],
1106     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1107         [
1108             case "${enableval}" in
1109                 yes) udev=yes ;;
1110                 no) udev=no ;;
1111                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1112             esac
1113         ],
1114         [udev=auto])
1115 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1116     PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1117         [
1118             HAVE_UDEV=1
1119             AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1120         ],
1121         [
1122             HAVE_UDEV=0
1123             if test "x$udev" = xyes ; then
1124                 AC_MSG_ERROR([*** UDEV support not found])
1125             fi
1126         ])
1127 else
1128     HAVE_UDEV=0
1129 fi
1130
1131 AC_SUBST(UDEV_CFLAGS)
1132 AC_SUBST(UDEV_LIBS)
1133 AC_SUBST(HAVE_UDEV)
1134 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1135
1136 #### HAL compat support (optional) ####
1137
1138 AC_ARG_ENABLE([hal-compat],
1139     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1140         [
1141             case "${enableval}" in
1142                 yes) halcompat=yes ;;
1143                 no) halcompat=no ;;
1144                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1145             esac
1146         ],
1147         [halcompat=auto])
1148 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1149     HAVE_HAL_COMPAT=1
1150     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1151 else
1152     HAVE_HAL_COMPAT=0
1153 fi
1154
1155 AC_SUBST(HAVE_HAL_COMPAT)
1156 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1157
1158 #### BlueZ support (optional) ####
1159
1160 AC_ARG_ENABLE([bluez],
1161     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1162         [
1163             case "${enableval}" in
1164                 yes) bluez=yes ;;
1165                 no) bluez=no ;;
1166                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1167             esac
1168         ],
1169         [bluez=auto])
1170 if test "x${bluez}" != xno ; then
1171     PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1172         HAVE_BLUEZ=1,
1173         [
1174             HAVE_BLUEZ=0
1175             if test "x$bluez" = xyes ; then
1176                 AC_MSG_ERROR([*** BLUEZ support not found])
1177             fi
1178         ])
1179 else
1180     HAVE_BLUEZ=0
1181 fi
1182
1183 AC_SUBST(BLUEZ_CFLAGS)
1184 AC_SUBST(BLUEZ_LIBS)
1185 AC_SUBST(HAVE_BLUEZ)
1186 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1187
1188 #### D-Bus support (optional) ####
1189
1190 AC_ARG_ENABLE([dbus],
1191     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1192         [
1193             case "${enableval}" in
1194                 yes) dbus=yes ;;
1195                 no) dbus=no ;;
1196                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1197             esac
1198         ],
1199         [dbus=auto])
1200
1201 if test "x$HAVE_HAL" = x1 ; then
1202    dbus=yes
1203 fi
1204
1205 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1206
1207     PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1208         [
1209             HAVE_DBUS=1
1210             saved_LIBS="$LIBS"
1211             LIBS="$LIBS $DBUS_LIBS"
1212             CFLAGS="$CFLAGS $DBUS_CFLAGS"
1213             AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1214             LIBS="$saved_LIBS"
1215             AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1216         ],
1217         [
1218             HAVE_DBUS=0
1219             if test "x$dbus" = xyes ; then
1220                 AC_MSG_ERROR([*** D-Bus support not found])
1221             fi
1222         ])
1223 else
1224     HAVE_DBUS=0
1225 fi
1226
1227 AC_SUBST(DBUS_CFLAGS)
1228 AC_SUBST(DBUS_LIBS)
1229 AC_SUBST(HAVE_DBUS)
1230 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1231
1232 ### IPv6 connection support (optional) ###
1233
1234 AC_ARG_ENABLE([ipv6],
1235     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1236         [
1237             case "${enableval}" in
1238                 yes) ipv6=yes ;;
1239                 no) ipv6=no ;;
1240                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1241             esac
1242         ],
1243         [ipv6=auto])
1244
1245 if test "x${ipv6}" != xno ; then
1246     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1247     HAVE_IPV6=1
1248 else
1249     HAVE_IPV6=0
1250 fi
1251
1252 #### OpenSSL support (optional) ####
1253
1254 AC_ARG_ENABLE([openssl],
1255     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1256         [
1257             case "${enableval}" in
1258                 yes) openssl=yes ;;
1259                 no) openssl=no ;;
1260                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1261             esac
1262         ],
1263         [openssl=auto])
1264
1265 if test "x${openssl}" != xno ; then
1266
1267     PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1268         [
1269             HAVE_OPENSSL=1
1270             AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1271         ],
1272         [
1273             HAVE_OPENSSL=0
1274             if test "x$openssl" = xyes ; then
1275                 AC_MSG_ERROR([*** OpenSSL support not found])
1276             fi
1277         ])
1278 else
1279     HAVE_OPENSSL=0
1280 fi
1281
1282 AC_SUBST(OPENSSL_CFLAGS)
1283 AC_SUBST(OPENSSL_LIBS)
1284 AC_SUBST(HAVE_OPENSSL)
1285 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1286
1287 #### FFTW (optional) ####
1288 AC_ARG_WITH(
1289         [fftw],
1290         AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1291
1292 if test "x${with_fftw}" != "xno"; then
1293     PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1294 fi
1295 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1296
1297 ### Build and Install man pages ###
1298 AC_ARG_ENABLE(manpages,
1299         AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1300 [case "${enableval}" in
1301   yes) manpages=yes ;;
1302   no)  manpages=no ;;
1303   *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1304 esac],[manpages=yes])
1305
1306 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1307
1308 #### PulseAudio system group & user  #####
1309
1310 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1311 if test -z "$with_system_user" ; then
1312     PA_SYSTEM_USER=pulse
1313 else
1314     PA_SYSTEM_USER=$with_system_user
1315 fi
1316 AC_SUBST(PA_SYSTEM_USER)
1317 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1318
1319 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1320 if test -z "$with_system_group" ; then
1321     PA_SYSTEM_GROUP=pulse
1322 else
1323     PA_SYSTEM_GROUP=$with_system_group
1324 fi
1325 AC_SUBST(PA_SYSTEM_GROUP)
1326 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1327
1328 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)]))
1329 if test -z "$with_access_group" ; then
1330     PA_ACCESS_GROUP=pulse-access
1331 else
1332     PA_ACCESS_GROUP=$with_access_group
1333 fi
1334 AC_SUBST(PA_ACCESS_GROUP)
1335 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1336
1337 AC_ARG_ENABLE(
1338         per_user_esound_socket,
1339         AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1340         [
1341             case "${enableval}" in
1342                 yes) per_user_esound_socket=1 ;;
1343                 no) per_user_esound_socket=0 ;;
1344                 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1345             esac
1346         ],
1347         [per_user_esound_socket=1])
1348
1349 if test "x$per_user_esound_socket" = "x1"; then
1350    AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1351 fi
1352
1353 #### PulseAudio system runtime dir ####
1354 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1355 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1356 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1357 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1358 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1359 AC_SUBST(PA_SYSTEM_STATE_PATH)
1360
1361 ###################################
1362 #            Output               #
1363 ###################################
1364
1365 AC_ARG_ENABLE([legacy-runtime-dir],
1366         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1367 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1368         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1369 fi
1370
1371 AC_ARG_ENABLE(
1372         [static-bins],
1373         AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1374         [STATIC_BINS=1], [STATIC_BINS=0])
1375 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1376
1377 AC_ARG_WITH(
1378         [preopen-mods],
1379         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1380         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1381 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1382 if test "x$PREOPEN_MODS" != "xall" ; then
1383     tmpLIBS=""
1384     for mod in $PREOPEN_MODS; do
1385         tmpLIBS="$tmpLIBS module-$mod.la"
1386     done
1387     PREOPEN_MODS="$tmpLIBS"
1388     AC_SUBST(PREOPEN_MODS)
1389 fi
1390
1391 AC_ARG_WITH(
1392         [module-dir],
1393         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1394         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1395
1396 AC_SUBST(modlibexecdir)
1397
1398 AC_ARG_ENABLE(
1399         [force-preopen],
1400         AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1401         [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1402 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1403
1404 AC_CONFIG_FILES([
1405 Makefile
1406 src/Makefile
1407 man/Makefile
1408 libpulse.pc
1409 libpulse-simple.pc
1410 libpulse-browse.pc
1411 libpulse-mainloop-glib.pc
1412 doxygen/Makefile
1413 doxygen/doxygen.conf
1414 src/pulse/version.h
1415 po/Makefile.in
1416 ])
1417
1418 AC_OUTPUT
1419
1420 # ==========================================================================
1421 ENABLE_X11=no
1422 if test "x$HAVE_X11" = "x1" ; then
1423    ENABLE_X11=yes
1424 fi
1425
1426 ENABLE_OSS_OUTPUT=no
1427 ENABLE_OSS_WRAPPER=no
1428 if test "x$HAVE_OSS" = "x1" ; then
1429    if test "x$enable_oss_output" != "xno"; then
1430       ENABLE_OSS_OUTPUT=yes
1431    fi
1432    if test "x$enable_oss_wrapper" != "xno"; then
1433       ENABLE_OSS_WRAPPER=yes
1434    fi
1435 fi
1436
1437 ENABLE_COREAUDIO=no
1438 if test "x$HAVE_COREAUDIO" = "x1" ; then
1439    ENABLE_COREAUDIO=yes
1440 fi
1441
1442 ENABLE_ALSA=no
1443 if test "x$HAVE_ALSA" = "x1" ; then
1444    ENABLE_ALSA=yes
1445 fi
1446
1447 ENABLE_SOLARIS=no
1448 if test "x$HAVE_SOLARIS" = "x1" ; then
1449    ENABLE_SOLARIS=yes
1450 fi
1451
1452 ENABLE_GTK20=no
1453 if test "x$HAVE_GTK20" = "x1" ; then
1454    ENABLE_GTK20=yes
1455 fi
1456
1457 ENABLE_GLIB20=no
1458 if test "x$HAVE_GLIB20" = "x1" ; then
1459    ENABLE_GLIB20=yes
1460 fi
1461
1462 ENABLE_GCONF=no
1463 if test "x$HAVE_GCONF" = "x1" ; then
1464    ENABLE_GCONF=yes
1465 fi
1466
1467 ENABLE_AVAHI=no
1468 if test "x$HAVE_AVAHI" = "x1" ; then
1469    ENABLE_AVAHI=yes
1470 fi
1471
1472 ENABLE_JACK=no
1473 if test "x$HAVE_JACK" = "x1" ; then
1474    ENABLE_JACK=yes
1475 fi
1476
1477 ENABLE_LIBASYNCNS=no
1478 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1479    ENABLE_LIBASYNCNS=yes
1480 fi
1481
1482 ENABLE_LIRC=no
1483 if test "x$HAVE_LIRC" = "x1" ; then
1484    ENABLE_LIRC=yes
1485 fi
1486
1487 ENABLE_HAL=no
1488 if test "x$HAVE_HAL" = "x1" ; then
1489    ENABLE_HAL=yes
1490 fi
1491
1492 ENABLE_UDEV=no
1493 if test "x$HAVE_UDEV" = "x1" ; then
1494    ENABLE_UDEV=yes
1495 fi
1496
1497 ENABLE_HAL_COMPAT=no
1498 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1499    ENABLE_HAL_COMPAT=yes
1500 fi
1501
1502 ENABLE_TCPWRAP=no
1503 if test "x${LIBWRAP_LIBS}" != x ; then
1504    ENABLE_TCPWRAP=yes
1505 fi
1506
1507 ENABLE_LIBSAMPLERATE=no
1508 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1509    ENABLE_LIBSAMPLERATE=yes
1510 fi
1511
1512 ENABLE_BLUEZ=no
1513 if test "x${HAVE_BLUEZ}" = "x1" ; then
1514    ENABLE_BLUEZ=yes
1515 fi
1516
1517 ENABLE_GDBM=no
1518 if test "x${HAVE_GDBM}" = "x1" ; then
1519    ENABLE_GDBM=yes
1520 fi
1521
1522 ENABLE_TDB=no
1523 if test "x${HAVE_TDB}" = "x1" ; then
1524    ENABLE_TDB=yes
1525 fi
1526
1527 ENABLE_SIMPLEDB=no
1528 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1529     ENABLE_SIMPLEDB=yes
1530 fi
1531
1532 ENABLE_FFTW=no
1533 if test "x${HAVE_FFTW}" = "x1" ; then
1534    ENABLE_FFTW=yes
1535 fi
1536
1537 ENABLE_OPENSSL=no
1538 if test "x${HAVE_OPENSSL}" = "x1" ; then
1539    ENABLE_OPENSSL=yes
1540 fi
1541
1542 ENABLE_IPV6=no
1543 if test "x${HAVE_IPV6}" = "x1" ; then
1544    ENABLE_IPV6=yes
1545 fi
1546
1547 ENABLE_PER_USER_ESOUND_SOCKET=no
1548 if test "x$per_user_esound_socket" = "x1" ; then
1549    ENABLE_PER_USER_ESOUND_SOCKET=yes
1550 fi
1551
1552 echo "
1553  ---{ $PACKAGE_NAME $VERSION }---
1554
1555     prefix:                        ${prefix}
1556     sysconfdir:                    ${sysconfdir}
1557     localstatedir:                 ${localstatedir}
1558     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1559     System State Path:             ${PA_SYSTEM_STATE_PATH}
1560     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1561     Compiler:                      ${CC}
1562     CFLAGS:                        ${CFLAGS}
1563
1564     Have X11:                      ${ENABLE_X11}
1565     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1566     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1567     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1568     Enable Alsa:                   ${ENABLE_ALSA}
1569     Enable Solaris:                ${ENABLE_SOLARIS}
1570     Enable GLib 2.0:               ${ENABLE_GLIB20}
1571     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1572     Enable GConf:                  ${ENABLE_GCONF}
1573     Enable Avahi:                  ${ENABLE_AVAHI}
1574     Enable Jack:                   ${ENABLE_JACK}
1575     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1576     Enable LIRC:                   ${ENABLE_LIRC}
1577     Enable HAL:                    ${ENABLE_HAL}
1578     Enable udev:                   ${ENABLE_UDEV}
1579     Enable HAL->udev compat:       ${ENABLE_HAL_COMPAT}
1580     Enable BlueZ:                  ${ENABLE_BLUEZ}
1581     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1582     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1583     Enable IPv6:                   ${ENABLE_IPV6}
1584     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1585     Enable tdb:                    ${ENABLE_TDB}
1586     Enable gdbm:                   ${ENABLE_GDBM}
1587     Enable simple database:        ${ENABLE_SIMPLEDB}
1588     Enable fftw:                   ${ENABLE_FFTW}
1589
1590     System User:                   ${PA_SYSTEM_USER}
1591     System Group:                  ${PA_SYSTEM_GROUP}
1592     Access Group:                  ${PA_ACCESS_GROUP}
1593     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1594     Force preopen:                 ${FORCE_PREOPEN}
1595     Preopened modules:             ${PREOPEN_MODS}
1596 "