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