From 0c1fb97e2b10dc23bfd1455f743b8beccf65d908 Mon Sep 17 00:00:00 2001 From: "matthias.ringwald@gmail.com" Date: Sat, 15 Nov 2014 16:36:16 +0000 Subject: [PATCH] extract common Makefile.inc --- example/embedded/Makefile.inc | 169 +++++++++++++++++++++++++++++++ platforms/libusb/Makefile | 180 +++------------------------------- 2 files changed, 182 insertions(+), 167 deletions(-) create mode 100644 example/embedded/Makefile.inc diff --git a/example/embedded/Makefile.inc b/example/embedded/Makefile.inc new file mode 100644 index 000000000..10d92d5f8 --- /dev/null +++ b/example/embedded/Makefile.inc @@ -0,0 +1,169 @@ +VPATH += ${BTSTACK_ROOT}/src +VPATH += ${BTSTACK_ROOT}/ble +VPATH += ${BTSTACK_ROOT}/example/embedded + + +CFLAGS += -I. +CFLAGS += -I${BTSTACK_ROOT}/ble +CFLAGS += -I${BTSTACK_ROOT}/include +CFLAGS += -I${BTSTACK_ROOT}/src +CFLAGS += -I${BTSTACK_ROOT} + +# TODO: move des iterator into /src +VPATH += ${BTSTACK_ROOT}/test/des_iterator +CFLAGS += -I${BTSTACK_ROOT}/test/des_iterator + +CORE += \ + btstack_memory.c \ + linked_list.c \ + memory_pool.c \ + run_loop.c \ + run_loop_posix.c \ + +COMMON += \ + hci.c \ + hci_cmds.c \ + hci_dump.c \ + l2cap.c \ + l2cap_signaling.c \ + remote_device_db_memory.c \ + sdp_util.c \ + utils.c \ + rfcomm.c \ + bnep.c \ + sdp.c \ + sdp_client.c \ + sdp_parser.c \ + sdp_query_util.c \ + sdp_query_rfcomm.c \ + +ATT += \ + att_dispatch.c \ + +GATT_SERVER += \ + att.c \ + att_server.c \ + +GATT_CLIENT += \ + ad_parser.c \ + gatt_client.c \ + +SM_REAL += \ + sm.c \ + central_device_db_memory.c \ + +SM_MINIMAL += \ + sm_minimal.c \ + central_device_db_dummy.c \ + +SDP_DES = \ + des_iterator.c \ + +PAN += \ + pan.c \ + +EXAMPLES = \ + gap_dedicated_bonding \ + gap_inquiry \ + gap_inquiry_and_bond \ + gatt_battery_query \ + gatt_browser \ + sdp_bnep_query \ + sdp_general_query \ + sdp_rfcomm_query \ + spp_and_le_counter \ + spp_counter \ + spp_streamer \ + +# requires termios / command line support +EXAMPLES_CLI = ble_peripheral ble_peripheral_sm_minimal l2cap_test ancs_client classic_test + +# .o for .c +CORE_OBJ = $(CORE:.c=.o) +COMMON_OBJ = $(COMMON:.c=.o) +SM_REAL_OBJ = $(SM_REAL:.c=.o) +SM_MINIMAL_OBJ = $(SM_MINIMAL:.c=.o) +ATT_OBJ = $(ATT:.c=.o) +GATT_CLIENT_OBJ = $(GATT_CLIENT:.c=.o) +GATT_SERVER_OBJ = $(GATT_SERVER:.c=.o) +PAN_OBJ = $(PAN:.c=.o) + +default_target: all + +${BTSTACK_ROOT}/include/btstack/version.h: + ${BTSTACK_ROOT}/tools/get_version.sh + +# compile .gatt descriptions +profile.h: profile.gatt + python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ +ancs_client.h: ancs_client.gatt + python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ +spp_and_le_counter.h: spp_and_le_counter.gatt + python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ + +# examples +sdp_rfcomm_query: ${CORE_OBJ} ${COMMON_OBJ} ${PAN_OBJ} sdp_rfcomm_query.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +sdp_general_query: ${CORE_OBJ} ${COMMON_OBJ} sdp_general_query.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +sdp_bnep_query: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_DES} sdp_bnep_query.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +spp_counter: ${CORE_OBJ} ${COMMON_OBJ} spp_counter.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +spp_and_le_counter: spp_and_le_counter.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} spp_and_le_counter.c + ${CC} $(filter-out spp_and_le_counter.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ + +spp_counter_ssp: ${CORE_OBJ} ${COMMON_OBJ} spp_counter_ssp.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +spp_streamer: ${CORE_OBJ} ${COMMON_OBJ} spp_streamer.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +gap_dedicated_bonding: ${CORE_OBJ} ${COMMON_OBJ} gap_dedicated_bonding.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +gap_inquiry: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +gap_inquiry_and_bond: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry_and_bond.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +panu_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_DES} panu_demo.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +l2cap_test: ${CORE_OBJ} ${COMMON_OBJ} l2cap_test.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +classic_test: ${CORE_OBJ} ${COMMON_OBJ} classic_test.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +ble_client: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL} ble_client.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +gatt_browser: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_browser.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +gatt_battery_query: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_battery_query.c + ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ + +ancs_client: ancs_client.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} ${BTSTACK_ROOT}/ble/ancs_client_lib.c ancs_client.c + ${CC} $(filter-out ancs_client.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ + +ble_peripheral: profile.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.o + ${CC} $(filter-out profile.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ + +ble_peripheral_sm_minimal: profile.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_MINIMAL_OBJ} ble_peripheral.c + ${CC} $(filter-out profile.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ + + +clean: + rm -f ${EXAMPLES} + rm -f *.o *.out *.hex + rm -f ${BTSTACK_ROOT}/include/btstack/version.h + rm -f ancs_client.h profile.h spp_and_le_counter.h + rm -rf *.dSYM + diff --git a/platforms/libusb/Makefile b/platforms/libusb/Makefile index 5469908a7..94b9e951b 100644 --- a/platforms/libusb/Makefile +++ b/platforms/libusb/Makefile @@ -1,19 +1,16 @@ +# Makefile for libusb based examples BTSTACK_ROOT = ../.. POSIX_ROOT= ${BTSTACK_ROOT}/platforms/posix -VPATH += ${BTSTACK_ROOT}/src -VPATH += ${BTSTACK_ROOT}/ble +CORE += main.c +COMMON += hci_transport_h2_libusb.c + +include ${BTSTACK_ROOT}/example/embedded/Makefile.inc + +CFLAGS += -g -Wall +# CFLAGS += -Werror + VPATH += ${BTSTACK_ROOT}/platforms/posix/src -VPATH += ${BTSTACK_ROOT}/example/embedded - -# TODO: move des iterator into /src -VPATH += ${BTSTACK_ROOT}/test/des_iterator/ - -CFLAGS = -g -Wall -I. -CFLAGS += -I${BTSTACK_ROOT}/ble -CFLAGS += -I${BTSTACK_ROOT}/include -CFLAGS += -I${BTSTACK_ROOT}/src -CFLAGS += -I${BTSTACK_ROOT} ifeq ($(OS),Windows_NT) LDFLAGS += -lws2_32 @@ -24,162 +21,11 @@ else # use pkg-config CFLAGS += $(shell pkg-config libusb-1.0 --cflags) LDFLAGS += $(shell pkg-config libusb-1.0 --libs) -# requires termios -NON_WINDOWS = ble_peripheral ble_peripheral_sm_minimal l2cap_test ancs_client classic_test endif -CORE = \ - btstack_memory.c \ - linked_list.c \ - memory_pool.c \ - run_loop.c \ - run_loop_posix.c \ - main.c \ - -COMMON = \ - hci.c \ - hci_cmds.c \ - hci_dump.c \ - l2cap.c \ - l2cap_signaling.c \ - remote_device_db_memory.c \ - sdp_util.c \ - utils.c \ - rfcomm.c \ - bnep.c \ - sdp.c \ - sdp_client.c \ - sdp_parser.c \ - sdp_query_util.c \ - sdp_query_rfcomm.c \ - hci_transport_h2_libusb.c \ - -ATT = \ - att_dispatch.c \ - -GATT_SERVER = \ - att.c \ - att_server.c \ - -GATT_CLIENT = \ - ad_parser.c \ - gatt_client.c \ - -SM_REAL = \ - sm.c \ - central_device_db_memory.c \ - -SM_MINIMAL = \ - sm_minimal.c \ - central_device_db_dummy.c \ - -SDP_DES = \ - des_iterator.c \ - -PAN = \ - pan.c \ - -CORE_OBJ = $(CORE:.c=.o) -COMMON_OBJ = $(COMMON:.c=.o) -SM_REAL_OBJ = $(SM_REAL:.c=.o) -SM_MINIMAL_OBJ = $(SM_MINIMAL:.c=.o) -ATT_OBJ = $(ATT:.c=.o) -GATT_CLIENT_OBJ = $(GATT_CLIENT:.c=.o) -GATT_SERVER_OBJ = $(GATT_SERVER:.c=.o) -PAN_OBJ = $(PAN:.c=.o) - -# create firmware image from common objects and example source file -EXAMPLES = \ - gap_dedicated_bonding \ - gap_inquiry \ - gap_inquiry_and_bond \ - gatt_battery_query \ - gatt_browser \ - sdp_bnep_query \ - sdp_general_query \ - sdp_rfcomm_query \ - spp_and_le_counter \ - spp_counter \ - spp_streamer \ - ${NON_WINDOWS} \ - +# Command Line examples require porting to win32, so only build on other = unix-ish hosts +ifneq ($(OS),Windows_NT) +EXAMPLES += ${EXAMPLES_CLI} +endif all: ${BTSTACK_ROOT}/include/btstack/version.h ${EXAMPLES} - -${BTSTACK_ROOT}/include/btstack/version.h: - ${BTSTACK_ROOT}/tools/get_version.sh - -sdp_rfcomm_query: ${CORE_OBJ} ${COMMON_OBJ} ${PAN_OBJ} sdp_rfcomm_query.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -sdp_general_query: ${CORE_OBJ} ${COMMON_OBJ} sdp_general_query.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -sdp_bnep_query: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_DES} sdp_bnep_query.c - ${CC} $^ ${CFLAGS} -I../../test/des_iterator ${LDFLAGS} -o $@ - -spp_counter: ${CORE_OBJ} ${COMMON_OBJ} spp_counter.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -spp_and_le_counter: spp_and_le_counter.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} spp_and_le_counter.c - ${CC} $(filter-out spp_and_le_counter.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ - -spp_counter_ssp: ${CORE_OBJ} ${COMMON_OBJ} spp_counter_ssp.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -spp_streamer: ${CORE_OBJ} ${COMMON_OBJ} spp_streamer.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -gap_dedicated_bonding: ${CORE_OBJ} ${COMMON_OBJ} gap_dedicated_bonding.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -gap_inquiry: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -gap_inquiry_and_bond: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry_and_bond.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -panu_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_DES} panu_demo.c - ${CC} $^ ${CFLAGS} -I../../test/des_iterator ${LDFLAGS} -o $@ - -l2cap_test: ${CORE_OBJ} ${COMMON_OBJ} l2cap_test.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -classic_test: ${CORE_OBJ} ${COMMON_OBJ} classic_test.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -ble_client: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL} ble_client.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -gatt_browser: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_browser.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -gatt_battery_query: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_battery_query.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - - -# compile .ble description -profile.h: profile.gatt - python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ -ancs_client.h: ancs_client.gatt - python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ -spp_and_le_counter.h: spp_and_le_counter.gatt - python ${BTSTACK_ROOT}/ble/compile-gatt.py $< $@ - -ancs_client: ancs_client.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} ${BTSTACK_ROOT}/ble/ancs_client_lib.c ancs_client.c - ${CC} $(filter-out ancs_client.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ - -ble_peripheral: profile.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} ble_peripheral.o - ${CC} $(filter-out profile.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ - -ble_peripheral_sm_minimal: profile.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_MINIMAL_OBJ} ble_peripheral.c - ${CC} $(filter-out profile.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ - - -clean: - rm -f ${EXAMPLES} - rm -f *.o *.out *.hex - rm -f ${BTSTACK_ROOT}/include/btstack/version.h - rm -f ancs_client.h profile.h spp_and_le_counter.h - rm -rf *.dSYM -