util: Try finding out application name using dladdr if available
[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 AC_SEARCH_LIBS([dladdr], [dl], [HAVE_DLADDR=1], [HAVE_DLADDR=0])
584 AC_DEFINE(HAVE_DLADDR, [1], [Have dladdr?])
585
586 ###################################
587 #      External libraries         #
588 ###################################
589
590 #### [lib]iconv ####
591
592 AM_ICONV
593
594 #### X11 (optional) ####
595
596 AC_ARG_ENABLE([x11],
597     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
598
599 AS_IF([test "x$enable_x11" != "xno"],
600     [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
601     HAVE_X11=0)
602
603 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
604     [AC_MSG_ERROR([*** X11 not found])])
605
606 AC_SUBST(HAVE_X11)
607 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
608 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
609
610 #### Capabilities (optional) ####
611
612 CAP_LIBS=''
613
614 AC_ARG_WITH([caps],
615     AS_HELP_STRING([--without-caps],[Omit support for dropping capabilities.]))
616
617 if test "x${with_caps}" != "xno"; then
618     AC_SEARCH_LIBS([cap_init], [cap], [], [])
619
620     # Only give an error on hosts that we know could support capabilities
621     AC_CHECK_HEADERS([sys/capability.h], [], [
622       if test "${host_has_caps}" = "1"; then
623         AC_MSG_ERROR([*** sys/capability.h not found.  Use --without-caps to disable capabilities support.])
624       fi])
625 fi
626
627 #### Valgrind (optional) ####
628
629 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
630
631 #### check unit tests ####
632
633 AC_ARG_ENABLE([tests],
634     AS_HELP_STRING([--disable-tests],[Disable unit tests]))
635
636 AS_IF([test "x$enable_tests" != "xno"],
637     [PKG_CHECK_MODULES(LIBCHECK, [ check ], HAVE_LIBCHECK=1, HAVE_LIBCHECK=0)],
638     HAVE_LIBCHECK=0)
639
640 AS_IF([test "x$enable_tests" = "xyes" && test "x$HAVE_LIBCHECK" = "x0"],
641     [AC_MSG_ERROR([*** check library not found])])
642
643 AM_CONDITIONAL([HAVE_TESTS], [test "x$HAVE_LIBCHECK" = x1])
644
645 #### json parsing ####
646
647 PKG_CHECK_MODULES(LIBJSON, [ json-c >= 0.11 ])
648
649 #### Sound file ####
650
651 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
652
653 #### atomic-ops ####
654
655 AC_MSG_CHECKING([whether we need libatomic_ops])
656 if test "x$need_libatomic_ops" = "xyes"; then
657     AC_MSG_RESULT([yes])
658     AC_CHECK_HEADERS([atomic_ops.h],
659         [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
660         [AC_MSG_ERROR([*** libatomic-ops headers not found])])
661
662     # Win32 does not need the lib and breaks horribly if we try to include it
663     AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
664 else
665     AC_MSG_RESULT([no])
666 fi
667
668 #### Libsamplerate support (optional) ####
669
670 AC_ARG_ENABLE([samplerate],
671     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
672
673 AS_IF([test "x$enable_samplerate" != "xno"],
674     [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
675     HAVE_LIBSAMPLERATE=0)
676
677 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
678     [AC_MSG_ERROR([*** Libsamplerate not found])])
679
680 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
681 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
682
683 #### Database support ####
684
685 AC_ARG_WITH([database],
686     AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
687
688
689 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
690     [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
691     HAVE_TDB=0)
692 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
693
694 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
695     [AC_MSG_ERROR([*** tdb not found])])
696
697
698 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
699     [
700         HAVE_GDBM=1
701         AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
702         AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
703     ],
704     HAVE_GDBM=0)
705 AS_IF([test "x$HAVE_GDBM" = "x1"],
706     [
707         with_database=gdbm
708         GDBM_CFLAGS=
709         GDBM_LIBS=-lgdbm
710     ])
711
712 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
713     [AC_MSG_ERROR([*** gdbm not found])])
714
715
716 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
717     HAVE_SIMPLEDB=1,
718     HAVE_SIMPLEDB=0)
719 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
720
721 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
722     AC_MSG_ERROR([*** missing database backend]))
723
724
725 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
726 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
727
728 AC_SUBST(GDBM_CFLAGS)
729 AC_SUBST(GDBM_LIBS)
730 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
731 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
732
733 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
734 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
735
736 #### OSS support (optional) ####
737
738 AC_ARG_ENABLE([oss-output],
739     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
740
741 AC_ARG_ENABLE([oss-wrapper],
742     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
743
744 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
745     [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
746     HAVE_OSS=0)
747
748 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
749     [AC_MSG_ERROR([*** OSS support not found])])
750
751 AS_IF([test "x$enable_oss_output" != "xno"],
752     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
753     HAVE_OSS_OUTPUT=0)
754
755 AS_IF([test "x$enable_oss_wrapper" != "xno"],
756     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
757     HAVE_OSS_WRAPPER=0)
758
759 AC_SUBST(HAVE_OSS_OUTPUT)
760 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
761 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
762 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
763 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
764
765 #### CoreAudio support (optional) ####
766
767 AC_ARG_ENABLE([coreaudio-output],
768     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
769
770 AS_IF([test "x$enable_coreaudio_output" != "xno"],
771     [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
772     HAVE_COREAUDIO=0)
773
774 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
775     [AC_MSG_ERROR([*** CoreAudio output support not found])])
776
777 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
778
779 #### ALSA support (optional) ####
780
781 AC_ARG_ENABLE([alsa],
782     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
783
784 AS_IF([test "x$enable_alsa" != "xno"],
785     [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
786     HAVE_ALSA=0)
787
788 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
789     [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
790
791 AS_IF([test "x$HAVE_ALSA" = "x1"],
792     [
793         save_CPPFLAGS="$CPPFLAGS"; CPPFLAGS="$CPPFLAGS $ASOUNDLIB_CFLAGS"
794         AC_CHECK_HEADERS([use-case.h], HAVE_ALSA_UCM=1, HAVE_ALSA_UCM=0)
795         CPPFLAGS="$save_CPPFLAGS"
796     ],
797     HAVE_ALSA_UCM=0)
798
799 AC_SUBST(HAVE_ALSA)
800 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
801 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
802 AS_IF([test "x$HAVE_ALSA_UCM" = "x1"], AC_DEFINE([HAVE_ALSA_UCM], 1, [Have ALSA UCM?]))
803
804 #### EsounD support (optional) ####
805
806 AC_ARG_ENABLE([esound],
807     AS_HELP_STRING([--disable-esound],[Disable optional EsounD support]))
808 AM_CONDITIONAL([HAVE_ESOUND], [test "x$enable_esound" != "xno"])
809 AS_IF([test "x$enable_esound" != "xno"], [HAVE_ESOUND=1])
810
811 #### Solaris audio support (optional) ####
812
813 AC_ARG_ENABLE([solaris],
814     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
815
816 AS_IF([test "x$enable_solaris" != "xno"],
817     [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
818     HAVE_SOLARIS=0)
819
820 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
821     [AC_MSG_ERROR([*** Solaris audio support not found])])
822
823 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
824 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
825
826 #### WaveOut audio support (optional) ####
827
828 AC_ARG_ENABLE([waveout],
829     AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
830
831 AS_IF([test "x$enable_waveout" != "xno"],
832     [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
833     HAVE_WAVEOUT=0)
834
835 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
836     [AC_MSG_ERROR([*** WaveOut audio support not found])])
837
838 AC_SUBST(HAVE_WAVEOUT)
839 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
840 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
841
842 #### GLib 2 support (optional) ####
843
844 AC_ARG_ENABLE([glib2],
845     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
846
847 AS_IF([test "x$enable_glib2" != "xno"],
848     [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
849     HAVE_GLIB20=0)
850
851 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
852     [AC_MSG_ERROR([*** GLib 2 support not found])])
853
854 AC_SUBST(HAVE_GLIB20)
855 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
856 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
857
858 #### GTK3 support (optional) ####
859
860 AC_ARG_ENABLE([gtk3],
861     AS_HELP_STRING([--disable-gtk3],[Disable optional Gtk+ 3 support]))
862
863 AS_IF([test "x$enable_gtk3" != "xno"],
864     [PKG_CHECK_MODULES(GTK30, [ gtk+-3.0 ], HAVE_GTK30=1, HAVE_GTK30=0)],
865     HAVE_GTK30=0)
866
867 AS_IF([test "x$enable_gtk3" = "xyes" && test "x$HAVE_GTK30" = "x0"],
868     [AC_MSG_ERROR([*** Gtk+ 3 support not found])])
869
870 AM_CONDITIONAL([HAVE_GTK30], [test "x$HAVE_GTK30" = x1])
871 AS_IF([test "x$HAVE_GTK30" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
872
873 #### GConf support (optional) ####
874
875 AC_ARG_ENABLE([gconf],
876     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
877
878 AS_IF([test "x$enable_gconf" != "xno"],
879     [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
880     HAVE_GCONF=0)
881
882 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
883     [AC_MSG_ERROR([*** GConf support not found])])
884
885 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
886
887 #### Avahi support (optional) ####
888
889 AC_ARG_ENABLE([avahi],
890     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
891
892 AS_IF([test "x$enable_avahi" != "xno"],
893     [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
894     HAVE_AVAHI=0)
895
896 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
897     [AC_MSG_ERROR([*** Avahi support not found])])
898
899 AC_SUBST(HAVE_AVAHI)
900 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
901
902 #### JACK (optional) ####
903
904 AC_ARG_ENABLE([jack],
905     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
906
907 AS_IF([test "x$enable_jack" != "xno"],
908     [PKG_CHECK_MODULES(JACK, [ jack >= 0.117.0 ], HAVE_JACK=1, HAVE_JACK=0)],
909     HAVE_JACK=0)
910
911 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
912     [AC_MSG_ERROR([*** JACK support not found])])
913
914 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
915
916 #### Async DNS support (optional) ####
917
918 AC_ARG_ENABLE([asyncns],
919     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
920
921 AS_IF([test "x$enable_asyncns" != "xno"],
922     [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
923     HAVE_LIBASYNCNS=0)
924
925 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
926     [AC_MSG_ERROR([*** Async DNS support not found])])
927
928 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
929 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
930
931 #### TCP wrappers (optional) ####
932
933 AC_ARG_ENABLE([tcpwrap],
934     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
935
936 AS_IF([test "x$enable_tcpwrap" != "xno"],
937     [
938         ACX_LIBWRAP
939         AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
940     ],
941     HAVE_TCPWRAP=0)
942
943 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
944     [AC_MSG_ERROR([*** TCP wrappers support not found])])
945
946 AC_SUBST(LIBWRAP_LIBS)
947
948 #### LIRC support (optional) ####
949
950 AC_ARG_ENABLE([lirc],
951     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
952
953 LIRC_CFLAGS=
954 LIRC_LIBS=
955
956 AS_IF([test "x$enable_lirc" != "xno"],
957     [
958         HAVE_LIRC=1
959         AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
960         AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
961     ],
962     HAVE_LIRC=0)
963
964 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
965     [AC_MSG_ERROR([*** LIRC support not found])])
966
967 AC_SUBST(LIRC_CFLAGS)
968 AC_SUBST(LIRC_LIBS)
969 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
970
971 #### D-Bus support (optional) ####
972
973 AC_ARG_ENABLE([dbus],
974     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
975
976 AS_IF([test "x$enable_dbus" != "xno"],
977     [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.4.12 ], HAVE_DBUS=1, HAVE_DBUS=0)],
978     HAVE_DBUS=0)
979
980 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
981     [AC_MSG_ERROR([*** D-Bus not available or too old version])])
982
983 AS_IF([test "x$HAVE_DBUS" = "x1"],
984     [
985         save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
986         save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
987         AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
988         CFLAGS="$save_CFLAGS"
989         LIBS="$save_LIBS"
990     ])
991
992 AC_SUBST(HAVE_DBUS)
993 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
994 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
995
996 PA_MACHINE_ID="${sysconfdir}/machine-id"
997 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
998 PA_MACHINE_ID_FALLBACK="${localstatedir}/lib/dbus/machine-id"
999 AX_DEFINE_DIR(PA_MACHINE_ID_FALLBACK, PA_MACHINE_ID_FALLBACK,
1000               [Fallback machine-id file])
1001
1002 #### BlueZ support (optional, dependent on D-Bus and SBC) ####
1003
1004 AC_ARG_ENABLE([bluez4],
1005     AS_HELP_STRING([--disable-bluez4],[Disable optional BlueZ 4 support]))
1006 AC_ARG_ENABLE([bluez5],
1007     AS_HELP_STRING([--disable-bluez5],[Disable optional BlueZ 5 support]))
1008
1009 ## SBC ##
1010 AS_IF([test "x$enable_bluez4" != "xno" || test "x$enable_bluez5" != "xno"],
1011     [PKG_CHECK_MODULES(SBC, [ sbc >= 1.0 ], HAVE_SBC=1, HAVE_SBC=0)],
1012     HAVE_SBC=0)
1013
1014 ## BlueZ 4 ##
1015 AS_IF([test "x$enable_bluez4" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_4=1)
1016 AS_IF([test "x$enable_bluez4" = "xyes" && test "x$HAVE_BLUEZ_4" != "x1"],
1017     [AC_MSG_ERROR([*** BLUEZ 4 support not found (requires sbc and D-Bus)])])
1018 AC_SUBST(HAVE_BLUEZ_4)
1019 AM_CONDITIONAL([HAVE_BLUEZ_4], [test "x$HAVE_BLUEZ_4" = x1])
1020
1021 ## BlueZ 5 ##
1022 AS_IF([test "x$enable_bluez5" != "xno" && test "x$HAVE_DBUS" = "x1" && test "x$HAVE_SBC" = "x1"], HAVE_BLUEZ_5=1)
1023 AS_IF([test "x$enable_bluez5" = "xyes" && test "x$HAVE_BLUEZ_5" != "x1"],
1024     [AC_MSG_ERROR([*** BLUEZ 5 support not found (requires sbc and D-Bus)])])
1025 AC_SUBST(HAVE_BLUEZ_5)
1026 AM_CONDITIONAL([HAVE_BLUEZ_5], [test "x$HAVE_BLUEZ_5" = x1])
1027
1028 AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ=1)
1029 AC_SUBST(HAVE_BLUEZ)
1030 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1031
1032 ## Bluetooth Headset profiles backend ##
1033
1034 AC_ARG_WITH(bluetooth_headset_backend,
1035     AS_HELP_STRING([--with-bluetooth-headset-backend=<ofono|null>],[Backend for Bluetooth headset profiles (ofono)]))
1036 if test -z "$with_bluetooth_headset_backend" ; then
1037     BLUETOOTH_HEADSET_BACKEND=ofono
1038 else
1039     BLUETOOTH_HEADSET_BACKEND=$with_bluetooth_headset_backend
1040 fi
1041
1042 AS_IF([test "x$BLUETOOTH_HEADSET_BACKEND" != "xofono" && test "x$BLUETOOTH_HEADSET_BACKEND" != "xnull"],
1043     [AC_MSG_ERROR([*** Invalid Bluetooth Headset backend])])
1044
1045 AC_SUBST(BLUETOOTH_HEADSET_BACKEND)
1046
1047 #### UDEV support (optional) ####
1048
1049 AC_ARG_ENABLE([udev],
1050     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
1051
1052 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
1053     [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
1054     HAVE_UDEV=0)
1055
1056 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
1057     [AC_MSG_ERROR([*** UDEV support not found])])
1058
1059 AC_SUBST(HAVE_UDEV)
1060 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1061 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
1062
1063 #### HAL compat support (optional, dependent on UDEV) ####
1064
1065 AC_ARG_ENABLE([hal-compat],
1066     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1067
1068 AS_IF([test "x$enable_hal_compat" != "xno"],
1069     [AS_IF([test "x$HAVE_UDEV" = "x1"], HAVE_HAL_COMPAT=1, HAVE_HAL_COMPAT=0)],
1070     HAVE_HAL_COMPAT=0)
1071
1072 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1073 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.]))
1074
1075 #### IPv6 connection support (optional) ####
1076
1077 AC_ARG_ENABLE([ipv6],
1078     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1079
1080 AS_IF([test "x$enable_ipv6" != "xno"], [HAVE_IPV6=1], [HAVE_IPV6=0])
1081
1082 AS_IF([test "x$HAVE_IPV6" = "x1"], AC_DEFINE([HAVE_IPV6], 1, [Define this to enable IPv6 connection support]))
1083
1084 #### OpenSSL support (optional) ####
1085
1086 AC_ARG_ENABLE([openssl],
1087     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1088
1089 AS_IF([test "x$enable_openssl" != "xno"],
1090     [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1091     HAVE_OPENSSL=0)
1092
1093 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1094     [AC_MSG_ERROR([*** OpenSSL support not found])])
1095
1096 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1097 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1098
1099 #### FFTW (optional) ####
1100
1101 AC_ARG_WITH([fftw],
1102     AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1103
1104 AS_IF([test "x$with_fftw" != "xno"],
1105     [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1106     HAVE_FFTW=0)
1107
1108 AS_IF([test "x$with_fftw" = "xyes" && test "x$HAVE_FFTW" = "x0"],
1109     [AC_MSG_ERROR([*** FFTW support not found])])
1110
1111 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1112
1113 #### speex (optional) ####
1114
1115 AC_ARG_WITH([speex],
1116     AS_HELP_STRING([--without-speex],[Omit speex (resampling, AEC)]))
1117
1118 AS_IF([test "x$with_speex" != "xno"],
1119     [PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ], HAVE_SPEEX=1, HAVE_SPEEX=0)],
1120     HAVE_SPEEX=0)
1121
1122 AS_IF([test "x$with_speex" = "xyes" && test "x$HAVE_SPEEX" = "x0"],
1123     [AC_MSG_ERROR([*** speex support not found])])
1124
1125 AM_CONDITIONAL([HAVE_SPEEX], [test "x$HAVE_SPEEX" = "x1"])
1126 AS_IF([test "x$HAVE_SPEEX" = "x1"], AC_DEFINE([HAVE_SPEEX], 1, [Have speex]))
1127
1128 #### Xen support (optional) ####
1129
1130 AC_ARG_ENABLE([xen],
1131     AS_HELP_STRING([--disable-xen],[Disable optional Xen paravirtualized driver]))
1132
1133 XEN_CFLAGS=
1134 XEN_LIBS=
1135
1136 AS_IF([test "x$enable_xen" != "xno"],
1137     [
1138         HAVE_XEN=1
1139         AC_CHECK_HEADER(xenctrl.h, [], [HAVE_XEN=0])
1140         AC_CHECK_HEADER(xs.h, [], [HAVE_XEN=0])
1141         AC_CHECK_LIB(xenctrl, xc_interface_open, [XEN_LIBS="$XEN_LIBS -lxenctrl"], [HAVE_XEN=0])
1142         AC_CHECK_LIB(xenstore, xs_domain_open, [XEN_LIBS="$XEN_LIBS -lxenstore"], [HAVE_XEN=0])
1143     ],
1144     HAVE_XEN=0)
1145
1146 AS_IF([test "x$enable_xen" = "xyes" && test "x$HAVE_XEN" = "x0"],
1147     [AC_MSG_ERROR([*** Xen development headers or libraries not found])])
1148
1149 AC_SUBST(XEN_CFLAGS)
1150 AC_SUBST(XEN_LIBS)
1151 AM_CONDITIONAL([HAVE_XEN], [test "x$HAVE_XEN" = x1])
1152
1153 #### gcov support (optional) #####
1154
1155 AC_ARG_ENABLE([gcov],
1156     AS_HELP_STRING([--enable-gcov],[Enable optional gcov coverage analysis]))
1157
1158 GCOV_CFLAGS=
1159 GCOV_LIBS=" -lgcov"
1160
1161 AS_IF([test "x$enable_gcov" = "xyes"],
1162     [
1163         HAVE_GCOV=1
1164         GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs -ftest-coverage"
1165         GCOV_LIBS="$GCOV_LIBS -fprofile-arcs"
1166     ],
1167     HAVE_GCOV=0)
1168
1169 AC_SUBST(GCOV_CFLAGS)
1170 AC_SUBST(GCOV_LIBS)
1171 AM_CONDITIONAL([HAVE_GCOV], [test "x$HAVE_GCOV" = x1])
1172
1173 #### ORC (optional) ####
1174
1175 ORC_CHECK([0.4.11])
1176
1177 #### systemd support (optional) ####
1178
1179 AC_ARG_ENABLE([systemd],
1180     AS_HELP_STRING([--disable-systemd],[Disable optional systemd support]))
1181
1182 AS_IF([test "x$enable_systemd" != "xno"],
1183     [PKG_CHECK_MODULES(SYSTEMD, [ libsystemd-login ], HAVE_SYSTEMD=1, HAVE_SYSTEMD=0)],
1184     HAVE_SYSTEMD=0)
1185
1186 AS_IF([test "x$enable_systemd" = "xyes" && test "x$HAVE_SYSTEMD" = "x0"],
1187     [AC_MSG_ERROR([*** Needed systemd support not found])])
1188
1189 AC_SUBST(HAVE_SYSTEMD)
1190 AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$HAVE_SYSTEMD" = x1])
1191 AS_IF([test "x$HAVE_SYSTEMD" = "x1"], AC_DEFINE([HAVE_SYSTEMD], 1, [Have SYSTEMD?]))
1192
1193 #### journal support (optional) ####
1194
1195 AC_ARG_ENABLE([systemd-journal],
1196     AS_HELP_STRING([--disable-systemd-journal],[Disable optional systemd journal support]))
1197
1198 AS_IF([test "x$enable_systemd_journal" != "xno"],
1199     [PKG_CHECK_MODULES(JOURNAL, [ libsystemd-journal ], HAVE_SYSTEMD_JOURNAL=1, HAVE_SYSTEMD_JOURNAL=0)],
1200     HAVE_SYSTEMD_JOURNAL=0)
1201
1202 AS_IF([test "x$enable_systemd_journal" = "xyes" && test "x$HAVE_SYSTEMD_JOURNAL" = "x0"],
1203     [AC_MSG_ERROR([*** Needed systemd journal support not found])])
1204
1205 AC_SUBST(HAVE_SYSTEMD_JOURNAL)
1206 AM_CONDITIONAL([HAVE_SYSTEMD_JOURNAL], [test "x$HAVE_SYSTEMD_JOURNAL" = x1])
1207 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], AC_DEFINE([HAVE_JOURNAL], 1, [Have JOURNAL?]))
1208
1209 #### Build and Install man pages ####
1210
1211 AC_ARG_ENABLE([manpages],
1212     AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1213
1214 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1215
1216 #### PulseAudio system group & user  #####
1217
1218 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1219 if test -z "$with_system_user" ; then
1220     PA_SYSTEM_USER=pulse
1221 else
1222     PA_SYSTEM_USER=$with_system_user
1223 fi
1224 AC_SUBST(PA_SYSTEM_USER)
1225 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1226
1227 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1228 if test -z "$with_system_group" ; then
1229     PA_SYSTEM_GROUP=pulse
1230 else
1231     PA_SYSTEM_GROUP=$with_system_group
1232 fi
1233 AC_SUBST(PA_SYSTEM_GROUP)
1234 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1235
1236 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)]))
1237 if test -z "$with_access_group" ; then
1238     PA_ACCESS_GROUP=pulse-access
1239 else
1240     PA_ACCESS_GROUP=$with_access_group
1241 fi
1242 AC_SUBST(PA_ACCESS_GROUP)
1243 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1244
1245 AC_ARG_ENABLE([per-user-esound-socket],
1246     AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1247
1248 if test "x$enable_per_user_esound_socket" != "xno"; then
1249     USE_PER_USER_ESOUND_SOCKET=1
1250     AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1251 else
1252     USE_PER_USER_ESOUND_SOCKET=0
1253 fi
1254
1255 #### PulseAudio system runtime dir ####
1256
1257 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1258 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1259 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1260 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1261 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1262 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1263
1264 PA_BINARY=${bindir}/pulseaudio${EXEEXT}
1265 AX_DEFINE_DIR(PA_BINARY, PA_BINARY, [Location of pulseaudio binary])
1266
1267 PACTL_BINARY=${bindir}/pactl${EXEEXT}
1268 AX_DEFINE_DIR(PACTL_BINARY, PACTL_BINARY, [Location of pactl binary])
1269
1270 AC_SUBST(PA_SOEXT, [.so])
1271 AC_DEFINE(PA_SOEXT, [".so"], [Shared object extension])
1272
1273 AC_SUBST(pulseconfdir, ["${sysconfdir}/pulse"])
1274 AX_DEFINE_DIR(PA_DEFAULT_CONFIG_DIR, pulseconfdir, [Location of configuration files])
1275
1276 #### Mac OSX specific stuff #####
1277
1278 AC_ARG_ENABLE(mac-universal,
1279     AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1280     enable_mac_universal=$enableval, enable_mac_universal="no")
1281
1282 AC_ARG_WITH(mac-version-min,
1283     AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1284     mac_version_min=$withval, mac_version_min="10.5")
1285
1286 AC_ARG_WITH(mac-sysroot,
1287     AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1288     mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1289
1290 if test "x$os_is_darwin" = "x1" ; then
1291     LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1292     CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1293
1294     if test "x$enable_mac_universal" = "xyes" ; then
1295         mac_arches="-arch i386 -arch x86_64"
1296         LDFLAGS="$LDFLAGS $mac_arches"
1297         CFLAGS="$CFLAGS $mac_arches"
1298     fi
1299 fi
1300
1301 AC_ARG_ENABLE([webrtc-aec],
1302     AS_HELP_STRING([--enable-webrtc-aec], [Enable the optional WebRTC-based echo canceller]))
1303
1304 AS_IF([test "x$enable_webrtc_aec" != "xno"],
1305     [PKG_CHECK_MODULES(WEBRTC, [ webrtc-audio-processing ], [HAVE_WEBRTC=1], [HAVE_WEBRTC=0])],
1306     [HAVE_WEBRTC=0])
1307
1308 AS_IF([test "x$enable_webrtc_aec" = "xyes" && test "x$HAVE_WEBRTC" = "x0"],
1309     [AC_MSG_ERROR([*** webrtc-audio-processing library not found])])
1310
1311 AM_CONDITIONAL([HAVE_WEBRTC], [test "x$HAVE_WEBRTC" = "x1"])
1312
1313 AC_ARG_ENABLE([adrian-aec],
1314     AS_HELP_STRING([--enable-adrian-aec], [Enable Adrian's optional echo canceller]))
1315 AS_IF([test "x$enable_adrian_aec" != "xno"],
1316     [HAVE_ADRIAN_EC=1])
1317 AM_CONDITIONAL([HAVE_ADRIAN_EC], [test "x$HAVE_ADRIAN_EC" = "x1"])
1318
1319
1320
1321 ###################################
1322 #            Output               #
1323 ###################################
1324
1325 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1326
1327 # Check whether to build tests by default (as compile-test) or not
1328 AC_ARG_ENABLE([default-build-tests],
1329     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1330 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1331
1332 AC_ARG_ENABLE([legacy-database-entry-format],
1333         AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1334 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1335         AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1336 fi
1337 AC_DEFINE([WIBBLE], 1, [Just a test.])
1338
1339 AC_ARG_ENABLE([static-bins],
1340     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1341 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1342
1343 AC_ARG_WITH(
1344         [preopen-mods],
1345         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1346         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1347 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1348 if test "x$PREOPEN_MODS" != "xall" ; then
1349     tmpLIBS=""
1350     for mod in $PREOPEN_MODS; do
1351         tmpLIBS="$tmpLIBS module-$mod.la"
1352     done
1353     PREOPEN_MODS="$tmpLIBS"
1354     AC_SUBST(PREOPEN_MODS)
1355 fi
1356
1357 AC_ARG_WITH(
1358         [module-dir],
1359         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1360         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1361
1362 AC_SUBST(modlibexecdir)
1363 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1364
1365 AC_ARG_WITH(
1366         [udev-rules-dir],
1367         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1368         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1369
1370 AC_SUBST(udevrulesdir)
1371
1372 AC_ARG_WITH(
1373         [zsh-completion-dir],
1374         AS_HELP_STRING([--with-zsh-completion-dir], [Zsh completions directory (defaults to ${datadir}/zsh/site-functions)]),
1375         [zshcompletiondir=$withval], [zshcompletiondir="${datadir}/zsh/site-functions"])
1376
1377 AC_SUBST(zshcompletiondir)
1378
1379 AC_ARG_ENABLE([force-preopen],
1380     AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1381
1382 if test "x$enable_force_preopen" = "xyes"; then
1383     FORCE_PREOPEN=yes
1384 else
1385     FORCE_PREOPEN=no
1386 fi
1387
1388 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1389
1390 AC_CONFIG_FILES([
1391 Makefile
1392 src/Makefile
1393 man/Makefile
1394 libpulse.pc
1395 libpulse-simple.pc
1396 libpulse-mainloop-glib.pc
1397 doxygen/Makefile
1398 doxygen/doxygen.conf
1399 src/pulse/version.h
1400 po/Makefile.in
1401 man/pulseaudio.1.xml
1402 man/esdcompat.1.xml
1403 man/pax11publish.1.xml
1404 man/paplay.1.xml
1405 man/pacat.1.xml
1406 man/pacmd.1.xml
1407 man/pactl.1.xml
1408 man/pasuspender.1.xml
1409 man/padsp.1.xml
1410 man/pulse-daemon.conf.5.xml
1411 man/pulse-client.conf.5.xml
1412 man/default.pa.5.xml
1413 man/pulse-cli-syntax.5.xml
1414 man/start-pulseaudio-x11.1.xml
1415 ])
1416
1417 AC_CONFIG_FILES([src/esdcompat:src/daemon/esdcompat.in], [chmod +x src/esdcompat])
1418 AC_CONFIG_FILES([src/start-pulseaudio-x11:src/daemon/start-pulseaudio-x11.in], [chmod +x src/start-pulseaudio-x11])
1419 AC_CONFIG_FILES([src/client.conf:src/pulse/client.conf.in])
1420 AC_CONFIG_FILES([src/daemon.conf:src/daemon/daemon.conf.in],
1421     [m4 src/daemon.conf > src/daemon.conf.gen && mv src/daemon.conf.gen src/daemon.conf])
1422 AC_CONFIG_FILES([src/default.pa:src/daemon/default.pa.in],
1423     [m4 src/default.pa > src/default.pa.gen && mv src/default.pa.gen src/default.pa])
1424 AC_CONFIG_FILES([src/system.pa:src/daemon/system.pa.in],
1425     [m4 src/system.pa > src/system.pa.gen && mv src/system.pa.gen src/system.pa])
1426
1427 # CMake related ProjectConfig files
1428 PA_LIBDIR="$libdir"
1429 AX_DEFINE_DIR(PA_LIBDIR, PA_LIBDIR, [PulseAudio library dir])
1430 PA_INCDIR="$includedir"
1431 AX_DEFINE_DIR(PA_INCDIR, PA_INCDIR, [PulseAudio include dir])
1432
1433 AC_CONFIG_FILES([PulseAudioConfig.cmake:PulseAudioConfig.cmake.in],
1434     [m4 PulseAudioConfig.cmake > PulseAudioConfig.cmake.gen && mv PulseAudioConfig.cmake.gen PulseAudioConfig.cmake])
1435 AC_CONFIG_FILES([PulseAudioConfigVersion.cmake])
1436
1437 AC_OUTPUT
1438
1439 # ==========================================================================
1440
1441 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1442 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1443 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1444 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1445 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1446 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1447 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1448 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1449 AS_IF([test "x$HAVE_GTK30" = "x1"], ENABLE_GTK30=yes, ENABLE_GTK30=no)
1450 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1451 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1452 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1453 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1454 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1455 AS_IF([test "x$HAVE_XEN" = "x1"], ENABLE_XEN=yes, ENABLE_XEN=no)
1456 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1457 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1458 AS_IF([test "x$HAVE_SYSTEMD" = "x1"], ENABLE_SYSTEMD=yes, ENABLE_SYSTEMD=no)
1459 AS_IF([test "x$HAVE_SYSTEMD_JOURNAL" = "x1"], ENABLE_SYSTEMD_JOURNAL=yes, ENABLE_SYSTEMD_JOURNAL=no)
1460 AS_IF([test "x$HAVE_BLUEZ_4" = "x1"], ENABLE_BLUEZ_4=yes, ENABLE_BLUEZ_4=no)
1461 AS_IF([test "x$HAVE_BLUEZ_5" = "x1"], ENABLE_BLUEZ_5=yes, ENABLE_BLUEZ_5=no)
1462 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1463 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1464 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1465 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1466 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1467 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1468 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1469 AS_IF([test "x$HAVE_ADRIAN_EC" = "x1"], ENABLE_ADRIAN_EC=yes, ENABLE_ADRIAN_EC=no)
1470 AS_IF([test "x$HAVE_SPEEX" = "x1"], ENABLE_SPEEX=yes, ENABLE_SPEEX=no)
1471 AS_IF([test "x$HAVE_WEBRTC" = "x1"], ENABLE_WEBRTC=yes, ENABLE_WEBRTC=no)
1472 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1473 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1474 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1475 AS_IF([test "x$HAVE_ESOUND" = "x1"], ENABLE_ESOUND=yes, ENABLE_ESOUND=no)
1476 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)
1477 AS_IF([test "x$HAVE_GCOV" = "x1"], ENABLE_GCOV=yes, ENABLE_GCOV=no)
1478 AS_IF([test "x$HAVE_LIBCHECK" = "x1"], ENABLE_TESTS=yes, ENABLE_TESTS=no)
1479 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1480
1481 echo "
1482  ---{ $PACKAGE_NAME $VERSION }---
1483
1484     prefix:                        ${prefix}
1485     sysconfdir:                    ${sysconfdir}
1486     localstatedir:                 ${localstatedir}
1487     modlibexecdir:                 ${modlibexecdir}
1488     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1489     System State Path:             ${PA_SYSTEM_STATE_PATH}
1490     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1491     Zsh completions directory:     ${zshcompletiondir}
1492     Compiler:                      ${CC}
1493     CFLAGS:                        ${CFLAGS}
1494     CPPFLAGS:                      ${CPPFLAGS}
1495     LIBS:                          ${LIBS}
1496
1497     Enable X11:                    ${ENABLE_X11}
1498     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1499     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1500     Enable EsounD:                 ${ENABLE_ESOUND}
1501     Enable Alsa:                   ${ENABLE_ALSA}
1502     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1503     Enable Solaris:                ${ENABLE_SOLARIS}
1504     Enable WaveOut:                ${ENABLE_WAVEOUT}
1505     Enable GLib 2.0:               ${ENABLE_GLIB20}
1506     Enable Gtk+ 3.0:               ${ENABLE_GTK30}
1507     Enable GConf:                  ${ENABLE_GCONF}
1508     Enable Avahi:                  ${ENABLE_AVAHI}
1509     Enable Jack:                   ${ENABLE_JACK}
1510     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1511     Enable LIRC:                   ${ENABLE_LIRC}
1512     Enable Xen PV driver:          ${ENABLE_XEN}
1513     Enable D-Bus:                  ${ENABLE_DBUS}
1514       Enable BlueZ 4:              ${ENABLE_BLUEZ_4}
1515       Enable BlueZ 5:              ${ENABLE_BLUEZ_5}
1516         headset backend:           ${BLUETOOTH_HEADSET_BACKEND}
1517     Enable udev:                   ${ENABLE_UDEV}
1518       Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
1519     Enable systemd login:          ${ENABLE_SYSTEMD}
1520     Enable systemd journal:        ${ENABLE_SYSTEMD_JOURNAL}
1521     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1522     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1523     Enable IPv6:                   ${ENABLE_IPV6}
1524     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1525     Enable fftw:                   ${ENABLE_FFTW}
1526     Enable orc:                    ${ENABLE_ORC}
1527     Enable Adrian echo canceller:  ${ENABLE_ADRIAN_EC}
1528     Enable speex (resampler, AEC): ${ENABLE_SPEEX}
1529     Enable WebRTC echo canceller:  ${ENABLE_WEBRTC}
1530     Enable gcov coverage:          ${ENABLE_GCOV}
1531     Enable unit tests:             ${ENABLE_TESTS}
1532     Database
1533       tdb:                         ${ENABLE_TDB}
1534       gdbm:                        ${ENABLE_GDBM}
1535       simple database:             ${ENABLE_SIMPLEDB}
1536
1537     System User:                   ${PA_SYSTEM_USER}
1538     System Group:                  ${PA_SYSTEM_GROUP}
1539     Access Group:                  ${PA_ACCESS_GROUP}
1540     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1541     Force preopen:                 ${FORCE_PREOPEN}
1542     Preopened modules:             ${PREOPEN_MODS}
1543
1544     Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1545 "
1546
1547 if test "${ENABLE_SPEEX}" = "no" && test "${ENABLE_WEBRTC}" = "no" && test "${ENABLE_ADRIAN_EC}" = "no" ; then
1548 AC_MSG_ERROR([At least one echo canceller implementation must be available.])
1549 fi
1550
1551 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1552    echo "
1553 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1554 You do not have D-Bus support enabled. It is strongly recommended
1555 that you enable D-Bus support if your platform supports it.
1556 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1557 to the Device Reservation Protocol to speak to JACK, Bluetooth
1558 support and even a native control protocol for communicating and
1559 controling the PulseAudio daemon itself.
1560 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1561 "
1562 fi
1563
1564 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1565    echo "
1566 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1567 You do not have udev support enabled. It is strongly recommended
1568 that you enable udev support if your platform supports it as it is
1569 the primary method used to detect hardware audio devices (on Linux)
1570 and is thus a critical part of PulseAudio on that platform.
1571 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1572 "
1573 fi
1574
1575 if test "${ENABLE_SPEEX}" = "no" && test "x$os_is_win32" != "x1" ; then
1576    echo "
1577 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1578 You do not have speex support enabled. It is strongly recommended
1579 that you enable speex support if your platform supports it as it is
1580 the primary method used for audio resampling and is thus a critical
1581 part of PulseAudio on that platform.
1582 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1583 "
1584 fi