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