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