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