configure: Fix spelling of "backend"
[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)],[pulseaudio-discuss (at) lists (dot) freedesktop (dot) org],[pulseaudio],[http://pulseaudio.org/])
26 AC_CONFIG_SRCDIR([src/daemon/main.c])
27 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
29 AC_CONFIG_AUX_DIR([build-aux])
30 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability subdir-objects silent-rules color-tests dist-xz tar-ustar])
31
32 AS_IF([! test -n "$VERSION"], [
33    AC_MSG_ERROR([git-version-gen failed])
34 ])
35
36 m4_define(pa_major, `echo $VERSION | cut -d. -f1 | cut -d- -f1`)
37 m4_define(pa_minor, `echo $VERSION | cut -d. -f2 | cut -d- -f1`)
38
39 AC_SUBST(PA_MAJOR, pa_major)
40 AC_SUBST(PA_MINOR, pa_minor)
41 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
42
43 AC_SUBST(PA_API_VERSION, 12)
44 AC_SUBST(PA_PROTOCOL_VERSION, 30)
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, [17:3:17])
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, [1:0:1])
53
54 # The ABI-stable GLib adapter for client applications, for the version
55 # info x:y:z always will hold y=z
56 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:5:0])
57
58 AC_CANONICAL_HOST
59 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
60
61 AC_CHECK_PROG([STOW], [stow], [yes], [no])
62
63 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
64     AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
65     ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
66 ])
67
68 AM_SILENT_RULES([yes])
69
70
71 #### Checks for programs. ####
72
73 # mkdir -p
74
75 AC_PROG_MKDIR_P
76
77 # CC
78
79 AC_PROG_CC
80 AC_PROG_CC_C99
81 AM_PROG_CC_C_O
82 # Only required if you want the WebRTC canceller -- no runtime dep on
83 # libstdc++ otherwise
84 AC_PROG_CXX
85 AC_PROG_GCC_TRADITIONAL
86 AC_USE_SYSTEM_EXTENSIONS
87
88 # M4
89
90 AC_CHECK_PROGS([M4], gm4 m4, no)
91 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
92
93 # pkg-config
94
95 PKG_PROG_PKG_CONFIG
96
97 # gettext
98
99 if test "x$enable_nls" != "xno"; then
100 IT_PROG_INTLTOOL([0.35.0])
101
102 AM_GNU_GETTEXT_VERSION([0.18.1])
103 AM_GNU_GETTEXT([external])
104
105 GETTEXT_PACKAGE=pulseaudio
106 AC_SUBST([GETTEXT_PACKAGE])
107 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
108
109 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
110 AX_DEFINE_DIR(PULSE_LOCALEDIR, pulselocaledir, [Gettext locale dir])
111 else
112 # workaround till an intltool m4 bug is fixed upstream
113 # (https://bugs.launchpad.net/intltool/+bug/904647)
114 USE_NLS=no
115 AC_SUBST(USE_NLS)
116 fi
117
118
119 #### Determine host OS ####
120
121 # if the host has the possibility of sys/capability.h for dropping privileges
122 # used to determine if we should error out if it is not found
123 host_has_caps=0
124
125 os_is_linux=0
126 os_is_win32=0
127 os_is_darwin=0
128
129 AC_MSG_CHECKING([host operating system])
130 case "$host_os" in
131     linux*)
132         AC_MSG_RESULT([linux])
133         host_has_caps=1
134         os_is_linux=1
135     ;;
136     freebsd*)
137         AC_MSG_RESULT([freebsd])
138         host_has_caps=1
139     ;;
140     darwin*)
141         AC_MSG_RESULT([darwin])
142         os_is_darwin=1
143         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
144     ;;
145     mingw*)
146         AC_MSG_RESULT([win32])
147         os_is_win32=1
148         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
149     ;;
150     *)
151         AC_MSG_RESULT([unknown])
152     ;;
153 esac
154
155 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
156 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
157 AC_SUBST([OS_IS_WIN32], [$os_is_win32])
158
159 # Platform specific hacks
160 case "$host_os" in
161     darwin* )
162         AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
163     ;;
164     mingw* )
165         AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
166     ;;
167     solaris* )
168         AC_DEFINE(_XOPEN_SOURCE,       600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
169         AC_DEFINE(__EXTENSIONS__,        1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
170     ;;
171 esac
172
173
174 #### Compiler flags ####
175
176 AX_APPEND_COMPILE_FLAGS(
177     [-Wall -W -Wextra -pipe -Wno-long-long -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto],
178     [], [-pedantic -Werror])
179
180 AS_CASE([" $CFLAGS "], [*" -O0 "*], [], [
181     # Don't append the flag if it already exists.
182     # Only enable fastpath asserts when doing a debug build, e.g. from bootstrap.sh.
183     AX_APPEND_FLAG([-DFASTPATH], [CPPFLAGS])
184
185     # Cannot use AX_APPEND_FLAG here, as it assumes no space inside the added flags.
186     # Cannot append flags with AX_APPEND_FLAG one by one, as this would destroy all fortifications
187     # if CPPFLAGS already contain -D_FORTIFY_SOURCE=2.
188
189     # Warnings to be aware of that appear with -D_FORTIFY_SOURCE=2 but without -U_FORTIFY_SOURCE:
190     # On Fedora 20 with -O0: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Wcpp]
191     # On Gentoo with -O2:    "_FORTIFY_SOURCE" redefined [enabled by default]
192     AS_VAR_APPEND([CPPFLAGS],[" -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2"])
193 ])
194
195 #### Linker flags ####
196
197 # Check whether the linker supports the -version-script option.
198 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
199 # so that it is expanded the right way in every subdir.
200 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
201     [VERSIONING_LDFLAGS='-Wl,-version-script=$(abs_top_srcdir)/src/map-file'])
202 AC_SUBST([VERSIONING_LDFLAGS])
203
204 # Use immediate (now) bindings; avoids the funky re-call in itself.
205 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
206 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
207 AC_SUBST([IMMEDIATE_LDFLAGS])
208
209 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
210 # so we request the nodelete flag to be enabled.
211 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
212 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS])
213 AC_SUBST([NODELETE_LDFLAGS])
214
215 # Check for the proper way to build libraries that have no undefined symbols
216 case $host in
217     # FreeBSD (et al.) does not complete linking for shared objects when pthreads
218     # are requested, as different implementations are present.
219     *-freebsd* | *-openbsd*) ;;
220     *)
221         for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
222             AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
223         done
224     ;;
225 esac
226 AC_SUBST([NOUNDEFINED_LDFLAGS])
227
228
229 #### Atomic operations ####
230
231 # Native atomic operation support
232 AC_ARG_ENABLE([atomic-arm-linux-helpers],
233     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
234
235 AC_ARG_ENABLE([atomic-arm-memory-barrier],
236     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
237
238 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
239     AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
240 fi
241
242 # If everything else fails use libatomic_ops
243 need_libatomic_ops=yes
244
245 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
246     pulseaudio_cv_sync_bool_compare_and_swap, [
247     AC_LINK_IFELSE(
248         [AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]])],
249         [pulseaudio_cv_sync_bool_compare_and_swap=yes],
250         [pulseaudio_cv_sync_bool_compare_and_swap=no])
251     ])
252
253 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
254     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
255     need_libatomic_ops=no
256 else
257     # HW specific atomic ops stuff
258     AC_MSG_CHECKING([architecture for native atomic operations])
259     case $host in
260         arm*)
261             AC_MSG_RESULT([arm])
262             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
263             # The Linux kernel helper functions have been there since 2.6.16. However
264             # compile time checking for kernel version in cross compile environment
265             # (which is usually the case for arm cpu) is tricky (or impossible).
266             if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
267                 AC_MSG_RESULT([yes])
268                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
269                 need_libatomic_ops=no
270             else
271                 AC_MSG_RESULT([no])
272                 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
273                     pulseaudio_cv_support_arm_atomic_ops, [
274                     AC_COMPILE_IFELSE(
275                         [AC_LANG_PROGRAM([], [[
276                             volatile int a=0;
277                             int o=0, n=1, r;
278                             asm volatile ("ldrex    %0, [%1]\n"
279                                           "subs  %0, %0, %2\n"
280                                           "strexeq %0, %3, [%1]\n"
281                                           : "=&r" (r)
282                                           : "r" (&a), "Ir" (o), "r" (n)
283                                           : "cc");
284                             return (a==1 ? 0 : -1);
285                         ]])],
286                         [pulseaudio_cv_support_arm_atomic_ops=yes],
287                         [pulseaudio_cv_support_arm_atomic_ops=no])
288                 ])
289                 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
290                     AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
291                     need_libatomic_ops=no
292                 ])
293             fi
294         ;;
295         *-netbsdelf5*)
296             AC_MSG_RESULT([yes])
297             need_libatomic_ops=no
298         ;;
299         *-freebsd*)
300             AC_MSG_RESULT([yes])
301             need_libatomic_ops=no
302         ;;
303         *)
304             AC_MSG_RESULT([unknown])
305         ;;
306     esac
307 fi
308
309 # If we're on ARM, check for the ARMV6 instructions we need */
310 case $host in
311   arm*)
312     AC_CACHE_CHECK([support for required armv6 instructions],
313       pulseaudio_cv_support_armv6,
314       [AC_COMPILE_IFELSE(
315          [AC_LANG_PROGRAM([],
316            [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
317              asm volatile ("ldr r0, %2 \n"
318                            "ldr r2, %3 \n"
319                            "ldr r3, %4 \n"
320                            "ssat r1, #8, r0 \n"
321                            "str r1, %0 \n"
322                            "pkhbt r1, r3, r2, LSL #8 \n"
323                            "str r1, %1 \n"
324                            : "=m" (a), "=m" (b)
325                            : "m" (a), "m" (b), "m" (c)
326                            : "r0", "r1", "r2", "r3", "cc");
327              return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
328            ]])],
329          [pulseaudio_cv_support_armv6=yes],
330          [pulseaudio_cv_support_armv6=no])
331       ])
332     AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
333         AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
334       ])
335   ;;
336   *)
337   ;;
338 esac
339
340 #### NEON optimisations ####
341 AC_ARG_ENABLE([neon-opt],
342     AS_HELP_STRING([--enable-neon-opt], [Enable NEON optimisations on ARM CPUs that support it]))
343
344 AS_IF([test "x$enable_neon_opt" != "xno"],
345     [save_CFLAGS="$CFLAGS"; CFLAGS="-mfpu=neon $CFLAGS"
346      AC_COMPILE_IFELSE(
347         [AC_LANG_PROGRAM([[#include <arm_neon.h>]], [])],
348         [
349          HAVE_NEON=1
350          NEON_CFLAGS="-mfpu=neon"
351         ],
352         [
353          HAVE_NEON=0
354          NEON_CFLAGS=
355         ])
356      CFLAGS="$save_CFLAGS"
357     ],
358     [HAVE_NEON=0])
359
360 AS_IF([test "x$enable_neon_opt" = "xyes" && test "x$HAVE_NEON" = "x0"],
361       [AC_MSG_ERROR([*** Compiler does not support -mfpu=neon or CFLAGS override -mfpu])])
362
363 AC_SUBST(HAVE_NEON)
364 AC_SUBST(NEON_CFLAGS)
365 AM_CONDITIONAL([HAVE_NEON], [test "x$HAVE_NEON" = x1])
366 AS_IF([test "x$HAVE_NEON" = "x1"], AC_DEFINE([HAVE_NEON], 1, [Have NEON support?]))
367
368
369 #### libtool stuff ####
370
371 LT_PREREQ(2.4)
372 LT_INIT([dlopen win32-dll disable-static])
373
374 dnl As an extra safety device, check for lt_dladvise_init() which is
375 dnl only implemented in libtool 2.x, and refine as we go if we have
376 dnl refined requirements.
377 dnl
378 dnl Check the header files first since the system may have a
379 dnl libltdl.so for runtime, but no headers, and we want to bail out as
380 dnl soon as possible.
381 dnl
382 dnl We don't need any special variable for this though, since the user
383 dnl can give the proper place to find libltdl through the standard
384 dnl variables like LDFLAGS and CPPFLAGS.
385
386 AC_CHECK_HEADER([ltdl.h],
387     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
388     [LIBLTDL=])
389
390 AS_IF([test "x$LIBLTDL" = "x"],
391     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.4 or later installed.])])
392 AC_SUBST([LIBLTDL])
393
394
395 ###################################
396 #   Basic environment checks      #
397 ###################################
398
399 #### Checks for header files. ####
400
401 # ISO
402 AC_HEADER_STDC
403
404 # POSIX
405 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
406     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
407     sys/mman.h sys/select.h sys/socket.h sys/wait.h \
408     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
409 AC_CHECK_HEADERS([netinet/ip.h], [], [],
410                  [#include <sys/types.h>
411                   #if HAVE_NETINET_IN_H
412                   # include <netinet/in.h>
413                   #endif
414                   #if HAVE_NETINET_IN_SYSTM_H
415                   # include <netinet/in_systm.h>
416                   #endif
417                  ])
418 AC_CHECK_HEADERS([sys/resource.h], [HAVE_SYS_RESOURCE_H=1], [HAVE_SYS_RESOURCE_H=0])
419 AC_SUBST(HAVE_SYS_RESOURCE_H)
420 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
421 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
422 AC_SUBST(HAVE_AF_UNIX)
423
424 # Linux
425 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
426 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
427
428 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
429
430 # Solaris
431 AC_CHECK_HEADERS_ONCE([sys/filio.h])
432
433 # Windows
434 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
435
436 # NetBSD
437 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
438
439 # Other
440 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
441 AC_CHECK_HEADERS_ONCE([byteswap.h])
442 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
443 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
444 AC_CHECK_HEADERS_ONCE([execinfo.h])
445 AC_CHECK_HEADERS_ONCE([langinfo.h])
446 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
447
448
449 #### Typdefs, structures, etc. ####
450
451 AC_C_CONST
452 AC_C_BIGENDIAN
453 AC_TYPE_PID_T
454 AC_TYPE_SIZE_T
455 AC_CHECK_TYPES(ssize_t, , AC_DEFINE([ssize_t], [signed long], [Define ssize_t if it is not done by the standard libs.]))
456 AC_TYPE_OFF_T
457
458 AC_TYPE_UID_T
459 AC_CHECK_DECLS(environ)
460
461 # SIGXCPU
462 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
463 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
464 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
465
466 # INADDR_NONE, Solaris lacks this
467 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
468     [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
469         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
470
471
472 # _Bool
473 AC_CACHE_CHECK([whether $CC knows _Bool],
474     pulseaudio_cv__Bool,
475     [AC_COMPILE_IFELSE(
476         [AC_LANG_PROGRAM([], [[_Bool b;]])],
477         [pulseaudio_cv__Bool=yes],
478         [pulseaudio_cv__Bool=no])
479     ])
480
481 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
482
483
484 #### Thread support ####
485
486 AX_TLS
487 AS_IF([test "$ac_cv_tls" == "__thread"],
488     AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
489
490 # Win32 build breaks with win32 pthread installed
491 AS_IF([test "x$os_is_win32" != "x1"],
492   [AX_PTHREAD])
493
494 AS_IF([test "x$ax_pthread_ok" == "xyes"],
495     AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
496
497
498 #### Check for libs ####
499
500 # ISO
501 AC_SEARCH_LIBS([pow], [m])
502
503 # POSIX
504 AC_SEARCH_LIBS([sched_setscheduler], [rt])
505 AC_SEARCH_LIBS([dlopen], [dl])
506 AC_SEARCH_LIBS([shm_open], [rt])
507 AC_SEARCH_LIBS([inet_ntop], [nsl])
508 AC_SEARCH_LIBS([timer_create], [rt])
509 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
510 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
511 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
512
513 # BSD
514 AC_SEARCH_LIBS([connect], [socket])
515 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
516
517 # Darwin/OS X
518 if test "x$os_is_darwin" = "x1" ; then
519     AC_MSG_CHECKING([looking for Apple CoreService Framework])
520     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
521     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
522         [LIBS="$LIBS -framework CoreServices"],
523         [AC_CHECK_HEADERS([/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h],
524             [LIBS="$LIBS -framework CoreServices"],
525             [AC_MSG_ERROR([CoreServices.h header file not found])]
526         )]
527     )
528
529     AC_MSG_RESULT([ok])
530     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
531     HAVE_BONJOUR=1
532 fi
533
534 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
535
536 # Windows
537 AC_SEARCH_LIBS([regexec], [pcreposix])
538 # This magic is needed so we do not needlessly add static libs to the win32  build, disabling its ability to make dlls.
539 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
540
541
542 #### Check for functions ####
543
544 # ISO
545 AC_CHECK_FUNCS_ONCE([lrintf strtof])
546
547 # POSIX
548 AC_FUNC_FORK
549 AC_FUNC_GETGROUPS
550 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
551     getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
552     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
553     sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
554 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
555 AC_SUBST(HAVE_MKFIFO)
556 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
557
558 # X/OPEN
559 AC_CHECK_FUNCS_ONCE([readlink])
560
561 # SUSv2
562 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
563
564 # SUSv3
565 AC_CHECK_FUNCS_ONCE([strerror_r])
566
567 # BSD
568 AC_CHECK_FUNCS_ONCE([lstat])
569
570 # Non-standard
571 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
572
573 AC_FUNC_ALLOCA
574
575 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
576 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
577
578 # Large File-Support (LFS)
579 AC_SYS_LARGEFILE
580 # Check for open64 to know if the current system does have open64() and similar functions
581 AC_CHECK_FUNCS_ONCE([open64])
582
583
584 ###################################
585 #      External libraries         #
586 ###################################
587
588 #### [lib]iconv ####
589
590 AM_ICONV
591
592 #### X11 (optional) ####
593
594 AC_ARG_ENABLE([x11],
595     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
596
597 AS_IF([test "x$enable_x11" != "xno"],
598     [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
599     HAVE_X11=0)
600
601 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
602     [AC_MSG_ERROR([*** X11 not found])])
603
604 AC_SUBST(HAVE_X11)
605 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
606 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
607
608 #### Capabilities (optional) ####
609
610 CAP_LIBS=''
611
612 AC_ARG_WITH([caps],
613     AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
614
615 if test "x${with_caps}" != "xno"; then
616     AC_SEARCH_LIBS([cap_init], [cap], [], [])
617
618     # Only give an error on hosts that we know could support capabilities
619     AC_CHECK_HEADERS([sys/capability.h], [], [
620       if test "${host_has_caps}" = "1"; then
621         AC_MSG_ERROR([*** sys/capability.h not found.  Use --without-caps to disable capabilities support.])
622       fi])
623 fi
624
625 #### Valgrind (optional) ####
626
627 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
628
629 #### check unit tests ####
630
631 AC_ARG_ENABLE([tests],
632     AS_HELP_STRING([--disable-tests],[Disable unit tests]))
633
634 AS_IF([test "x$enable_tests" != "xno"],
635     [PKG_CHECK_MODULES(LIBCHECK, [ check ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
636     HAVE_LIBCHECK=0)
637
638 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
639     [AC_MSG_ERROR([*** check library not found])])
640
641 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
642
643 #### json parsing ####
644
645 PKG_CHECK_MODULES(LIBJSON, [ json-c >= 0.11 ])
646
647 #### Sound file ####
648
649 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
650
651 #### atomic-ops ####
652
653 AC_MSG_CHECKING([whether we need libatomic_ops])
654 if test "x$need_libatomic_ops" = "xyes"; then
655     AC_MSG_RESULT([yes])
656     AC_CHECK_HEADERS([atomic_ops.h],
657         [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
658         [AC_MSG_ERROR([*** libatomic-ops headers not found])])
659
660     # Win32 does not need the lib and breaks horribly if we try to include it
661     AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
662 else
663     AC_MSG_RESULT([no])
664 fi
665
666 #### Libsamplerate support (optional) ####
667
668 AC_ARG_ENABLE([samplerate],
669     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
670
671 AS_IF([test "x$enable_samplerate" != "xno"],
672     [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
673     HAVE_LIBSAMPLERATE=0)
674
675 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
676     [AC_MSG_ERROR([*** Libsamplerate not found])])
677
678 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
679 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
680
681 #### Database support ####
682
683 AC_ARG_WITH([database],
684     AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
685
686
687 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
688     [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
689     HAVE_TDB=0)
690 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
691
692 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
693     [AC_MSG_ERROR([*** tdb not found])])
694
695
696 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
697     [
698         HAVE_GDBM=1
699         AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
700         AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
701     ],
702     HAVE_GDBM=0)
703 AS_IF([test "x$HAVE_GDBM" = "x1"],
704     [
705         with_database=gdbm
706         GDBM_CFLAGS=
707         GDBM_LIBS=-lgdbm
708     ])
709
710 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
711     [AC_MSG_ERROR([*** gdbm not found])])
712
713
714 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
715     HAVE_SIMPLEDB=1,
716     HAVE_SIMPLEDB=0)
717 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
718
719 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
720     AC_MSG_ERROR([*** missing database backend]))
721
722
723 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
724 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
725
726 AC_SUBST(GDBM_CFLAGS)
727 AC_SUBST(GDBM_LIBS)
728 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
729 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
730
731 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
732 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
733
734 #### OSS support (optional) ####
735
736 AC_ARG_ENABLE([oss-output],
737     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
738
739 AC_ARG_ENABLE([oss-wrapper],
740     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
741
742 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
743     [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
744     HAVE_OSS=0)
745
746 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
747     [AC_MSG_ERROR([*** OSS support not found])])
748
749 AS_IF([test "x$enable_oss_output" != "xno"],
750     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
751     HAVE_OSS_OUTPUT=0)
752
753 AS_IF([test "x$enable_oss_wrapper" != "xno"],
754     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
755     HAVE_OSS_WRAPPER=0)
756
757 AC_SUBST(HAVE_OSS_OUTPUT)
758 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
759 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
760 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
761 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
762
763 #### CoreAudio support (optional) ####
764
765 AC_ARG_ENABLE([coreaudio-output],
766     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
767
768 AS_IF([test "x$enable_coreaudio_output" != "xno"],
769     [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
770     HAVE_COREAUDIO=0)
771
772 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
773     [AC_MSG_ERROR([*** CoreAudio output support not found])])
774
775 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
776
777 #### ALSA support (optional) ####
778
779 AC_ARG_ENABLE([alsa],
780     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
781
782 AS_IF([test "x$enable_alsa" != "xno"],
783     [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
784     HAVE_ALSA=0)
785
786 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
787     [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
788
789 AS_IF([test "x$HAVE_ALSA" = "x1"],
790     [
791         save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
792         AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
793         CPPFLAGS="$save_CPPFLAGS"
794     ],
795     HAVE_ALSA_UCM=0)
796
797 AC_SUBST(HAVE_ALSA)
798 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
799 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
800 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
801
802 #### EsounD support (optional) ####
803
804 AC_ARG_ENABLE([esound],
805     AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
806 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
807 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
808
809 #### Solaris audio support (optional) ####
810
811 AC_ARG_ENABLE([solaris],
812     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
813
814 AS_IF([test "x$enable_solaris" != "xno"],
815     [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
816     HAVE_SOLARIS=0)
817
818 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
819     [AC_MSG_ERROR([*** Solaris audio support not found])])
820
821 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
822 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
823
824 #### WaveOut audio support (optional) ####
825
826 AC_ARG_ENABLE([waveout],
827     AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
828
829 AS_IF([test "x$enable_waveout" != "xno"],
830     [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
831     HAVE_WAVEOUT=0)
832
833 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
834     [AC_MSG_ERROR([*** WaveOut audio support not found])])
835
836 AC_SUBST(HAVE_WAVEOUT)
837 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
838 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
839
840 #### GLib 2 support (optional) ####
841
842 AC_ARG_ENABLE([glib2],
843     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
844
845 AS_IF([test "x$enable_glib2" != "xno"],
846     [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
847     HAVE_GLIB20=0)
848
849 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
850     [AC_MSG_ERROR([*** GLib 2 support not found])])
851
852 AC_SUBST(HAVE_GLIB20)
853 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
854 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
855
856 #### GTK3 support (optional) ####
857
858 AC_ARG_ENABLE([gtk3],
859     AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
860
861 AS_IF([test "x$enable_gtk3" != "xno"],
862     [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
863     HAVE_GTK30=0)
864
865 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
866     [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
867
868 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
869 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
870
871 #### GConf support (optional) ####
872
873 AC_ARG_ENABLE([gconf],
874     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
875
876 AS_IF([test "x$enable_gconf" != "xno"],
877     [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
878     HAVE_GCONF=0)
879
880 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
881     [AC_MSG_ERROR([*** GConf support not found])])
882
883 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
884
885 #### Avahi support (optional) ####
886
887 AC_ARG_ENABLE([avahi],
888     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
889
890 AS_IF([test "x$enable_avahi" != "xno"],
891     [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
892     HAVE_AVAHI=0)
893
894 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
895     [AC_MSG_ERROR([*** Avahi support not found])])
896
897 AC_SUBST(HAVE_AVAHI)
898 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
899
900 #### JACK (optional) ####
901
902 AC_ARG_ENABLE([jack],
903     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
904
905 AS_IF([test "x$enable_jack" != "xno"],
906     [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
907     HAVE_JACK=0)
908
909 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
910     [AC_MSG_ERROR([*** JACK support not found])])
911
912 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
913
914 #### Async DNS support (optional) ####
915
916 AC_ARG_ENABLE([asyncns],
917     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
918
919 AS_IF([test "x$enable_asyncns" != "xno"],
920     [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
921     HAVE_LIBASYNCNS=0)
922
923 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
924     [AC_MSG_ERROR([*** Async DNS support not found])])
925
926 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
927 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
928
929 #### TCP wrappers (optional) ####
930
931 AC_ARG_ENABLE([tcpwrap],
932     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
933
934 AS_IF([test "x$enable_tcpwrap" != "xno"],
935     [
936         ACX_LIBWRAP
937         AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
938     ],
939     HAVE_TCPWRAP=0)
940
941 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
942     [AC_MSG_ERROR([*** TCP wrappers support not found])])
943
944 AC_SUBST(LIBWRAP_LIBS)
945
946 #### LIRC support (optional) ####
947
948 AC_ARG_ENABLE([lirc],
949     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
950
951 LIRC_CFLAGS=
952 LIRC_LIBS=
953
954 AS_IF([test "x$enable_lirc" != "xno"],
955     [
956         HAVE_LIRC=1
957         AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
958         AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
959     ],
960     HAVE_LIRC=0)
961
962 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
963     [AC_MSG_ERROR([*** LIRC support not found])])
964
965 AC_SUBST(LIRC_CFLAGS)
966 AC_SUBST(LIRC_LIBS)
967 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
968
969 #### D-Bus support (optional) ####
970
971 AC_ARG_ENABLE([dbus],
972     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
973
974 AS_IF([test "x$enable_dbus" != "xno"],
975     [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
976     HAVE_DBUS=0)
977
978 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
979     [AC_MSG_ERROR([*** D-Bus not available or too old version])])
980
981 AS_IF([test "x$HAVE_DBUS" = "x1"],
982     [
983         save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
984         save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
985         AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
986         CFLAGS="$save_CFLAGS"
987         LIBS="$save_LIBS"
988     ])
989
990 AC_SUBST(HAVE_DBUS)
991 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
992 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
993
994 PA_MACHINE_ID="${sysconfdir}/machine-id"
995 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
996 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
997 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
998               [Fallback machine-id file])
999
1000 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1001
1002 AC_ARG_ENABLE([bluez4],
1003     AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
1004 AC_ARG_ENABLE([bluez5],
1005     AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1006
1007 ## SBC ##
1008 AS_IF([test "x$enable_bluez4" != "xno" || test "x$enable_bluez5" != "xno"],
1009     [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1010     HAVE_SBC=0)
1011
1012 ## BlueZ 4 ##
1013 AS_IF([test "x$enable_bluez4" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_4=1)
1014 AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" != "x1"],
1015     [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires sbc and D-Bus)])])
1016 AC_SUBST(HAVE_BLUEZ_4)
1017 AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
1018
1019 ## BlueZ 5 ##
1020 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1)
1021 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1022     [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1023 AC_SUBST(HAVE_BLUEZ_5)
1024 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1025
1026 AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1)
1027 AC_SUBST(HAVE_BLUEZ)
1028 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1029
1030 ## Bluetooth Headset profiles backend ##
1031
1032 AC_ARG_WITH(bluetooth_headset_backend,
1033     AS_HELP_STRING([--with-bluetooth-headset-backend=<ofono|null>],[Backend for Bluetooth headset profiles (ofono)]))
1034 if test -z "$with_bluetooth_headset_backend" ; then
1035     BLUETOOTH_HEADSET_BACKEND=ofono
1036 else
1037     BLUETOOTH_HEADSET_BACKEND=$with_bluetooth_headset_backend
1038 fi
1039
1040 AS_IF([test "x$BLUETOOTH_HEADSET_BACKEND" != "xofono" && test "x$BLUETOOTH_HEADSET_BACKEND" != "xnull"],
1041     [AC_MSG_ERROR([*** Invalid Bluetooth Headset backend])])
1042
1043 AC_SUBST(BLUETOOTH_HEADSET_BACKEND)
1044
1045 #### UDEV support (optional) ####
1046
1047 AC_ARG_ENABLE([udev],
1048     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1049
1050 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1051     [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1052     HAVE_UDEV=0)
1053
1054 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1055     [AC_MSG_ERROR([*** UDEV support not found])])
1056
1057 AC_SUBST(HAVE_UDEV)
1058 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1059 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1060
1061 #### HAL compat support (optional, dependent on UDEV) ####
1062
1063 AC_ARG_ENABLE([hal-compat],
1064     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1065
1066 AS_IF([test "x$enable_hal_compat" != "xno"],
1067     [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1068     HAVE_HAL_COMPAT=0)
1069
1070 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1071 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1072
1073 #### IPv6 connection support (optional) ####
1074
1075 AC_ARG_ENABLE([ipv6],
1076     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1077
1078 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1079
1080 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1081
1082 #### OpenSSL support (optional) ####
1083
1084 AC_ARG_ENABLE([openssl],
1085     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1086
1087 AS_IF([test "x$enable_openssl" != "xno"],
1088     [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1089     HAVE_OPENSSL=0)
1090
1091 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1092     [AC_MSG_ERROR([*** OpenSSL support not found])])
1093
1094 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1095 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1096
1097 #### FFTW (optional) ####
1098
1099 AC_ARG_WITH([fftw],
1100     AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1101
1102 AS_IF([test "x$with_fftw" != "xno"],
1103     [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1104     HAVE_FFTW=0)
1105
1106 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1107     [AC_MSG_ERROR([*** FFTW support not found])])
1108
1109 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1110
1111 #### speex (optional) ####
1112
1113 AC_ARG_WITH([speex],
1114     AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1115
1116 AS_IF([test "x$with_speex" != "xno"],
1117     [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1118     HAVE_SPEEX=0)
1119
1120 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1121     [AC_MSG_ERROR([*** speex support not found])])
1122
1123 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1124 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1125
1126 #### Xen support (optional) ####
1127
1128 AC_ARG_ENABLE([xen],
1129     AS_HELP_STRING([--disable-xen],[Disable optional Xen paravirtualized driver]))
1130
1131 XEN_CFLAGS=
1132 XEN_LIBS=
1133
1134 AS_IF([test "x$enable_xen" != "xno"],
1135     [
1136         HAVE_XEN=1
1137         AC_CHECK_HEADER(xenctrl.h, [], [HAVE_XEN=0])
1138         AC_CHECK_HEADER(xs.h, [], [HAVE_XEN=0])
1139         AC_CHECK_LIB(xenctrl, xc_interface_open, [XEN_LIBS="$XEN_LIBS -lxenctrl"], [HAVE_XEN=0])
1140         AC_CHECK_LIB(xenstore, xs_domain_open, [XEN_LIBS="$XEN_LIBS -lxenstore"], [HAVE_XEN=0])
1141     ],
1142     HAVE_XEN=0)
1143
1144 AS_IF([test "x$enable_xen" = "xyes" && test "x$HAVE_XEN" = "x0"],
1145     [AC_MSG_ERROR([*** Xen development headers or libraries not found])])
1146
1147 AC_SUBST(XEN_CFLAGS)
1148 AC_SUBST(XEN_LIBS)
1149 AM_CONDITIONAL([HAVE_XEN], [test "x$HAVE_XEN" = x1])
1150
1151 #### gcov support (optional) #####
1152
1153 AC_ARG_ENABLE([gcov],
1154     AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1155
1156 GCOV_CFLAGS=
1157 GCOV_LIBS=" -lgcov"
1158
1159 AS_IF([test "x$enable_gcov" = "xyes"],
1160     [
1161         HAVE_GCOV=1
1162         GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1163         GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1164     ],
1165     HAVE_GCOV=0)
1166
1167 AC_SUBST(GCOV_CFLAGS)
1168 AC_SUBST(GCOV_LIBS)
1169 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1170
1171 #### ORC (optional) ####
1172
1173 ORC_CHECK([0.4.11])
1174
1175 #### systemd support (optional) ####
1176
1177 AC_ARG_ENABLE([systemd],
1178     AS_HELP_STRING([--disable-systemd],[Disable optional systemd support]))
1179
1180 AS_IF([test "x$enable_systemd" != "xno"],
1181     [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1182     HAVE_SYSTEMD=0)
1183
1184 AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"],
1185     [AC_MSG_ERROR([*** Needed systemd support not found])])
1186
1187 AC_SUBST(HAVE_SYSTEMD)
1188 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$HAVE_SYSTEMD" = x1])
1189 AS_IF([test "x$HAVE_SYSTEMD" = "x1"], AC_DEFINE([HAVE_SYSTEMD], 1, [Have SYSTEMD?]))
1190
1191 #### journal support (optional) ####
1192
1193 AC_ARG_ENABLE([systemd-journal],
1194     AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1195
1196 AS_IF([test "x$enable_systemd_journal" != "xno"],
1197     [PKG_CHECK_MODULES(JOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)],
1198     HAVE_SYSTEMD_JOURNAL=0)
1199
1200 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1201     [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1202
1203 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1204 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1205 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_JOURNAL], 1, [Have JOURNAL?]))
1206
1207 #### Build and Install man pages ####
1208
1209 AC_ARG_ENABLE([manpages],
1210     AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1211
1212 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1213
1214 #### PulseAudio system group & user  #####
1215
1216 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1217 if test -z "$with_system_user" ; then
1218     PA_SYSTEM_USER=pulse
1219 else
1220     PA_SYSTEM_USER=$with_system_user
1221 fi
1222 AC_SUBST(PA_SYSTEM_USER)
1223 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1224
1225 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1226 if test -z "$with_system_group" ; then
1227     PA_SYSTEM_GROUP=pulse
1228 else
1229     PA_SYSTEM_GROUP=$with_system_group
1230 fi
1231 AC_SUBST(PA_SYSTEM_GROUP)
1232 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1233
1234 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)]))
1235 if test -z "$with_access_group" ; then
1236     PA_ACCESS_GROUP=pulse-access
1237 else
1238     PA_ACCESS_GROUP=$with_access_group
1239 fi
1240 AC_SUBST(PA_ACCESS_GROUP)
1241 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1242
1243 AC_ARG_ENABLE([per-user-esound-socket],
1244     AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1245
1246 if test "x$enable_per_user_esound_socket" != "xno"; then
1247     USE_PER_USER_ESOUND_SOCKET=1
1248     AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1249 else
1250     USE_PER_USER_ESOUND_SOCKET=0
1251 fi
1252
1253 #### PulseAudio system runtime dir ####
1254
1255 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1256 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1257 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1258 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1259 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1260 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1261
1262 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1263 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1264
1265 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1266 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1267
1268 AC_SUBST(PA_SOEXT, [.so])
1269 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1270
1271 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1272 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1273
1274 #### Mac OSX specific stuff #####
1275
1276 AC_ARG_ENABLE(mac-universal,
1277     AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1278     enable_mac_universal=$enableval, enable_mac_universal="no")
1279
1280 AC_ARG_WITH(mac-version-min,
1281     AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1282     mac_version_min=$withval, mac_version_min="10.5")
1283
1284 AC_ARG_WITH(mac-sysroot,
1285     AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1286     mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1287
1288 if test "x$os_is_darwin" = "x1" ; then
1289     LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1290     CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1291
1292     if test "x$enable_mac_universal" = "xyes" ; then
1293         mac_arches="-arch i386 -arch x86_64"
1294         LDFLAGS="$LDFLAGS $mac_arches"
1295         CFLAGS="$CFLAGS $mac_arches"
1296     fi
1297 fi
1298
1299 AC_ARG_ENABLE([webrtc-aec],
1300     AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1301
1302 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1303     [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1304     [HAVE_WEBRTC=0])
1305
1306 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1307     [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1308
1309 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1310
1311 AC_ARG_ENABLE([adrian-aec],
1312     AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1313 AS_IF([test "x$enable_adrian_aec" != "xno"],
1314     [HAVE_ADRIAN_EC=1])
1315 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1316
1317
1318
1319 ###################################
1320 #            Output               #
1321 ###################################
1322
1323 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1324
1325 # Check whether to build tests by default (as compile-test) or not
1326 AC_ARG_ENABLE([default-build-tests],
1327     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1328 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1329
1330 AC_ARG_ENABLE([legacy-database-entry-format],
1331         AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1332 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1333         AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1334 fi
1335 AC_DEFINE([WIBBLE], 1, [Just a test.])
1336
1337 AC_ARG_ENABLE([static-bins],
1338     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1339 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1340
1341 AC_ARG_WITH(
1342         [preopen-mods],
1343         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1344         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1345 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1346 if test "x$PREOPEN_MODS" != "xall" ; then
1347     tmpLIBS=""
1348     for mod in $PREOPEN_MODS; do
1349         tmpLIBS="$tmpLIBS module-$mod.la"
1350     done
1351     PREOPEN_MODS="$tmpLIBS"
1352     AC_SUBST(PREOPEN_MODS)
1353 fi
1354
1355 AC_ARG_WITH(
1356         [module-dir],
1357         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1358         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1359
1360 AC_SUBST(modlibexecdir)
1361 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1362
1363 AC_ARG_WITH(
1364         [udev-rules-dir],
1365         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1366         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1367
1368 AC_SUBST(udevrulesdir)
1369
1370 AC_ARG_WITH(
1371         [zsh-completion-dir],
1372         AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1373         [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1374
1375 AC_SUBST(zshcompletiondir)
1376
1377 AC_ARG_ENABLE([force-preopen],
1378     AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1379
1380 if test "x$enable_force_preopen" = "xyes"; then
1381     FORCE_PREOPEN=yes
1382 else
1383     FORCE_PREOPEN=no
1384 fi
1385
1386 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1387
1388 AC_CONFIG_FILES([
1389 Makefile
1390 src/Makefile
1391 man/Makefile
1392 libpulse.pc
1393 libpulse-simple.pc
1394 libpulse-mainloop-glib.pc
1395 doxygen/Makefile
1396 doxygen/doxygen.conf
1397 src/pulse/version.h
1398 po/Makefile.in
1399 man/pulseaudio.1.xml
1400 man/esdcompat.1.xml
1401 man/pax11publish.1.xml
1402 man/paplay.1.xml
1403 man/pacat.1.xml
1404 man/pacmd.1.xml
1405 man/pactl.1.xml
1406 man/pasuspender.1.xml
1407 man/padsp.1.xml
1408 man/pulse-daemon.conf.5.xml
1409 man/pulse-client.conf.5.xml
1410 man/default.pa.5.xml
1411 man/pulse-cli-syntax.5.xml
1412 man/start-pulseaudio-x11.1.xml
1413 ])
1414
1415 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1416 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1417 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1418 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1419     [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1420 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1421     [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1422 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1423     [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1424
1425 # CMake related ProjectConfig files
1426 PA_LIBDIR="$libdir"
1427 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1428 PA_INCDIR="$includedir"
1429 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1430
1431 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1432     [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1433 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1434
1435 AC_OUTPUT
1436
1437 # ==========================================================================
1438
1439 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1440 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1441 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1442 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1443 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1444 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1445 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1446 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1447 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1448 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1449 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1450 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1451 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1452 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1453 AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no)
1454 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1455 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1456 AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
1457 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1458 AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
1459 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1460 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1461 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1462 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1463 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1464 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1465 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1466 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1467 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1468 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1469 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1470 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1471 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1472 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1473 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1474 AS_IF([test "x$HAVE_ESOUND" = "x1" -a "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1475 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1476 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1477 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1478
1479 echo "
1480  ---{ $PACKAGE_NAME $VERSION }---
1481
1482     prefix:                        ${prefix}
1483     sysconfdir:                    ${sysconfdir}
1484     localstatedir:                 ${localstatedir}
1485     modlibexecdir:                 ${modlibexecdir}
1486     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1487     System State Path:             ${PA_SYSTEM_STATE_PATH}
1488     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1489     Zsh completions directory:     ${zshcompletiondir}
1490     Compiler:                      ${CC}
1491     CFLAGS:                        ${CFLAGS}
1492     CPPFLAGS:                      ${CPPFLAGS}
1493     LIBS:                          ${LIBS}
1494
1495     Enable X11:                    ${ENABLE_X11}
1496     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1497     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1498     Enable EsounD:                 ${ENABLE_ESOUND}
1499     Enable Alsa:                   ${ENABLE_ALSA}
1500     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1501     Enable Solaris:                ${ENABLE_SOLARIS}
1502     Enable WaveOut:                ${ENABLE_WAVEOUT}
1503     Enable GLib 2.0:               ${ENABLE_GLIB20}
1504     Enable Gtk+ 3.0:               ${ENABLE_GTK30}
1505     Enable GConf:                  ${ENABLE_GCONF}
1506     Enable Avahi:                  ${ENABLE_AVAHI}
1507     Enable Jack:                   ${ENABLE_JACK}
1508     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1509     Enable LIRC:                   ${ENABLE_LIRC}
1510     Enable Xen PV driver:          ${ENABLE_XEN}
1511     Enable D-Bus:                  ${ENABLE_DBUS}
1512       Enable BlueZ 4:              ${ENABLE_BLUEZ_4}
1513       Enable BlueZ 5:              ${ENABLE_BLUEZ_5}
1514         headset backend:           ${BLUETOOTH_HEADSET_BACKEND}
1515     Enable udev:                   ${ENABLE_UDEV}
1516       Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
1517     Enable systemd login:          ${ENABLE_SYSTEMD}
1518     Enable systemd journal:        ${ENABLE_SYSTEMD_JOURNAL}
1519     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1520     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1521     Enable IPv6:                   ${ENABLE_IPV6}
1522     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1523     Enable fftw:                   ${ENABLE_FFTW}
1524     Enable orc:                    ${ENABLE_ORC}
1525     Enable Adrian echo canceller:  ${ENABLE_ADRIAN_EC}
1526     Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1527     Enable WebRTC echo canceller:  ${ENABLE_WEBRTC}
1528     Enable gcov coverage:          ${ENABLE_GCOV}
1529     Enable unit tests:             ${ENABLE_TESTS}
1530     Database
1531       tdb:                         ${ENABLE_TDB}
1532       gdbm:                        ${ENABLE_GDBM}
1533       simple database:             ${ENABLE_SIMPLEDB}
1534
1535     System User:                   ${PA_SYSTEM_USER}
1536     System Group:                  ${PA_SYSTEM_GROUP}
1537     Access Group:                  ${PA_ACCESS_GROUP}
1538     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1539     Force preopen:                 ${FORCE_PREOPEN}
1540     Preopened modules:             ${PREOPEN_MODS}
1541
1542     Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1543 "
1544
1545 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1546 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1547 fi
1548
1549 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1550    echo "
1551 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1552 You do not have D-Bus support enabled. It is strongly recommended
1553 that you enable D-Bus support if your platform supports it.
1554 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1555 to the Device Reservation Protocol to speak to JACK, Bluetooth
1556 support and even a native control protocol for communicating and
1557 controling the PulseAudio daemon itself.
1558 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1559 "
1560 fi
1561
1562 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1563    echo "
1564 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1565 You do not have udev support enabled. It is strongly recommended
1566 that you enable udev support if your platform supports it as it is
1567 the primary method used to detect hardware audio devices (on Linux)
1568 and is thus a critical part of PulseAudio on that platform.
1569 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1570 "
1571 fi
1572
1573 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1574    echo "
1575 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1576 You do not have speex support enabled. It is strongly recommended
1577 that you enable speex support if your platform supports it as it is
1578 the primary method used for audio resampling and is thus a critical
1579 part of PulseAudio on that platform.
1580 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1581 "
1582 fi