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