]> code.delx.au - pulseaudio/blob - configure.ac
configure.ac: add DARWIN_OS variable
[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:0: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
406 # BSD
407 AC_SEARCH_LIBS([connect], [socket])
408 AC_SEARCH_LIBS([backtrace], [execinfo])
409
410 # Non-standard
411
412 # This magic is needed so we do not needlessly add static libs to the win32
413 # build, disabling its ability to make dlls.
414 AC_CHECK_FUNCS([getopt_long], [], [AC_CHECK_LIB([iberty], [getopt_long])])
415
416 # Darwin/OS X
417 if test "x$os_is_darwin" = "x1" ; then
418 AC_MSG_CHECKING([looking for Apple CoreService Framework])
419 # How do I check a framework "library" - AC_CHECK_LIB prob. won't work??, just assign LIBS & hope
420 AC_CHECK_HEADER([/Developer/Headers/FlatCarbon/CoreServices.h],
421 [LIBS="$LIBS -framework CoreServices"],
422 [AC_MSG_ERROR([CoreServices.h header file not found]) ])
423
424 AC_MSG_RESULT([ok])
425 AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [Using clock_gettime() replacement])
426 fi
427
428 #### Check for functions ####
429
430 # ISO
431 AC_CHECK_FUNCS_ONCE([lrintf strtof])
432
433 # POSIX
434 AC_FUNC_FORK
435 AC_FUNC_GETGROUPS
436 AC_FUNC_SELECT_ARGTYPES
437 AC_CHECK_FUNCS_ONCE([chmod chown clock_gettime getaddrinfo getgrgid_r getgrnam_r \
438 getpwnam_r getpwuid_r gettimeofday getuid inet_ntop inet_pton mlock nanosleep \
439 pipe posix_fadvise posix_madvise posix_memalign setpgid setsid shm_open \
440 sigaction sleep sysconf pthread_setaffinity_np])
441 AC_CHECK_FUNCS([mkfifo], [HAVE_MKFIFO=1], [HAVE_MKFIFO=0])
442
443 AM_CONDITIONAL(HAVE_MKFIFO, test "x$HAVE_MKFIFO" = "x1")
444
445 # X/OPEN
446 AC_CHECK_FUNCS_ONCE([readlink])
447
448 # SUSv2
449 AC_CHECK_FUNCS_ONCE([ctime_r usleep])
450
451 # SUSv3
452 AC_CHECK_FUNCS_ONCE([strerror_r])
453
454 # BSD
455 AC_CHECK_FUNCS_ONCE([lstat])
456
457 # Non-standard
458
459 AC_CHECK_FUNCS_ONCE([setresuid setresgid setreuid setregid seteuid setegid ppoll strsignal sig2str strtof_l pipe2 accept4])
460
461 AC_FUNC_ALLOCA
462
463 AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
464 pulseaudio_cv_PTHREAD_PRIO_INHERIT,
465 [save_CC=$CC; CC=$PTHREAD_CC
466 save_CFLAGS=$CFLAGS; CFLAGS=$PTHREAD_CFLAGS
467 save_LIBS=$LIBS; LIBS=$PTHREAD_LIBS
468 AC_LINK_IFELSE(
469 AC_LANG_PROGRAM(
470 [[
471 #include <pthread.h>
472 ]],
473 [[int i = PTHREAD_PRIO_INHERIT;]]),
474 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=yes],
475 [pulseaudio_cv_PTHREAD_PRIO_INHERIT=no])
476 CC=$save_CC
477 CFLAGS=$save_CFLAGS
478 LIBS=$save_LIBS
479 ])
480
481 AS_IF([test "$pulseaudio_cv_PTHREAD_PRIO_INHERIT" = "yes"], [
482 AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])
483 ])
484
485 AC_DEFINE_UNQUOTED(PA_CFLAGS,"$CFLAGS", [The CFLAGS used during compilation])
486
487 #### Large File-Support (LFS) ####
488
489 AC_SYS_LARGEFILE
490
491 # Check for open64 to know if the current system does have open64() and similar functions
492 AC_CHECK_FUNCS_ONCE([open64])
493
494 #### [lib]iconv ####
495
496 AM_ICONV
497
498 IT_PROG_INTLTOOL([0.35.0])
499 GETTEXT_PACKAGE=pulseaudio
500 AC_SUBST([GETTEXT_PACKAGE])
501 AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext package])
502 AM_GLIB_GNU_GETTEXT
503
504 pulselocaledir='${prefix}/${DATADIRNAME}/locale'
505 AC_SUBST(pulselocaledir)
506
507 ###################################
508 # External libraries #
509 ###################################
510
511 #### pkg-config ####
512
513 PKG_PROG_PKG_CONFIG
514
515 #### X11 (optional) ####
516
517 AC_ARG_ENABLE([x11],
518 AS_HELP_STRING([--disable-x11],[Disable optional X11 support]),
519 [
520 case "${enableval}" in
521 yes) x11=yes ;;
522 no) x11=no ;;
523 *) AC_MSG_ERROR(bad value ${enableval} for --disable-x11) ;;
524 esac
525 ],
526 [x11=auto])
527
528 if test "x${x11}" != xno ; then
529 PKG_CHECK_MODULES(X11, [ x11 ice sm xtst ],
530 HAVE_X11=1,
531 [
532 HAVE_X11=0
533 if test "x$x11" = xyes ; then
534 AC_MSG_ERROR([*** X11 not found])
535 fi
536 ])
537 else
538 HAVE_X11=0
539 fi
540
541 if test "x${HAVE_X11}" = x1 ; then
542 AC_DEFINE([HAVE_X11], 1, [Have X11?])
543 fi
544
545 AC_SUBST(X11_CFLAGS)
546 AC_SUBST(X11_LIBS)
547 AC_SUBST(HAVE_X11)
548 AM_CONDITIONAL([HAVE_X11], [test "x$HAVE_X11" = x1])
549
550 #### Capabilities (optional) ####
551
552 CAP_LIBS=''
553
554 AC_ARG_WITH(
555 [caps],
556 AS_HELP_STRING([--without-caps],[Omit support for POSIX capabilities.]))
557
558 if test "x${with_caps}" != "xno"; then
559 AC_SEARCH_LIBS([cap_init], [cap], [], [
560 if test "x${with_caps}" = "xyes" ; then
561 AC_MSG_ERROR([*** POSIX caps libraries not found])
562 fi])
563 AC_CHECK_HEADERS([sys/capability.h], [], [
564 if test "x${with_caps}" = "xyes" ; then
565 AC_MSG_ERROR([*** POSIX caps headers not found])
566 fi])
567 fi
568
569 #### Valgrind (optional) ####
570
571 AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h])
572
573 #### Sound file ####
574
575 PKG_CHECK_MODULES(LIBSNDFILE, [ sndfile >= 1.0.20 ])
576 AC_SUBST(LIBSNDFILE_CFLAGS)
577 AC_SUBST(LIBSNDFILE_LIBS)
578
579 PKG_CHECK_MODULES(LIBSPEEX, [ speexdsp >= 1.2 ])
580 AC_SUBST(LIBSPEEX_CFLAGS)
581 AC_SUBST(LIBSPEEX_LIBS)
582
583 #### atomic-ops ###
584
585 AC_MSG_CHECKING([whether we need libatomic_ops])
586 if test "x$need_libatomic_ops" = "xyes"; then
587 AC_MSG_RESULT([yes])
588 AC_CHECK_HEADERS([atomic_ops.h], [], [
589 AC_MSG_ERROR([*** libatomic-ops headers not found])
590 ])
591
592 # Win32 does not need the lib and breaks horribly if we try to include it
593 if test "x$os_is_win32" != "x1" ; then
594 LIBS="$LIBS -latomic_ops"
595 fi
596 else
597 AC_MSG_RESULT([no])
598 fi
599
600 #### Libsamplerate support (optional) ####
601
602 AC_ARG_ENABLE([samplerate],
603 AS_HELP_STRING([--disable-samplerate],[Disable optional libsamplerate support]),
604 [
605 case "${enableval}" in
606 yes) samplerate=yes ;;
607 no) samplerate=no ;;
608 *) AC_MSG_ERROR(bad value ${enableval} for --disable-samplerate) ;;
609 esac
610 ],
611 [samplerate=auto])
612
613 if test "x${samplerate}" != xno ; then
614 PKG_CHECK_MODULES(LIBSAMPLERATE, [ samplerate >= 0.1.0 ],
615 HAVE_LIBSAMPLERATE=1,
616 [
617 HAVE_LIBSAMPLERATE=0
618 if test "x$samplerate" = xyes ; then
619 AC_MSG_ERROR([*** Libsamplerate not found])
620 fi
621 ])
622 else
623 HAVE_LIBSAMPLERATE=0
624 fi
625
626 if test "x${HAVE_LIBSAMPLERATE}" = x1 ; then
627 AC_DEFINE([HAVE_LIBSAMPLERATE], 1, [Have libsamplerate?])
628 fi
629
630 AC_SUBST(LIBSAMPLERATE_CFLAGS)
631 AC_SUBST(LIBSAMPLERATE_LIBS)
632 AC_SUBST(HAVE_LIBSAMPLERATE)
633 AM_CONDITIONAL([HAVE_LIBSAMPLERATE], [test "x$HAVE_LIBSAMPLERATE" = x1])
634
635 #### Database support ####
636
637 HAVE_TDB=0
638 HAVE_GDBM=0
639 HAVE_SIMPLEDB=0
640
641 AC_ARG_WITH(
642 [database],
643 AS_HELP_STRING([--with-database=auto|tdb|gdbm|simple],[Choose database backend.]),[],[with_database=auto])
644
645 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xtdb" ; then
646 PKG_CHECK_MODULES(TDB, [ tdb ],
647 [
648 HAVE_TDB=1
649 with_database=tdb
650 ], [
651 if test "x${with_database}" = "xtdb" ; then
652 AC_MSG_ERROR([*** tdb not found])
653 fi
654 ])
655 fi
656
657 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xgdbm" ; then
658 have_gdbm=yes
659
660 AC_CHECK_LIB(gdbm, gdbm_open, [], [have_gdbm=no])
661 AC_CHECK_HEADERS(gdbm.h, [], [have_gdbm=no])
662
663 if test "x${have_gdbm}" = "xyes" ; then
664 HAVE_GDBM=1
665 GDBM_CFLAGS=
666 GDBM_LIBS=-lgdbm
667 with_database=gdbm
668 elif test "x${with_database}" = "xgdbm"; then
669 AC_MSG_ERROR([*** gdbm not found])
670 fi
671 fi
672
673 if test "x${with_database}" = "xauto" -o "x${with_database}" = "xsimple" ; then
674 HAVE_SIMPLEDB=1
675 with_database=simple
676 fi
677
678 if test "x${HAVE_TDB}" != x1 -a "x${HAVE_GDBM}" != x1 -a "x${HAVE_SIMPLEDB}" != x1; then
679 AC_MSG_ERROR([*** missing database backend])
680 fi
681
682 if test "x${HAVE_TDB}" = x1 ; then
683 AC_DEFINE([HAVE_TDB], 1, [Have tdb?])
684 fi
685
686 if test "x${HAVE_GDBM}" = x1 ; then
687 AC_DEFINE([HAVE_GDBM], 1, [Have gdbm?])
688 fi
689
690 if test "x${HAVE_SIMPLEDB}" = x1 ; then
691 AC_DEFINE([HAVE_SIMPLEDB], 1, [Have simple?])
692 fi
693
694 AC_SUBST(TDB_CFLAGS)
695 AC_SUBST(TDB_LIBS)
696 AC_SUBST(HAVE_TDB)
697 AM_CONDITIONAL([HAVE_TDB], [test "x$HAVE_TDB" = x1])
698
699 AC_SUBST(GDBM_CFLAGS)
700 AC_SUBST(GDBM_LIBS)
701 AC_SUBST(HAVE_GDBM)
702 AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
703
704 AC_SUBST(HAVE_SIMPLEDB)
705 AM_CONDITIONAL([HAVE_SIMPLEDB], [test "x$HAVE_SIMPLEDB" = x1])
706
707 #### OSS support (optional) ####
708
709 AC_ARG_ENABLE([oss-output],
710 AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
711 [
712 case "${enableval}" in
713 yes) oss_output=yes ;;
714 no) oss_output=no ;;
715 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
716 esac
717 ],
718 [oss_output=auto])
719
720 AC_ARG_ENABLE([oss-wrapper],
721 AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
722 [
723 case "${enableval}" in
724 yes) oss_wrapper=yes ;;
725 no) oss_wrapper=no ;;
726 *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
727 esac
728 ],
729 [oss_wrapper=auto])
730
731 if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
732 AC_CHECK_HEADERS([sys/soundcard.h],
733 [
734 if test "x${oss_output}" != "xno"; then
735 AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
736 fi
737 if test "x${oss_wrapper}" != "xno"; then
738 AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
739 fi
740 HAVE_OSS=1
741 ],
742 [
743 HAVE_OSS=0
744 if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
745 AC_MSG_ERROR([*** OSS support not found])
746 fi
747 ])
748 else
749 HAVE_OSS=0
750 fi
751
752 AC_SUBST(HAVE_OSS)
753 AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
754 AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
755
756 #### CoreAudio support (optional) ####
757
758 AC_ARG_ENABLE([coreaudio-output],
759 AS_HELP_STRING([--disable-coreaudio-output],[Disable optional CoreAudio output support]),
760 [
761 case "${enableval}" in
762 yes) coreaudio_enabled=yes ;;
763 no) coreaudio_enabled=no ;;
764 *) AC_MSG_ERROR(bad value ${enableval} for --disable-coreaudio-output) ;;
765 esac
766 ],
767 [coreaudio_enabled=auto])
768
769 if test "x${coreaudio_enabled}" != xno ; then
770 AC_CHECK_HEADERS([CoreAudio/CoreAudio.h], HAVE_COREAUDIO=1)
771 else
772 HAVE_COREAUDIO=0
773 fi
774
775 AC_SUBST(HAVE_COREAUDIO)
776 AM_CONDITIONAL([HAVE_COREAUDIO], [test "x$HAVE_COREAUDIO" = x1 && test "x${coreaudio_enabled}" != "xno"])
777
778 #### ALSA support (optional) ####
779
780 AC_ARG_ENABLE([alsa],
781 AS_HELP_STRING([--disable-alsa],[Disable optional ALSA support]),
782 [
783 case "${enableval}" in
784 yes) alsa=yes ;;
785 no) alsa=no ;;
786 *) AC_MSG_ERROR(bad value ${enableval} for --disable-alsa) ;;
787 esac
788 ],
789 [alsa=auto])
790
791 if test "x${alsa}" != xno ; then
792 PKG_CHECK_MODULES(ASOUNDLIB, [ alsa >= 1.0.19 ],
793 [
794 HAVE_ALSA=1
795 AC_DEFINE([HAVE_ALSA], 1, [Have ALSA?])
796 ],
797 [
798 HAVE_ALSA=0
799 if test "x$alsa" = xyes ; then
800 AC_MSG_ERROR([*** Needed alsa >= 1.0.19 support not found])
801 fi
802 ])
803 else
804 HAVE_ALSA=0
805 fi
806
807 AC_SUBST(ASOUNDLIB_CFLAGS)
808 AC_SUBST(ASOUNDLIB_LIBS)
809 AC_SUBST(HAVE_ALSA)
810 AM_CONDITIONAL([HAVE_ALSA], [test "x$HAVE_ALSA" = x1])
811
812 #### Solaris audio support (optional) ####
813
814 AC_ARG_ENABLE([solaris],
815 AS_HELP_STRING([--disable-solaris],[Disable optional Solaris audio support]),
816 [
817 case "${enableval}" in
818 yes) solaris=yes ;;
819 no) solaris=no ;;
820 *) AC_MSG_ERROR(bad value ${enableval} for --disable-solaris) ;;
821 esac
822 ],
823 [solaris=auto])
824
825 if test "x${solaris}" != xno ; then
826 AC_CHECK_HEADERS([sys/audio.h],
827 [
828 HAVE_SOLARIS=1
829 AC_DEFINE([HAVE_SOLARIS], 1, [Have Solaris audio?])
830 ],
831 [
832 HAVE_SOLARIS=0
833 if test "x$solaris" = xyes ; then
834 AC_MSG_ERROR([*** Solaris audio support not found])
835 fi
836 ])
837 else
838 HAVE_SOLARIS=0
839 fi
840
841 AC_SUBST(HAVE_SOLARIS)
842 AM_CONDITIONAL([HAVE_SOLARIS], [test "x$HAVE_SOLARIS" = x1])
843
844 #### GLib 2 support (optional) ####
845
846 AC_ARG_ENABLE([glib2],
847 AS_HELP_STRING([--disable-glib2],[Disable optional GLib 2 support]),
848 [
849 case "${enableval}" in
850 yes) glib2=yes ;;
851 no) glib2=no ;;
852 *) AC_MSG_ERROR(bad value ${enableval} for --disable-glib2) ;;
853 esac
854 ],
855 [glib2=auto])
856
857 if test "x${glib2}" != xno ; then
858 PKG_CHECK_MODULES(GLIB20, [ glib-2.0 >= 2.4.0 ],
859 HAVE_GLIB20=1,
860 [
861 HAVE_GLIB20=0
862 if test "x$glib2" = xyes ; then
863 AC_MSG_ERROR([*** GLib 2 support not found])
864 fi
865 ])
866 else
867 HAVE_GLIB20=0
868 fi
869
870 AC_SUBST(GLIB20_CFLAGS)
871 AC_SUBST(GLIB20_LIBS)
872 AC_SUBST(HAVE_GLIB20)
873 AM_CONDITIONAL([HAVE_GLIB20], [test "x$HAVE_GLIB20" = x1])
874
875 if test "x$HAVE_GLIB20" = x1 ; then
876 AC_DEFINE([HAVE_GLIB], 1, [Have GLIB?])
877 fi
878
879 #### GTK2 support (optional) ####
880
881 AC_ARG_ENABLE([gtk2],
882 AS_HELP_STRING([--disable-gtk2],[Disable optional Gtk+ 2 support]),
883 [
884 case "${enableval}" in
885 yes) gtk2=yes ;;
886 no) gtk2=no ;;
887 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gtk2) ;;
888 esac
889 ],
890 [gtk2=auto])
891
892 if test "x${gtk2}" != xno ; then
893 PKG_CHECK_MODULES(GTK20, [ gtk+-2.0 >= 2.4.0 ],
894 HAVE_GTK20=1,
895 [
896 HAVE_GTK20=0
897 if test "x$gtk2" = xyes ; then
898 AC_MSG_ERROR([*** Gtk+ 2 support not found])
899 fi
900 ])
901 else
902 HAVE_GTK20=0
903 fi
904
905 AC_SUBST(GTK20_CFLAGS)
906 AC_SUBST(GTK20_LIBS)
907 AC_SUBST(HAVE_GTK20)
908 AM_CONDITIONAL([HAVE_GTK20], [test "x$HAVE_GTK20" = x1])
909
910 if test "x$HAVE_GTK20" = x1 ; then
911 AC_DEFINE([HAVE_GTK], 1, [Have GTK?])
912 fi
913
914 #### GConf support (optional) ####
915
916 AC_ARG_ENABLE([gconf],
917 AS_HELP_STRING([--disable-gconf],[Disable optional GConf support]),
918 [
919 case "${enableval}" in
920 yes) gconf=yes ;;
921 no) gconf=no ;;
922 *) AC_MSG_ERROR(bad value ${enableval} for --disable-gconf) ;;
923 esac
924 ],
925 [gconf=auto])
926
927 if test "x${gconf}" != xno ; then
928 PKG_CHECK_MODULES(GCONF, [ gconf-2.0 >= 2.4.0 ],
929 HAVE_GCONF=1,
930 [
931 HAVE_GCONF=0
932 if test "x$gconf" = xyes ; then
933 AC_MSG_ERROR([*** GConf support not found])
934 fi
935 ])
936 else
937 HAVE_GCONF=0
938 fi
939
940 AC_SUBST(GCONF_CFLAGS)
941 AC_SUBST(GCONF_LIBS)
942 AC_SUBST(HAVE_GCONF)
943 AM_CONDITIONAL([HAVE_GCONF], [test "x$HAVE_GCONF" = x1])
944
945 #### Avahi support (optional) ####
946
947 AC_ARG_ENABLE([avahi],
948 AS_HELP_STRING([--disable-avahi],[Disable optional Avahi support]),
949 [
950 case "${enableval}" in
951 yes) avahi=yes ;;
952 no) avahi=no ;;
953 *) AC_MSG_ERROR(bad value ${enableval} for --disable-avahi) ;;
954 esac
955 ],
956 [avahi=auto])
957
958 if test "x${avahi}" != xno ; then
959 PKG_CHECK_MODULES(AVAHI, [ avahi-client >= 0.6.0 ],
960 HAVE_AVAHI=1,
961 [
962 HAVE_AVAHI=0
963 if test "x$avahi" = xyes ; then
964 AC_MSG_ERROR([*** Avahi support not found])
965 fi
966 ])
967 else
968 HAVE_AVAHI=0
969 fi
970
971 AC_SUBST(AVAHI_CFLAGS)
972 AC_SUBST(AVAHI_LIBS)
973 AC_SUBST(HAVE_AVAHI)
974 AM_CONDITIONAL([HAVE_AVAHI], [test "x$HAVE_AVAHI" = x1])
975
976 ### JACK (optional) ####
977
978 AC_ARG_ENABLE([jack],
979 AS_HELP_STRING([--disable-jack],[Disable optional JACK support]),
980 [
981 case "${enableval}" in
982 yes) jack=yes ;;
983 no) jack=no ;;
984 *) AC_MSG_ERROR(bad value ${enableval} for --disable-jack) ;;
985 esac
986 ],
987 [jack=auto])
988
989 if test "x${jack}" != xno ; then
990 PKG_CHECK_MODULES(JACK, [ jack >= 0.100 ],
991 HAVE_JACK=1,
992 [
993 HAVE_JACK=0
994 if test "x$jack" = xyes ; then
995 AC_MSG_ERROR([*** JACK support not found])
996 fi
997 ])
998 else
999 HAVE_JACK=0
1000 fi
1001
1002 AC_SUBST(JACK_CFLAGS)
1003 AC_SUBST(JACK_LIBS)
1004 AC_SUBST(HAVE_JACK)
1005 AM_CONDITIONAL([HAVE_JACK], [test "x$HAVE_JACK" = x1])
1006
1007 #### Async DNS support (optional) ####
1008
1009 AC_ARG_ENABLE([asyncns],
1010 AS_HELP_STRING([--disable-asyncns],[Disable optional Async DNS support]),
1011 [
1012 case "${enableval}" in
1013 yes) asyncns=yes ;;
1014 no) asyncns=no ;;
1015 *) AC_MSG_ERROR(bad value ${enableval} for --disable-asyncns) ;;
1016 esac
1017 ],
1018 [asyncns=auto])
1019
1020 if test "x${asyncns}" != xno ; then
1021 PKG_CHECK_MODULES(LIBASYNCNS, [ libasyncns >= 0.1 ],
1022 HAVE_LIBASYNCNS=1,
1023 [
1024 HAVE_LIBASYNCNS=0
1025 if test "x$asyncns" = xyes ; then
1026 AC_MSG_ERROR([*** Async DNS support not found])
1027 fi
1028 ])
1029 else
1030 HAVE_LIBASYNCNS=0
1031 fi
1032
1033 AC_SUBST(LIBASYNCNS_CFLAGS)
1034 AC_SUBST(LIBASYNCNS_LIBS)
1035 AC_SUBST(HAVE_LIBASYNCNS)
1036 AM_CONDITIONAL([HAVE_LIBASYNCNS], [test "x$HAVE_LIBASYNCNS" = x1])
1037
1038 if test "x$HAVE_LIBASYNCNS" != "x0" ; then
1039 AC_DEFINE([HAVE_LIBASYNCNS], 1, [Have libasyncns?])
1040 fi
1041
1042 #### TCP wrappers (optional) ####
1043
1044 AC_ARG_ENABLE([tcpwrap],
1045 AS_HELP_STRING([--disable-tcpwrap],[Disable optional TCP wrappers support]),
1046 [
1047 case "${enableval}" in
1048 yes) tcpwrap=yes ;;
1049 no) tcpwrap=no ;;
1050 *) AC_MSG_ERROR(bad value ${enableval} for --disable-tcpwrap) ;;
1051 esac
1052 ],
1053 [tcpwrap=auto])
1054
1055 if test "x${tcpwrap}" != xno ; then
1056 ACX_LIBWRAP
1057 if test "x${LIBWRAP_LIBS}" = x && test "x$tcpwrap" = xyes ; then
1058 AC_MSG_ERROR([*** TCP wrappers support not found])
1059 fi
1060 else
1061 LIBWRAP_LIBS=
1062 fi
1063
1064 AC_SUBST(LIBWRAP_LIBS)
1065
1066 #### LIRC support (optional) ####
1067
1068 AC_ARG_ENABLE([lirc],
1069 AS_HELP_STRING([--disable-lirc],[Disable optional LIRC support]),
1070 [
1071 case "${enableval}" in
1072 yes) lirc=yes ;;
1073 no) lirc=no ;;
1074 *) AC_MSG_ERROR(bad value ${enableval} for --disable-lirc) ;;
1075 esac
1076 ],
1077 [lirc=auto])
1078
1079 if test "x${lirc}" != xno ; then
1080 ACX_LIRC
1081 if test "x${HAVE_LIRC}" = x0 && test "x$lirc" = xyes ; then
1082 AC_MSG_ERROR([*** LIRC support not found])
1083 fi
1084 else
1085 HAVE_LIRC=0
1086 fi
1087
1088 AC_SUBST(LIRC_CFLAGS)
1089 AC_SUBST(LIRC_LIBS)
1090 AM_CONDITIONAL([HAVE_LIRC], [test "x$HAVE_LIRC" = x1])
1091
1092 #### HAL support (optional) ####
1093
1094 AC_ARG_ENABLE([hal],
1095 AS_HELP_STRING([--disable-hal],[Disable optional HAL support]),
1096 [
1097 case "${enableval}" in
1098 yes) hal=yes ;;
1099 no) hal=no ;;
1100 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal) ;;
1101 esac
1102 ],
1103 [hal=auto])
1104 if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1105 PKG_CHECK_MODULES(HAL, [ hal >= 0.5.11 ],
1106 [
1107 HAVE_HAL=1
1108 AC_DEFINE([HAVE_HAL], 1, [Have HAL.])
1109 ],
1110 [
1111 HAVE_HAL=0
1112 if test "x$hal" = xyes ; then
1113 AC_MSG_ERROR([*** HAL support not found])
1114 fi
1115 ])
1116 else
1117 HAVE_HAL=0
1118 fi
1119
1120 AC_SUBST(HAL_CFLAGS)
1121 AC_SUBST(HAL_LIBS)
1122 AC_SUBST(HAVE_HAL)
1123 AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1])
1124
1125 #### UDEV support (optional) ####
1126
1127 AC_ARG_ENABLE([udev],
1128 AS_HELP_STRING([--disable-udev],[Disable optional UDEV support]),
1129 [
1130 case "${enableval}" in
1131 yes) udev=yes ;;
1132 no) udev=no ;;
1133 *) AC_MSG_ERROR(bad value ${enableval} for --disable-udev) ;;
1134 esac
1135 ],
1136 [udev=auto])
1137 if test "x${udev}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then
1138 PKG_CHECK_MODULES(UDEV, [ libudev >= 143 ],
1139 [
1140 HAVE_UDEV=1
1141 AC_DEFINE([HAVE_UDEV], 1, [Have UDEV.])
1142 ],
1143 [
1144 HAVE_UDEV=0
1145 if test "x$udev" = xyes ; then
1146 AC_MSG_ERROR([*** UDEV support not found])
1147 fi
1148 ])
1149 else
1150 HAVE_UDEV=0
1151 fi
1152
1153 AC_SUBST(UDEV_CFLAGS)
1154 AC_SUBST(UDEV_LIBS)
1155 AC_SUBST(HAVE_UDEV)
1156 AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
1157
1158 #### HAL compat support (optional) ####
1159
1160 AC_ARG_ENABLE([hal-compat],
1161 AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
1162 [
1163 case "${enableval}" in
1164 yes) halcompat=yes ;;
1165 no) halcompat=no ;;
1166 *) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
1167 esac
1168 ],
1169 [halcompat=auto])
1170 if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
1171 HAVE_HAL_COMPAT=1
1172 AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
1173 else
1174 HAVE_HAL_COMPAT=0
1175 fi
1176
1177 AC_SUBST(HAVE_HAL_COMPAT)
1178 AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
1179
1180 #### BlueZ support (optional) ####
1181
1182 AC_ARG_ENABLE([bluez],
1183 AS_HELP_STRING([--disable-bluez],[Disable optional BlueZ support]),
1184 [
1185 case "${enableval}" in
1186 yes) bluez=yes ;;
1187 no) bluez=no ;;
1188 *) AC_MSG_ERROR(bad value ${enableval} for --disable-bluez) ;;
1189 esac
1190 ],
1191 [bluez=auto])
1192 if test "x${bluez}" != xno ; then
1193 PKG_CHECK_MODULES(BLUEZ, [ bluez >= 3.0 ],
1194 HAVE_BLUEZ=1,
1195 [
1196 HAVE_BLUEZ=0
1197 if test "x$bluez" = xyes ; then
1198 AC_MSG_ERROR([*** BLUEZ support not found])
1199 fi
1200 ])
1201 else
1202 HAVE_BLUEZ=0
1203 fi
1204
1205 AC_SUBST(BLUEZ_CFLAGS)
1206 AC_SUBST(BLUEZ_LIBS)
1207 AC_SUBST(HAVE_BLUEZ)
1208 AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
1209
1210 #### D-Bus support (optional) ####
1211
1212 AC_ARG_ENABLE([dbus],
1213 AS_HELP_STRING([--disable-dbus],[Disable optional D-Bus support]),
1214 [
1215 case "${enableval}" in
1216 yes) dbus=yes ;;
1217 no) dbus=no ;;
1218 *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;;
1219 esac
1220 ],
1221 [dbus=auto])
1222
1223 if test "x$HAVE_HAL" = x1 ; then
1224 dbus=yes
1225 fi
1226
1227 if test "x${dbus}" != xno || test "x${bluez}" != xno || test "x${hal}" != xno ; then
1228
1229 PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ],
1230 [
1231 HAVE_DBUS=1
1232 saved_LIBS="$LIBS"
1233 LIBS="$LIBS $DBUS_LIBS"
1234 CFLAGS="$CFLAGS $DBUS_CFLAGS"
1235 AC_CHECK_FUNCS(dbus_watch_get_unix_fd)
1236 LIBS="$saved_LIBS"
1237 AC_DEFINE([HAVE_DBUS], 1, [Have D-Bus.])
1238 ],
1239 [
1240 HAVE_DBUS=0
1241 if test "x$dbus" = xyes ; then
1242 AC_MSG_ERROR([*** D-Bus support not found])
1243 fi
1244 ])
1245 else
1246 HAVE_DBUS=0
1247 fi
1248
1249 AC_SUBST(DBUS_CFLAGS)
1250 AC_SUBST(DBUS_LIBS)
1251 AC_SUBST(HAVE_DBUS)
1252 AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1])
1253
1254 ### IPv6 connection support (optional) ###
1255
1256 AC_ARG_ENABLE([ipv6],
1257 AS_HELP_STRING([--disable-ipv6],[Disable optional IPv6 support]),
1258 [
1259 case "${enableval}" in
1260 yes) ipv6=yes ;;
1261 no) ipv6=no ;;
1262 *) AC_MSG_ERROR(bad value ${enableval} for --disable-ipv6) ;;
1263 esac
1264 ],
1265 [ipv6=auto])
1266
1267 if test "x${ipv6}" != xno ; then
1268 AC_DEFINE([HAVE_IPV6], [1], [Define this to enable IPv6 connection support])
1269 HAVE_IPV6=1
1270 else
1271 HAVE_IPV6=0
1272 fi
1273
1274 #### OpenSSL support (optional) ####
1275
1276 AC_ARG_ENABLE([openssl],
1277 AS_HELP_STRING([--disable-openssl],[Disable OpenSSL support (used for Airtunes/RAOP)]),
1278 [
1279 case "${enableval}" in
1280 yes) openssl=yes ;;
1281 no) openssl=no ;;
1282 *) AC_MSG_ERROR(bad value ${enableval} for --disable-openssl) ;;
1283 esac
1284 ],
1285 [openssl=auto])
1286
1287 if test "x${openssl}" != xno ; then
1288
1289 PKG_CHECK_MODULES(OPENSSL, [ openssl > 0.9 ],
1290 [
1291 HAVE_OPENSSL=1
1292 AC_DEFINE([HAVE_OPENSSL], 1, [Have OpenSSL])
1293 ],
1294 [
1295 HAVE_OPENSSL=0
1296 if test "x$openssl" = xyes ; then
1297 AC_MSG_ERROR([*** OpenSSL support not found])
1298 fi
1299 ])
1300 else
1301 HAVE_OPENSSL=0
1302 fi
1303
1304 AC_SUBST(OPENSSL_CFLAGS)
1305 AC_SUBST(OPENSSL_LIBS)
1306 AC_SUBST(HAVE_OPENSSL)
1307 AM_CONDITIONAL([HAVE_OPENSSL], [test "x$HAVE_OPENSSL" = x1])
1308
1309 #### FFTW (optional) ####
1310 AC_ARG_WITH(
1311 [fftw],
1312 AS_HELP_STRING([--without-fftw], [Omit FFTW-using modules (equalizer)]))
1313
1314 if test "x${with_fftw}" != "xno"; then
1315 PKG_CHECK_MODULES([FFTW], [fftw3f], [HAVE_FFTW=1], [HAVE_FFTW=0])
1316 fi
1317 AM_CONDITIONAL([HAVE_FFTW], [test "x$HAVE_FFTW" = "x1"])
1318
1319 ### Build and Install man pages ###
1320 AC_ARG_ENABLE(manpages,
1321 AS_HELP_STRING([--disable-manpages],[Disable building and installation of man pages]),
1322 [case "${enableval}" in
1323 yes) manpages=yes ;;
1324 no) manpages=no ;;
1325 *) AC_MSG_ERROR([bad value ${enableval} for --disable-manpages]) ;;
1326 esac],[manpages=yes])
1327
1328 AM_CONDITIONAL([BUILD_MANPAGES], [test "x$manpages" = xyes])
1329
1330 #### PulseAudio system group & user #####
1331
1332 AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)]))
1333 if test -z "$with_system_user" ; then
1334 PA_SYSTEM_USER=pulse
1335 else
1336 PA_SYSTEM_USER=$with_system_user
1337 fi
1338 AC_SUBST(PA_SYSTEM_USER)
1339 AC_DEFINE_UNQUOTED(PA_SYSTEM_USER,"$PA_SYSTEM_USER", [User for running the PulseAudio system daemon])
1340
1341 AC_ARG_WITH(system_group,AS_HELP_STRING([--with-system-group=<group>],[Group for running the PulseAudio daemon as a system-wide instance (pulse)]))
1342 if test -z "$with_system_group" ; then
1343 PA_SYSTEM_GROUP=pulse
1344 else
1345 PA_SYSTEM_GROUP=$with_system_group
1346 fi
1347 AC_SUBST(PA_SYSTEM_GROUP)
1348 AC_DEFINE_UNQUOTED(PA_SYSTEM_GROUP,"$PA_SYSTEM_GROUP", [Group for the PulseAudio system daemon])
1349
1350 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)]))
1351 if test -z "$with_access_group" ; then
1352 PA_ACCESS_GROUP=pulse-access
1353 else
1354 PA_ACCESS_GROUP=$with_access_group
1355 fi
1356 AC_SUBST(PA_ACCESS_GROUP)
1357 AC_DEFINE_UNQUOTED(PA_ACCESS_GROUP,"$PA_ACCESS_GROUP", [Access group])
1358
1359 AC_ARG_ENABLE(
1360 per_user_esound_socket,
1361 AS_HELP_STRING([--disable-per-user-esound-socket], [Use global esound socket directory /tmp/.esd/socket.]),
1362 [
1363 case "${enableval}" in
1364 yes) per_user_esound_socket=1 ;;
1365 no) per_user_esound_socket=0 ;;
1366 *) AC_MSG_ERROR(bad value ${enableval} for --disable-per-user-esound-socket) ;;
1367 esac
1368 ],
1369 [per_user_esound_socket=1])
1370
1371 if test "x$per_user_esound_socket" = "x1"; then
1372 AC_DEFINE([USE_PER_USER_ESOUND_SOCKET], [1], [Define this if you want per-user esound socket directories])
1373 fi
1374
1375 #### PulseAudio system runtime dir ####
1376 PA_SYSTEM_RUNTIME_PATH="${localstatedir}/run/pulse"
1377 AC_SUBST(PA_SYSTEM_RUNTIME_PATH)
1378 PA_SYSTEM_CONFIG_PATH="${localstatedir}/lib/pulse"
1379 AC_SUBST(PA_SYSTEM_CONFIG_PATH)
1380 PA_SYSTEM_STATE_PATH="${localstatedir}/lib/pulse"
1381 AC_SUBST(PA_SYSTEM_STATE_PATH)
1382
1383 ###################################
1384 # Output #
1385 ###################################
1386
1387 AC_ARG_ENABLE([legacy-runtime-dir],
1388 AS_HELP_STRING([--disable-legacy-runtime-dir], [Try to connect on legacy (< 0.9.12) socket paths.]))
1389 if test "x$enable_legacy_runtime_dir" != "xno" ; then
1390 AC_DEFINE(ENABLE_LEGACY_RUNTIME_DIR, [1], [Legacy runtime dir])
1391 fi
1392
1393 AC_ARG_ENABLE(
1394 [static-bins],
1395 AS_HELP_STRING([--enable-static-bins],[Statically link executables.]),
1396 [STATIC_BINS=1], [STATIC_BINS=0])
1397 AM_CONDITIONAL([STATIC_BINS], [test "x$STATIC_BINS" = "x1"])
1398
1399 AC_ARG_WITH(
1400 [preopen-mods],
1401 AS_HELP_STRING([--with-preopen-mods],[Modules to preopen in daemon (default: all).]),
1402 [PREOPEN_MODS=$withval], [PREOPEN_MODS="all"])
1403 AM_CONDITIONAL([PREOPEN_MODS], [test "x$PREOPEN_MODS" != "xall"])
1404 if test "x$PREOPEN_MODS" != "xall" ; then
1405 tmpLIBS=""
1406 for mod in $PREOPEN_MODS; do
1407 tmpLIBS="$tmpLIBS module-$mod.la"
1408 done
1409 PREOPEN_MODS="$tmpLIBS"
1410 AC_SUBST(PREOPEN_MODS)
1411 fi
1412
1413 AC_ARG_WITH(
1414 [module-dir],
1415 AS_HELP_STRING([--with-module-dir],[Directory where to install the modules to (defaults to ${libdir}/pulse-${PA_MAJORMINORMICRO}/modules]),
1416 [modlibexecdir=$withval], [modlibexecdir="${libdir}/pulse-${PA_MAJORMINORMICRO}/modules"])
1417
1418 AC_SUBST(modlibexecdir)
1419
1420 AC_ARG_WITH(
1421 [udev-rules-dir],
1422 AS_HELP_STRING([--with-udev-rules-dir],[Directory where to install udev rules to (defaults to /lib/udev/rules.d)]),
1423 [udevrulesdir=$withval], [udevrulesdir="/lib/udev/rules.d"])
1424
1425 AC_SUBST(udevrulesdir)
1426
1427 AC_ARG_ENABLE(
1428 [force-preopen],
1429 AS_HELP_STRING([--enable-force-preopen],[Preopen modules, even when dlopen() is supported.]),
1430 [FORCE_PREOPEN=$enableval], [FORCE_PREOPEN=no])
1431 AM_CONDITIONAL([FORCE_PREOPEN], [test "x$FORCE_PREOPEN" = "xyes"])
1432
1433 AC_CONFIG_FILES([
1434 Makefile
1435 src/Makefile
1436 man/Makefile
1437 libpulse.pc
1438 libpulse-simple.pc
1439 libpulse-browse.pc
1440 libpulse-mainloop-glib.pc
1441 doxygen/Makefile
1442 doxygen/doxygen.conf
1443 src/pulse/version.h
1444 po/Makefile.in
1445 ])
1446
1447 AC_OUTPUT
1448
1449 # ==========================================================================
1450 ENABLE_X11=no
1451 if test "x$HAVE_X11" = "x1" ; then
1452 ENABLE_X11=yes
1453 fi
1454
1455 ENABLE_OSS_OUTPUT=no
1456 ENABLE_OSS_WRAPPER=no
1457 if test "x$HAVE_OSS" = "x1" ; then
1458 if test "x$enable_oss_output" != "xno"; then
1459 ENABLE_OSS_OUTPUT=yes
1460 fi
1461 if test "x$enable_oss_wrapper" != "xno"; then
1462 ENABLE_OSS_WRAPPER=yes
1463 fi
1464 fi
1465
1466 ENABLE_COREAUDIO=no
1467 if test "x$HAVE_COREAUDIO" = "x1" ; then
1468 ENABLE_COREAUDIO=yes
1469 fi
1470
1471 ENABLE_ALSA=no
1472 if test "x$HAVE_ALSA" = "x1" ; then
1473 ENABLE_ALSA=yes
1474 fi
1475
1476 ENABLE_SOLARIS=no
1477 if test "x$HAVE_SOLARIS" = "x1" ; then
1478 ENABLE_SOLARIS=yes
1479 fi
1480
1481 ENABLE_GTK20=no
1482 if test "x$HAVE_GTK20" = "x1" ; then
1483 ENABLE_GTK20=yes
1484 fi
1485
1486 ENABLE_GLIB20=no
1487 if test "x$HAVE_GLIB20" = "x1" ; then
1488 ENABLE_GLIB20=yes
1489 fi
1490
1491 ENABLE_GCONF=no
1492 if test "x$HAVE_GCONF" = "x1" ; then
1493 ENABLE_GCONF=yes
1494 fi
1495
1496 ENABLE_AVAHI=no
1497 if test "x$HAVE_AVAHI" = "x1" ; then
1498 ENABLE_AVAHI=yes
1499 fi
1500
1501 ENABLE_JACK=no
1502 if test "x$HAVE_JACK" = "x1" ; then
1503 ENABLE_JACK=yes
1504 fi
1505
1506 ENABLE_LIBASYNCNS=no
1507 if test "x$HAVE_LIBASYNCNS" = "x1" ; then
1508 ENABLE_LIBASYNCNS=yes
1509 fi
1510
1511 ENABLE_LIRC=no
1512 if test "x$HAVE_LIRC" = "x1" ; then
1513 ENABLE_LIRC=yes
1514 fi
1515
1516 ENABLE_HAL=no
1517 if test "x$HAVE_HAL" = "x1" ; then
1518 ENABLE_HAL=yes
1519 fi
1520
1521 ENABLE_UDEV=no
1522 if test "x$HAVE_UDEV" = "x1" ; then
1523 ENABLE_UDEV=yes
1524 fi
1525
1526 ENABLE_HAL_COMPAT=no
1527 if test "x$HAVE_HAL_COMPAT" = "x1" ; then
1528 ENABLE_HAL_COMPAT=yes
1529 fi
1530
1531 ENABLE_TCPWRAP=no
1532 if test "x${LIBWRAP_LIBS}" != x ; then
1533 ENABLE_TCPWRAP=yes
1534 fi
1535
1536 ENABLE_LIBSAMPLERATE=no
1537 if test "x${HAVE_LIBSAMPLERATE}" = "x1" ; then
1538 ENABLE_LIBSAMPLERATE=yes
1539 fi
1540
1541 ENABLE_BLUEZ=no
1542 if test "x${HAVE_BLUEZ}" = "x1" ; then
1543 ENABLE_BLUEZ=yes
1544 fi
1545
1546 ENABLE_GDBM=no
1547 if test "x${HAVE_GDBM}" = "x1" ; then
1548 ENABLE_GDBM=yes
1549 fi
1550
1551 ENABLE_TDB=no
1552 if test "x${HAVE_TDB}" = "x1" ; then
1553 ENABLE_TDB=yes
1554 fi
1555
1556 ENABLE_SIMPLEDB=no
1557 if test "x${HAVE_SIMPLEDB}" = "x1" ; then
1558 ENABLE_SIMPLEDB=yes
1559 fi
1560
1561 ENABLE_FFTW=no
1562 if test "x${HAVE_FFTW}" = "x1" ; then
1563 ENABLE_FFTW=yes
1564 fi
1565
1566 ENABLE_OPENSSL=no
1567 if test "x${HAVE_OPENSSL}" = "x1" ; then
1568 ENABLE_OPENSSL=yes
1569 fi
1570
1571 ENABLE_IPV6=no
1572 if test "x${HAVE_IPV6}" = "x1" ; then
1573 ENABLE_IPV6=yes
1574 fi
1575
1576 ENABLE_PER_USER_ESOUND_SOCKET=no
1577 if test "x$per_user_esound_socket" = "x1" ; then
1578 ENABLE_PER_USER_ESOUND_SOCKET=yes
1579 fi
1580
1581 echo "
1582 ---{ $PACKAGE_NAME $VERSION }---
1583
1584 prefix: ${prefix}
1585 sysconfdir: ${sysconfdir}
1586 localstatedir: ${localstatedir}
1587 System Runtime Path: ${PA_SYSTEM_RUNTIME_PATH}
1588 System State Path: ${PA_SYSTEM_STATE_PATH}
1589 System Config Path: ${PA_SYSTEM_CONFIG_PATH}
1590 Compiler: ${CC}
1591 CFLAGS: ${CFLAGS}
1592
1593 Have X11: ${ENABLE_X11}
1594 Enable OSS Output: ${ENABLE_OSS_OUTPUT}
1595 Enable OSS Wrapper: ${ENABLE_OSS_WRAPPER}
1596 Enable CoreAudio: ${ENABLE_COREAUDIO}
1597 Enable Alsa: ${ENABLE_ALSA}
1598 Enable Solaris: ${ENABLE_SOLARIS}
1599 Enable GLib 2.0: ${ENABLE_GLIB20}
1600 Enable Gtk+ 2.0: ${ENABLE_GTK20}
1601 Enable GConf: ${ENABLE_GCONF}
1602 Enable Avahi: ${ENABLE_AVAHI}
1603 Enable Jack: ${ENABLE_JACK}
1604 Enable Async DNS: ${ENABLE_LIBASYNCNS}
1605 Enable LIRC: ${ENABLE_LIRC}
1606 Enable HAL: ${ENABLE_HAL}
1607 Enable udev: ${ENABLE_UDEV}
1608 Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
1609 Enable BlueZ: ${ENABLE_BLUEZ}
1610 Enable TCP Wrappers: ${ENABLE_TCPWRAP}
1611 Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
1612 Enable IPv6: ${ENABLE_IPV6}
1613 Enable OpenSSL (for Airtunes): ${ENABLE_OPENSSL}
1614 Enable tdb: ${ENABLE_TDB}
1615 Enable gdbm: ${ENABLE_GDBM}
1616 Enable simple database: ${ENABLE_SIMPLEDB}
1617 Enable fftw: ${ENABLE_FFTW}
1618
1619 System User: ${PA_SYSTEM_USER}
1620 System Group: ${PA_SYSTEM_GROUP}
1621 Access Group: ${PA_ACCESS_GROUP}
1622 Enable per-user EsounD socket: ${ENABLE_PER_USER_ESOUND_SOCKET}
1623 Force preopen: ${FORCE_PREOPEN}
1624 Preopened modules: ${PREOPEN_MODS}
1625 "