You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1647 lines
61 KiB

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