2 AM_MAKEFLAGS = --no-print-directory
23 libexecdir = @libexecdir@/bluetooth
24 pkglibexecdir = @libexecdir@/bluetooth
28 pkgincludedir = $(includedir)/bluetooth
32 AM_CFLAGS = $(WARNING_CFLAGS) $(MISC_CFLAGS) $(UDEV_CFLAGS) $(ell_cflags)
33 AM_LDFLAGS = $(MISC_LDFLAGS)
36 dbusdir = $(DBUS_CONFDIR)/dbus-1/system.d
37 dbus_DATA = src/bluetooth.conf
39 confdir = $(sysconfdir)/bluetooth
42 statedir = $(localstatedir)/lib/bluetooth
47 systemdsystemunitdir = $(SYSTEMD_SYSTEMUNITDIR)
48 systemdsystemunit_DATA = src/bluetooth.service
50 dbussystembusdir = $(DBUS_SYSTEMBUSDIR)
51 dbussystembus_DATA = src/org.bluez.service
54 EXTRA_DIST += src/bluetooth.service.in src/org.bluez.service
56 plugindir = $(libdir)/bluetooth/plugins
59 build_plugindir = $(abs_top_srcdir)/plugins/.libs
61 build_plugindir = $(plugindir)
67 lib_sources = lib/bluetooth.c lib/hci.c lib/sdp.c
68 lib_headers = lib/bluetooth.h lib/hci.h lib/hci_lib.h \
69 lib/sco.h lib/l2cap.h lib/sdp.h lib/sdp_lib.h \
70 lib/rfcomm.h lib/bnep.h lib/cmtp.h lib/hidp.h
72 extra_headers = lib/mgmt.h lib/uuid.h lib/a2mp.h lib/amp.h
73 extra_sources = lib/uuid.c
75 local_headers = $(foreach file,$(lib_headers), lib/bluetooth/$(notdir $(file)))
77 BUILT_SOURCES = $(local_headers) $(ell_built_sources) src/builtin.h
80 pkginclude_HEADERS += $(lib_headers)
82 lib_LTLIBRARIES += lib/libbluetooth.la
84 lib_libbluetooth_la_SOURCES = $(lib_headers) $(lib_sources)
85 lib_libbluetooth_la_LDFLAGS = $(AM_LDFLAGS) -version-info 22:0:19
86 lib_libbluetooth_la_DEPENDENCIES = $(local_headers)
89 noinst_LTLIBRARIES += lib/libbluetooth-internal.la
91 lib_libbluetooth_internal_la_SOURCES = $(lib_headers) $(lib_sources) \
92 $(extra_headers) $(extra_sources)
94 noinst_LTLIBRARIES += gdbus/libgdbus-internal.la
96 gdbus_libgdbus_internal_la_SOURCES = gdbus/gdbus.h \
97 gdbus/mainloop.c gdbus/watch.c \
98 gdbus/object.c gdbus/client.c gdbus/polkit.c
101 ell_cflags = @ELL_CFLAGS@
102 ell_ldadd = @ELL_LIBS@
107 ell_ldadd = ell/libell-internal.la
108 ell_dependencies = $(ell_ldadd)
109 ell_built_sources = ell/internal ell/ell.h
111 noinst_LTLIBRARIES += ell/libell-internal.la
113 ell_headers = ell/util.h \
138 ell/pkcs5-private.h \
142 ell_sources = ell/private.h ell/missing.h \
170 ell/dbus-name-cache.c \
172 ell/gvariant-private.h \
173 ell/gvariant-util.c \
174 ell/siphash-private.h \
177 ell_libell_internal_la_SOURCES = $(ell_headers) $(ell_sources)
180 CLEANFILES += $(ell_built_sources)
182 noinst_LTLIBRARIES += src/libshared-glib.la src/libshared-mainloop.la
185 noinst_LTLIBRARIES += src/libshared-ell.la
188 shared_sources = src/shared/io.h src/shared/timeout.h \
189 src/shared/queue.h src/shared/queue.c \
190 src/shared/util.h src/shared/util.c \
191 src/shared/mgmt.h src/shared/mgmt.c \
192 src/shared/crypto.h src/shared/crypto.c \
193 src/shared/ecc.h src/shared/ecc.c \
194 src/shared/ringbuf.h src/shared/ringbuf.c \
195 src/shared/tester.h src/shared/tester.c \
196 src/shared/hci.h src/shared/hci.c \
197 src/shared/hci-crypto.h src/shared/hci-crypto.c \
198 src/shared/hfp.h src/shared/hfp.c \
199 src/shared/uhid.h src/shared/uhid.c \
200 src/shared/pcap.h src/shared/pcap.c \
201 src/shared/btsnoop.h src/shared/btsnoop.c \
202 src/shared/ad.h src/shared/ad.c \
203 src/shared/att-types.h \
204 src/shared/att.h src/shared/att.c \
205 src/shared/gatt-helpers.h src/shared/gatt-helpers.c \
206 src/shared/gatt-client.h src/shared/gatt-client.c \
207 src/shared/gatt-server.h src/shared/gatt-server.c \
208 src/shared/gatt-db.h src/shared/gatt-db.c \
209 src/shared/gap.h src/shared/gap.c \
210 src/shared/log.h src/shared/log.c \
214 shared_sources += src/shared/shell.c src/shared/shell.h
218 src_libshared_ell_la_SOURCES = $(shared_sources) \
219 src/shared/io-ell.c \
220 src/shared/timeout-ell.c \
221 src/shared/mainloop.h \
222 src/shared/mainloop-ell.c
225 src_libshared_glib_la_SOURCES = $(shared_sources) \
226 src/shared/io-glib.c \
227 src/shared/timeout-glib.c \
228 src/shared/mainloop-glib.c \
229 src/shared/mainloop-notify.h \
230 src/shared/mainloop-notify.c
232 src_libshared_mainloop_la_SOURCES = $(shared_sources) \
233 src/shared/io-mainloop.c \
234 src/shared/timeout-mainloop.c \
235 src/shared/mainloop.h src/shared/mainloop.c \
236 src/shared/mainloop-notify.h \
237 src/shared/mainloop-notify.c
240 attrib_sources = attrib/att.h attrib/att-database.h attrib/att.c \
241 attrib/gatt.h attrib/gatt.c \
242 attrib/gattrib.h attrib/gattrib.c \
243 attrib/gatt-service.h attrib/gatt-service.c
245 btio_sources = btio/btio.h btio/btio.c
247 gobex_sources = gobex/gobex.h gobex/gobex.c \
248 gobex/gobex-defs.h gobex/gobex-defs.c \
249 gobex/gobex-packet.c gobex/gobex-packet.h \
250 gobex/gobex-header.c gobex/gobex-header.h \
251 gobex/gobex-transfer.c gobex/gobex-debug.h \
252 gobex/gobex-apparam.c gobex/gobex-apparam.h
260 include Makefile.plugins
263 plugin_LTLIBRARIES += plugins/external-dummy.la
264 plugins_external_dummy_la_SOURCES = plugins/external-dummy.c
265 plugins_external_dummy_la_LDFLAGS = $(AM_LDFLAGS) -module -avoid-version \
267 plugins_external_dummy_la_CFLAGS = $(AM_CFLAGS) -fvisibility=hidden
270 libexec_PROGRAMS += src/bluetoothd
272 src_bluetoothd_SOURCES = $(builtin_sources) \
273 $(attrib_sources) $(btio_sources) \
275 src/main.c src/log.h src/log.c \
276 src/backtrace.h src/backtrace.c \
277 src/rfkill.c src/hcid.h src/sdpd.h \
278 src/sdpd-server.c src/sdpd-request.c \
279 src/sdpd-service.c src/sdpd-database.c \
280 src/attrib-server.h src/attrib-server.c \
281 src/gatt-database.h src/gatt-database.c \
282 src/sdp-xml.h src/sdp-xml.c \
283 src/sdp-client.h src/sdp-client.c \
284 src/textfile.h src/textfile.c \
285 src/uuid-helper.h src/uuid-helper.c \
287 src/plugin.h src/plugin.c \
288 src/storage.h src/storage.c \
289 src/advertising.h src/advertising.c \
290 src/agent.h src/agent.c \
291 src/error.h src/error.c \
292 src/adapter.h src/adapter.c \
293 src/adapter_le_vsc_features.h src/adapter_le_vsc_features.c \
294 src/profile.h src/profile.c \
295 src/service.h src/service.c \
296 src/gatt-client.h src/gatt-client.c \
297 src/device.h src/device.c \
298 src/dbus-common.c src/dbus-common.h \
300 src_bluetoothd_LDADD = lib/libbluetooth-internal.la \
301 gdbus/libgdbus-internal.la \
302 src/libshared-glib.la \
303 $(BACKTRACE_LIBS) $(GLIB_LIBS) $(DBUS_LIBS) @LIBXML_LIBS@ @INIPARSER_LIBS@ -ldl -lrt
305 src_bluetoothd_LDFLAGS = $(AM_LDFLAGS) -Wl,--export-dynamic \
306 -Wl,--version-script=$(srcdir)/src/bluetooth.ver
308 src_bluetoothd_DEPENDENCIES = lib/libbluetooth-internal.la \
309 gdbus/libgdbus-internal.la \
310 src/libshared-glib.la \
311 src/bluetooth.service
313 src_bluetoothd_CPPFLAGS = $(AM_CPPFLAGS) -DBLUETOOTH_PLUGIN_BUILTIN \
314 -DPLUGINDIR=\""$(build_plugindir)"\" \
315 $(BACKTRACE_CFLAGS) $(builtin_cppflags)
316 src_bluetoothd_SHORTNAME = bluetoothd
318 builtin_files = src/builtin.h $(builtin_nodist)
320 nodist_src_bluetoothd_SOURCES = $(builtin_files)
322 CLEANFILES += $(builtin_files) src/bluetooth.service
324 man_MANS = src/bluetoothd.8
326 EXTRA_DIST += src/genbuiltin src/bluetooth.conf \
327 src/main_m.conf src/main_w.conf profiles/network/network.conf \
328 profiles/input/input.conf profiles/proximity/proximity.conf
333 include Makefile.tools
334 include Makefile.obexd
335 include android/Makefile.am
336 include Makefile.mesh
339 rulesdir = $(UDEV_DIR)/rules.d
341 rules_DATA = tools/97-hid2hci.rules
343 CLEANFILES += $(rules_DATA)
346 EXTRA_DIST += tools/hid2hci.rules
349 testdir = $(pkglibdir)/test
350 test_SCRIPTS = $(test_scripts)
353 EXTRA_DIST += $(test_scripts)
355 EXTRA_DIST += doc/assigned-numbers.txt doc/supported-features.txt \
356 doc/test-coverage.txt \
357 doc/test-runner.txt \
358 doc/settings-storage.txt
360 EXTRA_DIST += doc/mgmt-api.txt \
361 doc/adapter-api.txt doc/device-api.txt \
362 doc/agent-api.txt doc/profile-api.txt \
363 doc/network-api.txt doc/media-api.txt \
364 doc/health-api.txt doc/sap-api.txt \
367 EXTRA_DIST += doc/alert-api.txt \
368 doc/proximity-api.txt doc/heartrate-api.txt \
369 doc/thermometer-api.txt doc/cyclingspeed-api.txt \
370 doc/gatt-api.txt doc/advertising-api.txt
372 EXTRA_DIST += doc/obex-api.txt doc/obex-agent-api.txt
374 EXTRA_DIST += doc/pics-opp.txt doc/pixit-opp.txt \
377 EXTRA_DIST += doc/btsnoop.txt
379 EXTRA_DIST += tools/magic.btsnoop
381 AM_CFLAGS += @LIBXML_CFLAGS@ @INIPARSER_CFLAGS@
383 AM_CPPFLAGS += $(DBUS_CFLAGS) $(GLIB_CFLAGS) -I$(builddir)/lib
386 unit_tests += unit/test-eir
388 unit_test_eir_SOURCES = unit/test-eir.c src/eir.c src/uuid-helper.c
389 unit_test_eir_LDADD = src/libshared-glib.la lib/libbluetooth-internal.la \
392 unit_tests += unit/test-uuid
394 unit_test_uuid_SOURCES = unit/test-uuid.c
395 unit_test_uuid_LDADD = src/libshared-glib.la lib/libbluetooth-internal.la \
398 unit_tests += unit/test-textfile
400 unit_test_textfile_SOURCES = unit/test-textfile.c src/textfile.h src/textfile.c
401 unit_test_textfile_LDADD = src/libshared-glib.la $(GLIB_LIBS)
403 unit_tests += unit/test-crc
405 unit_test_crc_SOURCES = unit/test-crc.c monitor/crc.h monitor/crc.c
406 unit_test_crc_LDADD = src/libshared-glib.la $(GLIB_LIBS)
408 if TIZEN_CRYPTO_TESTS
409 unit_tests += unit/test-crypto
411 unit_test_crypto_SOURCES = unit/test-crypto.c
412 unit_test_crypto_LDADD = src/libshared-glib.la @GLIB_LIBS@
415 unit_tests += unit/test-ecc
417 unit_test_ecc_SOURCES = unit/test-ecc.c
418 unit_test_ecc_LDADD = src/libshared-glib.la $(GLIB_LIBS)
420 unit_tests += unit/test-ringbuf unit/test-queue
422 unit_test_ringbuf_SOURCES = unit/test-ringbuf.c
423 unit_test_ringbuf_LDADD = src/libshared-glib.la $(GLIB_LIBS)
425 unit_test_queue_SOURCES = unit/test-queue.c
426 unit_test_queue_LDADD = src/libshared-glib.la $(GLIB_LIBS)
428 unit_tests += unit/test-mgmt
430 unit_test_mgmt_SOURCES = unit/test-mgmt.c
431 unit_test_mgmt_LDADD = src/libshared-glib.la $(GLIB_LIBS)
433 unit_tests += unit/test-uhid
435 unit_test_uhid_SOURCES = unit/test-uhid.c
436 unit_test_uhid_LDADD = src/libshared-glib.la $(GLIB_LIBS)
438 unit_tests += unit/test-sdp
440 unit_test_sdp_SOURCES = unit/test-sdp.c \
441 src/sdpd.h src/sdpd-database.c \
442 src/log.h src/log.c \
443 src/sdpd-service.c src/sdpd-request.c
444 unit_test_sdp_LDADD = lib/libbluetooth-internal.la \
445 src/libshared-glib.la $(GLIB_LIBS)
447 unit_tests += unit/test-avdtp
449 unit_test_avdtp_SOURCES = unit/test-avdtp.c \
450 src/log.h src/log.c \
451 android/avdtp.c android/avdtp.h
452 unit_test_avdtp_LDADD = src/libshared-glib.la $(GLIB_LIBS)
454 unit_tests += unit/test-avctp
456 unit_test_avctp_SOURCES = unit/test-avctp.c \
457 src/log.h src/log.c \
458 android/avctp.c android/avctp.h
459 unit_test_avctp_LDADD = src/libshared-glib.la $(GLIB_LIBS)
461 unit_tests += unit/test-avrcp
463 unit_test_avrcp_SOURCES = unit/test-avrcp.c \
464 src/log.h src/log.c \
465 android/avctp.c android/avctp.h \
466 android/avrcp-lib.c android/avrcp-lib.h
467 unit_test_avrcp_LDADD = lib/libbluetooth-internal.la \
468 src/libshared-glib.la $(GLIB_LIBS)
470 unit_tests += unit/test-hfp
472 unit_test_hfp_SOURCES = unit/test-hfp.c
473 unit_test_hfp_LDADD = src/libshared-glib.la $(GLIB_LIBS)
475 unit_tests += unit/test-gdbus-client
477 unit_test_gdbus_client_SOURCES = unit/test-gdbus-client.c
478 unit_test_gdbus_client_LDADD = gdbus/libgdbus-internal.la \
479 src/libshared-glib.la $(GLIB_LIBS) $(DBUS_LIBS)
481 unit_tests += unit/test-gobex-header unit/test-gobex-packet unit/test-gobex \
482 unit/test-gobex-transfer unit/test-gobex-apparam
484 unit_test_gobex_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
486 unit_test_gobex_LDADD = $(GLIB_LIBS)
488 unit_test_gobex_packet_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
489 unit/test-gobex-packet.c
490 unit_test_gobex_packet_LDADD = $(GLIB_LIBS)
492 unit_test_gobex_header_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
493 unit/test-gobex-header.c
494 unit_test_gobex_header_LDADD = $(GLIB_LIBS)
496 unit_test_gobex_transfer_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
497 unit/test-gobex-transfer.c
498 unit_test_gobex_transfer_LDADD = $(GLIB_LIBS)
500 unit_test_gobex_apparam_SOURCES = $(gobex_sources) unit/util.c unit/util.h \
501 unit/test-gobex-apparam.c
502 unit_test_gobex_apparam_LDADD = $(GLIB_LIBS)
504 unit_tests += unit/test-lib
506 unit_test_lib_SOURCES = unit/test-lib.c
507 unit_test_lib_LDADD = src/libshared-glib.la \
508 lib/libbluetooth-internal.la $(GLIB_LIBS)
510 unit_tests += unit/test-gatt
512 unit_test_gatt_SOURCES = unit/test-gatt.c
513 unit_test_gatt_LDADD = src/libshared-glib.la \
514 lib/libbluetooth-internal.la $(GLIB_LIBS)
516 unit_tests += unit/test-hog
518 unit_test_hog_SOURCES = unit/test-hog.c \
520 profiles/input/hog-lib.h profiles/input/hog-lib.c \
521 profiles/scanparam/scpp.h profiles/scanparam/scpp.c \
522 profiles/battery/bas.h profiles/battery/bas.c \
523 profiles/deviceinfo/dis.h profiles/deviceinfo/dis.c \
524 src/log.h src/log.c \
525 attrib/att.h attrib/att.c \
526 attrib/gatt.h attrib/gatt.c \
527 attrib/gattrib.h attrib/gattrib.c
528 unit_test_hog_LDADD = src/libshared-glib.la \
529 lib/libbluetooth-internal.la $(GLIB_LIBS)
531 unit_tests += unit/test-gattrib
533 unit_test_gattrib_SOURCES = unit/test-gattrib.c attrib/gattrib.c \
534 $(btio_sources) src/log.h src/log.c
535 unit_test_gattrib_LDADD = lib/libbluetooth-internal.la \
536 src/libshared-glib.la \
537 $(GLIB_LIBS) $(DBUS_LIBS) -ldl -lrt
540 unit_tests += unit/test-midi
541 unit_test_midi_CPPFLAGS = $(AM_CPPFLAGS) $(ALSA_CFLAGS) -DMIDI_TEST
542 unit_test_midi_SOURCES = unit/test-midi.c \
543 profiles/midi/libmidi.h \
544 profiles/midi/libmidi.c
545 unit_test_midi_LDADD = src/libshared-glib.la \
546 $(GLIB_LIBS) $(ALSA_LIBS)
550 unit_tests += unit/test-mesh-crypto
551 unit_test_mesh_crypto_CPPFLAGS = $(ell_cflags)
552 unit_test_mesh_crypto_SOURCES = unit/test-mesh-crypto.c \
553 mesh/crypto.h ell/internal ell/ell.h \
555 unit_test_mesh_crypto_LDADD = src/libshared-ell.la \
560 noinst_PROGRAMS += $(unit_tests)
563 TESTS = $(unit_tests)
564 AM_TESTS_ENVIRONMENT = MALLOC_CHECK_=3 MALLOC_PERTURB_=69
567 AM_TESTS_ENVIRONMENT += dbus-run-session --
571 LOG_COMPILER = valgrind --error-exitcode=1 --num-callers=30
572 LOG_FLAGS = --trace-children=yes --leak-check=full --show-reachable=no \
573 --suppressions=$(srcdir)/tools/valgrind.supp --quiet
576 pkgconfigdir = $(libdir)/pkgconfig
579 pkgconfig_DATA = lib/bluez.pc
582 manual_pages = doc/btmon.1
585 dist_noinst_MANS += $(manual_pages)
588 EXTRA_DIST += $(manual_pages:.1=.txt)
590 DISTCHECK_CONFIGURE_FLAGS = --disable-datafiles --enable-library \
598 DISTCLEANFILES = $(pkgconfig_DATA) $(unit_tests) $(manual_pages)
600 MAINTAINERCLEANFILES = Makefile.in \
601 aclocal.m4 configure config.h.in config.sub config.guess \
602 ltmain.sh depcomp compile missing install-sh mkinstalldirs test-driver
604 SED_PROCESS = $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
605 $(SED) -e 's,@pkglibexecdir\@,$(pkglibexecdir),g' \
608 %.service: %.service.in Makefile
612 $(AM_V_GEN)a2x --doctype manpage --format manpage $(srcdir)/$<
614 src/builtin.h: src/genbuiltin $(builtin_sources)
615 $(AM_V_GEN)$(srcdir)/src/genbuiltin $(builtin_modules) > $@
618 $(AM_V_at)$(MKDIR_P) tools
619 $(AM_V_GEN)cp $(srcdir)/$(subst 97-,,$@) $@
621 $(lib_libbluetooth_la_OBJECTS): $(local_headers)
623 lib/bluetooth/%.h: lib/%.h
624 $(AM_V_at)$(MKDIR_P) lib/bluetooth
625 $(AM_V_GEN)$(LN_S) -f $(abspath $<) $@
627 ell/internal: Makefile
628 $(AM_V_at)$(MKDIR_P) ell
629 $(AM_V_GEN)for f in $(ell_headers) $(ell_sources) ; do \
630 if [ ! -f $$f ] ; then \
631 $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \
636 $(AM_V_at)echo -n > $@
637 $(AM_V_GEN)for f in $(ell_headers) ; do \
638 echo "#include <$$f>" >> $@ ; \
641 maintainer-clean-local:
646 @lcov --directory $(top_builddir) --zerocounters
647 $(RM) -r coverage $(top_builddir)/coverage.info
650 @lcov --compat-libtool --directory $(top_builddir) --capture \
651 --output-file $(top_builddir)/coverage.info
652 $(AM_V_at)$(MKDIR_P) coverage
653 @genhtml -o coverage/ $(top_builddir)/coverage.info
655 clean-local: clean-coverage
656 -find $(top_builddir) -name "*.gcno" -delete
657 -find $(top_builddir) -name "*.gcda" -delete
658 $(RM) -r lib/bluetooth
662 -find $(top_builddir) -name "*.gcno" -delete
663 -find $(top_builddir) -name "*.gcda" -delete
664 $(RM) -r lib/bluetooth