]> code.delx.au - pulseaudio/blob - configure.ac
build-sys: look for function 'backtrace' also in library 'ubacktrace'
[pulseaudio] / configure.ac
1 # -*- Autoconf -*-
2 # Process this file with autoconf to produce a configure script.
3
4 # This file is part of PulseAudio.
5 #
6 # Copyright 2004-2008 Lennart Poettering
7 # Copyright 2006-2007 Pierre Ossman <ossman@cendio.se> for Cendio AB
8 #
9 # PulseAudio is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU Lesser General Public License as published by
11 # the Free Software Foundation; either version 2 of the License, or
12 # (at your option) any later version.
13 #
14 # PulseAudio is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU Lesser General Public License
20 # along with PulseAudio; if not, write to the Free Software Foundation,
21 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
22
23 AC_PREREQ(2.63)
24
25 AC_INIT([pulseaudio],[m4_esyscmd(./git-version-gen .tarball-version)],[mzchyfrnhqvb (at) 0pointer (dot) net],[pulseaudio],[http://pulseaudio.org/])
26 AC_CONFIG_SRCDIR([src/daemon/main.c])
27 AC_CONFIG_MACRO_DIR([m4])
28 AC_CONFIG_HEADERS([config.h])
29 AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax])
30
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
34 AC_SUBST(PA_MAJOR, pa_major)
35 AC_SUBST(PA_MINOR, pa_minor)
36 AC_SUBST(PA_MAJORMINOR, pa_major.pa_minor)
37
38 AC_SUBST(PA_API_VERSION, 12)
39 AC_SUBST(PA_PROTOCOL_VERSION, 22)
40
41 # The stable ABI for client applications, for the version info x:y:z
42 # always will hold y=z
43 AC_SUBST(LIBPULSE_VERSION_INFO, [12:4:12])
44
45 # A simplified, synchronous, ABI-stable interface for client
46 # applications, for the version info x:y:z always will hold y=z
47 AC_SUBST(LIBPULSE_SIMPLE_VERSION_INFO, [0:3:0])
48
49 # The ABI-stable network browsing interface for client applications,
50 # for the version info x:y:z always will hold y=z
51 AC_SUBST(LIBPULSE_BROWSE_VERSION_INFO, [1:1:1])
52
53 # The ABI-stable GLib adapter for client applications, for the version
54 # info x:y:z always will hold y=z
55 AC_SUBST(LIBPULSE_MAINLOOP_GLIB_VERSION_INFO, [0:4:0])
56
57 AC_CANONICAL_HOST
58 AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
59
60 AC_CHECK_PROG([STOW], [stow], [yes], [no])
61
62 AS_IF([test "x$STOW" = "xyes" && test -d /usr/local/stow], [
63 AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
64 ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
65 ])
66
67 AM_SILENT_RULES([yes])
68
69
70 #### Checks for programs. ####
71
72 # mkdir -p
73
74 AC_PROG_MKDIR_P
75
76 # CC
77
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
83
84 # M4
85
86 AC_CHECK_PROGS([M4], gm4 m4, no)
87 AS_IF([test "x$M4" = "xno"], AC_MSG_ERROR([m4 missing]))
88
89 # pkg-config
90
91 PKG_PROG_PKG_CONFIG
92
93 # gettext
94
95 IT_PROG_INTLTOOL([0.35.0])
96 GETTEXT_PACKAGE=pulseaudio
97 AC_SUBST([GETTEXT_PACKAGE])
98 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
99 AM_GLIB_GNU_GETTEXT
100
101 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
102 AX_DEFINE_DIR(PULSE_LOCALEDIR, pulselocaledir, [Gettext locale dir])
103
104
105 #### Determine host OS ####
106
107 os_is_linux=0
108 os_is_win32=0
109 os_is_darwin=0
110
111 AC_MSG_CHECKING([host operating system])
112 case "$host_os" in
113 linux*)
114 AC_MSG_RESULT([linux])
115 os_is_linux=1
116 ;;
117 darwin*)
118 AC_MSG_RESULT([darwin])
119 os_is_darwin=1
120 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
121 ;;
122 mingw*)
123 AC_MSG_RESULT([win32])
124 os_is_win32=1
125 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
126 ;;
127 *)
128 AC_MSG_RESULT([unknown])
129 ;;
130 esac
131
132 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
133 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
134
135 # Platform specific hacks
136 case "$host_os" in
137 darwin* )
138 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
139 ;;
140 mingw* )
141 AC_DEFINE([WIN32_LEAN_AND_MEAN], 1, [Needed to avoid including unnecessary headers on Windows])
142 ;;
143 solaris* )
144 AC_DEFINE(_XOPEN_SOURCE, 600, [Needed to get declarations for msg_control and msg_controllen on Solaris])
145 AC_DEFINE(__EXTENSIONS__, 1, [Needed to get declarations for msg_control and msg_controllen on Solaris])
146 ;;
147 esac
148
149
150 #### Compiler flags ####
151
152 AX_APPEND_COMPILE_FLAGS(
153 [-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],
154 [], [-pedantic -Werror])
155
156
157 #### Linker flags ####
158
159 # Check whether the linker supports the -version-script option.
160 # The Make variable $(srcdir) needs to be in the LDFLAGS in that form,
161 # so that it is expanded the right way in every subdir.
162 AX_CHECK_LINK_FLAG(["-Wl,-version-script=${srcdir}/src/map-file"],
163 [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
164 AC_SUBST([VERSIONING_LDFLAGS])
165
166 # Use immediate (now) bindings; avoids the funky re-call in itself.
167 # The -z now syntax is lifted from Sun's linker and works with GNU's too, other linkers might be added later.
168 AX_APPEND_LINK_FLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS])
169 AC_SUBST([IMMEDIATE_LDFLAGS])
170
171 # On ELF systems we don't want the libraries to be unloaded since we don't clean them up properly,
172 # so we request the nodelete flag to be enabled.
173 # On other systems, we don't really know how to do that, but it's welcome if somebody can tell.
174 AX_APPEND_LINK_FLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS])
175 AC_SUBST([NODELETE_LDFLAGS])
176
177 # Check for the proper way to build libraries that have no undefined symbols
178 case $host in
179 # FreeBSD (et al.) does not complete linking for shared objects when pthreads
180 # are requested, as different implementations are present.
181 *-freebsd* | *-openbsd*) ;;
182 *)
183 for possible_flag in "-Wl,--no-undefined" "-Wl,-z,defs"; do
184 AX_CHECK_LINK_FLAG([$possible_flag], [NOUNDEFINED_LDFLAGS="$possible_flag"; break])
185 done
186 ;;
187 esac
188 AC_SUBST([NOUNDEFINED_LDFLAGS])
189
190
191 #### Atomic operations ####
192
193 # Native atomic operation support
194 AC_ARG_ENABLE([atomic-arm-linux-helpers],
195 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]))
196
197 AC_ARG_ENABLE([atomic-arm-memory-barrier],
198 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]))
199
200 if test "x$enable_atomic_arm_memory_barrier" = "xyes"; then
201 AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers])
202 fi
203
204 # If everything else fails use libatomic_ops
205 need_libatomic_ops=yes
206
207 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
208 pulseaudio_cv_sync_bool_compare_and_swap, [
209 AC_LINK_IFELSE(
210 AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
211 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
212 [pulseaudio_cv_sync_bool_compare_and_swap=no])
213 ])
214
215 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
216 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
217 need_libatomic_ops=no
218 else
219 # HW specific atomic ops stuff
220 AC_MSG_CHECKING([architecture for native atomic operations])
221 case $host in
222 arm*)
223 AC_MSG_RESULT([arm])
224 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
225 # The Linux kernel helper functions have been there since 2.6.16. However
226 # compile time checking for kernel version in cross compile environment
227 # (which is usually the case for arm cpu) is tricky (or impossible).
228 if test "x$os_is_linux" = "x1" && test "x$enable_atomic_arm_linux_helpers" != "xno"; then
229 AC_MSG_RESULT([yes])
230 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
231 need_libatomic_ops=no
232 else
233 AC_MSG_RESULT([no])
234 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
235 pulseaudio_cv_support_arm_atomic_ops, [
236 AC_COMPILE_IFELSE(
237 AC_LANG_PROGRAM([], [[
238 volatile int a=0;
239 int o=0, n=1, r;
240 asm volatile ("ldrex %0, [%1]\n"
241 "subs %0, %0, %2\n"
242 "strexeq %0, %3, [%1]\n"
243 : "=&r" (r)
244 : "r" (&a), "Ir" (o), "r" (n)
245 : "cc");
246 return (a==1 ? 0 : -1);
247 ]]),
248 [pulseaudio_cv_support_arm_atomic_ops=yes],
249 [pulseaudio_cv_support_arm_atomic_ops=no])
250 ])
251 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
252 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
253 need_libatomic_ops=no
254 ])
255 fi
256 ;;
257 *-netbsdelf5*)
258 AC_MSG_RESULT([yes])
259 need_libatomic_ops=no
260 ;;
261 *-freebsd*)
262 AC_MSG_RESULT([yes])
263 need_libatomic_ops=no
264 ;;
265 *)
266 AC_MSG_RESULT([unknown])
267 ;;
268 esac
269 fi
270
271 # If we're on ARM, check for the ARMV6 instructions we need */
272 case $host in
273 arm*)
274 AC_CACHE_CHECK([support for required armv6 instructions],
275 pulseaudio_cv_support_armv6,
276 [AC_COMPILE_IFELSE(
277 AC_LANG_PROGRAM([],
278 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
279 asm volatile ("ldr r0, %2 \n"
280 "ldr r2, %3 \n"
281 "ldr r3, %4 \n"
282 "ssat r1, #8, r0 \n"
283 "str r1, %0 \n"
284 "pkhbt r1, r3, r2, LSL #8 \n"
285 "str r1, %1 \n"
286 : "=m" (a), "=m" (b)
287 : "m" (a), "m" (b), "m" (c)
288 : "r0", "r1", "r2", "r3", "cc");
289 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
290 ]]),
291 [pulseaudio_cv_support_armv6=yes],
292 [pulseaudio_cv_support_armv6=no])
293 ])
294 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
295 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
296 ])
297 ;;
298 *)
299 ;;
300 esac
301
302
303 #### libtool stuff ####
304
305 LT_PREREQ(2.2)
306 LT_INIT([dlopen win32-dll disable-static])
307
308 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
309 dnl exactly which version of libltdl is present in the system, so we
310 dnl just assume that it's a working version as long as we have the
311 dnl library and the header files.
312 dnl
313 dnl As an extra safety device, check for lt_dladvise_init() which is
314 dnl only implemented in libtool 2.x, and refine as we go if we have
315 dnl refined requirements.
316 dnl
317 dnl Check the header files first since the system may have a
318 dnl libltdl.so for runtime, but no headers, and we want to bail out as
319 dnl soon as possible.
320 dnl
321 dnl We don't need any special variable for this though, since the user
322 dnl can give the proper place to find libltdl through the standard
323 dnl variables like LDFLAGS and CPPFLAGS.
324
325 AC_CHECK_HEADER([ltdl.h],
326 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
327 [LIBLTDL=])
328
329 AS_IF([test "x$LIBLTDL" = "x"],
330 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
331 AC_SUBST([LIBLTDL])
332
333
334 ###################################
335 # Basic environment checks #
336 ###################################
337
338 #### Checks for header files. ####
339
340 # ISO
341 AC_HEADER_STDC
342
343 # POSIX
344 AC_CHECK_HEADERS_ONCE([arpa/inet.h glob.h grp.h netdb.h netinet/in.h \
345 netinet/in_systm.h netinet/tcp.h poll.h pwd.h sched.h \
346 sys/mman.h sys/resource.h sys/select.h sys/socket.h sys/wait.h \
347 sys/uio.h syslog.h sys/dl.h dlfcn.h linux/sockios.h])
348 AC_CHECK_HEADERS([netinet/ip.h], [], [],
349 [#include <sys/types.h>
350 #if HAVE_NETINET_IN_H
351 # include <netinet/in.h>
352 #endif
353 #if HAVE_NETINET_IN_SYSTM_H
354 # include <netinet/in_systm.h>
355 #endif
356 ])
357 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
358 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
359
360 # Linux
361 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
362 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
363
364 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
365
366 # Solaris
367 AC_CHECK_HEADERS_ONCE([sys/filio.h])
368
369 # Windows
370 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
371
372 # NetBSD
373 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
374
375 # Other
376 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
377 AC_CHECK_HEADERS_ONCE([byteswap.h])
378 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
379 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
380 AC_CHECK_HEADERS_ONCE([execinfo.h])
381 AC_CHECK_HEADERS_ONCE([langinfo.h])
382 AC_CHECK_HEADERS_ONCE([regex.h pcreposix.h])
383
384
385 #### Typdefs, structures, etc. ####
386
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], [Define ssize_t if it is not done by the standard libs.]))
392 AC_TYPE_OFF_T
393
394 AC_TYPE_UID_T
395 AC_CHECK_DECLS(environ)
396
397 # SIGXCPU
398 AX_CHECK_DEFINE([signal.h], [SIGXCPU], [HAVE_SIGXCPU=1], [HAVE_SIGXCPU=0])
399 AS_IF([test "x$HAVE_SIGXCPU" = "x1"], AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?]))
400 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
401
402 # INADDR_NONE, Solaris lacks this
403 AX_CHECK_DEFINE([netinet/in.h], [INADDR_NONE], [],
404 [AX_CHECK_DEFINE([winsock2.h], [INADDR_NONE], [],
405 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
406
407
408 # _Bool
409 AC_CACHE_CHECK([whether $CC knows _Bool],
410 pulseaudio_cv__Bool,
411 [AC_COMPILE_IFELSE(
412 AC_LANG_PROGRAM([], [[_Bool b;]]),
413 [pulseaudio_cv__Bool=yes],
414 [pulseaudio_cv__Bool=no])
415 ])
416
417 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.]))
418
419
420 #### Thread support ####
421
422 AX_TLS
423 AS_IF([test "$ac_cv_tls" == "__thread"],
424 AC_DEFINE([SUPPORT_TLS___THREAD], 1, [Define this if the compiler supports __thread for Thread-Local Storage]))
425
426 # Win32 build breaks with win32 pthread installed
427 AS_IF([test "x$os_is_win32" != "x1"],
428 [AX_PTHREAD])
429
430 AS_IF([test "x$ax_pthread_ok" == "xyes"],
431 AC_DEFINE([_POSIX_PTHREAD_SEMANTICS], 1, [Needed on Solaris]))
432
433
434 #### Check for libs ####
435
436 # ISO
437 AC_SEARCH_LIBS([pow], [m])
438
439 # POSIX
440 AC_SEARCH_LIBS([sched_setscheduler], [rt])
441 AC_SEARCH_LIBS([dlopen], [dl])
442 AC_SEARCH_LIBS([shm_open], [rt])
443 AC_SEARCH_LIBS([inet_ntop], [nsl])
444 AC_SEARCH_LIBS([timer_create], [rt])
445 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
446 AC_SEARCH_LIBS([pthread_getname_np], [pthread])
447 AC_SEARCH_LIBS([pthread_setname_np], [pthread])
448
449 # BSD
450 AC_SEARCH_LIBS([connect], [socket])
451 AC_SEARCH_LIBS([backtrace], [execinfo ubacktrace])
452
453 # Darwin/OS X
454 if test "x$os_is_darwin" = "x1" ; then
455 AC_MSG_CHECKING([looking for Apple CoreService Framework])
456 # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
457 AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
458 [LIBS="$LIBS -framework CoreServices"],
459 [AC_MSG_ERROR([CoreServices.h header file not found])]
460 )
461
462 AC_MSG_RESULT([ok])
463 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
464 HAVE_BONJOUR=1
465 fi
466
467 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
468
469 # Windows
470 AC_SEARCH_LIBS([regexec], [pcreposix])
471 # This magic is needed so we do not needlessly add static libs to the win32 build, disabling its ability to make dlls.
472 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
473
474
475 #### Check for functions ####
476
477 # ISO
478 AC_CHECK_FUNCS_ONCE([lrintf strtof])
479
480 # POSIX
481 AC_FUNC_FORK
482 AC_FUNC_GETGROUPS
483 AC_FUNC_SELECT_ARGTYPES
484 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
485 getpwnam_r getpwuid_r gettimeofday getuid mlock nanosleep \
486 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
487 sigaction sleep symlink sysconf uname pthread_setaffinity_np pthread_getname_np pthread_setname_np])
488 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
489
490 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
491
492 # X/OPEN
493 AC_CHECK_FUNCS_ONCE([readlink])
494
495 # SUSv2
496 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
497
498 # SUSv3
499 AC_CHECK_FUNCS_ONCE([strerror_r])
500
501 # BSD
502 AC_CHECK_FUNCS_ONCE([lstat])
503
504 # Non-standard
505 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
506
507 AC_FUNC_ALLOCA
508
509 AC_CHECK_FUNCS([regexec], [HAVE_REGEX=1], [HAVE_REGEX=0])
510 AM_CONDITIONAL(HAVE_REGEX, [test "x$HAVE_REGEX" = "x1"])
511
512 # Large File-Support (LFS)
513 AC_SYS_LARGEFILE
514 # Check for open64 to know if the current system does have open64() and similar functions
515 AC_CHECK_FUNCS_ONCE([open64])
516
517
518 ###################################
519 # External libraries #
520 ###################################
521
522 #### [lib]iconv ####
523
524 AM_ICONV
525
526 #### X11 (optional) ####
527
528 AC_ARG_ENABLE([x11],
529 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]))
530
531 AS_IF([test "x$enable_x11" != "xno"],
532 [PKG_CHECK_MODULES(X11, [ x11-xcb xcb >= 1.6 ice sm xtst ], HAVE_X11=1, HAVE_X11=0)],
533 HAVE_X11=0)
534
535 AS_IF([test "x$enable_x11" = "xyes" && test "x$HAVE_X11" = "x0"],
536 [AC_MSG_ERROR([*** X11 not found])])
537
538 AC_SUBST(X11_CFLAGS)
539 AC_SUBST(X11_LIBS)
540 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
541 AS_IF([test "x$HAVE_X11" = "x1"], AC_DEFINE([HAVE_X11], 1, [Have X11?]))
542
543 #### Capabilities (optional) ####
544
545 CAP_LIBS=''
546
547 AC_ARG_WITH([caps],
548 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
549
550 if test "x${with_caps}" != "xno"; then
551 AC_SEARCH_LIBS([cap_init], [cap], [], [
552 if test "x${with_caps}" = "xyes" ; then
553 AC_MSG_ERROR([*** POSIX caps libraries not found])
554 fi])
555 AC_CHECK_HEADERS([sys/capability.h], [], [
556 if test "x${with_caps}" = "xyes" ; then
557 AC_MSG_ERROR([*** POSIX caps headers not found])
558 fi])
559 fi
560
561 #### Valgrind (optional) ####
562
563 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
564
565 #### json parsing ####
566
567 PKG_CHECK_MODULES(LIBJSON, [ json >= 0.9 ])
568 AC_SUBST(LIBJSON_CFLAGS)
569 AC_SUBST(LIBJSON_LIBS)
570
571 #### Sound file ####
572
573 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
574 AC_SUBST(LIBSNDFILE_CFLAGS)
575 AC_SUBST(LIBSNDFILE_LIBS)
576
577 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
578 AC_SUBST(LIBSPEEX_CFLAGS)
579 AC_SUBST(LIBSPEEX_LIBS)
580
581 #### atomic-ops ####
582
583 AC_MSG_CHECKING([whether we need libatomic_ops])
584 if test "x$need_libatomic_ops" = "xyes"; then
585 AC_MSG_RESULT([yes])
586 AC_CHECK_HEADERS([atomic_ops.h],
587 [CFLAGS="$CFLAGS -DAO_REQUIRE_CAS"],
588 [AC_MSG_ERROR([*** libatomic-ops headers not found])])
589
590 # Win32 does not need the lib and breaks horribly if we try to include it
591 AS_IF([test "x$os_is_win32" != "x1"], [LIBS="$LIBS -latomic_ops"])
592 else
593 AC_MSG_RESULT([no])
594 fi
595
596 #### Libsamplerate support (optional) ####
597
598 AC_ARG_ENABLE([samplerate],
599 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]))
600
601 AS_IF([test "x$enable_samplerate" != "xno"],
602 [PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ], HAVE_LIBSAMPLERATE=1, HAVE_LIBSAMPLERATE=0)],
603 HAVE_LIBSAMPLERATE=0)
604
605 AS_IF([test "x$enable_samplerate" = "xyes" && test "x$HAVE_LIBSAMPLERATE" = "x0"],
606 [AC_MSG_ERROR([*** Libsamplerate not found])])
607
608 AC_SUBST(LIBSAMPLERATE_CFLAGS)
609 AC_SUBST(LIBSAMPLERATE_LIBS)
610 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
611 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?]))
612
613 #### Database support ####
614
615 AC_ARG_WITH([database],
616 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
617
618
619 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xtdb"],
620 [PKG_CHECK_MODULES(TDB, [ tdb ], HAVE_TDB=1, HAVE_TDB=0)],
621 HAVE_TDB=0)
622 AS_IF([test "x$HAVE_TDB" = "x1"], with_database=tdb)
623
624 AS_IF([test "x$with_database" = "xtdb" && test "x$HAVE_TDB" = "x0"],
625 [AC_MSG_ERROR([*** tdb not found])])
626
627
628 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xgdbm"],
629 [
630 HAVE_GDBM=1
631 AC_CHECK_LIB(gdbm, gdbm_open, [], HAVE_GDBM=0)
632 AC_CHECK_HEADERS(gdbm.h, [], HAVE_GDBM=0)
633 ],
634 HAVE_GDBM=0)
635 AS_IF([test "x$HAVE_GDBM" = "x1"],
636 [
637 with_database=gdbm
638 GDBM_CFLAGS=
639 GDBM_LIBS=-lgdbm
640 ])
641
642 AS_IF([test "x$with_database" = "xgdbm" && test "x$HAVE_GDBM" = "x0"],
643 [AC_MSG_ERROR([*** gdbm not found])])
644
645
646 AS_IF([test "x$with_database" = "xauto" -o "x$with_database" = "xsimple"],
647 HAVE_SIMPLEDB=1,
648 HAVE_SIMPLEDB=0)
649 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], with_database=simple)
650
651 AS_IF([test "x$HAVE_TDB" != x1 -a "x$HAVE_GDBM" != x1 -a "x$HAVE_SIMPLEDB" != x1],
652 AC_MSG_ERROR([*** missing database backend]))
653
654
655 AC_SUBST(TDB_CFLAGS)
656 AC_SUBST(TDB_LIBS)
657 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
658 AS_IF([test "x$HAVE_TDB" = "x1"], AC_DEFINE([HAVE_TDB], 1, [Have tdb?]))
659
660 AC_SUBST(GDBM_CFLAGS)
661 AC_SUBST(GDBM_LIBS)
662 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
663 AS_IF([test "x$HAVE_GDBM" = "x1"], AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?]))
664
665 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
666 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?]))
667
668 #### OSS support (optional) ####
669
670 AC_ARG_ENABLE([oss-output],
671 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]))
672
673 AC_ARG_ENABLE([oss-wrapper],
674 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]))
675
676 AS_IF([test "x$enable_oss_output" != "xno" -o "x$enable_oss_wrapper" != "xno"],
677 [AC_CHECK_HEADERS([sys/soundcard.h], HAVE_OSS=1, HAVE_OSS=0)],
678 HAVE_OSS=0)
679
680 AS_IF([test "x$enable_oss_output" = "xyes" -o "x$enable_oss_wrapper" = "xyes" && test "x$HAVE_OSS" = "x0"],
681 [AC_MSG_ERROR([*** OSS support not found])])
682
683 AS_IF([test "x$enable_oss_output" != "xno"],
684 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_OUTPUT=1, HAVE_OSS_OUTPUT=0)],
685 HAVE_OSS_OUTPUT=0)
686
687 AS_IF([test "x$enable_oss_wrapper" != "xno"],
688 [AS_IF([test "x$HAVE_OSS" = "x1"], HAVE_OSS_WRAPPER=1, HAVE_OSS_WRAPPER=0)],
689 HAVE_OSS_WRAPPER=0)
690
691 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS_OUTPUT" = "x1"])
692 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS_WRAPPER" = "x1"])
693 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?]))
694 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?]))
695
696 #### CoreAudio support (optional) ####
697
698 AC_ARG_ENABLE([coreaudio-output],
699 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]))
700
701 AS_IF([test "x$enable_coreaudio_output" != "xno"],
702 [AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1, HAVE_COREAUDIO=0)],
703 HAVE_COREAUDIO=0)
704
705 AS_IF([test "x$enable_coreaudio_output" = "xyes" && test "x$HAVE_COREAUDIO" = "x0"],
706 [AC_MSG_ERROR([*** CoreAudio output support not found])])
707
708 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = "x1" && test "x$enable_coreaudio_output" != "xno"])
709
710 #### ALSA support (optional) ####
711
712 AC_ARG_ENABLE([alsa],
713 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]))
714
715 AS_IF([test "x$enable_alsa" != "xno"],
716 [PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ], HAVE_ALSA=1, HAVE_ALSA=0)],
717 HAVE_ALSA=0)
718
719 AS_IF([test "x$enable_alsa" = "xyes" && test "x$HAVE_ALSA" = "x0"],
720 [AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])])
721
722 AC_SUBST(ASOUNDLIB_CFLAGS)
723 AC_SUBST(ASOUNDLIB_LIBS)
724 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
725 AS_IF([test "x$HAVE_ALSA" = "x1"], AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?]))
726
727 #### Solaris audio support (optional) ####
728
729 AC_ARG_ENABLE([solaris],
730 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]))
731
732 AS_IF([test "x$enable_solaris" != "xno"],
733 [AC_CHECK_HEADERS([sys/audio.h], HAVE_SOLARIS=1, HAVE_SOLARIS=0)],
734 HAVE_SOLARIS=0)
735
736 AS_IF([test "x$enable_solaris" = "xyes" && test "x$HAVE_SOLARIS" = "x0"],
737 [AC_MSG_ERROR([*** Solaris audio support not found])])
738
739 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
740 AS_IF([test "x$HAVE_SOLARIS" = "x1"], AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?]))
741
742 #### WaveOut audio support (optional) ####
743
744 AC_ARG_ENABLE([waveout],
745 AS_HELP_STRING([--disable-waveout],[Disable optional WaveOut audio support]))
746
747 AS_IF([test "x$enable_waveout" != "xno"],
748 [AC_CHECK_HEADERS([mmsystem.h], HAVE_WAVEOUT=1, HAVE_WAVEOUT=0, [#include <windows.h>])],
749 HAVE_WAVEOUT=0)
750
751 AS_IF([test "x$enable_waveout" = "xyes" && test "x$HAVE_WAVEOUT" = "x0"],
752 [AC_MSG_ERROR([*** WaveOut audio support not found])])
753
754 AM_CONDITIONAL([HAVE_WAVEOUT], [test "x$HAVE_WAVEOUT" = x1])
755 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], AC_DEFINE([HAVE_WAVEOUT], 1, [Have WaveOut audio?]))
756
757 #### GLib 2 support (optional) ####
758
759 AC_ARG_ENABLE([glib2],
760 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]))
761
762 AS_IF([test "x$enable_glib2" != "xno"],
763 [PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ], HAVE_GLIB20=1, HAVE_GLIB20=0)],
764 HAVE_GLIB20=0)
765
766 AS_IF([test "x$enable_glib2" = "xyes" && test "x$HAVE_GLIB20" = "x0"],
767 [AC_MSG_ERROR([*** GLib 2 support not found])])
768
769 AC_SUBST(GLIB20_CFLAGS)
770 AC_SUBST(GLIB20_LIBS)
771 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
772 AS_IF([test "x$HAVE_GLIB20" = "x1"], AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?]))
773
774 #### GTK2 support (optional) ####
775
776 AC_ARG_ENABLE([gtk2],
777 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]))
778
779 AS_IF([test "x$enable_gtk2" != "xno"],
780 [PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ], HAVE_GTK20=1, HAVE_GTK20=0)],
781 HAVE_GTK20=0)
782
783 AS_IF([test "x$enable_gtk2" = "xyes" && test "x$HAVE_GTK20" = "x0"],
784 [AC_MSG_ERROR([*** Gtk+ 2 support not found])])
785
786 AC_SUBST(GTK20_CFLAGS)
787 AC_SUBST(GTK20_LIBS)
788 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
789 AS_IF([test "x$HAVE_GTK20" = "x1"], AC_DEFINE([HAVE_GTK], 1, [Have GTK?]))
790
791 #### GConf support (optional) ####
792
793 AC_ARG_ENABLE([gconf],
794 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]))
795
796 AS_IF([test "x$enable_gconf" != "xno"],
797 [PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ], HAVE_GCONF=1, HAVE_GCONF=0)],
798 HAVE_GCONF=0)
799
800 AS_IF([test "x$enable_gconf" = "xyes" && test "x$HAVE_GCONF" = "x0"],
801 [AC_MSG_ERROR([*** GConf support not found])])
802
803 AC_SUBST(GCONF_CFLAGS)
804 AC_SUBST(GCONF_LIBS)
805 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
806
807 #### Avahi support (optional) ####
808
809 AC_ARG_ENABLE([avahi],
810 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]))
811
812 AS_IF([test "x$enable_avahi" != "xno"],
813 [PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ], HAVE_AVAHI=1, HAVE_AVAHI=0)],
814 HAVE_AVAHI=0)
815
816 AS_IF([test "x$enable_avahi" = "xyes" && test "x$HAVE_AVAHI" = "x0"],
817 [AC_MSG_ERROR([*** Avahi support not found])])
818
819 AC_SUBST(AVAHI_CFLAGS)
820 AC_SUBST(AVAHI_LIBS)
821 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
822
823 #### JACK (optional) ####
824
825 AC_ARG_ENABLE([jack],
826 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]))
827
828 AS_IF([test "x$enable_jack" != "xno"],
829 [PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ], HAVE_JACK=1, HAVE_JACK=0)],
830 HAVE_JACK=0)
831
832 AS_IF([test "x$enable_jack" = "xyes" && test "x$HAVE_JACK" = "x0"],
833 [AC_MSG_ERROR([*** JACK support not found])])
834
835 AC_SUBST(JACK_CFLAGS)
836 AC_SUBST(JACK_LIBS)
837 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
838
839 #### Async DNS support (optional) ####
840
841 AC_ARG_ENABLE([asyncns],
842 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]))
843
844 AS_IF([test "x$enable_asyncns" != "xno"],
845 [PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ], HAVE_LIBASYNCNS=1, HAVE_LIBASYNCNS=0)],
846 HAVE_LIBASYNCNS=0)
847
848 AS_IF([test "x$enable_asyncns" = "xyes" && test "x$HAVE_LIBASYNCNS" = "x0"],
849 [AC_MSG_ERROR([*** Async DNS support not found])])
850
851 AC_SUBST(LIBASYNCNS_CFLAGS)
852 AC_SUBST(LIBASYNCNS_LIBS)
853 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
854 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?]))
855
856 #### TCP wrappers (optional) ####
857
858 AC_ARG_ENABLE([tcpwrap],
859 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]))
860
861 AS_IF([test "x$enable_tcpwrap" != "xno"],
862 [
863 ACX_LIBWRAP
864 AS_IF([test "x$LIBWRAP_LIBS" != "x"], HAVE_TCPWRAP=1, HAVE_TCPWRAP=0)
865 ],
866 HAVE_TCPWRAP=0)
867
868 AS_IF([test "x$enable_tcpwrap" = "xyes" && test "x$HAVE_TCPWRAP" = "x0"],
869 [AC_MSG_ERROR([*** TCP wrappers support not found])])
870
871 AC_SUBST(LIBWRAP_LIBS)
872
873 #### LIRC support (optional) ####
874
875 AC_ARG_ENABLE([lirc],
876 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]))
877
878 LIRC_CFLAGS=
879 LIRC_LIBS=
880
881 AS_IF([test "x$enable_lirc" != "xno"],
882 [
883 HAVE_LIRC=1
884 AC_CHECK_HEADER(lirc/lirc_client.h, [], [HAVE_LIRC=0])
885 AC_CHECK_LIB(lirc_client, lirc_init, [LIRC_LIBS=-llirc_client], [HAVE_LIRC=0])
886 ],
887 HAVE_LIRC=0)
888
889 AS_IF([test "x$enable_lirc" = "xyes" && test "x$HAVE_LIRC" = "x0"],
890 [AC_MSG_ERROR([*** LIRC support not found])])
891
892 AC_SUBST(LIRC_CFLAGS)
893 AC_SUBST(LIRC_LIBS)
894 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
895
896 #### HAL support (optional) ####
897
898 AC_ARG_ENABLE([hal],
899 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]))
900
901 AS_IF([test "x$enable_hal" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
902 [PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ], HAVE_HAL=1, HAVE_HAL=0)],
903 HAVE_HAL=0)
904
905 AS_IF([test "x$enable_hal" = "xyes" && test "x$HAVE_HAL" = "x0"],
906 [AC_MSG_ERROR([*** HAL support not found])])
907
908 AC_SUBST(HAL_CFLAGS)
909 AC_SUBST(HAL_LIBS)
910 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
911 AS_IF([test "x$HAVE_HAL" = "x1"], AC_DEFINE([HAVE_HAL], 1, [Have HAL.]))
912
913 #### UDEV support (optional) ####
914
915 AC_ARG_ENABLE([udev],
916 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]))
917
918 AS_IF([test "x$enable_udev" != "xno" -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \)],
919 [PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ], HAVE_UDEV=1, HAVE_UDEV=0)],
920 HAVE_UDEV=0)
921
922 AS_IF([test "x$enable_udev" = "xyes" && test "x$HAVE_UDEV" = "x0"],
923 [AC_MSG_ERROR([*** UDEV support not found])])
924
925 AC_SUBST(UDEV_CFLAGS)
926 AC_SUBST(UDEV_LIBS)
927 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
928 AS_IF([test "x$HAVE_UDEV" = "x1"], AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.]))
929
930 #### BlueZ support (optional) ####
931
932 AC_ARG_ENABLE([bluez],
933 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]))
934
935 AS_IF([test "x$enable_bluez" != "xno"],
936 [PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ], HAVE_BLUEZ=1, HAVE_BLUEZ=0)],
937 HAVE_BLUEZ=0)
938
939 AS_IF([test "x$enable_bluez" = "xyes" && test "x$HAVE_BLUEZ" = "x0"],
940 [AC_MSG_ERROR([*** BLUEZ support not found])])
941
942 AC_SUBST(BLUEZ_CFLAGS)
943 AC_SUBST(BLUEZ_LIBS)
944 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
945
946 #### D-Bus support (optional) ####
947
948 AC_ARG_ENABLE([dbus],
949 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]))
950
951 AS_IF([test "x$enable_dbus" != "xno"],
952 [PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], HAVE_DBUS=1, HAVE_DBUS=0)],
953 HAVE_DBUS=0)
954
955 AS_IF([test "x$enable_dbus" = "xyes" && test "x$HAVE_DBUS" = "x0"],
956 [AC_MSG_ERROR([*** D-Bus support not found])])
957
958 AS_IF([test "x$HAVE_DBUS" = "x1"],
959 [
960 save_CFLAGS="$CFLAGS"; CFLAGS="$CFLAGS $DBUS_CFLAGS"
961 save_LIBS="$LIBS"; LIBS="$LIBS $DBUS_LIBS"
962 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
963 CFLAGS="$save_CFLAGS"
964 LIBS="$save_LIBS"
965 ])
966
967 AC_SUBST(DBUS_CFLAGS)
968 AC_SUBST(DBUS_LIBS)
969 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
970 AS_IF([test "x$HAVE_DBUS" = "x1"], AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.]))
971
972 PA_MACHINE_ID="${localstatedir}/lib/dbus/machine-id"
973 AX_DEFINE_DIR(PA_MACHINE_ID, PA_MACHINE_ID, [D-Bus machine-id file])
974
975 # HAL and BlueZ depend on D-Bus: So double check if they were explicitly enabled.
976 if test "x$HAVE_DBUS" != "x1" ; then
977 HAVE_HAL=0
978 if test "x$enable_hal" = "xyes"; then
979 AC_MSG_ERROR([*** D-Bus support is required by HAL])
980 fi
981
982 HAVE_BLUEZ=0
983 if test "x$enable_bluez" = "xyes"; then
984 AC_MSG_ERROR([*** D-Bus support is required by BLUEZ])
985 fi
986 fi
987
988 #### HAL compat support (optional) ####
989
990 AC_ARG_ENABLE([hal-compat],
991 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]))
992
993 if test "x$enable_hal_compat" != "xno" -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1"; then
994 HAVE_HAL_COMPAT=1
995 AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
996 else
997 HAVE_HAL_COMPAT=0
998 fi
999
1000 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1001
1002 #### IPv6 connection support (optional) ####
1003
1004 AC_ARG_ENABLE([ipv6],
1005 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]))
1006
1007 if test "x$enable_ipv6" != "xno"; then
1008 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1009 HAVE_IPV6=1
1010 else
1011 HAVE_IPV6=0
1012 fi
1013
1014 #### OpenSSL support (optional) ####
1015
1016 AC_ARG_ENABLE([openssl],
1017 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]))
1018
1019 AS_IF([test "x$enable_openssl" != "xno"],
1020 [PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ], HAVE_OPENSSL=1, HAVE_OPENSSL=0)],
1021 HAVE_OPENSSL=0)
1022
1023 AS_IF([test "x$enable_openssl" = "xyes" && test "x$HAVE_OPENSSL" = "x0"],
1024 [AC_MSG_ERROR([*** OpenSSL support not found])])
1025
1026 AC_SUBST(OPENSSL_CFLAGS)
1027 AC_SUBST(OPENSSL_LIBS)
1028 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1029 AS_IF([test "x$HAVE_OPENSSL" = "x1"], AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL]))
1030
1031 #### FFTW (optional) ####
1032
1033 AC_ARG_WITH([fftw],
1034 AS_HELP_STRING([--without-fftw],[Omit FFTW-using modules (equalizer)]))
1035
1036 AS_IF([test "x$with_fftw" != "xno"],
1037 [PKG_CHECK_MODULES(FFTW, [ fftw3f ], HAVE_FFTW=1, HAVE_FFTW=0)],
1038 HAVE_FFTW=0)
1039
1040 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1041
1042 #### ORC (optional) ####
1043
1044 ORC_CHECK([0.4.11])
1045
1046 #### Build and Install man pages ####
1047
1048 AC_ARG_ENABLE([manpages],
1049 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]))
1050
1051 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$enable_manpages" != "xno"])
1052
1053 #### PulseAudio system group & user #####
1054
1055 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1056 if test -z "$with_system_user" ; then
1057 PA_SYSTEM_USER=pulse
1058 else
1059 PA_SYSTEM_USER=$with_system_user
1060 fi
1061 AC_SUBST(PA_SYSTEM_USER)
1062 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1063
1064 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1065 if test -z "$with_system_group" ; then
1066 PA_SYSTEM_GROUP=pulse
1067 else
1068 PA_SYSTEM_GROUP=$with_system_group
1069 fi
1070 AC_SUBST(PA_SYSTEM_GROUP)
1071 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1072
1073 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)]))
1074 if test -z "$with_access_group" ; then
1075 PA_ACCESS_GROUP=pulse-access
1076 else
1077 PA_ACCESS_GROUP=$with_access_group
1078 fi
1079 AC_SUBST(PA_ACCESS_GROUP)
1080 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1081
1082 AC_ARG_ENABLE([per-user-esound-socket],
1083 AS_HELP_STRING([--disable-per-user-esound-socket],[Use global esound socket directory /tmp/.esd/socket.]))
1084
1085 if test "x$enable_per_user_esound_socket" != "xno"; then
1086 USE_PER_USER_ESOUND_SOCKET=1
1087 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1088 else
1089 USE_PER_USER_ESOUND_SOCKET=0
1090 fi
1091
1092 #### PulseAudio system runtime dir ####
1093
1094 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1095 AX_DEFINE_DIR(PA_SYSTEM_RUNTIME_PATH, PA_SYSTEM_RUNTIME_PATH, [System runtime dir])
1096 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1097 AX_DEFINE_DIR(PA_SYSTEM_CONFIG_PATH, PA_SYSTEM_CONFIG_PATH, [System config dir])
1098 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1099 AX_DEFINE_DIR(PA_SYSTEM_STATE_PATH, PA_SYSTEM_STATE_PATH, [System state dir])
1100
1101 #### Mac OSX specific stuff #####
1102
1103 AC_ARG_ENABLE(mac-universal,
1104 AS_HELP_STRING([--enable-mac-universal], [Build Mac universal binaries]),
1105 enable_mac_universal=$enableval, enable_mac_universal="no")
1106
1107 AC_ARG_WITH(mac-version-min,
1108 AS_HELP_STRING([--with-mac-version-min=<version>], [Defines the earliest version of MacOS X that the executables will run on.]),
1109 mac_version_min=$withval, mac_version_min="10.5")
1110
1111 AC_ARG_WITH(mac-sysroot,
1112 AS_HELP_STRING([--with-mac-sysroot=<path>], [SDK basedir to use as the logical root directory for headers and libraries.]),
1113 mac_sysroot=$withval, mac_sysroot="/Developer/SDKs/MacOSX10.5.sdk")
1114
1115 if test "x$os_is_darwin" = "x1" ; then
1116 LDFLAGS="$LDFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1117 CFLAGS="$CFLAGS -isysroot $mac_sysroot -mmacosx-version-min=$mac_version_min"
1118
1119 if test "x$enable_mac_universal" = "xyes" ; then
1120 mac_arches="-arch i386 -arch x86_64"
1121 LDFLAGS="$LDFLAGS $mac_arches"
1122 CFLAGS="$CFLAGS $mac_arches"
1123 fi
1124 fi
1125
1126
1127 ###################################
1128 # Output #
1129 ###################################
1130
1131 AC_DEFINE_UNQUOTED(PA_CFLAGS, "$CFLAGS", [The CFLAGS used during compilation])
1132
1133 # Check whether to build tests by default (as compile-test) or not
1134 AC_ARG_ENABLE([default-build-tests],
1135 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
1136 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
1137
1138 AC_ARG_ENABLE([legacy-runtime-dir],
1139 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1140 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1141 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1142 fi
1143
1144 AC_ARG_ENABLE([legacy-database-entry-format],
1145 AS_HELP_STRING([--disable-legacy-database-entry-format], [Try to load legacy (< 1.0) database files (card, device and volume restore).]))
1146 if test "x$enable_legacy_database_entry_format" != "xno" ; then
1147 AC_DEFINE(ENABLE_LEGACY_DATABASE_ENTRY_FORMAT, [1], [Legacy database entry format])
1148 fi
1149 AC_DEFINE([WIBBLE], 1, [Just a test.])
1150
1151 AC_ARG_ENABLE([static-bins],
1152 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]))
1153 AM_CONDITIONAL([STATIC_BINS], [test "x$enable_static_bins" = "xyes"])
1154
1155 AC_ARG_WITH(
1156 [preopen-mods],
1157 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1158 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1159 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1160 if test "x$PREOPEN_MODS" != "xall" ; then
1161 tmpLIBS=""
1162 for mod in $PREOPEN_MODS; do
1163 tmpLIBS="$tmpLIBS module-$mod.la"
1164 done
1165 PREOPEN_MODS="$tmpLIBS"
1166 AC_SUBST(PREOPEN_MODS)
1167 fi
1168
1169 AC_ARG_WITH(
1170 [module-dir],
1171 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1172 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1173
1174 AC_SUBST(modlibexecdir)
1175 AX_DEFINE_DIR(PA_DLSEARCHPATH, modlibexecdir, [Modules dir])
1176
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"])
1181
1182 AC_SUBST(udevrulesdir)
1183
1184 AC_ARG_ENABLE([force-preopen],
1185 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]))
1186
1187 if test "x$enable_force_preopen" = "xyes"; then
1188 FORCE_PREOPEN=yes
1189 else
1190 FORCE_PREOPEN=no
1191 fi
1192
1193 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1194
1195 AC_CONFIG_FILES([
1196 Makefile
1197 src/Makefile
1198 man/Makefile
1199 libpulse.pc
1200 libpulse-simple.pc
1201 libpulse-mainloop-glib.pc
1202 doxygen/Makefile
1203 doxygen/doxygen.conf
1204 src/pulse/version.h
1205 po/Makefile.in
1206 ])
1207
1208 AC_OUTPUT
1209
1210 # ==========================================================================
1211
1212 AS_IF([test "x$HAVE_X11" = "x1"], ENABLE_X11=yes, ENABLE_X11=no)
1213 AS_IF([test "x$HAVE_OSS_OUTPUT" = "x1"], ENABLE_OSS_OUTPUT=yes, ENABLE_OSS_OUTPUT=no)
1214 AS_IF([test "x$HAVE_OSS_WRAPPER" = "x1"], ENABLE_OSS_WRAPPER=yes, ENABLE_OSS_WRAPPER=no)
1215 AS_IF([test "x$HAVE_ALSA" = "x1"], ENABLE_ALSA=yes, ENABLE_ALSA=no)
1216 AS_IF([test "x$HAVE_COREAUDIO" = "x1"], ENABLE_COREAUDIO=yes, ENABLE_COREAUDIO=no)
1217 AS_IF([test "x$HAVE_SOLARIS" = "x1"], ENABLE_SOLARIS=yes, ENABLE_SOLARIS=no)
1218 AS_IF([test "x$HAVE_WAVEOUT" = "x1"], ENABLE_WAVEOUT=yes, ENABLE_WAVEOUT=no)
1219 AS_IF([test "x$HAVE_GLIB20" = "x1"], ENABLE_GLIB20=yes, ENABLE_GLIB20=no)
1220 AS_IF([test "x$HAVE_GTK20" = "x1"], ENABLE_GTK20=yes, ENABLE_GTK20=no)
1221 AS_IF([test "x$HAVE_GCONF" = "x1"], ENABLE_GCONF=yes, ENABLE_GCONF=no)
1222 AS_IF([test "x$HAVE_AVAHI" = "x1"], ENABLE_AVAHI=yes, ENABLE_AVAHI=no)
1223 AS_IF([test "x$HAVE_JACK" = "x1"], ENABLE_JACK=yes, ENABLE_JACK=no)
1224 AS_IF([test "x$HAVE_LIBASYNCNS" = "x1"], ENABLE_LIBASYNCNS=yes, ENABLE_LIBASYNCNS=no)
1225 AS_IF([test "x$HAVE_LIRC" = "x1"], ENABLE_LIRC=yes, ENABLE_LIRC=no)
1226 AS_IF([test "x$HAVE_DBUS" = "x1"], ENABLE_DBUS=yes, ENABLE_DBUS=no)
1227 AS_IF([test "x$HAVE_HAL" = "x1"], ENABLE_HAL=yes, ENABLE_HAL=no)
1228 AS_IF([test "x$HAVE_UDEV" = "x1"], ENABLE_UDEV=yes, ENABLE_UDEV=no)
1229 AS_IF([test "x$HAVE_BLUEZ" = "x1"], ENABLE_BLUEZ=yes, ENABLE_BLUEZ=no)
1230 AS_IF([test "x$HAVE_HAL_COMPAT" = "x1"], ENABLE_HAL_COMPAT=yes, ENABLE_HAL_COMPAT=no)
1231 AS_IF([test "x$HAVE_TCPWRAP" = "x1"], ENABLE_TCPWRAP=yes, ENABLE_TCPWRAP=no)
1232 AS_IF([test "x$HAVE_LIBSAMPLERATE" = "x1"], ENABLE_LIBSAMPLERATE=yes, ENABLE_LIBSAMPLERATE=no)
1233 AS_IF([test "x$HAVE_IPV6" = "x1"], ENABLE_IPV6=yes, ENABLE_IPV6=no)
1234 AS_IF([test "x$HAVE_OPENSSL" = "x1"], ENABLE_OPENSSL=yes, ENABLE_OPENSSL=no)
1235 AS_IF([test "x$HAVE_FFTW" = "x1"], ENABLE_FFTW=yes, ENABLE_FFTW=no)
1236 AS_IF([test "x$HAVE_ORC" = "xyes"], ENABLE_ORC=yes, ENABLE_ORC=no)
1237 AS_IF([test "x$HAVE_TDB" = "x1"], ENABLE_TDB=yes, ENABLE_TDB=no)
1238 AS_IF([test "x$HAVE_GDBM" = "x1"], ENABLE_GDBM=yes, ENABLE_GDBM=no)
1239 AS_IF([test "x$HAVE_SIMPLEDB" = "x1"], ENABLE_SIMPLEDB=yes, ENABLE_SIMPLEDB=no)
1240 AS_IF([test "x$USE_PER_USER_ESOUND_SOCKET" = "x1"], ENABLE_PER_USER_ESOUND_SOCKET=yes, ENABLE_PER_USER_ESOUND_SOCKET=no)
1241 AS_IF([test "x$enable_legacy_runtime_dir" != "xno"], ENABLE_LEGACY_RUNTIME_DIR=yes, ENABLE_LEGACY_RUNTIME_DIR=no)
1242 AS_IF([test "x$enable_legacy_database_entry_format" != "xno"], ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=yes, ENABLE_LEGACY_DATABASE_ENTRY_FORMAT=no)
1243
1244 echo "
1245 ---{ $PACKAGE_NAME $VERSION }---
1246
1247 prefix: ${prefix}
1248 sysconfdir: ${sysconfdir}
1249 localstatedir: ${localstatedir}
1250 modlibexecdir: ${modlibexecdir}
1251 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1252 System State Path: ${PA_SYSTEM_STATE_PATH}
1253 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1254 Compiler: ${CC}
1255 CFLAGS: ${CFLAGS}
1256 LIBS: ${LIBS}
1257
1258 Enable X11: ${ENABLE_X11}
1259 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1260 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1261 Enable Alsa: ${ENABLE_ALSA}
1262 Enable CoreAudio: ${ENABLE_COREAUDIO}
1263 Enable Solaris: ${ENABLE_SOLARIS}
1264 Enable WaveOut: ${ENABLE_WAVEOUT}
1265 Enable GLib 2.0: ${ENABLE_GLIB20}
1266 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1267 Enable GConf: ${ENABLE_GCONF}
1268 Enable Avahi: ${ENABLE_AVAHI}
1269 Enable Jack: ${ENABLE_JACK}
1270 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1271 Enable LIRC: ${ENABLE_LIRC}
1272 Enable D-Bus: ${ENABLE_DBUS}
1273 Enable HAL: ${ENABLE_HAL}
1274 Enable BlueZ: ${ENABLE_BLUEZ}
1275 Enable udev: ${ENABLE_UDEV}
1276 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1277 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1278 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1279 Enable IPv6: ${ENABLE_IPV6}
1280 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1281 Enable fftw: ${ENABLE_FFTW}
1282 Enable orc: ${ENABLE_ORC}
1283 Database
1284 tdb: ${ENABLE_TDB}
1285 gdbm: ${ENABLE_GDBM}
1286 simple database: ${ENABLE_SIMPLEDB}
1287
1288 System User: ${PA_SYSTEM_USER}
1289 System Group: ${PA_SYSTEM_GROUP}
1290 Access Group: ${PA_ACCESS_GROUP}
1291 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1292 Force preopen: ${FORCE_PREOPEN}
1293 Preopened modules: ${PREOPEN_MODS}
1294
1295 Legacy Runtime Dir Support: ${ENABLE_LEGACY_RUNTIME_DIR}
1296 Legacy Database Entry Support: ${ENABLE_LEGACY_DATABASE_ENTRY_FORMAT}
1297 "
1298
1299 if test "${ENABLE_DBUS}" = "no" && test "x$os_is_win32" != "x1" ; then
1300 echo "
1301 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1302 You do not have D-Bus support enabled. It is strongly recommended
1303 that you enable D-Bus support if your platform supports it.
1304 Many parts of PulseAudio use D-Bus, from ConsoleKit interaction
1305 to the Device Reservation Protocol to speak to JACK, Bluetooth
1306 support and even a native control protocol for communicating and
1307 controling the PulseAudio daemon itself.
1308 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1309 "
1310 fi
1311
1312 if test "${ENABLE_UDEV}" = "no" && test "x$os_is_win32" != "x1" ; then
1313 echo "
1314 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1315 You do not have udev support enabled. It is strongly recommended
1316 that you enable udev support if your platform supports it as it is
1317 the primary method used to detect hardware audio devices (on Linux)
1318 and is thus a critical part of PulseAudio on that platform.
1319 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1320 "
1321 fi