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