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