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