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 9LDFLAGS = -Wl,--fix-cortex-a8 -L$(SYSROOT)/usr/lib 10 11BTSTACK_ROOT = ../.. 12 13CFLAGS += -I$(BTSTACK_ROOT)/include 14CFLAGS += -I$(BTSTACK_ROOT)/src/ 15CFLAGS += -I$(BTSTACK_ROOT)/ble 16CFLAGS += -I. 17 18VPATH += $(BTSTACK_ROOT)/src 19VPATH += $(BTSTACK_ROOT)/ble 20VPATH += $(BTSTACK_ROOT)/platforms/posix/src 21VPATH += $(BTSTACK_ROOT)/platforms/daemon/src 22VPATH += $(BTSTACK_ROOT)/example/daemon 23 24libBTstack_OBJS = \ 25 hci_cmds.o \ 26 hci_dump.o \ 27 linked_list.o \ 28 run_loop.o \ 29 sdp_util.o \ 30 utils.o \ 31 btstack.o \ 32 run_loop_posix.o \ 33 socket_connection.o \ 34 35BTdaemon_OBJS = $(libBTstack_OBJS) \ 36 att_dispatch.o \ 37 le_device_db_memory.o \ 38 att.o \ 39 att_server.o \ 40 gatt_client.o \ 41 sm.o \ 42 btstack_memory.o \ 43 hci.o \ 44 l2cap.o \ 45 l2cap_signaling.o \ 46 memory_pool.o \ 47 remote_device_db_memory.o \ 48 rfcomm.o \ 49 sdp.o \ 50 sdp_client.o \ 51 sdp_parser.o \ 52 sdp_query_rfcomm.o \ 53 sdp_query_util.o \ 54 daemon.o \ 55 hci_transport_h4_mtk.o \ 56 57all: $(TOOLCHAIN) version BTstackDaemon libBTstack.so BTstackDaemonRespawn inquiry le_scan rfcomm-echo dist 58 59dist: 60 rm -f *.o 61 62clean: 63 rm -f BTstackDaemon BTstackDaemonRespawn le_scan inquiry rfcomm-echo *.so *.o 64 65$(TOOLCHAIN): 66 $(NDK)/build/tools/make-standalone-toolchain.sh --install-dir=$@ 67 68libbluetoothdrv.so: bluetoothdrv-stub.o 69 $(GCC) $(LDFLAGS) -shared -o libbluetoothdrv.so bluetoothdrv-stub.o 70 71.c.o: 72 $(GCC) $(CFLAGS) -o $@ -c $< 73 74install: 75 ./installer.sh 76 77run: 78 $(ADB) shell le_scan 79 80shell: 81 $(ADB) shell 82 83version: 84 $(BTSTACK_ROOT)/tools/get_version.sh 85 grep BTSTACK_DATE $(BTSTACK_ROOT)/src/version.h 86 87BTstackDaemon: $(BTdaemon_OBJS) libbluetoothdrv.so 88 $(GCC) $(LDFLAGS) -o $@ libbluetoothdrv.so $^ 89 90BTstackDaemonRespawn: BTstackDaemonRespawn.o 91 $(GCC) $(LDFLAGS) -o $@ BTstackDaemonRespawn.o 92 93 94libBTstack.so: $(libBTstack_OBJS) 95 $(GCC) $(LDFLAGS) -shared -Wl,-soname,/system/lib/libBTstack.so -o $@ $^ 96 97inquiry: inquiry.o 98 $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ inquiry.o 99 100rfcomm-echo: rfcomm-echo.o 101 $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ rfcomm-echo.o 102 103le_scan: le_scan.o 104 $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ le_scan.o 105 106# minimal_peripheral: minimal_peripheral.o 107# $(GCC) $(LDFLAGS) libs/libbluetoothdrv.so -o $@ minimal_peripheral.o 108 109hci_dump: 110 killall PacketLogger 111 $(ADB) shell su root chmod 666 /data/btstack/hci_dump.pklg 112 $(ADB) pull /data/btstack/hci_dump.pklg 2> /dev/null 113 open hci_dump.pklg 114 115log: hci_dump 116