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