xref: /btstack/port/mtk/Makefile (revision 43d468d2c30e744695e5d199f757400a8f04c0fd)
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/md5
19CFLAGS += -I.
20
21VPATH += $(BTSTACK_ROOT)/src
22VPATH += $(BTSTACK_ROOT)/src/ble
23VPATH += $(BTSTACK_ROOT)/src/classic
24VPATH += $(BTSTACK_ROOT)/platform/posix
25VPATH += $(BTSTACK_ROOT)/platform/daemon/src
26VPATH += $(BTSTACK_ROOT)/platform/daemon/example
27VPATH += $(BTSTACK_ROOT)/3rd-party/md5
28
29libBTstack_OBJS  = 		           \
30	btstack.o                      \
31	btstack_linked_list.o          \
32	btstack_run_loop.o             \
33	btstack_run_loop_posix.o       \
34    btstack_tlv.o                  \
35	btstack_util.o 	               \
36	hci_cmd.o                      \
37	daemon_cmds.o                  \
38	hci_dump.o                     \
39	sdp_util.o                     \
40	spp_server.o                   \
41	socket_connection.o            \
42
43BTdaemon_OBJS = $(libBTstack_OBJS) \
44	ad_parser.o 			       \
45	att_dispatch.o                 \
46	btstack_link_key_db_tlv.o      \
47	btstack_memory.o               \
48	btstack_memory_pool.o          \
49	btstack_tlv.o       		   \
50	btstack_tlv_posix.o 		   \
51	btstack_crypto.o               \
52	daemon.o 				       \
53	gatt_client.o                  \
54	hci.o                          \
55	hci_transport_h4_mtk.o         \
56	btstack_uart_block_posix.o     \
57	l2cap.o                        \
58	l2cap_signaling.o              \
59	le_device_db_tlv.o             \
60	md5.o                          \
61	rfcomm.o                       \
62	rfcomm_service_db_hash.o       \
63	sdp_server.o                   \
64	sm.o                           \
65    att_db.o                       \
66    att_server.o                   \
67    sdp_client.o                   \
68    sdp_client_rfcomm.o            \
69
70all: $(TOOLCHAIN) version BTstackDaemon libBTstack.so BTstackDaemonRespawn inquiry le_scan rfcomm_echo dist
71
72dist:
73	rm -f *.o
74
75clean:
76	rm -f BTstackDaemon BTstackDaemonRespawn le_scan inquiry rfcomm_echo *.so *.o
77
78$(TOOLCHAIN):
79	$(NDK)/build/tools/make-standalone-toolchain.sh --install-dir=$@
80
81libbluetoothdrv.so: bluetoothdrv_stub.o
82	$(GCC) $(LDFLAGS) -shared -o libbluetoothdrv.so bluetoothdrv_stub.o
83
84.c.o:
85	$(GCC) $(CFLAGS) -o $@ -c $<
86
87install:
88	./installer.sh
89
90run:
91	$(ADB) shell le_scan
92
93shell:
94	$(ADB) shell
95
96version:
97	$(BTSTACK_ROOT)/tool/get_version.sh
98	grep BTSTACK_DATE $(BTSTACK_ROOT)/platform/daemon/src/btstack_version.h
99
100BTstackDaemon: $(BTdaemon_OBJS) libbluetoothdrv.so
101	$(GCC) $(LDFLAGS) -o $@ libbluetoothdrv.so $^
102
103BTstackDaemonRespawn: BTstackDaemonRespawn.o
104	$(GCC) $(LDFLAGS) -o $@ BTstackDaemonRespawn.o
105
106
107libBTstack.so: $(libBTstack_OBJS)
108	$(GCC) $(LDFLAGS) -shared -Wl,-soname,/system/lib/libBTstack.so -o $@ $^
109
110inquiry: inquiry.o
111	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ inquiry.o
112
113rfcomm_echo: rfcomm_echo.o
114	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ rfcomm_echo.o
115
116le_scan: le_scan.o
117	$(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ le_scan.o
118
119# minimal_peripheral: minimal_peripheral.o
120# 	$(GCC) $(LDFLAGS) libs/libbluetoothdrv.so  -o $@ minimal_peripheral.o
121
122hci_dump:
123	killall PacketLogger
124	$(ADB) shell su root chmod 666 /data/btstack/hci_dump.pklg
125	$(ADB) pull /data/btstack/hci_dump.pklg 2> /dev/null
126	open hci_dump.pklg
127
128log: hci_dump
129