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