]> code.delx.au - pulseaudio/blob - configure.ac
build-sys: Put in specific warnings when there is no udev or DBUS support
[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, 19)
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 #### Platform hacks ####
85
86 case $host in
87 *-*-solaris* )
88 AC_DEFINE(_XOPEN_SOURCE, 600, Needed to get declarations for msg_control and msg_controllen on Solaris)
89 AC_DEFINE(__EXTENSIONS__, 1, Needed to get declarations for msg_control and msg_controllen on Solaris)
90 ;;
91 *-*-darwin* )
92 AC_DEFINE([_POSIX_C_SOURCE], [200112L], [Needed to get clock_gettime on Mac OS X])
93 AC_DEFINE([_DARWIN_C_SOURCE], [200112L], [Needed to get NSIG on Mac OS X])
94 ;;
95 esac
96
97 # M4
98
99 AC_CHECK_PROGS([M4], gm4 m4, no)
100 if test "x$M4" = xno ; then
101 AC_MSG_ERROR([m4 missing])
102 fi
103
104 dnl Compiler flags
105 CC_CHECK_CFLAGS_APPEND([-Wall -W -Wextra -pipe -Wno-long-long -Winline -Wvla -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wold-style-definition -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing=2 -Wwrite-strings -Wno-unused-parameter -ffast-math -Wp,-D_FORTIFY_SOURCE=2 -fno-common -fdiagnostics-show-option])
106
107 dnl Linker flags.
108 dnl Check whether the linker supports the -version-script option.
109
110 dnl This variable is used to make sure ${srcdir} is expanded and not
111 dnl passed to the CC_CHECK_LDFLAGS macro as a name.
112 tmp_ldflag="-Wl,-version-script=${srcdir}/src/map-file"
113
114 CC_CHECK_LDFLAGS([${tmp_ldflag}],
115 [VERSIONING_LDFLAGS='-Wl,-version-script=$(srcdir)/map-file'])
116 AC_SUBST([VERSIONING_LDFLAGS])
117
118 dnl Use immediate (now) bindings; avoids the funky re-call in itself
119 dnl the -z now syntax is lifted from Sun's linker and works with GNU's too
120 dnl other linkes might be added later
121 CC_CHECK_LDFLAGS([-Wl,-z,now], [IMMEDIATE_LDFLAGS="-Wl,-z,now"])
122 AC_SUBST([IMMEDIATE_LDFLAGS])
123
124 dnl On ELF systems we don't want the libraries to be unloaded since we
125 dnl don't clean them up properly, so we request the nodelete flag to be
126 dnl enabled.
127 dnl
128 dnl On other systems, we don't really know how to do that, but it's
129 dnl welcome if somebody can tell.
130 CC_CHECK_LDFLAGS([-Wl,-z,nodelete], [NODELETE_LDFLAGS="-Wl,-z,nodelete"])
131 AC_SUBST([NODELETE_LDFLAGS])
132
133 dnl Check for the proper way to build libraries that have no undefined
134 dnl symbols; on some hosts this needs to be avoided but the macro
135 dnl takes care of it.
136 CC_NOUNDEFINED
137
138 dnl Check whether to build tests by default (as compile-test) or not
139 AC_ARG_ENABLE([default-build-tests],
140 AS_HELP_STRING([--disable-default-build-tests], [Build test programs only during make check]))
141
142 AM_CONDITIONAL([BUILD_TESTS_DEFAULT], [test "x$enable_default_build_tests" != "xno"])
143
144 # Native atomic operation support
145 AC_ARG_ENABLE([atomic-arm-linux-helpers],
146 AS_HELP_STRING([--disable-atomic-arm-linux-helpers],[use inline asm or libatomic_ops instead]),
147 [
148 case "${enableval}" in
149 yes) atomic_arm_linux_helpers=yes ;;
150 no) atomic_arm_linux_helpers=no ;;
151 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
152 esac
153 ],
154 [atomic_arm_linux_helpers=auto])
155
156 AC_ARG_ENABLE([atomic-arm-memory-barrier],
157 AS_HELP_STRING([--enable-atomic-arm-memory-barrier],[only really needed in SMP arm systems]),
158 [
159 case "${enableval}" in
160 yes) AC_DEFINE_UNQUOTED(ATOMIC_ARM_MEMORY_BARRIER_ENABLED, 1, [Enable memory barriers]) ;;
161 no) ;;
162 *) AC_MSG_ERROR(bad value ${enableval} for --disable-atomic-arm-linux-helpers) ;;
163 esac
164 ],)
165
166 AC_MSG_CHECKING([target operating system])
167 case $host in
168 *-*-linux*)
169 AC_MSG_RESULT([linux])
170 pulse_target_os=linux
171 ;;
172 *-*-darwin*)
173 AC_MSG_RESULT([darwin])
174 pulse_target_os=darwin
175 ;;
176 *)
177 AC_MSG_RESULT([unknown])
178 pulse_target_os=unknown
179 ;;
180 esac
181
182 # If everything else fails use libatomic_ops
183 need_libatomic_ops=yes
184
185 AC_CACHE_CHECK([whether $CC knows __sync_bool_compare_and_swap()],
186 pulseaudio_cv_sync_bool_compare_and_swap,
187 [AC_LINK_IFELSE(
188 AC_LANG_PROGRAM([], [[int a = 4; __sync_bool_compare_and_swap(&a, 4, 5);]]),
189 [pulseaudio_cv_sync_bool_compare_and_swap=yes],
190 [pulseaudio_cv_sync_bool_compare_and_swap=no])
191 ])
192
193 if test "$pulseaudio_cv_sync_bool_compare_and_swap" = "yes" ; then
194 AC_DEFINE([HAVE_ATOMIC_BUILTINS], 1, [Have __sync_bool_compare_and_swap() and friends.])
195 need_libatomic_ops=no
196 else
197 # HW specific atomic ops stuff
198 AC_MSG_CHECKING([architecture for native atomic operations])
199 case $host in
200 arm*)
201 AC_MSG_RESULT([arm])
202 AC_MSG_CHECKING([whether we can use Linux kernel helpers])
203 # The Linux kernel helper functions have been there since 2.6.16. However
204 # compile time checking for kernel version in cross compile environment
205 # (which is usually the case for arm cpu) is tricky (or impossible).
206 if test "x$pulse_target_os" = "xlinux" && test "x$atomic_arm_linux_helpers" != "xno"; then
207 AC_MSG_RESULT([yes])
208 AC_DEFINE_UNQUOTED(ATOMIC_ARM_LINUX_HELPERS, 1, [special arm linux implementation])
209 need_libatomic_ops=no
210 else
211 AC_MSG_RESULT([no])
212 AC_CACHE_CHECK([compiler support for arm inline asm atomic operations],
213 pulseaudio_cv_support_arm_atomic_ops,
214 [AC_COMPILE_IFELSE(
215 AC_LANG_PROGRAM([],
216 [[volatile int a=0;
217 int o=0, n=1, r;
218 asm volatile ("ldrex %0, [%1]\n"
219 "subs %0, %0, %2\n"
220 "strexeq %0, %3, [%1]\n"
221 : "=&r" (r)
222 : "r" (&a), "Ir" (o), "r" (n)
223 : "cc");
224 return (a==1 ? 0 : -1);
225 ]]),
226 [pulseaudio_cv_support_arm_atomic_ops=yes],
227 [pulseaudio_cv_support_arm_atomic_ops=no])
228 ])
229 AS_IF([test "$pulseaudio_cv_support_arm_atomic_ops" = "yes"], [
230 AC_DEFINE([ATOMIC_ARM_INLINE_ASM], 1, [Have ARM atomic instructions.])
231 need_libatomic_ops=no
232 ])
233 fi
234 ;;
235 *-netbsdelf5*)
236 AC_MSG_RESULT([yes])
237 need_libatomic_ops=no
238 ;;
239 *-freebsd*)
240 AC_MSG_RESULT([yes])
241 need_libatomic_ops=no
242 ;;
243 *)
244 AC_MSG_RESULT([unknown])
245 ;;
246 esac
247 fi
248
249 # If we're on ARM, check for the ARMV6 instructions we need */
250 case $host in
251 arm*)
252 AC_CACHE_CHECK([support for required armv6 instructions],
253 pulseaudio_cv_support_armv6,
254 [AC_COMPILE_IFELSE(
255 AC_LANG_PROGRAM([],
256 [[volatile int a = -60000, b = 0xaaaabbbb, c = 0xccccdddd;
257 asm volatile ("ldr r0, %2 \n"
258 "ldr r2, %3 \n"
259 "ldr r3, %4 \n"
260 "ssat r1, #8, r0 \n"
261 "str r1, %0 \n"
262 "pkhbt r1, r3, r2, LSL #8 \n"
263 "str r1, %1 \n"
264 : "=m" (a), "=m" (b)
265 : "m" (a), "m" (b), "m" (c)
266 : "r0", "r1", "r2", "r3", "cc");
267 return (a == -128 && b == 0xaabbdddd) ? 0 : -1;
268 ]]),
269 [pulseaudio_cv_support_armv6=yes],
270 [pulseaudio_cv_support_armv6=no])
271 ])
272 AS_IF([test "$pulseaudio_cv_support_armv6" = "yes"], [
273 AC_DEFINE([HAVE_ARMV6], 1, [Have ARMv6 instructions.])
274 ])
275 ;;
276 *)
277 ;;
278 esac
279
280 CC_CHECK_TLS
281
282 AC_CACHE_CHECK([whether $CC knows _Bool],
283 pulseaudio_cv__Bool,
284 [AC_COMPILE_IFELSE(
285 AC_LANG_PROGRAM([], [[_Bool b;]]),
286 [pulseaudio_cv__Bool=yes],
287 [pulseaudio_cv__Bool=no])
288 ])
289
290 AS_IF([test "$pulseaudio_cv__Bool" = "yes"], [
291 AC_DEFINE([HAVE_STD_BOOL], 1, [Have _Bool.])
292 ])
293
294 #### libtool stuff ####
295 LT_PREREQ(2.2)
296 LT_INIT([dlopen win32-dll disable-static])
297
298 dnl Unfortunately, even up to libtool 2.2.6a there is no way to know
299 dnl exactly which version of libltdl is present in the system, so we
300 dnl just assume that it's a working version as long as we have the
301 dnl library and the header files.
302 dnl
303 dnl As an extra safety device, check for lt_dladvise_init() which is
304 dnl only implemented in libtool 2.x, and refine as we go if we have
305 dnl refined requirements.
306 dnl
307 dnl Check the header files first since the system may have a
308 dnl libltdl.so for runtime, but no headers, and we want to bail out as
309 dnl soon as possible.
310 dnl
311 dnl We don't need any special variable for this though, since the user
312 dnl can give the proper place to find libltdl through the standard
313 dnl variables like LDFLAGS and CPPFLAGS.
314
315 AC_CHECK_HEADER([ltdl.h],
316 [AC_CHECK_LIB([ltdl], [lt_dladvise_init], [LIBLTDL=-lltdl], [LIBLTDL=])],
317 [LIBLTDL=])
318
319 AS_IF([test "x$LIBLTDL" = "x"],
320 [AC_MSG_ERROR([Unable to find libltdl version 2. Makes sure you have libtool 2.2 or later installed.])])
321 AC_SUBST([LIBLTDL])
322
323 #### Determine build environment ####
324
325 os_is_win32=0
326 os_is_darwin=0
327
328 case "$host_os" in
329 mingw*)
330 AC_DEFINE([OS_IS_WIN32], 1, [Build target is Windows.])
331 os_is_win32=1
332 ;;
333 darwin*)
334 AC_DEFINE([OS_IS_DARWIN], 1, [Build target is Darwin.])
335 os_is_darwin=1
336 ;;
337 esac
338
339 AM_CONDITIONAL(OS_IS_WIN32, test "x$os_is_win32" = "x1")
340 AM_CONDITIONAL(OS_IS_DARWIN, test "x$os_is_darwin" = "x1")
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([regex.h], [HAVE_REGEX=1], [HAVE_REGEX=0])
366 AC_CHECK_HEADERS([sys/un.h], [HAVE_AF_UNIX=1], [HAVE_AF_UNIX=0])
367
368 AM_CONDITIONAL(HAVE_REGEX, test "x$HAVE_REGEX" = "x1")
369 AM_CONDITIONAL(HAVE_AF_UNIX, test "x$HAVE_AF_UNIX" = "x1")
370
371 # Linux
372 AC_CHECK_HEADERS([linux/input.h], [HAVE_EVDEV=1], [HAVE_EVDEV=0])
373
374 AM_CONDITIONAL([HAVE_EVDEV], [test "x$HAVE_EVDEV" = "x1"])
375
376 AC_CHECK_HEADERS_ONCE([sys/prctl.h])
377
378 # Solaris
379 AC_CHECK_HEADERS_ONCE([sys/filio.h])
380
381 # Windows
382 AC_CHECK_HEADERS_ONCE([windows.h winsock2.h ws2tcpip.h])
383
384 # NetBSD
385 AC_CHECK_HEADERS_ONCE([sys/atomic.h])
386
387 # Other
388 AC_CHECK_HEADERS_ONCE([sys/ioctl.h])
389 AC_CHECK_HEADERS_ONCE([byteswap.h])
390 AC_CHECK_HEADERS_ONCE([sys/syscall.h])
391 AC_CHECK_HEADERS_ONCE([sys/eventfd.h])
392 AC_CHECK_HEADERS_ONCE([execinfo.h])
393
394 #### Typdefs, structures, etc. ####
395
396 AC_C_CONST
397 AC_C_BIGENDIAN
398 AC_TYPE_PID_T
399 AC_TYPE_SIZE_T
400 AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
401 [Define ssize_t if it is not done by the standard libs.])])
402 AC_TYPE_OFF_T
403
404 AC_TYPE_UID_T
405 AC_CHECK_DECLS(environ)
406
407 AC_CHECK_DEFINE([SIGXCPU], [signal.h], [
408 HAVE_SIGXCPU=1
409 AC_DEFINE([HAVE_SIGXCPU], 1, [Have SIGXCPU?])
410 ], [HAVE_SIGXCPU=0])
411 AM_CONDITIONAL(HAVE_SIGXCPU, test "x$HAVE_SIGXCPU" = "x1")
412
413 # Solaris lacks this
414 AC_CHECK_DEFINE([INADDR_NONE], [netinet/in.h], [],
415 [AC_CHECK_DEFINE([INADDR_NONE], [winsock2.h], [],
416 [AC_DEFINE([INADDR_NONE], [0xffffffff], [Define INADDR_NONE if not found in <netinet/in.h>])])])
417
418 #### POSIX threads ####
419
420 ACX_PTHREAD
421
422 #### Check for libs ####
423
424 # ISO
425 AC_SEARCH_LIBS([pow], [m])
426
427 # POSIX
428 AC_SEARCH_LIBS([sched_setscheduler], [rt])
429 AC_SEARCH_LIBS([dlopen], [dl])
430 AC_SEARCH_LIBS([shm_open], [rt])
431 AC_SEARCH_LIBS([inet_ntop], [nsl])
432 AC_SEARCH_LIBS([timer_create], [rt])
433 AC_SEARCH_LIBS([pthread_setaffinity_np], [pthread])
434
435 # BSD
436 AC_SEARCH_LIBS([connect], [socket])
437 AC_SEARCH_LIBS([backtrace], [execinfo])
438
439 # Non-standard
440
441 # This magic is needed so we do not needlessly add static libs to the win32
442 # build, disabling its ability to make dlls.
443 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
444
445 # Darwin/OS X
446 if test "x$os_is_darwin" = "x1" ; then
447 AC_MSG_CHECKING([looking for Apple CoreService Framework])
448 # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
449 AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
450 [LIBS="$LIBS -framework CoreServices"],
451 [AC_MSG_ERROR([CoreServices.h header file not found]) ])
452
453 AC_MSG_RESULT([ok])
454 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
455 HAVE_BONJOUR=1
456 fi
457
458 AC_SUBST(HAVE_BONJOUR)
459 AM_CONDITIONAL([HAVE_BONJOUR], [test "x$HAVE_BONJOUR" = x1])
460
461 #### Check for functions ####
462
463 # ISO
464 AC_CHECK_FUNCS_ONCE([lrintf strtof])
465
466 # POSIX
467 AC_FUNC_FORK
468 AC_FUNC_GETGROUPS
469 AC_FUNC_SELECT_ARGTYPES
470 AC_CHECK_FUNCS_ONCE([chmod chown fstat fchown fchmod clock_gettime getaddrinfo getgrgid_r getgrnam_r \
471 getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
472 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
473 sigaction sleep sysconf pthread_setaffinity_np])
474 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
475
476 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
477
478 # X/OPEN
479 AC_CHECK_FUNCS_ONCE([readlink])
480
481 # SUSv2
482 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
483
484 # SUSv3
485 AC_CHECK_FUNCS_ONCE([strerror_r])
486
487 # BSD
488 AC_CHECK_FUNCS_ONCE([lstat])
489
490 # Non-standard
491
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_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
519
520 #### Large File-Support (LFS) ####
521
522 AC_SYS_LARGEFILE
523
524 # Check for open64 to know if the current system does have open64() and similar functions
525 AC_CHECK_FUNCS_ONCE([open64])
526
527 #### [lib]iconv ####
528
529 AM_ICONV
530
531 IT_PROG_INTLTOOL([0.35.0])
532 GETTEXT_PACKAGE=pulseaudio
533 AC_SUBST([GETTEXT_PACKAGE])
534 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
535 AM_GLIB_GNU_GETTEXT
536
537 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
538 AC_SUBST(pulselocaledir)
539
540 ###################################
541 # External libraries #
542 ###################################
543
544 #### pkg-config ####
545
546 PKG_PROG_PKG_CONFIG
547
548 #### X11 (optional) ####
549
550 AC_ARG_ENABLE([x11],
551 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
552 [
553 case "${enableval}" in
554 yes) x11=yes ;;
555 no) x11=no ;;
556 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
557 esac
558 ],
559 [x11=auto])
560
561 if test "x${x11}" != xno ; then
562 PKG_CHECK_MODULES(X11, [ x11-xcb ice sm xtst xcb-atom ],
563 HAVE_X11=1,
564 [
565 HAVE_X11=0
566 if test "x$x11" = xyes ; then
567 AC_MSG_ERROR([*** X11 not found])
568 fi
569 ])
570 else
571 HAVE_X11=0
572 fi
573
574 if test "x${HAVE_X11}" = x1 ; then
575 AC_DEFINE([HAVE_X11], 1, [Have X11?])
576 fi
577
578 AC_SUBST(X11_CFLAGS)
579 AC_SUBST(X11_LIBS)
580 AC_SUBST(HAVE_X11)
581 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
582
583 #### Capabilities (optional) ####
584
585 CAP_LIBS=''
586
587 AC_ARG_WITH(
588 [caps],
589 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
590
591 if test "x${with_caps}" != "xno"; then
592 AC_SEARCH_LIBS([cap_init], [cap], [], [
593 if test "x${with_caps}" = "xyes" ; then
594 AC_MSG_ERROR([*** POSIX caps libraries not found])
595 fi])
596 AC_CHECK_HEADERS([sys/capability.h], [], [
597 if test "x${with_caps}" = "xyes" ; then
598 AC_MSG_ERROR([*** POSIX caps headers not found])
599 fi])
600 fi
601
602 #### Valgrind (optional) ####
603
604 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
605
606 #### Sound file ####
607
608 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
609 AC_SUBST(LIBSNDFILE_CFLAGS)
610 AC_SUBST(LIBSNDFILE_LIBS)
611
612 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
613 AC_SUBST(LIBSPEEX_CFLAGS)
614 AC_SUBST(LIBSPEEX_LIBS)
615
616 #### atomic-ops ###
617
618 AC_MSG_CHECKING([whether we need libatomic_ops])
619 if test "x$need_libatomic_ops" = "xyes"; then
620 AC_MSG_RESULT([yes])
621 AC_CHECK_HEADERS([atomic_ops.h], [], [
622 AC_MSG_ERROR([*** libatomic-ops headers not found])
623 ])
624
625 # Win32 does not need the lib and breaks horribly if we try to include it
626 if test "x$os_is_win32" != "x1" ; then
627 LIBS="$LIBS -latomic_ops"
628 fi
629 else
630 AC_MSG_RESULT([no])
631 fi
632
633 #### Libsamplerate support (optional) ####
634
635 AC_ARG_ENABLE([samplerate],
636 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
637 [
638 case "${enableval}" in
639 yes) samplerate=yes ;;
640 no) samplerate=no ;;
641 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
642 esac
643 ],
644 [samplerate=auto])
645
646 if test "x${samplerate}" != xno ; then
647 PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
648 HAVE_LIBSAMPLERATE=1,
649 [
650 HAVE_LIBSAMPLERATE=0
651 if test "x$samplerate" = xyes ; then
652 AC_MSG_ERROR([*** Libsamplerate not found])
653 fi
654 ])
655 else
656 HAVE_LIBSAMPLERATE=0
657 fi
658
659 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
660 AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
661 fi
662
663 AC_SUBST(LIBSAMPLERATE_CFLAGS)
664 AC_SUBST(LIBSAMPLERATE_LIBS)
665 AC_SUBST(HAVE_LIBSAMPLERATE)
666 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
667
668 #### Database support ####
669
670 HAVE_TDB=0
671 HAVE_GDBM=0
672 HAVE_SIMPLEDB=0
673
674 AC_ARG_WITH(
675 [database],
676 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
677
678 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
679 PKG_CHECK_MODULES(TDB, [ tdb ],
680 [
681 HAVE_TDB=1
682 with_database=tdb
683 ], [
684 if test "x${with_database}" = "xtdb" ; then
685 AC_MSG_ERROR([*** tdb not found])
686 fi
687 ])
688 fi
689
690 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
691 have_gdbm=yes
692
693 AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
694 AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
695
696 if test "x${have_gdbm}" = "xyes" ; then
697 HAVE_GDBM=1
698 GDBM_CFLAGS=
699 GDBM_LIBS=-lgdbm
700 with_database=gdbm
701 elif test "x${with_database}" = "xgdbm"; then
702 AC_MSG_ERROR([*** gdbm not found])
703 fi
704 fi
705
706 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
707 HAVE_SIMPLEDB=1
708 with_database=simple
709 fi
710
711 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
712 AC_MSG_ERROR([*** missing database backend])
713 fi
714
715 if test "x${HAVE_TDB}" = x1 ; then
716 AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
717 fi
718
719 if test "x${HAVE_GDBM}" = x1 ; then
720 AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
721 fi
722
723 if test "x${HAVE_SIMPLEDB}" = x1 ; then
724 AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
725 fi
726
727 AC_SUBST(TDB_CFLAGS)
728 AC_SUBST(TDB_LIBS)
729 AC_SUBST(HAVE_TDB)
730 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
731
732 AC_SUBST(GDBM_CFLAGS)
733 AC_SUBST(GDBM_LIBS)
734 AC_SUBST(HAVE_GDBM)
735 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
736
737 AC_SUBST(HAVE_SIMPLEDB)
738 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
739
740 #### OSS support (optional) ####
741
742 AC_ARG_ENABLE([oss-output],
743 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
744 [
745 case "${enableval}" in
746 yes) oss_output=yes ;;
747 no) oss_output=no ;;
748 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
749 esac
750 ],
751 [oss_output=auto])
752
753 AC_ARG_ENABLE([oss-wrapper],
754 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
755 [
756 case "${enableval}" in
757 yes) oss_wrapper=yes ;;
758 no) oss_wrapper=no ;;
759 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
760 esac
761 ],
762 [oss_wrapper=auto])
763
764 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
765 AC_CHECK_HEADERS([sys/soundcard.h],
766 [
767 if test "x${oss_output}" != "xno"; then
768 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
769 fi
770 if test "x${oss_wrapper}" != "xno"; then
771 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
772 fi
773 HAVE_OSS=1
774 ],
775 [
776 HAVE_OSS=0
777 if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
778 AC_MSG_ERROR([*** OSS support not found])
779 fi
780 ])
781 else
782 HAVE_OSS=0
783 fi
784
785 AC_SUBST(HAVE_OSS)
786 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
787 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
788
789 #### CoreAudio support (optional) ####
790
791 AC_ARG_ENABLE([coreaudio-output],
792 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
793 [
794 case "${enableval}" in
795 yes) coreaudio_enabled=yes ;;
796 no) coreaudio_enabled=no ;;
797 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
798 esac
799 ],
800 [coreaudio_enabled=auto])
801
802 if test "x${coreaudio_enabled}" != xno ; then
803 AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
804 else
805 HAVE_COREAUDIO=0
806 fi
807
808 AC_SUBST(HAVE_COREAUDIO)
809 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
810
811 #### ALSA support (optional) ####
812
813 AC_ARG_ENABLE([alsa],
814 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
815 [
816 case "${enableval}" in
817 yes) alsa=yes ;;
818 no) alsa=no ;;
819 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
820 esac
821 ],
822 [alsa=auto])
823
824 if test "x${alsa}" != xno ; then
825 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
826 [
827 HAVE_ALSA=1
828 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
829 ],
830 [
831 HAVE_ALSA=0
832 if test "x$alsa" = xyes ; then
833 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
834 fi
835 ])
836 else
837 HAVE_ALSA=0
838 fi
839
840 AC_SUBST(ASOUNDLIB_CFLAGS)
841 AC_SUBST(ASOUNDLIB_LIBS)
842 AC_SUBST(HAVE_ALSA)
843 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
844
845 #### Solaris audio support (optional) ####
846
847 AC_ARG_ENABLE([solaris],
848 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
849 [
850 case "${enableval}" in
851 yes) solaris=yes ;;
852 no) solaris=no ;;
853 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
854 esac
855 ],
856 [solaris=auto])
857
858 if test "x${solaris}" != xno ; then
859 AC_CHECK_HEADERS([sys/audio.h],
860 [
861 HAVE_SOLARIS=1
862 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
863 ],
864 [
865 HAVE_SOLARIS=0
866 if test "x$solaris" = xyes ; then
867 AC_MSG_ERROR([*** Solaris audio support not found])
868 fi
869 ])
870 else
871 HAVE_SOLARIS=0
872 fi
873
874 AC_SUBST(HAVE_SOLARIS)
875 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
876
877 #### GLib 2 support (optional) ####
878
879 AC_ARG_ENABLE([glib2],
880 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
881 [
882 case "${enableval}" in
883 yes) glib2=yes ;;
884 no) glib2=no ;;
885 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
886 esac
887 ],
888 [glib2=auto])
889
890 if test "x${glib2}" != xno ; then
891 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
892 HAVE_GLIB20=1,
893 [
894 HAVE_GLIB20=0
895 if test "x$glib2" = xyes ; then
896 AC_MSG_ERROR([*** GLib 2 support not found])
897 fi
898 ])
899 else
900 HAVE_GLIB20=0
901 fi
902
903 AC_SUBST(GLIB20_CFLAGS)
904 AC_SUBST(GLIB20_LIBS)
905 AC_SUBST(HAVE_GLIB20)
906 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
907
908 if test "x$HAVE_GLIB20" = x1 ; then
909 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
910 fi
911
912 #### GTK2 support (optional) ####
913
914 AC_ARG_ENABLE([gtk2],
915 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
916 [
917 case "${enableval}" in
918 yes) gtk2=yes ;;
919 no) gtk2=no ;;
920 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
921 esac
922 ],
923 [gtk2=auto])
924
925 if test "x${gtk2}" != xno ; then
926 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
927 HAVE_GTK20=1,
928 [
929 HAVE_GTK20=0
930 if test "x$gtk2" = xyes ; then
931 AC_MSG_ERROR([*** Gtk+ 2 support not found])
932 fi
933 ])
934 else
935 HAVE_GTK20=0
936 fi
937
938 AC_SUBST(GTK20_CFLAGS)
939 AC_SUBST(GTK20_LIBS)
940 AC_SUBST(HAVE_GTK20)
941 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
942
943 if test "x$HAVE_GTK20" = x1 ; then
944 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
945 fi
946
947 #### GConf support (optional) ####
948
949 AC_ARG_ENABLE([gconf],
950 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
951 [
952 case "${enableval}" in
953 yes) gconf=yes ;;
954 no) gconf=no ;;
955 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
956 esac
957 ],
958 [gconf=auto])
959
960 if test "x${gconf}" != xno ; then
961 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 gobject-2.0 ],
962 HAVE_GCONF=1,
963 [
964 HAVE_GCONF=0
965 if test "x$gconf" = xyes ; then
966 AC_MSG_ERROR([*** GConf support not found])
967 fi
968 ])
969 else
970 HAVE_GCONF=0
971 fi
972
973 AC_SUBST(GCONF_CFLAGS)
974 AC_SUBST(GCONF_LIBS)
975 AC_SUBST(HAVE_GCONF)
976 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
977
978 #### Avahi support (optional) ####
979
980 AC_ARG_ENABLE([avahi],
981 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
982 [
983 case "${enableval}" in
984 yes) avahi=yes ;;
985 no) avahi=no ;;
986 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
987 esac
988 ],
989 [avahi=auto])
990
991 if test "x${avahi}" != xno ; then
992 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
993 HAVE_AVAHI=1,
994 [
995 HAVE_AVAHI=0
996 if test "x$avahi" = xyes ; then
997 AC_MSG_ERROR([*** Avahi support not found])
998 fi
999 ])
1000 else
1001 HAVE_AVAHI=0
1002 fi
1003
1004 AC_SUBST(AVAHI_CFLAGS)
1005 AC_SUBST(AVAHI_LIBS)
1006 AC_SUBST(HAVE_AVAHI)
1007 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
1008
1009 ### JACK (optional) ####
1010
1011 AC_ARG_ENABLE([jack],
1012 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
1013 [
1014 case "${enableval}" in
1015 yes) jack=yes ;;
1016 no) jack=no ;;
1017 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
1018 esac
1019 ],
1020 [jack=auto])
1021
1022 if test "x${jack}" != xno ; then
1023 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
1024 HAVE_JACK=1,
1025 [
1026 HAVE_JACK=0
1027 if test "x$jack" = xyes ; then
1028 AC_MSG_ERROR([*** JACK support not found])
1029 fi
1030 ])
1031 else
1032 HAVE_JACK=0
1033 fi
1034
1035 AC_SUBST(JACK_CFLAGS)
1036 AC_SUBST(JACK_LIBS)
1037 AC_SUBST(HAVE_JACK)
1038 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1039
1040 #### Async DNS support (optional) ####
1041
1042 AC_ARG_ENABLE([asyncns],
1043 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1044 [
1045 case "${enableval}" in
1046 yes) asyncns=yes ;;
1047 no) asyncns=no ;;
1048 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1049 esac
1050 ],
1051 [asyncns=auto])
1052
1053 if test "x${asyncns}" != xno ; then
1054 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1055 HAVE_LIBASYNCNS=1,
1056 [
1057 HAVE_LIBASYNCNS=0
1058 if test "x$asyncns" = xyes ; then
1059 AC_MSG_ERROR([*** Async DNS support not found])
1060 fi
1061 ])
1062 else
1063 HAVE_LIBASYNCNS=0
1064 fi
1065
1066 AC_SUBST(LIBASYNCNS_CFLAGS)
1067 AC_SUBST(LIBASYNCNS_LIBS)
1068 AC_SUBST(HAVE_LIBASYNCNS)
1069 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1070
1071 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1072 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1073 fi
1074
1075 #### TCP wrappers (optional) ####
1076
1077 AC_ARG_ENABLE([tcpwrap],
1078 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1079 [
1080 case "${enableval}" in
1081 yes) tcpwrap=yes ;;
1082 no) tcpwrap=no ;;
1083 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1084 esac
1085 ],
1086 [tcpwrap=auto])
1087
1088 if test "x${tcpwrap}" != xno ; then
1089 ACX_LIBWRAP
1090 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1091 AC_MSG_ERROR([*** TCP wrappers support not found])
1092 fi
1093 else
1094 LIBWRAP_LIBS=
1095 fi
1096
1097 AC_SUBST(LIBWRAP_LIBS)
1098
1099 #### LIRC support (optional) ####
1100
1101 AC_ARG_ENABLE([lirc],
1102 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1103 [
1104 case "${enableval}" in
1105 yes) lirc=yes ;;
1106 no) lirc=no ;;
1107 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1108 esac
1109 ],
1110 [lirc=auto])
1111
1112 if test "x${lirc}" != xno ; then
1113 ACX_LIRC
1114 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1115 AC_MSG_ERROR([*** LIRC support not found])
1116 fi
1117 else
1118 HAVE_LIRC=0
1119 fi
1120
1121 AC_SUBST(LIRC_CFLAGS)
1122 AC_SUBST(LIRC_LIBS)
1123 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1124
1125 #### HAL support (optional) ####
1126
1127 AC_ARG_ENABLE([hal],
1128 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1129 [
1130 case "${enableval}" in
1131 yes) hal=yes ;;
1132 no) hal=no ;;
1133 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1134 esac
1135 ],
1136 [hal=auto])
1137 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1138 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1139 [
1140 HAVE_HAL=1
1141 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1142 ],
1143 [
1144 HAVE_HAL=0
1145 if test "x$hal" = xyes ; then
1146 AC_MSG_ERROR([*** HAL support not found])
1147 fi
1148 ])
1149 else
1150 HAVE_HAL=0
1151 fi
1152
1153 AC_SUBST(HAL_CFLAGS)
1154 AC_SUBST(HAL_LIBS)
1155 AC_SUBST(HAVE_HAL)
1156 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1157
1158 #### UDEV support (optional) ####
1159
1160 AC_ARG_ENABLE([udev],
1161 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1162 [
1163 case "${enableval}" in
1164 yes) udev=yes ;;
1165 no) udev=no ;;
1166 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1167 esac
1168 ],
1169 [udev=auto])
1170 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1171 PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1172 [
1173 HAVE_UDEV=1
1174 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1175 ],
1176 [
1177 HAVE_UDEV=0
1178 if test "x$udev" = xyes ; then
1179 AC_MSG_ERROR([*** UDEV support not found])
1180 fi
1181 ])
1182 else
1183 HAVE_UDEV=0
1184 fi
1185
1186 AC_SUBST(UDEV_CFLAGS)
1187 AC_SUBST(UDEV_LIBS)
1188 AC_SUBST(HAVE_UDEV)
1189 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1190
1191 #### HAL compat support (optional) ####
1192
1193 AC_ARG_ENABLE([hal-compat],
1194 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1195 [
1196 case "${enableval}" in
1197 yes) halcompat=yes ;;
1198 no) halcompat=no ;;
1199 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1200 esac
1201 ],
1202 [halcompat=auto])
1203 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1204 HAVE_HAL_COMPAT=1
1205 AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1206 else
1207 HAVE_HAL_COMPAT=0
1208 fi
1209
1210 AC_SUBST(HAVE_HAL_COMPAT)
1211 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1212
1213 #### BlueZ support (optional) ####
1214
1215 AC_ARG_ENABLE([bluez],
1216 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1217 [
1218 case "${enableval}" in
1219 yes) bluez=yes ;;
1220 no) bluez=no ;;
1221 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1222 esac
1223 ],
1224 [bluez=auto])
1225 if test "x${bluez}" != xno ; then
1226 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1227 HAVE_BLUEZ=1,
1228 [
1229 HAVE_BLUEZ=0
1230 if test "x$bluez" = xyes ; then
1231 AC_MSG_ERROR([*** BLUEZ support not found])
1232 fi
1233 ])
1234 else
1235 HAVE_BLUEZ=0
1236 fi
1237
1238 AC_SUBST(BLUEZ_CFLAGS)
1239 AC_SUBST(BLUEZ_LIBS)
1240 AC_SUBST(HAVE_BLUEZ)
1241 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1242
1243 #### D-Bus support (optional) ####
1244
1245 AC_ARG_ENABLE([dbus],
1246 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1247 [
1248 case "${enableval}" in
1249 yes) dbus=yes ;;
1250 no) dbus=no ;;
1251 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1252 esac
1253 ],
1254 [dbus=auto])
1255
1256 if test "x$HAVE_HAL" = x1 ; then
1257 dbus=yes
1258 fi
1259
1260 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1261
1262 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1263 [
1264 HAVE_DBUS=1
1265 saved_LIBS="$LIBS"
1266 LIBS="$LIBS $DBUS_LIBS"
1267 CFLAGS="$CFLAGS $DBUS_CFLAGS"
1268 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1269 LIBS="$saved_LIBS"
1270 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1271 ],
1272 [
1273 HAVE_DBUS=0
1274 if test "x$dbus" = xyes ; then
1275 AC_MSG_ERROR([*** D-Bus support not found])
1276 fi
1277 ])
1278 else
1279 HAVE_DBUS=0
1280 fi
1281
1282 AC_SUBST(DBUS_CFLAGS)
1283 AC_SUBST(DBUS_LIBS)
1284 AC_SUBST(HAVE_DBUS)
1285 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1286
1287 ### IPv6 connection support (optional) ###
1288
1289 AC_ARG_ENABLE([ipv6],
1290 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1291 [
1292 case "${enableval}" in
1293 yes) ipv6=yes ;;
1294 no) ipv6=no ;;
1295 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1296 esac
1297 ],
1298 [ipv6=auto])
1299
1300 if test "x${ipv6}" != xno ; then
1301 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1302 HAVE_IPV6=1
1303 else
1304 HAVE_IPV6=0
1305 fi
1306
1307 #### OpenSSL support (optional) ####
1308
1309 AC_ARG_ENABLE([openssl],
1310 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1311 [
1312 case "${enableval}" in
1313 yes) openssl=yes ;;
1314 no) openssl=no ;;
1315 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1316 esac
1317 ],
1318 [openssl=auto])
1319
1320 if test "x${openssl}" != xno ; then
1321
1322 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1323 [
1324 HAVE_OPENSSL=1
1325 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1326 ],
1327 [
1328 HAVE_OPENSSL=0
1329 if test "x$openssl" = xyes ; then
1330 AC_MSG_ERROR([*** OpenSSL support not found])
1331 fi
1332 ])
1333 else
1334 HAVE_OPENSSL=0
1335 fi
1336
1337 AC_SUBST(OPENSSL_CFLAGS)
1338 AC_SUBST(OPENSSL_LIBS)
1339 AC_SUBST(HAVE_OPENSSL)
1340 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1341
1342 #### FFTW (optional) ####
1343 AC_ARG_WITH(
1344 [fftw],
1345 AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1346
1347 if test "x${with_fftw}" != "xno"; then
1348 PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1349 fi
1350 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1351
1352 ### ORC (optional) ###
1353 ORC_CHECK([0.4.9])
1354
1355 ### Build and Install man pages ###
1356 AC_ARG_ENABLE(manpages,
1357 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1358 [case "${enableval}" in
1359 yes) manpages=yes ;;
1360 no) manpages=no ;;
1361 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1362 esac],[manpages=yes])
1363
1364 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1365
1366 #### PulseAudio system group & user #####
1367
1368 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1369 if test -z "$with_system_user" ; then
1370 PA_SYSTEM_USER=pulse
1371 else
1372 PA_SYSTEM_USER=$with_system_user
1373 fi
1374 AC_SUBST(PA_SYSTEM_USER)
1375 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1376
1377 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1378 if test -z "$with_system_group" ; then
1379 PA_SYSTEM_GROUP=pulse
1380 else
1381 PA_SYSTEM_GROUP=$with_system_group
1382 fi
1383 AC_SUBST(PA_SYSTEM_GROUP)
1384 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1385
1386 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)]))
1387 if test -z "$with_access_group" ; then
1388 PA_ACCESS_GROUP=pulse-access
1389 else
1390 PA_ACCESS_GROUP=$with_access_group
1391 fi
1392 AC_SUBST(PA_ACCESS_GROUP)
1393 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1394
1395 AC_ARG_ENABLE(
1396 per_user_esound_socket,
1397 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1398 [
1399 case "${enableval}" in
1400 yes) per_user_esound_socket=1 ;;
1401 no) per_user_esound_socket=0 ;;
1402 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1403 esac
1404 ],
1405 [per_user_esound_socket=1])
1406
1407 if test "x$per_user_esound_socket" = "x1"; then
1408 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1409 fi
1410
1411 #### PulseAudio system runtime dir ####
1412 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1413 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1414 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1415 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1416 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1417 AC_SUBST(PA_SYSTEM_STATE_PATH)
1418
1419 ###################################
1420 # Output #
1421 ###################################
1422
1423 AC_ARG_ENABLE([legacy-runtime-dir],
1424 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1425 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1426 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1427 fi
1428
1429 AC_ARG_ENABLE(
1430 [static-bins],
1431 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1432 [STATIC_BINS=1], [STATIC_BINS=0])
1433 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1434
1435 AC_ARG_WITH(
1436 [preopen-mods],
1437 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1438 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1439 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1440 if test "x$PREOPEN_MODS" != "xall" ; then
1441 tmpLIBS=""
1442 for mod in $PREOPEN_MODS; do
1443 tmpLIBS="$tmpLIBS module-$mod.la"
1444 done
1445 PREOPEN_MODS="$tmpLIBS"
1446 AC_SUBST(PREOPEN_MODS)
1447 fi
1448
1449 AC_ARG_WITH(
1450 [module-dir],
1451 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINOR}/modules]),
1452 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINOR}/modules"])
1453
1454 AC_SUBST(modlibexecdir)
1455
1456 AC_ARG_WITH(
1457 [udev-rules-dir],
1458 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1459 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1460
1461 AC_SUBST(udevrulesdir)
1462
1463 AC_ARG_ENABLE(
1464 [force-preopen],
1465 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1466 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1467 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1468
1469 AC_CONFIG_FILES([
1470 Makefile
1471 src/Makefile
1472 man/Makefile
1473 libpulse.pc
1474 libpulse-simple.pc
1475 libpulse-browse.pc
1476 libpulse-mainloop-glib.pc
1477 doxygen/Makefile
1478 doxygen/doxygen.conf
1479 src/pulse/version.h
1480 po/Makefile.in
1481 src/daemon/Makefile
1482 src/modules/Makefile
1483 src/modules/alsa/Makefile
1484 src/modules/alsa/mixer/Makefile
1485 src/modules/alsa/mixer/paths/Makefile
1486 src/modules/alsa/mixer/profile-sets/Makefile
1487 src/modules/bluetooth/Makefile
1488 src/modules/dbus/Makefile
1489 src/modules/gconf/Makefile
1490 src/modules/jack/Makefile
1491 src/modules/oss/Makefile
1492 src/modules/raop/Makefile
1493 src/modules/rtp/Makefile
1494 src/modules/x11/Makefile
1495 src/pulse/Makefile
1496 src/pulsecore/Makefile
1497 src/pulsecore/ffmpeg/Makefile
1498 src/tests/Makefile
1499 src/utils/Makefile
1500 ])
1501
1502 AC_OUTPUT
1503
1504 # ==========================================================================
1505 ENABLE_X11=no
1506 if test "x$HAVE_X11" = "x1" ; then
1507 ENABLE_X11=yes
1508 fi
1509
1510 ENABLE_OSS_OUTPUT=no
1511 ENABLE_OSS_WRAPPER=no
1512 if test "x$HAVE_OSS" = "x1" ; then
1513 if test "x$enable_oss_output" != "xno"; then
1514 ENABLE_OSS_OUTPUT=yes
1515 fi
1516 if test "x$enable_oss_wrapper" != "xno"; then
1517 ENABLE_OSS_WRAPPER=yes
1518 fi
1519 fi
1520
1521 ENABLE_COREAUDIO=no
1522 if test "x$HAVE_COREAUDIO" = "x1" ; then
1523 ENABLE_COREAUDIO=yes
1524 fi
1525
1526 ENABLE_ALSA=no
1527 if test "x$HAVE_ALSA" = "x1" ; then
1528 ENABLE_ALSA=yes
1529 fi
1530
1531 ENABLE_SOLARIS=no
1532 if test "x$HAVE_SOLARIS" = "x1" ; then
1533 ENABLE_SOLARIS=yes
1534 fi
1535
1536 ENABLE_GTK20=no
1537 if test "x$HAVE_GTK20" = "x1" ; then
1538 ENABLE_GTK20=yes
1539 fi
1540
1541 ENABLE_GLIB20=no
1542 if test "x$HAVE_GLIB20" = "x1" ; then
1543 ENABLE_GLIB20=yes
1544 fi
1545
1546 ENABLE_GCONF=no
1547 if test "x$HAVE_GCONF" = "x1" ; then
1548 ENABLE_GCONF=yes
1549 fi
1550
1551 ENABLE_AVAHI=no
1552 if test "x$HAVE_AVAHI" = "x1" ; then
1553 ENABLE_AVAHI=yes
1554 fi
1555
1556 ENABLE_JACK=no
1557 if test "x$HAVE_JACK" = "x1" ; then
1558 ENABLE_JACK=yes
1559 fi
1560
1561 ENABLE_LIBASYNCNS=no
1562 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1563 ENABLE_LIBASYNCNS=yes
1564 fi
1565
1566 ENABLE_LIRC=no
1567 if test "x$HAVE_LIRC" = "x1" ; then
1568 ENABLE_LIRC=yes
1569 fi
1570
1571 ENABLE_DBUS=no
1572 if test "x$HAVE_DBUS" = "x1" ; then
1573 ENABLE_DBUS=yes
1574 fi
1575
1576 ENABLE_HAL=no
1577 if test "x$HAVE_HAL" = "x1" ; then
1578 ENABLE_HAL=yes
1579 fi
1580
1581 ENABLE_UDEV=no
1582 if test "x$HAVE_UDEV" = "x1" ; then
1583 ENABLE_UDEV=yes
1584 fi
1585
1586 ENABLE_HAL_COMPAT=no
1587 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1588 ENABLE_HAL_COMPAT=yes
1589 fi
1590
1591 ENABLE_TCPWRAP=no
1592 if test "x${LIBWRAP_LIBS}" != x ; then
1593 ENABLE_TCPWRAP=yes
1594 fi
1595
1596 ENABLE_LIBSAMPLERATE=no
1597 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1598 ENABLE_LIBSAMPLERATE=yes
1599 fi
1600
1601 ENABLE_BLUEZ=no
1602 if test "x${HAVE_BLUEZ}" = "x1" ; then
1603 ENABLE_BLUEZ=yes
1604 fi
1605
1606 ENABLE_GDBM=no
1607 if test "x${HAVE_GDBM}" = "x1" ; then
1608 ENABLE_GDBM=yes
1609 fi
1610
1611 ENABLE_TDB=no
1612 if test "x${HAVE_TDB}" = "x1" ; then
1613 ENABLE_TDB=yes
1614 fi
1615
1616 ENABLE_SIMPLEDB=no
1617 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1618 ENABLE_SIMPLEDB=yes
1619 fi
1620
1621 ENABLE_FFTW=no
1622 if test "x${HAVE_FFTW}" = "x1" ; then
1623 ENABLE_FFTW=yes
1624 fi
1625
1626 ENABLE_ORC=no
1627 if test "x${HAVE_ORC}" = "xyes" ; then
1628 ENABLE_ORC=yes
1629 fi
1630
1631 ENABLE_OPENSSL=no
1632 if test "x${HAVE_OPENSSL}" = "x1" ; then
1633 ENABLE_OPENSSL=yes
1634 fi
1635
1636 ENABLE_IPV6=no
1637 if test "x${HAVE_IPV6}" = "x1" ; then
1638 ENABLE_IPV6=yes
1639 fi
1640
1641 ENABLE_PER_USER_ESOUND_SOCKET=no
1642 if test "x$per_user_esound_socket" = "x1" ; then
1643 ENABLE_PER_USER_ESOUND_SOCKET=yes
1644 fi
1645
1646 echo "
1647 ---{ $PACKAGE_NAME $VERSION }---
1648
1649 prefix: ${prefix}
1650 sysconfdir: ${sysconfdir}
1651 localstatedir: ${localstatedir}
1652 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1653 System State Path: ${PA_SYSTEM_STATE_PATH}
1654 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1655 Compiler: ${CC}
1656 CFLAGS: ${CFLAGS}
1657
1658 Have X11: ${ENABLE_X11}
1659 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1660 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1661 Enable CoreAudio: ${ENABLE_COREAUDIO}
1662 Enable Alsa: ${ENABLE_ALSA}
1663 Enable Solaris: ${ENABLE_SOLARIS}
1664 Enable GLib 2.0: ${ENABLE_GLIB20}
1665 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1666 Enable GConf: ${ENABLE_GCONF}
1667 Enable Avahi: ${ENABLE_AVAHI}
1668 Enable Jack: ${ENABLE_JACK}
1669 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1670 Enable LIRC: ${ENABLE_LIRC}
1671 Enable DBUS: ${ENABLE_DBUS}
1672 Enable HAL: ${ENABLE_HAL}
1673 Enable udev: ${ENABLE_UDEV}
1674 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1675 Enable BlueZ: ${ENABLE_BLUEZ}
1676 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1677 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1678 Enable IPv6: ${ENABLE_IPV6}
1679 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1680 Enable tdb: ${ENABLE_TDB}
1681 Enable gdbm: ${ENABLE_GDBM}
1682 Enable simple database: ${ENABLE_SIMPLEDB}
1683 Enable fftw: ${ENABLE_FFTW}
1684 Enable orc: ${ENABLE_ORC}
1685
1686 System User: ${PA_SYSTEM_USER}
1687 System Group: ${PA_SYSTEM_GROUP}
1688 Access Group: ${PA_ACCESS_GROUP}
1689 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1690 Force preopen: ${FORCE_PREOPEN}
1691 Preopened modules: ${PREOPEN_MODS}
1692 "
1693
1694 if test "${ENABLE_DBUS}" = "no" ; then
1695 echo "
1696 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1697 You do not have DBUS support enabled. It is strongly recommended
1698 that you enable DBUS support if you platform supports it.
1699 Many parts of PulseAudio use udev, from Console Kit interaction
1700 to the Device Reservation Protocol to speak to JACK, Bluetooth
1701 support and even a native control protocol for communicating and
1702 controling the PulseAudio daemon itself.
1703 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1704 "
1705 fi
1706
1707 if test "${ENABLE_UDEV}" = "no" ; then
1708 echo "
1709 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1710 You do not have udev support enabled. It is strongly recommended
1711 that you enable udev support if you platform supports it as it is
1712 the primary method used to detect hardware audio devices (on Linux)
1713 and is thus a critical part of PulseAudio on that platform.
1714 ===== WARNING WARNING WARNING WARNING WARNING WARNING WARNING =====
1715 "
1716 fi