4 AM_INIT_AUTOMAKE([foreign subdir-objects color-tests silent-rules
5 tar-pax no-dist-gzip dist-xz])
6 AC_CONFIG_HEADERS(config.h)
7 AC_USE_SYSTEM_EXTENSIONS
9 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
13 AC_PREFIX_DEFAULT(/usr/local)
29 m4_define([_LT_AC_TAGCONFIG], [])
30 m4_ifdef([AC_LIBTOOL_TAGS], [AC_LIBTOOL_TAGS([])])
35 if (test "$USE_MAINTAINER_MODE" = "yes"); then
36 AC_CHECK_PROG(enable_coverage, [lcov], [yes], [no])
37 AC_CHECK_PROG(enable_dbus_run_session, [dbus-run-session], [yes])
38 AC_CHECK_PROG(enable_valgrind, [valgrind], [yes])
39 AC_CHECK_HEADERS(valgrind/memcheck.h)
41 AM_CONDITIONAL(COVERAGE, test "${enable_coverage}" = "yes")
42 AM_CONDITIONAL(DBUS_RUN_SESSION, test "${enable_dbus_run_session}" = "yes")
43 AM_CONDITIONAL(VALGRIND, test "${enable_valgrind}" = "yes")
47 AC_ARG_ENABLE(threads, AC_HELP_STRING([--enable-threads],
48 [enable threading support]), [enable_threads=${enableval}])
50 AC_CHECK_FUNC(signalfd, dummy=yes,
51 AC_MSG_ERROR(signalfd support is required))
53 AC_CHECK_LIB(rt, clock_gettime, dummy=yes,
54 AC_MSG_ERROR(realtime clock support is required))
56 AC_CHECK_LIB(pthread, pthread_create, dummy=yes,
57 AC_MSG_ERROR(posix thread support is required))
59 AC_CHECK_LIB(dl, dlopen, dummy=yes,
60 AC_MSG_ERROR(dynamic linking loader is required))
62 AC_CHECK_HEADERS(linux/types.h linux/if_alg.h)
64 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.28, dummy=yes,
65 AC_MSG_ERROR(GLib >= 2.28 is required))
69 if (test "${enable_threads}" = "yes"); then
70 AC_DEFINE(NEED_THREADS, 1, [Define if threading support is required])
71 PKG_CHECK_MODULES(GTHREAD, gthread-2.0 >= 2.16, dummy=yes,
72 AC_MSG_ERROR(GThread >= 2.16 is required))
73 GLIB_CFLAGS="$GLIB_CFLAGS $GTHREAD_CFLAGS"
74 GLIB_LIBS="$GLIB_LIBS $GTHREAD_LIBS"
77 PKG_CHECK_MODULES(DBUS, dbus-1 >= 1.6, dummy=yes,
78 AC_MSG_ERROR(D-Bus >= 1.6 is required))
82 AC_ARG_WITH([dbusconfdir], AC_HELP_STRING([--with-dbusconfdir=DIR],
83 [path to D-Bus configuration directory]),
84 [path_dbusconfdir=${withval}])
85 if (test -z "${path_dbusconfdir}"); then
86 AC_MSG_CHECKING([D-Bus configuration directory])
87 path_dbusconfdir="`$PKG_CONFIG --variable=sysconfdir dbus-1`"
88 if (test -z "${path_dbusconfdir}"); then
89 AC_MSG_ERROR([D-Bus configuration directory is required])
91 AC_MSG_RESULT([${path_dbusconfdir}])
93 AC_SUBST(DBUS_CONFDIR, [${path_dbusconfdir}])
95 AC_ARG_WITH([dbussystembusdir], AC_HELP_STRING([--with-dbussystembusdir=DIR],
96 [path to D-Bus system bus services directory]),
97 [path_dbussystembusdir=${withval}])
98 if (test -z "${path_dbussystembusdir}"); then
99 AC_MSG_CHECKING([D-Bus system bus services dir])
100 path_dbussystembusdir="`$PKG_CONFIG --variable=system_bus_services_dir dbus-1`"
101 if (test -z "${path_dbussystembusdir}"); then
102 AC_MSG_ERROR([D-Bus system bus services directory is required])
104 AC_MSG_RESULT([${path_dbussystembusdir}])
106 AC_SUBST(DBUS_SYSTEMBUSDIR, [${path_dbussystembusdir}])
108 AC_ARG_WITH([dbussessionbusdir], AC_HELP_STRING([--with-dbussessionbusdir=DIR],
109 [path to D-Bus session bus services directory]),
110 [path_dbussessionbusdir=${withval}])
111 if (test -z "${path_dbussessionbusdir}"); then
112 AC_MSG_CHECKING([D-Bus session bus services dir])
113 path_dbussessionbusdir="`$PKG_CONFIG --variable=session_bus_services_dir dbus-1`"
114 if (test -z "${path_dbussessionbusdir}"); then
115 AC_MSG_ERROR([D-Bus session bus services directory is required])
117 AC_MSG_RESULT([${path_dbussessionbusdir}])
119 AC_SUBST(DBUS_SESSIONBUSDIR, [${path_dbussessionbusdir}])
121 AC_ARG_ENABLE(backtrace, AC_HELP_STRING([--enable-backtrace],
122 [compile backtrace support]), [enable_backtrace=${enableval}])
124 if (test "${enable_backtrace}" = "yes"); then
125 AC_CHECK_HEADER(elfutils/libdwfl.h, dummy=yes,
126 AC_MSG_ERROR(elfutils support is required))
127 AC_DEFINE(HAVE_BACKTRACE_SUPPORT, 1,
128 [Define to 1 if you have the backtrace support.])
130 BACKTRACE_LIBS="-ldw"
131 AC_SUBST(BACKTRACE_CFLAGS)
132 AC_SUBST(BACKTRACE_LIBS)
135 AC_ARG_ENABLE(library, AC_HELP_STRING([--enable-library],
136 [install Bluetooth library]), [enable_library=${enableval}])
137 AM_CONDITIONAL(LIBRARY, test "${enable_library}" = "yes")
139 AC_ARG_ENABLE(test, AC_HELP_STRING([--enable-test],
140 [enable test/example scripts]), [enable_test=${enableval}])
141 AM_CONDITIONAL(TEST, test "${enable_test}" = "yes")
143 AC_ARG_ENABLE(test, AC_HELP_STRING([--enable-nfc],
144 [enable NFC paring]), [enable_nfc=${enableval}])
145 AM_CONDITIONAL(NFC, test "${enable_nfc}" = "yes")
147 AC_ARG_ENABLE(tools, AC_HELP_STRING([--disable-tools],
148 [disable Bluetooth tools]), [enable_tools=${enableval}])
149 AM_CONDITIONAL(TOOLS, test "${enable_tools}" != "no")
151 AC_ARG_ENABLE(monitor, AC_HELP_STRING([--disable-monitor],
152 [disable Bluetooth monitor]), [enable_monitor=${enableval}])
153 AM_CONDITIONAL(MONITOR, test "${enable_monitor}" != "no")
155 AC_ARG_ENABLE(udev, AC_HELP_STRING([--disable-udev],
156 [disable udev device support]), [enable_udev=${enableval}])
157 if (test "${enable_tools}" != "no" && test "${enable_udev}" != "no"); then
158 PKG_CHECK_MODULES(UDEV, libudev >= 172, dummy=yes,
159 AC_MSG_ERROR(libudev >= 172 is required))
160 AC_SUBST(UDEV_CFLAGS)
162 AC_CHECK_LIB(udev, udev_hwdb_new,
163 AC_DEFINE(HAVE_UDEV_HWDB_NEW, 1,
164 [Define to 1 if you have the udev_hwdb_new() function.]))
166 AM_CONDITIONAL(UDEV, test "${enable_udev}" != "no")
168 AC_ARG_WITH([udevdir], AC_HELP_STRING([--with-udevdir=DIR],
169 [path to udev directory]), [path_udevdir=${withval}])
170 if (test "${enable_udev}" != "no" && test -z "${path_udevdir}"); then
171 AC_MSG_CHECKING([udev directory])
172 path_udevdir="`$PKG_CONFIG --variable=udevdir udev`"
173 if (test -z "${path_udevdir}"); then
174 AC_MSG_ERROR([udev directory is required])
176 AC_MSG_RESULT([${path_udevdir}])
178 AC_SUBST(UDEV_DIR, [${path_udevdir}])
180 AM_CONDITIONAL(HID2HCI, test "${enable_tools}" != "no" &&
181 test "${enable_udev}" != "no")
183 AC_ARG_ENABLE(cups, AC_HELP_STRING([--disable-cups],
184 [disable CUPS printer support]), [enable_cups=${enableval}])
185 AM_CONDITIONAL(CUPS, test "${enable_cups}" != "no")
187 AC_ARG_ENABLE(obex, AC_HELP_STRING([--disable-obex],
188 [disable OBEX profile support]), [enable_obex=${enableval}])
189 if (test "${enable_obex}" != "no"); then
190 PKG_CHECK_MODULES(ICAL, libical, dummy=yes,
191 AC_MSG_ERROR(libical is required))
192 AC_SUBST(ICAL_CFLAGS)
195 AM_CONDITIONAL(OBEX, test "${enable_obex}" != "no")
197 AC_ARG_ENABLE(client, AC_HELP_STRING([--disable-client],
198 [disable command line client]), [enable_client=${enableval}])
199 AM_CONDITIONAL(CLIENT, test "${enable_client}" != "no")
201 if (test "${enable_client}" != "no"); then
202 AC_CHECK_HEADERS(readline/readline.h, enable_readline=yes,
203 AC_MSG_ERROR(readline header files are required))
205 AM_CONDITIONAL(READLINE, test "${enable_readline}" = "yes")
207 AC_ARG_ENABLE(systemd, AC_HELP_STRING([--disable-systemd],
208 [disable systemd integration]), [enable_systemd=${enableval}])
209 AM_CONDITIONAL(SYSTEMD, test "${enable_systemd}" != "no")
211 AC_ARG_WITH([systemdsystemunitdir],
212 AC_HELP_STRING([--with-systemdsystemunitdir=DIR],
213 [path to systemd system unit directory]),
214 [path_systemunitdir=${withval}])
215 if (test "${enable_systemd}" != "no" && test -z "${path_systemunitdir}"); then
216 AC_MSG_CHECKING([systemd system unit dir])
217 path_systemunitdir="`$PKG_CONFIG --variable=systemdsystemunitdir systemd`"
218 if (test -z "${path_systemunitdir}"); then
219 AC_MSG_ERROR([systemd system unit directory is required])
221 AC_MSG_RESULT([${path_systemunitdir}])
223 AC_SUBST(SYSTEMD_SYSTEMUNITDIR, [${path_systemunitdir}])
225 AC_ARG_WITH([systemduserunitdir],
226 AC_HELP_STRING([--with-systemduserunitdir=DIR],
227 [path to systemd user unit directory]),
228 [path_userunitdir=${withval}])
229 if (test "${enable_systemd}" != "no" && test -z "${path_userunitdir}"); then
230 AC_MSG_CHECKING([systemd user unit dir])
231 path_userunitdir="`$PKG_CONFIG --variable=systemduserunitdir systemd`"
232 if (test -z "${path_userunitdir}"); then
233 AC_MSG_ERROR([systemd user unit directory is required])
235 AC_MSG_RESULT([${path_userunitdir}])
237 AC_SUBST(SYSTEMD_USERUNITDIR, [${path_userunitdir}])
239 AC_ARG_ENABLE(datafiles, AC_HELP_STRING([--disable-datafiles],
240 [do not install configuration and data files]),
241 [enable_datafiles=${enableval}])
242 AM_CONDITIONAL(DATAFILES, test "${enable_datafiles}" != "no")
244 AC_ARG_ENABLE(manpages, AC_HELP_STRING([--enable-manpages],
245 [enable building of manual pages]),
246 [enable_manpages=${enableval}])
247 AM_CONDITIONAL(MANPAGES, test "${enable_manpages}" = "yes")
249 AC_ARG_ENABLE(experimental, AC_HELP_STRING([--enable-experimental],
250 [enable experimental plugins (SAP, NFC, ...)]),
251 [enable_experimental=${enableval}])
252 AM_CONDITIONAL(EXPERIMENTAL, test "${enable_experimental}" = "yes")
254 AC_ARG_ENABLE(deprecated, AC_HELP_STRING([--enable-deprecated],
255 [enable deprecated plugins (BLE services, ...)]),
256 [enable_deprecated=${enableval}])
257 AM_CONDITIONAL(DEPRECATED, test "${enable_deprecated}" = "yes")
259 AC_ARG_ENABLE(sixaxis, AC_HELP_STRING([--enable-sixaxis],
260 [enable sixaxis plugin]), [enable_sixaxis=${enableval}])
261 AM_CONDITIONAL(SIXAXIS, test "${enable_sixaxis}" = "yes" &&
262 test "${enable_udev}" != "no")
264 if (test "${prefix}" = "NONE"); then
265 dnl no prefix and no localstatedir, so default to /var
266 if (test "$localstatedir" = '${prefix}/var'); then
267 AC_SUBST([localstatedir], ['/var'])
270 prefix="${ac_default_prefix}"
273 if (test "$localstatedir" = '${prefix}/var'); then
274 storagedir="${prefix}/var/lib/bluetooth"
276 storagedir="${localstatedir}/lib/bluetooth"
278 AC_DEFINE_UNQUOTED(STORAGEDIR, "${storagedir}",
279 [Directory for the storage files])
281 if (test "$sysconfdir" = '${prefix}/etc'); then
282 configdir="${prefix}/etc/bluetooth"
284 configdir="${sysconfdir}/bluetooth"
286 AC_DEFINE_UNQUOTED(CONFIGDIR, "${configdir}",
287 [Directory for the configuration files])
288 AC_SUBST(CONFIGDIR, "${configdir}")
290 AC_ARG_ENABLE(android, AC_HELP_STRING([--enable-android],
291 [enable BlueZ for Android]),
292 [enable_android=${enableval}])
293 AM_CONDITIONAL(ANDROID, test "${enable_android}" = "yes")
295 if (test "${enable_android}" = "yes"); then
296 PKG_CHECK_MODULES(SBC, sbc >= 1.2, dummy=yes,
297 AC_MSG_ERROR(SBC library >= 1.2 is required))
302 if (test "${enable_android}" = "yes"); then
303 PKG_CHECK_MODULES(SPEEXDSP, speexdsp >= 1.2, dummy=yes,
304 AC_MSG_ERROR(SPEEXDSP library >= 1.2 is required))
305 AC_SUBST(SPEEXDSP_CFLAGS)
306 AC_SUBST(SPEEXDSP_LIBS)
309 AC_DEFINE_UNQUOTED(ANDROID_STORAGEDIR, "${storagedir}/android",
310 [Directory for the Android daemon storage files])
312 AC_OUTPUT(Makefile src/bluetoothd.8 lib/bluez.pc)