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