xref: /btstack/port/mtk/Makefile (revision 6ee5ced060c0dc28161b70d1d2789d69d3d8cc25)
1# Toolchain config
2NDK = /Projects/Android/android-ndk-r10d
3ADB = adb
4TOOLCHAIN = /usr/local/android-ndk
5SYSROOT = $(TOOLCHAIN)/sysroot
6GCC = $(TOOLCHAIN)/bin/arm-linux-androideabi-gcc
7STRIP = $(TOOLCHAIN)/bin/arm-linux-androideabi-strip
8CFLAGS = -march=armv7-a -mfloat-abi=softfp -I$(SYSROOT)/usr/include -fpie -fpic -fPIE -pie#
9LDFLAGS = -Wl,--fix-cortex-a8 -L$(SYSROOT)/usr/lib -fpie -fpic -fPIE -pie
10
11BTSTACK_ROOT ?= ../..
12
13CFLAGS += -I$(BTSTACK_ROOT)/include
14CFLAGS += -I$(BTSTACK_ROOT)/src/
15CFLAGS += -I$(BTSTACK_ROOT)/ble
16CFLAGS += -I$(BTSTACK_ROOT)/platform/daemon/src
17CFLAGS += -I$(BTSTACK_ROOT)/platform/posix
18CFLAGS += -I${BTSTACK_ROOT}/3rd-party/bluedroid/decoder/include
19CFLAGS += -I${BTSTACK_ROOT}/3rd-party/bluedroid/encoder/include
20CFLAGS += -I$(BTSTACK_ROOT)/3rd-party/md5
21CFLAGS += -I$(BTSTACK_ROOT)/3rd-party/micro-ecc
22CFLAGS += -I$(BTSTACK_ROOT)/3rd-party/rijndael
23CFLAGS += -I$(BTSTACK_ROOT)/3rd-party/yxml
24CFLAGS += -I.
25
26VPATH += $(BTSTACK_ROOT)/src
27VPATH += $(BTSTACK_ROOT)/src/ble
28VPATH += $(BTSTACK_ROOT)/src/classic
29VPATH += $(BTSTACK_ROOT)/platform/posix
30VPATH += $(BTSTACK_ROOT)/platform/daemon/src
31VPATH += $(BTSTACK_ROOT)/platform/daemon/example
32VPATH += $(BTSTACK_ROOT)/3rd-party/md5
33
34libBTstack_OBJS  = 		           \
35	btstack.o                      \
36	btstack_linked_list.o          \
37	btstack_run_loop.o             \
38	btstack_run_loop_base.o        \
39	btstack_run_loop_posix.o       \
40    btstack_tlv.o                  \
41	btstack_util.o 	               \
42	hci_cmd.o                      \
43	hci_event_builder.o            \
44	daemon_cmds.o                  \
45	hci_dump.o                     \
46	hci_dump_posix_fs.o            \
47	sdp_util.o                     \
48	spp_server.o                   \
49	socket_connection.o            \
50
51BTdaemon_OBJS = $(libBTstack_OBJS) \
52	ad_parser.o 			       \
53	att_dispatch.o                 \
54	btstack_link_key_db_tlv.o      \
55	btstack_memory.o               \
56	btstack_memory_pool.o          \
57	btstack_tlv.o       		   \
58	btstack_tlv_posix.o 		   \
59	btstack_crypto.o               \
60	daemon.o 				       \
61	gatt_client.o                  \
62	hci.o                          \
63	hci_transport_h4_mtk.o         \
64	btstack_uart_posix.o           \
65	l2cap.o                        \
66	l2cap_signaling.o              \
67	le_device_db_tlv.o             \
68	md5.o                          \
69	rfcomm.o                       \
70	rfcomm_service_db_hash.o       \
71	sdp_server.o                   \
72	sm.o                           \
73    att_db.o                       \
74    att_server.o                   \
75    sdp_client.o                   \
76    sdp_client_rfcomm.o            \
77
78all: $(TOOLCHAIN) version BTstackDaemon libBTstack.so BTstackDaemonRespawn inquiry le_scan rfcomm_echo dist
79
80dist:
81	rm -f *.o
82
83clean:
84	rm -f BTstackDaemon BTstackDaemonRespawn le_scan inquiry rfcomm_echo *.so *.o
85
86$(TOOLCHAIN):
87	$(NDK)/build/tools/make-standalone-toolchain.sh --install-dir=$@
88
89libbluetoothdrv.so: bluetoothdrv_stub.o
90	$(GCC) $(LDFLAGS) -shared -o libbluetoothdrv.so bluetoothdrv_stub.o
91
92.c.o:
93	$(GCC) $(CFLAGS) -o $@ -c $<
94
95install:
96	./installer.sh
97
98run:
99	$(ADB) shell le_scan
100
101shell:
102	$(ADB) shell
103
104version:
105	$(BTSTACK_ROOT)/tool/get_version.sh
106	grep BTSTACK_DATE $(BTSTACK_ROOT)/platform/daemon/src/btstack_version.h
107
108BTstackDaemon: $(BTdaemon_OBJS) libbluetoothdrv.so
109	$(GCC) $(LDFLAGS) -o $@ libbluetoothdrv.so $^
110
111BTstackDaemonRespawn: BTstackDaemonRespawn.o
112	$(GCC) $(LDFLAGS) -o $@ BTstackDaemonRespawn.o
113
114
115libBTstack.so: $(libBTstack_OBJS)
116	$(GCC) $(LDFLAGS) -shared -Wl,-soname,/system/lib/libBTstack.so -o $@ $^
117
118inquiry: inquiry.o
119	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ inquiry.o
120
121rfcomm_echo: rfcomm_echo.o
122	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ rfcomm_echo.o
123
124le_scan: le_scan.o
125	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ le_scan.o
126
127# minimal_peripheral: minimal_peripheral.o
128# 	$(GCC) $(LDFLAGS) libs/libbluetoothdrv.so  -o $@ minimal_peripheral.o
129
130hci_dump:
131	killall PacketLogger
132	$(ADB) shell su root chmod 666 /data/btstack/hci_dump.pklg
133	$(ADB) pull /data/btstack/hci_dump.pklg 2> /dev/null
134	open hci_dump.pklg
135
136log: hci_dump
137