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