xref: /btstack/example/Makefile.inc (revision faccbb295e74e4d25f03312ed0ce7d734e7b96b3)
1VPATH += ${BTSTACK_ROOT}/src
2VPATH += ${BTSTACK_ROOT}/src/ble
3VPATH += ${BTSTACK_ROOT}/src/classic
4VPATH += ${BTSTACK_ROOT}/example
5VPATH += ${BTSTACK_ROOT}/3rd-party/mbedtls/library
6
7CFLAGS += -I.
8CFLAGS += -I${BTSTACK_ROOT}/src/ble
9CFLAGS += -I${BTSTACK_ROOT}/src/classic
10CFLAGS += -I${BTSTACK_ROOT}/src
11CFLAGS += -I${BTSTACK_ROOT}/3rd-party/mbedtls/include
12
13CORE += \
14    btstack_memory.c            \
15    btstack_linked_list.c	    \
16    btstack_memory_pool.c       \
17    btstack_run_loop.c		    \
18    btstack_util.c 	            \
19
20COMMON += \
21    hci.c			            \
22    hci_cmd.c		            \
23    hci_dump.c		            \
24    l2cap.c			            \
25    l2cap_signaling.c	        \
26	btstack_link_key_db_memory.c   \
27    sdp_util.c	                \
28    spp_server.c  				\
29    rfcomm.c	                \
30    bnep.c	                    \
31    sdp_server.c			            \
32
33SDP_CLIENT += \
34    sdp_client.o		        \
35	sdp_client_rfcomm.o		    \
36
37ATT	+= \
38    att_dispatch.c       	    \
39
40GATT_SERVER += \
41    att_db.c 				 	    \
42    att_server.c        	    \
43
44GATT_CLIENT += \
45    ad_parser.c                 \
46    gatt_client.c        	    \
47
48SM_REAL += \
49	sm.c 				 	    \
50    le_device_db_memory.c       \
51
52SM_MINIMAL += \
53	sm_minimal.c  		 	    \
54    le_device_db_dummy.c        \
55
56PAN += \
57	pan.c \
58
59MBEDTLS = 					\
60	bignum.c 				\
61	ecp.c 					\
62	ecp_curves.c 			\
63
64EXAMPLES = 					\
65	ancs_client_demo		\
66	gap_dedicated_bonding	\
67	gap_inquiry 			\
68	gatt_battery_query		\
69	gatt_browser            \
70	le_counter              \
71	le_streamer				\
72	led_counter				\
73	sdp_bnep_query 			\
74	sdp_general_query		\
75	sdp_rfcomm_query		\
76	spp_and_le_counter 		\
77	spp_counter 			\
78	spp_streamer			\
79    gap_le_advertisements   \
80    hsp_hs_demo             \
81    hsp_ag_demo             \
82    hfp_hf_demo             \
83    hfp_ag_demo             \
84
85EXAMPLES_USING_LE =			\
86	ancs_client_demo		\
87	gatt_battery_query      \
88	gatt_browser			\
89	le_counter              \
90	le_streamer				\
91	spp_and_le_counter	    \
92    gap_le_advertisements   \
93
94# .o for .c
95CORE_OBJ    = $(CORE:.c=.o)
96COMMON_OBJ  = $(COMMON:.c=.o)
97SM_REAL_OBJ = $(SM_REAL:.c=.o) $(MBEDTLS:.c=.o)
98SM_MINIMAL_OBJ = $(SM_MINIMAL:.c=.o)
99ATT_OBJ     = $(ATT:.c=.o)
100GATT_CLIENT_OBJ = $(GATT_CLIENT:.c=.o)
101GATT_SERVER_OBJ = $(GATT_SERVER:.c=.o)
102PAN_OBJ = $(PAN:.c=.o)
103
104default_target: all
105
106# compile .gatt descriptions
107profile.h: profile.gatt
108	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
109ancs_client_demo.h: ancs_client_demo.gatt
110	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
111spp_and_le_counter.h: spp_and_le_counter.gatt
112	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
113le_counter.h: le_counter.gatt
114	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
115le_streamer.h: le_streamer.gatt
116	python ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@
117
118# examples
119sdp_rfcomm_query: ${CORE_OBJ} ${COMMON_OBJ} ${PAN_OBJ} ${SDP_CLIENT} sdp_rfcomm_query.c
120	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
121
122sdp_general_query: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sdp_general_query.c
123	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
124
125sdp_bnep_query: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sdp_bnep_query.c
126	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
127
128spp_counter: ${CORE_OBJ} ${COMMON_OBJ} spp_counter.c
129	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
130
131le_counter: le_counter.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} le_counter.c
132	${CC} $(filter-out le_counter.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
133
134le_streamer: le_streamer.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_REAL_OBJ} le_streamer.c
135	${CC} $(filter-out le_streamer.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
136
137spp_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
138	${CC} $(filter-out spp_and_le_counter.h,$^)  ${CFLAGS} ${LDFLAGS} -o $@
139
140spp_counter_ssp: ${CORE_OBJ} ${COMMON_OBJ} spp_counter_ssp.c
141	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
142
143spp_streamer: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} spp_streamer.c
144	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
145
146gap_dedicated_bonding: ${CORE_OBJ} ${COMMON_OBJ} gap_dedicated_bonding.c
147	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
148
149gap_inquiry: ${CORE_OBJ} ${COMMON_OBJ} gap_inquiry.c
150	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
151
152panu_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} panu_demo.c
153	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
154
155gatt_browser: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_browser.c
156	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
157
158gatt_battery_query: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} gatt_battery_query.c
159	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
160
161ancs_client_demo: ancs_client_demo.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${GATT_CLIENT_OBJ} ${SM_REAL_OBJ} ancs_client.c ancs_client_demo.c
162	${CC} $(filter-out ancs_client_demo.h,$^) ${CFLAGS} ${LDFLAGS} -o $@
163
164led_counter: ${CORE_OBJ} ${COMMON_OBJ} led_counter.c
165	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
166
167gap_le_advertisements: ${CORE_OBJ} ${COMMON_OBJ} ad_parser.c gap_le_advertisements.c
168	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
169
170hsp_hs_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sco_demo_util.o hsp_hs.o hsp_hs_demo.c
171	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
172
173hsp_ag_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sco_demo_util.o hsp_ag.o hsp_ag_demo.c
174	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
175
176hfp_ag_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sco_demo_util.o hfp.o hfp_gsm_model.o hfp_ag.o hfp_ag_demo.c
177	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
178
179hfp_hf_demo: ${CORE_OBJ} ${COMMON_OBJ} ${SDP_CLIENT} sco_demo_util.o hfp.o hfp_hf.o hfp_hf_demo.c
180	${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@
181
182clean:
183	rm -f ${EXAMPLES}
184	rm -f  *.o *.out *.hex *.exe
185	rm -f  ancs_client_demo.h profile.h spp_and_le_counter.h
186	rm -rf *.dSYM
187	rm -rf ${BTSTACK_ROOT}/ble/*.o
188	rm -rf ${BTSTACK_ROOT}/src/*.o
189
190
191