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