build-sys: Define PA_CFLAGS at right time
[pulseaudio-mirror.git] / configure.ac
blobf667bb908e24a88e7ecaf3be46ab0de6196c3bfd
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`)
34 AC_SUBST(PA_MAJOR, pa_major)
35 AC_SUBST(PA_MINOR, pa_minor)
36 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
37 AC_SUBST(PACKAGE_URL, [http://pulseaudio.org/])
39 AC_SUBST(PA_API_VERSION, 12)
40 AC_SUBST(PA_PROTOCOL_VERSION, 21)
42 # The stable ABI for client applications, for the version info x:y:z
43 # always will hold y=z
44 AC_SUBST(LIBPULSE_VERSION_INFO, [12:3:12])
46 # A simplified, synchronous, ABI-stable interface for client
47 # applications, for the version info x:y:z always will hold y=z
48 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
50 # The ABI-stable network browsing interface for client applications,
51 # for the version info x:y:z always will hold y=z
52 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
54 # The ABI-stable GLib adapter for client applications, for the version
55 # info x:y:z always will hold y=z
56 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
58 AC_CANONICAL_HOST
59 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
61 AC_CHECK_PROG([STOW], [stow], [yes], [no])
63 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
64    AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
65    ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
68 AM_SILENT_RULES([yes])
70 #### Checks for programs. ####
72 # mkdir -p
74 AC_PROG_MKDIR_P
76 # CC
78 AC_PROG_CC
79 AC_PROG_CC_C99
80 AM_PROG_CC_C_O
81 AC_PROG_GCC_TRADITIONAL
82 AC_USE_SYSTEM_EXTENSIONS
84 # M4
86 AC_CHECK_PROGS([M4], gm4 m4, no)
87 if test "x$M4" = xno ; then
88    AC_MSG_ERROR([m4 missing])
92 #### Determine host OS ####
94 os_is_linux=0
95 os_is_win32=0
96 os_is_darwin=0
98 AC_MSG_CHECKING([host operating system])
99 case "$host_os" in
100     linux*)
101         AC_MSG_RESULT([linux])
102         os_is_linux=1
103     ;;
104     darwin*)
105         AC_MSG_RESULT([darwin])
106         os_is_darwin=1
107         AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
108     ;;
109     mingw*)
110         AC_MSG_RESULT([win32])
111         os_is_win32=1
112         AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
113     ;;
114     *)
115         AC_MSG_RESULT([unknown])
116     ;;
117 esac
119 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
120 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
122 # Platform specific hacks
123 case "$host_os" in
124     darwin* )
125         AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
126     ;;
127     mingw* )
128         AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
129     ;;
130     solaris* )
131         AC_DEFINE(_XOPEN_SOURCE,       600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
132         AC_DEFINE(__EXTENSIONS__,        1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
133     ;;
134 esac
136 dnl Compiler flags
138 # Some compilers (e.g. clang) default to a warning on an unkown command line option.
139 # Change that temporarily to an error, for the CC_CHECK_CFLAGS_APPEND macro to work.
140 save_CC="$CC"
141 CC="$CC -Werror"
142 CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -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 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option])
143 CC="$save_CC"
145 dnl Linker flags.
146 dnl Check whether the linker supports the -version-script option.
148 dnl This variable is used to make sure ${srcdir} is expanded and not
149 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
150 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
152 CC_CHECK_LDFLAGS([${tmp_ldflag}],
153     [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
154 AC_SUBST([VERSIONING_LDFLAGS])
156 dnl Use immediate (now) bindings; avoids the funky re-call in itself
157 dnl  the -z now syntax is lifted from Sun's linker and works with GNU's too
158 dnl  other linkes might be added later
159 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
160 AC_SUBST([IMMEDIATE_LDFLAGS])
162 dnl On ELF systems we don't want the libraries to be unloaded since we
163 dnl don't clean them up properly, so we request the nodelete flag to be
164 dnl enabled.
166 dnl On other systems, we don't really know how to do that, but it's
167 dnl welcome if somebody can tell.
168 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
169 AC_SUBST([NODELETE_LDFLAGS])
171 dnl Check for the proper way to build libraries that have no undefined
172 dnl symbols; on some hosts this needs to be avoided but the macro
173 dnl takes care of it.
174 CC_NOUNDEFINED
176 dnl Check whether to build tests by default (as compile-test) or not
177 AC_ARG_ENABLE([default-build-tests],
178     AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
180 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
182 # Native atomic operation support
183 AC_ARG_ENABLE([atomic-arm-linux-helpers],
184     AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
186 AC_ARG_ENABLE([atomic-arm-memory-barrier],
187     AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
189 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
190     AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
193 # If everything else fails use libatomic_ops
194 need_libatomic_ops=yes
196 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
197   pulseaudio_cv_sync_bool_compare_and_swap,
198   [AC_LINK_IFELSE(
199      AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
200      [pulseaudio_cv_sync_bool_compare_and_swap=yes],
201      [pulseaudio_cv_sync_bool_compare_and_swap=no])
202   ])
204 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
205     AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
206     need_libatomic_ops=no
207 else
208     # HW specific atomic ops stuff
209     AC_MSG_CHECKING([architecture for native atomic operations])
210     case $host in
211         arm*)
212             AC_MSG_RESULT([arm])
213             AC_MSG_CHECKING([whether we can use Linux kernel helpers])
214             # The Linux kernel helper functions have been there since 2.6.16. However
215             # compile time checking for kernel version in cross compile environment
216             # (which is usually the case for arm cpu) is tricky (or impossible).
217             if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
218                 AC_MSG_RESULT([yes])
219                 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
220                 need_libatomic_ops=no
221             else
222                AC_MSG_RESULT([no])
223                AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
224                  pulseaudio_cv_support_arm_atomic_ops,
225                  [AC_COMPILE_IFELSE(
226                     AC_LANG_PROGRAM([],
227                       [[volatile int a=0;
228                         int o=0, n=1, r;
229                         asm volatile ("ldrex    %0, [%1]\n"
230                                          "subs  %0, %0, %2\n"
231                                          "strexeq %0, %3, [%1]\n"
232                                          : "=&r" (r)
233                                          : "r" (&a), "Ir" (o), "r" (n)
234                                          : "cc");
235                         return (a==1 ? 0 : -1);
236                       ]]),
237                     [pulseaudio_cv_support_arm_atomic_ops=yes],
238                     [pulseaudio_cv_support_arm_atomic_ops=no])
239                  ])
240                AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
241                    AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
242                    need_libatomic_ops=no
243                  ])
244            fi
245         ;;
246         *-netbsdelf5*)
247             AC_MSG_RESULT([yes])
248             need_libatomic_ops=no
249         ;;
250         *-freebsd*)
251             AC_MSG_RESULT([yes])
252             need_libatomic_ops=no
253         ;;
254         *)
255             AC_MSG_RESULT([unknown])
256         ;;
257     esac
260 # If we're on ARM, check for the ARMV6 instructions we need */
261 case $host in
262   arm*)
263     AC_CACHE_CHECK([support for required armv6 instructions],
264       pulseaudio_cv_support_armv6,
265       [AC_COMPILE_IFELSE(
266          AC_LANG_PROGRAM([],
267            [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
268              asm volatile ("ldr r0, %2 \n"
269                            "ldr r2, %3 \n"
270                            "ldr r3, %4 \n"
271                            "ssat r1, #8, r0 \n"
272                            "str r1, %0 \n"
273                            "pkhbt r1, r3, r2, LSL #8 \n"
274                            "str r1, %1 \n"
275                            : "=m" (a), "=m" (b)
276                            : "m" (a), "m" (b), "m" (c)
277                            : "r0", "r1", "r2", "r3", "cc");
278              return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
279            ]]),
280          [pulseaudio_cv_support_armv6=yes],
281          [pulseaudio_cv_support_armv6=no])
282       ])
283     AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
284         AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
285       ])
286   ;;
287   *)
288   ;;
289 esac
291 CC_CHECK_TLS
293 AC_CACHE_CHECK([whether $CC knows _Bool],
294   pulseaudio_cv__Bool,
295   [AC_COMPILE_IFELSE(
296      AC_LANG_PROGRAM([], [[_Bool b;]]),
297      [pulseaudio_cv__Bool=yes],
298      [pulseaudio_cv__Bool=no])
299   ])
301 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
302     AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
303   ])
305 #### libtool stuff ####
306 LT_PREREQ(2.2)
307 LT_INIT([dlopen win32-dll disable-static])
309 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
310 dnl exactly which version of libltdl is present in the system, so we
311 dnl just assume that it's a working version as long as we have the
312 dnl library and the header files.
314 dnl As an extra safety device, check for lt_dladvise_init() which is
315 dnl only implemented in libtool 2.x, and refine as we go if we have
316 dnl refined requirements.
318 dnl Check the header files first since the system may have a
319 dnl libltdl.so for runtime, but no headers, and we want to bail out as
320 dnl soon as possible.
322 dnl We don't need any special variable for this though, since the user
323 dnl can give the proper place to find libltdl through the standard
324 dnl variables like LDFLAGS and CPPFLAGS.
326 AC_CHECK_HEADER([ltdl.h],
327     [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
328     [LIBLTDL=])
330 AS_IF([test "x$LIBLTDL" = "x"],
331     [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
332 AC_SUBST([LIBLTDL])
335 ###################################
336 #   Basic environment checks      #
337 ###################################
339 #### Checks for header files. ####
341 # ISO
342 AC_HEADER_STDC
344 # POSIX
345 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
346     netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
347     sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
348     sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
349 AC_CHECK_HEADERS([netinet/ip.h], [], [],
350                  [#include <sys/types.h>
351                   #if HAVE_NETINET_IN_H
352                   # include <netinet/in.h>
353                   #endif
354                   #if HAVE_NETINET_IN_SYSTM_H
355                   # include <netinet/in_systm.h>
356                   #endif
357                  ])
358 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
359 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
361 # Linux
362 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
363 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
365 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
367 # Solaris
368 AC_CHECK_HEADERS_ONCE([sys/filio.h])
370 # Windows
371 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
373 # NetBSD
374 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
376 # Other
377 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
378 AC_CHECK_HEADERS_ONCE([byteswap.h])
379 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
380 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
381 AC_CHECK_HEADERS_ONCE([execinfo.h])
382 AC_CHECK_HEADERS_ONCE([langinfo.h])
383 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
385 #### Typdefs, structures, etc. ####
387 AC_C_CONST
388 AC_C_BIGENDIAN
389 AC_TYPE_PID_T
390 AC_TYPE_SIZE_T
391 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
392     [Define ssize_t if it is not done by the standard libs.])])
393 AC_TYPE_OFF_T
395 AC_TYPE_UID_T
396 AC_CHECK_DECLS(environ)
398 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
399 HAVE_SIGXCPU=1
400 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
401 ], [HAVE_SIGXCPU=0])
402 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
404 # Solaris lacks this
405 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
406     [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
407         [AC_DEFINE([INADDR_NONE],  [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
409 #### POSIX threads ####
411 # Win32 build breaks with win32 pthread installed
412 AS_IF([test "x$os_is_win32" != "x1"],
413   [ACX_PTHREAD])
415 #### Check for libs ####
417 # ISO
418 AC_SEARCH_LIBS([pow], [m])
420 # POSIX
421 AC_SEARCH_LIBS([sched_setscheduler], [rt])
422 AC_SEARCH_LIBS([dlopen], [dl])
423 AC_SEARCH_LIBS([shm_open], [rt])
424 AC_SEARCH_LIBS([inet_ntop], [nsl])
425 AC_SEARCH_LIBS([timer_create], [rt])
426 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
427 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
428 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
430 # BSD
431 AC_SEARCH_LIBS([connect], [socket])
432 AC_SEARCH_LIBS([backtrace], [execinfo])
434 # Darwin/OS X
435 if test "x$os_is_darwin" = "x1" ; then
436     AC_MSG_CHECKING([looking for Apple CoreService Framework])
437     # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
438     AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
439     [LIBS="$LIBS -framework CoreServices"],
440     [AC_MSG_ERROR([CoreServices.h header file not found]) ])
442     AC_MSG_RESULT([ok])
443     AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
444     HAVE_BONJOUR=1
447 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
449 # Windows
450 AC_SEARCH_LIBS([regexec], [pcreposix])
451 # This magic is needed so we do not needlessly add static libs to the win32  build, disabling its ability to make dlls.
452 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
454 #### Check for functions ####
456 # ISO
457 AC_CHECK_FUNCS_ONCE([lrintf strtof])
459 # POSIX
460 AC_FUNC_FORK
461 AC_FUNC_GETGROUPS
462 AC_FUNC_SELECT_ARGTYPES
463 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
464     getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
465     pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
466     sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
467 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
469 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
471 # X/OPEN
472 AC_CHECK_FUNCS_ONCE([readlink])
474 # SUSv2
475 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
477 # SUSv3
478 AC_CHECK_FUNCS_ONCE([strerror_r])
480 # BSD
481 AC_CHECK_FUNCS_ONCE([lstat])
483 # Non-standard
485 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
487 AC_FUNC_ALLOCA
489 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
490   pulseaudio_cv_PTHREAD_PRIO_INHERIT,
491   [save_CC=$CC; CC=$PTHREAD_CC
492    save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
493    save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
494    AC_LINK_IFELSE(
495      AC_LANG_PROGRAM(
496        [[
497          #include <pthread.h>
498        ]],
499        [[int i = PTHREAD_PRIO_INHERIT;]]),
500      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
501      [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
502    CC=$save_CC
503    CFLAGS=$save_CFLAGS
504    LIBS=$save_LIBS
505   ])
507 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
508     AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
509   ])
511 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
512 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
514 #### Large File-Support (LFS) ####
516 AC_SYS_LARGEFILE
518 # Check for open64 to know if the current system does have open64() and similar functions
519 AC_CHECK_FUNCS_ONCE([open64])
521 #### [lib]iconv ####
523 AM_ICONV
525 IT_PROG_INTLTOOL([0.35.0])
526 GETTEXT_PACKAGE=pulseaudio
527 AC_SUBST([GETTEXT_PACKAGE])
528 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
529 AM_GLIB_GNU_GETTEXT
531 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
532 AC_SUBST(pulselocaledir)
534 ###################################
535 #      External libraries         #
536 ###################################
538 #### pkg-config ####
540 PKG_PROG_PKG_CONFIG
542 #### X11 (optional) ####
544 AC_ARG_ENABLE([x11],
545     AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
547 AS_IF([test "x$enable_x11" != "xno"],
548     [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
549     HAVE_X11=0)
551 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
552     [AC_MSG_ERROR([*** X11 not found])])
554 AC_SUBST(X11_CFLAGS)
555 AC_SUBST(X11_LIBS)
556 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
557 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
559 #### Capabilities (optional) ####
561 CAP_LIBS=''
563 AC_ARG_WITH(
564         [caps],
565         AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
567 if test "x${with_caps}" != "xno"; then
568     AC_SEARCH_LIBS([cap_init], [cap], [], [
569                     if test "x${with_caps}" = "xyes" ; then
570                         AC_MSG_ERROR([*** POSIX caps libraries not found])
571                     fi])
572     AC_CHECK_HEADERS([sys/capability.h], [], [
573                     if test "x${with_caps}" = "xyes" ; then
574                         AC_MSG_ERROR([*** POSIX caps headers not found])
575                     fi])
578 #### Valgrind (optional) ####
580 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
582 #### json parsing ####
584 PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ])
585 AC_SUBST(LIBJSON_CFLAGS)
586 AC_SUBST(LIBJSON_LIBS)
588 #### Sound file ####
590 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
591 AC_SUBST(LIBSNDFILE_CFLAGS)
592 AC_SUBST(LIBSNDFILE_LIBS)
594 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
595 AC_SUBST(LIBSPEEX_CFLAGS)
596 AC_SUBST(LIBSPEEX_LIBS)
598 #### atomic-ops ###
600 AC_MSG_CHECKING([whether we need libatomic_ops])
601 if test "x$need_libatomic_ops" = "xyes"; then
602    AC_MSG_RESULT([yes])
603    AC_CHECK_HEADERS([atomic_ops.h], [], [
604    AC_MSG_ERROR([*** libatomic-ops headers not found])
605    ])
607    # Win32 does not need the lib and breaks horribly if we try to include it
608    if test "x$os_is_win32" != "x1" ; then
609        LIBS="$LIBS -latomic_ops"
610    fi
611 else
612    AC_MSG_RESULT([no])
615 #### Libsamplerate support (optional) ####
617 AC_ARG_ENABLE([samplerate],
618     AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
620 AS_IF([test "x$enable_samplerate" != "xno"],
621     [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
622     HAVE_LIBSAMPLERATE=0)
624 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
625     [AC_MSG_ERROR([*** Libsamplerate not found])])
627 AC_SUBST(LIBSAMPLERATE_CFLAGS)
628 AC_SUBST(LIBSAMPLERATE_LIBS)
629 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
630 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
632 #### Database support ####
634 AC_ARG_WITH([database],
635     AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
638 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
639     [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
640     HAVE_TDB=0)
641 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
643 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
644     [AC_MSG_ERROR([*** tdb not found])])
647 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
648     [
649         HAVE_GDBM=1
650         AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
651         AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
652     ],
653     HAVE_GDBM=0)
654 AS_IF([test "x$HAVE_GDBM" = "x1"],
655     [
656         with_database=gdbm
657         GDBM_CFLAGS=
658         GDBM_LIBS=-lgdbm
659     ])
661 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
662     [AC_MSG_ERROR([*** gdbm not found])])
665 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
666     HAVE_SIMPLEDB=1,
667     HAVE_SIMPLEDB=0)
668 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
670 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
671     AC_MSG_ERROR([*** missing database backend]))
674 AC_SUBST(TDB_CFLAGS)
675 AC_SUBST(TDB_LIBS)
676 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
677 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
679 AC_SUBST(GDBM_CFLAGS)
680 AC_SUBST(GDBM_LIBS)
681 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
682 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
684 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
685 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
687 #### OSS support (optional) ####
689 AC_ARG_ENABLE([oss-output],
690     AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
692 AC_ARG_ENABLE([oss-wrapper],
693     AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
695 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
696     [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
697     HAVE_OSS=0)
699 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
700     [AC_MSG_ERROR([*** OSS support not found])])
702 AS_IF([test "x$enable_oss_output" != "xno"],
703     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
704     HAVE_OSS_OUTPUT=0)
706 AS_IF([test "x$enable_oss_wrapper" != "xno"],
707     [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
708     HAVE_OSS_WRAPPER=0)
710 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
711 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
712 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
713 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
715 #### CoreAudio support (optional) ####
717 AC_ARG_ENABLE([coreaudio-output],
718     AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
720 AS_IF([test "x$enable_coreaudio_output" != "xno"],
721     [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
722     HAVE_COREAUDIO=0)
724 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
725     [AC_MSG_ERROR([*** CoreAudio output support not found])])
727 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
729 #### ALSA support (optional) ####
731 AC_ARG_ENABLE([alsa],
732     AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
734 AS_IF([test "x$enable_alsa" != "xno"],
735     [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
736     HAVE_ALSA=0)
738 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
739     [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
741 AC_SUBST(ASOUNDLIB_CFLAGS)
742 AC_SUBST(ASOUNDLIB_LIBS)
743 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
744 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
746 #### Solaris audio support (optional) ####
748 AC_ARG_ENABLE([solaris],
749     AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
751 AS_IF([test "x$enable_solaris" != "xno"],
752     [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
753     HAVE_SOLARIS=0)
755 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
756     [AC_MSG_ERROR([*** Solaris audio support not found])])
758 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
759 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
761 #### WaveOut audio support (optional) ####
763 AC_ARG_ENABLE([waveout],
764     AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
766 AS_IF([test "x$enable_waveout" != "xno"],
767     [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
768     HAVE_WAVEOUT=0)
770 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
771     [AC_MSG_ERROR([*** WaveOut audio support not found])])
773 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
774 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
776 #### GLib 2 support (optional) ####
778 AC_ARG_ENABLE([glib2],
779     AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
781 AS_IF([test "x$enable_glib2" != "xno"],
782     [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
783     HAVE_GLIB20=0)
785 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
786     [AC_MSG_ERROR([*** GLib 2 support not found])])
788 AC_SUBST(GLIB20_CFLAGS)
789 AC_SUBST(GLIB20_LIBS)
790 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
791 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
793 #### GTK2 support (optional) ####
795 AC_ARG_ENABLE([gtk2],
796     AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]))
798 AS_IF([test "x$enable_gtk2" != "xno"],
799     [PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], HAVE_GTK20=1, HAVE_GTK20=0)],
800     HAVE_GTK20=0)
802 AS_IF([test "x$enable_gtk2" = "xyes" && test "x$HAVE_GTK20" = "x0"],
803     [AC_MSG_ERROR([*** Gtk+ 2 support not found])])
805 AC_SUBST(GTK20_CFLAGS)
806 AC_SUBST(GTK20_LIBS)
807 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
808 AS_IF([test "x$HAVE_GTK20" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
810 #### GConf support (optional) ####
812 AC_ARG_ENABLE([gconf],
813     AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
815 AS_IF([test "x$enable_gconf" != "xno"],
816     [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
817     HAVE_GCONF=0)
819 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
820     [AC_MSG_ERROR([*** GConf support not found])])
822 AC_SUBST(GCONF_CFLAGS)
823 AC_SUBST(GCONF_LIBS)
824 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
826 #### Avahi support (optional) ####
828 AC_ARG_ENABLE([avahi],
829     AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
831 AS_IF([test "x$enable_avahi" != "xno"],
832     [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
833     HAVE_AVAHI=0)
835 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
836     [AC_MSG_ERROR([*** Avahi support not found])])
838 AC_SUBST(AVAHI_CFLAGS)
839 AC_SUBST(AVAHI_LIBS)
840 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
842 ### JACK (optional) ####
844 AC_ARG_ENABLE([jack],
845     AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
847 AS_IF([test "x$enable_jack" != "xno"],
848     [PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ], HAVE_JACK=1, HAVE_JACK=0)],
849     HAVE_JACK=0)
851 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
852     [AC_MSG_ERROR([*** JACK support not found])])
854 AC_SUBST(JACK_CFLAGS)
855 AC_SUBST(JACK_LIBS)
856 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
858 #### Async DNS support (optional) ####
860 AC_ARG_ENABLE([asyncns],
861     AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
863 AS_IF([test "x$enable_asyncns" != "xno"],
864     [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
865     HAVE_LIBASYNCNS=0)
867 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
868     [AC_MSG_ERROR([*** Async DNS support not found])])
870 AC_SUBST(LIBASYNCNS_CFLAGS)
871 AC_SUBST(LIBASYNCNS_LIBS)
872 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
873 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
875 #### TCP wrappers (optional) ####
877 AC_ARG_ENABLE([tcpwrap],
878     AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
880 AS_IF([test "x$enable_tcpwrap" != "xno"],
881     [
882         ACX_LIBWRAP
883         AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
884     ],
885     HAVE_TCPWRAP=0)
887 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
888     [AC_MSG_ERROR([*** TCP wrappers support not found])])
890 AC_SUBST(LIBWRAP_LIBS)
892 #### LIRC support (optional) ####
894 AC_ARG_ENABLE([lirc],
895     AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
897 AS_IF([test "x$enable_lirc" != "xno"],
898     [ACX_LIRC],
899     HAVE_LIRC=0)
901 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
902     [AC_MSG_ERROR([*** LIRC support not found])])
904 AC_SUBST(LIRC_CFLAGS)
905 AC_SUBST(LIRC_LIBS)
906 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
908 #### HAL support (optional) ####
910 AC_ARG_ENABLE([hal],
911     AS_HELP_STRING([--disable-hal],[Disable optional HAL support]))
913 AS_IF([test "x$enable_hal" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
914     [PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], HAVE_HAL=1, HAVE_HAL=0)],
915     HAVE_HAL=0)
917 AS_IF([test "x$enable_hal" = "xyes" && test "x$HAVE_HAL" = "x0"],
918     [AC_MSG_ERROR([*** HAL support not found])])
920 AC_SUBST(HAL_CFLAGS)
921 AC_SUBST(HAL_LIBS)
922 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
923 AS_IF([test "x$HAVE_HAL" = "x1"], AC_DEFINE([HAVE_HAL], 1, [Have HAL.]))
925 #### UDEV support (optional) ####
927 AC_ARG_ENABLE([udev],
928     AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
930 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
931     [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
932     HAVE_UDEV=0)
934 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
935     [AC_MSG_ERROR([*** UDEV support not found])])
937 AC_SUBST(UDEV_CFLAGS)
938 AC_SUBST(UDEV_LIBS)
939 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
940 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
942 #### BlueZ support (optional) ####
944 AC_ARG_ENABLE([bluez],
945     AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
947 AS_IF([test "x$enable_bluez" != "xno"],
948     [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
949     HAVE_BLUEZ=0)
951 AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
952     [AC_MSG_ERROR([*** BLUEZ support not found])])
954 AC_SUBST(BLUEZ_CFLAGS)
955 AC_SUBST(BLUEZ_LIBS)
956 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
958 #### D-Bus support (optional) ####
960 AC_ARG_ENABLE([dbus],
961     AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
963 AS_IF([test "x$enable_dbus" != "xno"],
964     [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], HAVE_DBUS=1, HAVE_DBUS=0)],
965     HAVE_DBUS=0)
967 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
968     [AC_MSG_ERROR([*** D-Bus support not found])])
970 AS_IF([test "x$HAVE_DBUS" = "x1"],
971     [
972         save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
973         save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
974         AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
975         CFLAGS="$save_CFLAGS"
976         LIBS="$save_LIBS"
977     ])
979 AC_SUBST(DBUS_CFLAGS)
980 AC_SUBST(DBUS_LIBS)
981 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
982 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
984 # HAL and BlueZ depend on D-Bus: So double check if they were explicitly enabled.
985 if test "x$HAVE_DBUS" != "x1" ; then
986     HAVE_HAL=0
987     if test "x$enable_hal" = "xyes"; then
988         AC_MSG_ERROR([*** D-Bus support is required by HAL])
989     fi
991     HAVE_BLUEZ=0
992     if test "x$enable_bluez" = "xyes"; then
993         AC_MSG_ERROR([*** D-Bus support is required by BLUEZ])
994     fi
997 #### HAL compat support (optional) ####
999 AC_ARG_ENABLE([hal-compat],
1000     AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
1002 if test "x$enable_hal_compat" != "xno" -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1"; then
1003     HAVE_HAL_COMPAT=1
1004     AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1005 else
1006     HAVE_HAL_COMPAT=0
1009 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1011 ### IPv6 connection support (optional) ###
1013 AC_ARG_ENABLE([ipv6],
1014     AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1016 if test "x$enable_ipv6" != "xno"; then
1017     AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1018     HAVE_IPV6=1
1019 else
1020     HAVE_IPV6=0
1023 #### OpenSSL support (optional) ####
1025 AC_ARG_ENABLE([openssl],
1026     AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1028 AS_IF([test "x$enable_openssl" != "xno"],
1029     [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1030     HAVE_OPENSSL=0)
1032 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1033     [AC_MSG_ERROR([*** OpenSSL support not found])])
1035 AC_SUBST(OPENSSL_CFLAGS)
1036 AC_SUBST(OPENSSL_LIBS)
1037 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1038 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1040 #### FFTW (optional) ####
1041 AC_ARG_WITH([fftw],
1042     AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1044 AS_IF([test "x$with_fftw" != "xno"],
1045     [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1046     HAVE_FFTW=0)
1048 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1050 ### ORC (optional) ###
1051 ORC_CHECK([0.4.11])
1053 ### Build and Install man pages ###
1054 AC_ARG_ENABLE([manpages],
1055     AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1057 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1059 #### PulseAudio system group & user  #####
1061 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1062 if test -z "$with_system_user" ; then
1063     PA_SYSTEM_USER=pulse
1064 else
1065     PA_SYSTEM_USER=$with_system_user
1067 AC_SUBST(PA_SYSTEM_USER)
1068 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1070 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1071 if test -z "$with_system_group" ; then
1072     PA_SYSTEM_GROUP=pulse
1073 else
1074     PA_SYSTEM_GROUP=$with_system_group
1076 AC_SUBST(PA_SYSTEM_GROUP)
1077 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1079 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)]))
1080 if test -z "$with_access_group" ; then
1081     PA_ACCESS_GROUP=pulse-access
1082 else
1083     PA_ACCESS_GROUP=$with_access_group
1085 AC_SUBST(PA_ACCESS_GROUP)
1086 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1088 AC_ARG_ENABLE([per-user-esound-socket],
1089     AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1091 if test "x$enable_per_user_esound_socket" != "xno"; then
1092     USE_PER_USER_ESOUND_SOCKET=1
1093     AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1094 else
1095     USE_PER_USER_ESOUND_SOCKET=0
1098 #### PulseAudio system runtime dir ####
1099 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1100 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1101 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1102 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1103 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1104 AC_SUBST(PA_SYSTEM_STATE_PATH)
1107 #### Mac OSX specific stuff #####
1109 AC_ARG_ENABLE(mac-universal,
1110     AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1111     enable_mac_universal=$enableval, enable_mac_universal="no")
1113 AC_ARG_WITH(mac-version-min,
1114     AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1115     mac_version_min=$withval, mac_version_min="10.5")
1117 AC_ARG_WITH(mac-sysroot,
1118     AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1119     mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1121 if test "x$os_is_darwin" = "x1" ; then
1122     LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1123     CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1125     if test "x$enable_mac_universal" = "xyes" ; then
1126         mac_arches="-arch i386 -arch x86_64"
1127         LDFLAGS="$LDFLAGS $mac_arches"
1128         CFLAGS="$CFLAGS $mac_arches"
1129     fi
1133 ###################################
1134 #            Output               #
1135 ###################################
1137 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1139 AC_ARG_ENABLE([legacy-runtime-dir],
1140         AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1141 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1142         AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1145 AC_ARG_ENABLE([static-bins],
1146     AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1148 if test "x$enable_static_bins" = "xyes"; then
1149     STATIC_BINS=1
1150 else
1151     STATIC_BINS=0
1154 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1156 AC_ARG_WITH(
1157         [preopen-mods],
1158         AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1159         [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1160 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1161 if test "x$PREOPEN_MODS" != "xall" ; then
1162     tmpLIBS=""
1163     for mod in $PREOPEN_MODS; do
1164         tmpLIBS="$tmpLIBS module-$mod.la"
1165     done
1166     PREOPEN_MODS="$tmpLIBS"
1167     AC_SUBST(PREOPEN_MODS)
1170 AC_ARG_WITH(
1171         [module-dir],
1172         AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1173         [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1175 AC_SUBST(modlibexecdir)
1177 AC_ARG_WITH(
1178         [udev-rules-dir],
1179         AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1180         [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1182 AC_SUBST(udevrulesdir)
1184 AC_ARG_ENABLE([force-preopen],
1185     AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1187 if test "x$enable_force_preopen" = "xyes"; then
1188     FORCE_PREOPEN=yes
1189 else
1190     FORCE_PREOPEN=no
1193 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1195 AC_CONFIG_FILES([
1196 Makefile
1197 src/Makefile
1198 man/Makefile
1199 libpulse.pc
1200 libpulse-simple.pc
1201 libpulse-browse.pc
1202 libpulse-mainloop-glib.pc
1203 doxygen/Makefile
1204 doxygen/doxygen.conf
1205 src/pulse/version.h
1206 po/Makefile.in
1209 AC_OUTPUT
1211 # ==========================================================================
1213 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1214 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1215 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1216 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1217 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1218 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1219 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1220 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1221 AS_IF([test "x$HAVE_GTK20" = "x1"], ENABLE_GTK20=yes, ENABLE_GTK20=no)
1222 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1223 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1224 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1225 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1226 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1227 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1228 AS_IF([test "x$HAVE_HAL" = "x1"], ENABLE_HAL=yes, ENABLE_HAL=no)
1229 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1230 AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
1231 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1232 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1233 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1234 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1235 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1236 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1237 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1238 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1239 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1240 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1241 AS_IF([test "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1243 echo "
1244  ---{ $PACKAGE_NAME $VERSION }---
1246     prefix:                        ${prefix}
1247     sysconfdir:                    ${sysconfdir}
1248     localstatedir:                 ${localstatedir}
1249     System Runtime Path:           ${PA_SYSTEM_RUNTIME_PATH}
1250     System State Path:             ${PA_SYSTEM_STATE_PATH}
1251     System Config Path:            ${PA_SYSTEM_CONFIG_PATH}
1252     Compiler:                      ${CC}
1253     CFLAGS:                        ${CFLAGS}
1254     LIBS:                          ${LIBS}
1256     Enable X11:                    ${ENABLE_X11}
1257     Enable OSS Output:             ${ENABLE_OSS_OUTPUT}
1258     Enable OSS Wrapper:            ${ENABLE_OSS_WRAPPER}
1259     Enable Alsa:                   ${ENABLE_ALSA}
1260     Enable CoreAudio:              ${ENABLE_COREAUDIO}
1261     Enable Solaris:                ${ENABLE_SOLARIS}
1262     Enable WaveOut:                ${ENABLE_WAVEOUT}
1263     Enable GLib 2.0:               ${ENABLE_GLIB20}
1264     Enable Gtk+ 2.0:               ${ENABLE_GTK20}
1265     Enable GConf:                  ${ENABLE_GCONF}
1266     Enable Avahi:                  ${ENABLE_AVAHI}
1267     Enable Jack:                   ${ENABLE_JACK}
1268     Enable Async DNS:              ${ENABLE_LIBASYNCNS}
1269     Enable LIRC:                   ${ENABLE_LIRC}
1270     Enable D-Bus:                  ${ENABLE_DBUS}
1271       Enable HAL:                  ${ENABLE_HAL}
1272       Enable BlueZ:                ${ENABLE_BLUEZ}
1273     Enable udev:                   ${ENABLE_UDEV}
1274       Enable HAL->udev compat:     ${ENABLE_HAL_COMPAT}
1275     Enable TCP Wrappers:           ${ENABLE_TCPWRAP}
1276     Enable libsamplerate:          ${ENABLE_LIBSAMPLERATE}
1277     Enable IPv6:                   ${ENABLE_IPV6}
1278     Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1279     Enable fftw:                   ${ENABLE_FFTW}
1280     Enable orc:                    ${ENABLE_ORC}
1281     Database
1282       tdb:                         ${ENABLE_TDB}
1283       gdbm:                        ${ENABLE_GDBM}
1284       simple database:             ${ENABLE_SIMPLEDB}
1286     System User:                   ${PA_SYSTEM_USER}
1287     System Group:                  ${PA_SYSTEM_GROUP}
1288     Access Group:                  ${PA_ACCESS_GROUP}
1289     Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1290     Force preopen:                 ${FORCE_PREOPEN}
1291     Preopened modules:             ${PREOPEN_MODS}
1294 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1295    echo "
1296 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1297 You do not have D-Bus support enabled. It is strongly recommended
1298 that you enable D-Bus support if your platform supports it.
1299 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1300 to the Device Reservation Protocol to speak to JACK, Bluetooth
1301 support and even a native control protocol for communicating and
1302 controling the PulseAudio daemon itself.
1303 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1307 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1308    echo "
1309 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1310 You do not have udev support enabled. It is strongly recommended
1311 that you enable udev support if your platform supports it as it is
1312 the primary method used to detect hardware audio devices (on Linux)
1313 and is thus a critical part of PulseAudio on that platform.
1314 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====