2 AM_MAKEFLAGS = --no-print-directory
22 libexecdir = @libexecdir@/bluetooth
26 includedir = @includedir@/bluetooth
30 AM_CFLAGS = $(WARNING_CFLAGS) $(MISC_CFLAGS)
31 AM_LDFLAGS = $(MISC_LDFLAGS)
34 dbusdir = @DBUS_CONFDIR@/dbus-1/system.d
35 dbus_DATA = src/bluetooth.conf
37 confdir = $(sysconfdir)/bluetooth
40 statedir = $(localstatedir)/lib/bluetooth
45 systemdsystemunitdir = @SYSTEMD_SYSTEMUNITDIR@
46 systemdsystemunit_DATA = src/bluetooth.service
48 dbussystembusdir = @DBUS_SYSTEMBUSDIR@
49 dbussystembus_DATA = src/org.bluez.service
52 EXTRA_DIST += src/bluetooth.service.in src/org.bluez.service
54 plugindir = $(libdir)/bluetooth/plugins
57 build_plugindir = $(abs_top_srcdir)/plugins/.libs
59 build_plugindir = $(plugindir)
65 lib_sources = lib/bluetooth.c lib/hci.c lib/sdp.c
66 lib_headers = lib/bluetooth.h lib/hci.h lib/hci_lib.h \
67 lib/sco.h lib/l2cap.h lib/sdp.h lib/sdp_lib.h \
68 lib/rfcomm.h lib/bnep.h lib/cmtp.h lib/hidp.h
70 extra_headers = lib/mgmt.h lib/uuid.h lib/a2mp.h lib/amp.h
71 extra_sources = lib/uuid.c
73 local_headers = $(foreach file,$(lib_headers), lib/bluetooth/$(notdir $(file)))
75 BUILT_SOURCES = $(local_headers) src/builtin.h
78 include_HEADERS += $(lib_headers)
80 lib_LTLIBRARIES += lib/libbluetooth.la
82 lib_libbluetooth_la_SOURCES = $(lib_headers) $(lib_sources)
83 lib_libbluetooth_la_LDFLAGS = $(AM_LDFLAGS) -version-info 21:15:18
84 lib_libbluetooth_la_DEPENDENCIES = $(local_headers)
87 noinst_LTLIBRARIES += lib/libbluetooth-internal.la
89 lib_libbluetooth_internal_la_SOURCES = $(lib_headers) $(lib_sources) \
90 $(extra_headers) $(extra_sources)
92 noinst_LTLIBRARIES += gdbus/libgdbus-internal.la
94 gdbus_libgdbus_internal_la_SOURCES = gdbus/gdbus.h \
95 gdbus/mainloop.c gdbus/watch.c \
96 gdbus/object.c gdbus/client.c gdbus/polkit.c
98 noinst_LTLIBRARIES += src/libshared-glib.la src/libshared-mainloop.la
100 shared_sources = src/shared/io.h src/shared/timeout.h \
101 src/shared/queue.h src/shared/queue.c \
102 src/shared/util.h src/shared/util.c \
103 src/shared/mgmt.h src/shared/mgmt.c \
104 src/shared/crypto.h src/shared/crypto.c \
105 src/shared/ecc.h src/shared/ecc.c \
106 src/shared/ringbuf.h src/shared/ringbuf.c \
107 src/shared/tester.h src/shared/tester.c \
108 src/shared/hci.h src/shared/hci.c \
109 src/shared/hci-crypto.h src/shared/hci-crypto.c \
110 src/shared/hfp.h src/shared/hfp.c \
111 src/shared/uhid.h src/shared/uhid.c \
112 src/shared/pcap.h src/shared/pcap.c \
113 src/shared/btsnoop.h src/shared/btsnoop.c \
114 src/shared/ad.h src/shared/ad.c \
115 src/shared/att-types.h \
116 src/shared/att.h src/shared/att.c \
117 src/shared/gatt-helpers.h src/shared/gatt-helpers.c \
118 src/shared/gatt-client.h src/shared/gatt-client.c \
119 src/shared/gatt-server.h src/shared/gatt-server.c \
120 src/shared/gatt-db.h src/shared/gatt-db.c \
121 src/shared/gap.h src/shared/gap.c \
124 src_libshared_glib_la_SOURCES = $(shared_sources) \
125 src/shared/io-glib.c \
126 src/shared/timeout-glib.c
128 src_libshared_mainloop_la_SOURCES = $(shared_sources) \
129 src/shared/io-mainloop.c \
130 src/shared/timeout-mainloop.c \
131 src/shared/mainloop.h src/shared/mainloop.c
133 attrib_sources = attrib/att.h attrib/att-database.h attrib/att.c \
134 attrib/gatt.h attrib/gatt.c \
135 attrib/gattrib.h attrib/gattrib.c \
136 attrib/gatt-service.h attrib/gatt-service.c
138 btio_sources = btio/btio.h btio/btio.c
140 gobex_sources = gobex/gobex.h gobex/gobex.c \
141 gobex/gobex-defs.h gobex/gobex-defs.c \
142 gobex/gobex-packet.c gobex/gobex-packet.h \
143 gobex/gobex-header.c gobex/gobex-header.h \
144 gobex/gobex-transfer.c gobex/gobex-debug.h \
145 gobex/gobex-apparam.c gobex/gobex-apparam.h
152 include Makefile.plugins
155 plugin_LTLIBRARIES += plugins/external-dummy.la
156 plugins_external_dummy_la_SOURCES = plugins/external-dummy.c
157 plugins_external_dummy_la_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version \
159 plugins_external_dummy_la_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden
162 libexec_PROGRAMS += src/bluetoothd
164 src_bluetoothd_SOURCES = $(builtin_sources) \
165 $(attrib_sources) $(btio_sources) \
167 src/main.c src/log.h src/log.c \
168 src/backtrace.h src/backtrace.c \
169 src/systemd.h src/systemd.c \
170 src/rfkill.c src/hcid.h src/sdpd.h \
171 src/sdpd-server.c src/sdpd-request.c \
172 src/sdpd-service.c src/sdpd-database.c \
173 src/attrib-server.h src/attrib-server.c \
174 src/gatt-database.h src/gatt-database.c \
175 src/sdp-xml.h src/sdp-xml.c \
176 src/sdp-client.h src/sdp-client.c \
177 src/textfile.h src/textfile.c \
178 src/uuid-helper.h src/uuid-helper.c \
180 src/plugin.h src/plugin.c \
181 src/storage.h src/storage.c \
182 src/advertising.h src/advertising.c \
183 src/agent.h src/agent.c \
184 src/error.h src/error.c \
185 src/adapter.h src/adapter.c \
186 src/profile.h src/profile.c \
187 src/service.h src/service.c \
188 src/gatt-client.h src/gatt-client.c \
189 src/device.h src/device.c \
190 src/dbus-common.c src/dbus-common.h \
192 src_bluetoothd_LDADD = lib/libbluetooth-internal.la \
193 gdbus/libgdbus-internal.la \
194 src/libshared-glib.la \
195 @BACKTRACE_LIBS@ @GLIB_LIBS@ @DBUS_LIBS@ -ldl -lrt \
197 src_bluetoothd_LDFLAGS = $(AM_LDFLAGS) -Wl,--export-dynamic \
198 -Wl,--version-script=$(srcdir)/src/bluetooth.ver
200 src_bluetoothd_DEPENDENCIES = lib/libbluetooth-internal.la \
201 gdbus/libgdbus-internal.la \
202 src/libshared-glib.la \
203 src/bluetooth.service
205 src_bluetoothd_CFLAGS = $(AM_CFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \
206 -DPLUGINDIR=\""$(build_plugindir)"\"
207 src_bluetoothd_SHORTNAME = bluetoothd
209 builtin_files = src/builtin.h $(builtin_nodist)
211 nodist_src_bluetoothd_SOURCES = $(builtin_files)
213 CLEANFILES += $(builtin_files) src/bluetooth.service
215 man_MANS = src/bluetoothd.8
217 EXTRA_DIST += src/genbuiltin src/bluetooth.conf \
218 src/main.conf profiles/network/network.conf \
219 profiles/input/input.conf profiles/proximity/proximity.conf
224 include Makefile.tools
225 include Makefile.obexd
226 include android/Makefile.am
229 rulesdir = @UDEV_DIR@/rules.d
231 rules_DATA = tools/97-hid2hci.rules
233 CLEANFILES += $(rules_DATA)
236 EXTRA_DIST += tools/hid2hci.rules
239 testdir = $(pkglibdir)/test
240 test_SCRIPTS = $(test_scripts)
243 EXTRA_DIST += $(test_scripts)
245 EXTRA_DIST += doc/assigned-numbers.txt doc/supported-features.txt \
246 doc/test-coverage.txt \
247 doc/test-runner.txt \
248 doc/settings-storage.txt
250 EXTRA_DIST += doc/mgmt-api.txt \
251 doc/adapter-api.txt doc/device-api.txt \
252 doc/agent-api.txt doc/profile-api.txt \
253 doc/network-api.txt doc/media-api.txt \
254 doc/health-api.txt doc/sap-api.txt \
257 EXTRA_DIST += doc/alert-api.txt \
258 doc/proximity-api.txt doc/heartrate-api.txt \
259 doc/thermometer-api.txt doc/cyclingspeed-api.txt \
260 doc/gatt-api.txt doc/advertising-api.txt
262 EXTRA_DIST += doc/obex-api.txt doc/obex-agent-api.txt
264 EXTRA_DIST += doc/pics-opp.txt doc/pixit-opp.txt \
267 EXTRA_DIST += doc/btsnoop.txt
269 EXTRA_DIST += tools/magic.btsnoop
271 AM_CFLAGS += @DBUS_CFLAGS@ @GLIB_CFLAGS@
273 AM_CPPFLAGS = -I$(builddir)/lib
276 unit_tests += unit/test-eir
278 unit_test_eir_SOURCES = unit/test-eir.c src/eir.c src/uuid-helper.c
279 unit_test_eir_LDADD = src/libshared-glib.la lib/libbluetooth-internal.la \
282 unit_tests += unit/test-uuid
284 unit_test_uuid_SOURCES = unit/test-uuid.c
285 unit_test_uuid_LDADD = src/libshared-glib.la lib/libbluetooth-internal.la \
288 unit_tests += unit/test-textfile
290 unit_test_textfile_SOURCES = unit/test-textfile.c src/textfile.h src/textfile.c
291 unit_test_textfile_LDADD = src/libshared-glib.la @GLIB_LIBS@
293 unit_tests += unit/test-crc
295 unit_test_crc_SOURCES = unit/test-crc.c monitor/crc.h monitor/crc.c
296 unit_test_crc_LDADD = src/libshared-glib.la @GLIB_LIBS@
298 unit_tests += unit/test-crypto
300 unit_test_crypto_SOURCES = unit/test-crypto.c
301 unit_test_crypto_LDADD = src/libshared-glib.la @GLIB_LIBS@
303 unit_tests += unit/test-ecc
305 unit_test_ecc_SOURCES = unit/test-ecc.c
306 unit_test_ecc_LDADD = src/libshared-glib.la @GLIB_LIBS@
308 unit_tests += unit/test-ringbuf unit/test-queue
310 unit_test_ringbuf_SOURCES = unit/test-ringbuf.c
311 unit_test_ringbuf_LDADD = src/libshared-glib.la @GLIB_LIBS@
313 unit_test_queue_SOURCES = unit/test-queue.c
314 unit_test_queue_LDADD = src/libshared-glib.la @GLIB_LIBS@
316 unit_tests += unit/test-mgmt
318 unit_test_mgmt_SOURCES = unit/test-mgmt.c
319 unit_test_mgmt_LDADD = src/libshared-glib.la @GLIB_LIBS@
321 unit_tests += unit/test-uhid
323 unit_test_uhid_SOURCES = unit/test-uhid.c
324 unit_test_uhid_LDADD = src/libshared-glib.la @GLIB_LIBS@
326 unit_tests += unit/test-sdp
328 unit_test_sdp_SOURCES = unit/test-sdp.c \
329 src/sdpd.h src/sdpd-database.c \
330 src/log.h src/log.c \
331 src/sdpd-service.c src/sdpd-request.c
332 unit_test_sdp_LDADD = lib/libbluetooth-internal.la \
333 src/libshared-glib.la @GLIB_LIBS@
335 unit_tests += unit/test-avdtp
337 unit_test_avdtp_SOURCES = unit/test-avdtp.c \
338 src/log.h src/log.c \
339 android/avdtp.c android/avdtp.h
340 unit_test_avdtp_LDADD = src/libshared-glib.la @GLIB_LIBS@
342 unit_tests += unit/test-avctp
344 unit_test_avctp_SOURCES = unit/test-avctp.c \
345 src/log.h src/log.c \
346 android/avctp.c android/avctp.h
347 unit_test_avctp_LDADD = src/libshared-glib.la @GLIB_LIBS@
349 unit_tests += unit/test-avrcp
351 unit_test_avrcp_SOURCES = unit/test-avrcp.c \
352 src/log.h src/log.c \
353 android/avctp.c android/avctp.h \
354 android/avrcp-lib.c android/avrcp-lib.h
355 unit_test_avrcp_LDADD = lib/libbluetooth-internal.la \
356 src/libshared-glib.la @GLIB_LIBS@
358 unit_tests += unit/test-hfp
360 unit_test_hfp_SOURCES = unit/test-hfp.c
361 unit_test_hfp_LDADD = src/libshared-glib.la @GLIB_LIBS@
363 unit_tests += unit/test-gdbus-client
365 unit_test_gdbus_client_SOURCES = unit/test-gdbus-client.c
366 unit_test_gdbus_client_LDADD = gdbus/libgdbus-internal.la \
367 src/libshared-glib.la @GLIB_LIBS@ @DBUS_LIBS@
369 unit_tests += unit/test-gobex-header unit/test-gobex-packet unit/test-gobex \
370 unit/test-gobex-transfer unit/test-gobex-apparam
372 unit_test_gobex_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
374 unit_test_gobex_LDADD = @GLIB_LIBS@
376 unit_test_gobex_packet_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
377 unit/test-gobex-packet.c
378 unit_test_gobex_packet_LDADD = @GLIB_LIBS@
380 unit_test_gobex_header_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
381 unit/test-gobex-header.c
382 unit_test_gobex_header_LDADD = @GLIB_LIBS@
384 unit_test_gobex_transfer_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
385 unit/test-gobex-transfer.c
386 unit_test_gobex_transfer_LDADD = @GLIB_LIBS@
388 unit_test_gobex_apparam_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
389 unit/test-gobex-apparam.c
390 unit_test_gobex_apparam_LDADD = @GLIB_LIBS@
392 unit_tests += unit/test-lib
394 unit_test_lib_SOURCES = unit/test-lib.c
395 unit_test_lib_LDADD = src/libshared-glib.la \
396 lib/libbluetooth-internal.la @GLIB_LIBS@
398 unit_tests += unit/test-gatt
400 unit_test_gatt_SOURCES = unit/test-gatt.c
401 unit_test_gatt_LDADD = src/libshared-glib.la \
402 lib/libbluetooth-internal.la @GLIB_LIBS@
404 unit_tests += unit/test-hog
406 unit_test_hog_SOURCES = unit/test-hog.c \
408 profiles/input/hog-lib.h profiles/input/hog-lib.c \
409 profiles/scanparam/scpp.h profiles/scanparam/scpp.c \
410 profiles/battery/bas.h profiles/battery/bas.c \
411 profiles/deviceinfo/dis.h profiles/deviceinfo/dis.c \
412 src/log.h src/log.c \
413 attrib/att.h attrib/att.c \
414 attrib/gatt.h attrib/gatt.c \
415 attrib/gattrib.h attrib/gattrib.c
416 unit_test_hog_LDADD = src/libshared-glib.la \
417 lib/libbluetooth-internal.la @GLIB_LIBS@
419 unit_tests += unit/test-gattrib
421 unit_test_gattrib_SOURCES = unit/test-gattrib.c attrib/gattrib.c $(btio_sources) src/log.h src/log.c
422 unit_test_gattrib_LDADD = lib/libbluetooth-internal.la \
423 src/libshared-glib.la \
424 @GLIB_LIBS@ @DBUS_LIBS@ -ldl -lrt
427 unit_tests += unit/test-midi
428 unit_test_midi_CFLAGS = $(AM_CFLAGS) @ALSA_CFLAGS@ -DMIDI_TEST
429 unit_test_midi_SOURCES = unit/test-midi.c \
430 profiles/midi/libmidi.h \
431 profiles/midi/libmidi.c
432 unit_test_midi_LDADD = src/libshared-glib.la \
433 @GLIB_LIBS@ @ALSA_LIBS@
437 noinst_PROGRAMS += $(unit_tests)
440 TESTS = $(unit_tests)
441 AM_TESTS_ENVIRONMENT = MALLOC_CHECK_=3 MALLOC_PERTURB_=69
444 AM_TESTS_ENVIRONMENT += dbus-run-session --
448 LOG_COMPILER = valgrind --error-exitcode=1 --num-callers=30
449 LOG_FLAGS = --trace-children=yes --leak-check=full --show-reachable=no \
450 --suppressions=$(srcdir)/tools/valgrind.supp --quiet
453 pkgconfigdir = $(libdir)/pkgconfig
456 pkgconfig_DATA = lib/bluez.pc
459 manual_pages = doc/btmon.1
462 dist_noinst_MANS += $(manual_pages)
465 EXTRA_DIST += $(manual_pages:.1=.txt)
467 DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles --enable-library \
468 --enable-manpages --enable-android \
469 --disable-systemd --disable-udev
471 DISTCLEANFILES = $(pkgconfig_DATA) $(unit_tests) $(manual_pages)
473 MAINTAINERCLEANFILES = Makefile.in \
474 aclocal.m4 configure config.h.in config.sub config.guess \
475 ltmain.sh depcomp compile missing install-sh mkinstalldirs test-driver
477 SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
478 $(SED) -e 's,@libexecdir\@,$(libexecdir),g' \
481 %.service: %.service.in Makefile
485 $(AM_V_GEN)a2x --doctype manpage --format manpage $(srcdir)/$<
487 src/builtin.h: src/genbuiltin $(builtin_sources)
488 $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@
491 $(AM_V_GEN)cp $(srcdir)/$(subst 97-,,$@) $@
493 $(lib_libbluetooth_la_OBJECTS): $(local_headers)
495 lib/bluetooth/%.h: lib/%.h
496 $(AM_V_at)$(MKDIR_P) lib/bluetooth
497 $(AM_V_GEN)$(LN_S) -f "$(abs_top_builddir)"/$< $@
501 @lcov --directory $(top_builddir) --zerocounters
502 $(RM) -r coverage $(top_builddir)/coverage.info
505 @lcov --compat-libtool --directory $(top_builddir) --capture \
506 --output-file $(top_builddir)/coverage.info
507 $(AM_V_at)$(MKDIR_P) coverage
508 @genhtml -o coverage/ $(top_builddir)/coverage.info
510 clean-local: clean-coverage
511 -find $(top_builddir) -name "*.gcno" -delete
512 -find $(top_builddir) -name "*.gcda" -delete
513 $(RM) -r lib/bluetooth
517 -find $(top_builddir) -name "*.gcno" -delete
518 -find $(top_builddir) -name "*.gcda" -delete
519 $(RM) -r lib/bluetooth