18caefee3SMatthias Ringwald# Toolchain config 28caefee3SMatthias RingwaldNDK = /Projects/Android/android-ndk-r10d 38caefee3SMatthias RingwaldADB = adb 48caefee3SMatthias RingwaldTOOLCHAIN = /usr/local/android-ndk 58caefee3SMatthias RingwaldSYSROOT = $(TOOLCHAIN)/sysroot 68caefee3SMatthias RingwaldGCC = $(TOOLCHAIN)/bin/arm-linux-androideabi-gcc 78caefee3SMatthias RingwaldSTRIP = $(TOOLCHAIN)/bin/arm-linux-androideabi-strip 8b81e1fecSMatthias RingwaldCFLAGS = -march=armv7-a -mfloat-abi=softfp -I$(SYSROOT)/usr/include -fpie -fpic -fPIE -pie# 9b81e1fecSMatthias RingwaldLDFLAGS = -Wl,--fix-cortex-a8 -L$(SYSROOT)/usr/lib -fpie -fpic -fPIE -pie 108caefee3SMatthias Ringwald 11f67eb7c2SMatthias RingwaldBTSTACK_ROOT ?= ../.. 128caefee3SMatthias Ringwald 138caefee3SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/include 148caefee3SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/src/ 158caefee3SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/ble 162531c97eSMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/platform/daemon/src 17dd9e275cSMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/platform/posix 18c2cab3feSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/bluedroid/decoder/include 19c2cab3feSMatthias RingwaldCFLAGS += -I${BTSTACK_ROOT}/3rd-party/bluedroid/encoder/include 20046d2a34SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/3rd-party/md5 21d545aea0SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/3rd-party/micro-ecc 22d545aea0SMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/3rd-party/rijndael 23745e7a2fSMatthias RingwaldCFLAGS += -I$(BTSTACK_ROOT)/3rd-party/yxml 248caefee3SMatthias RingwaldCFLAGS += -I. 258caefee3SMatthias Ringwald 268caefee3SMatthias RingwaldVPATH += $(BTSTACK_ROOT)/src 273edc84c5SMatthias RingwaldVPATH += $(BTSTACK_ROOT)/src/ble 283edc84c5SMatthias RingwaldVPATH += $(BTSTACK_ROOT)/src/classic 29dd9e275cSMatthias RingwaldVPATH += $(BTSTACK_ROOT)/platform/posix 302531c97eSMatthias RingwaldVPATH += $(BTSTACK_ROOT)/platform/daemon/src 312531c97eSMatthias RingwaldVPATH += $(BTSTACK_ROOT)/platform/daemon/example 32046d2a34SMatthias RingwaldVPATH += $(BTSTACK_ROOT)/3rd-party/md5 338caefee3SMatthias Ringwald 348caefee3SMatthias RingwaldlibBTstack_OBJS = \ 358f2a52f4SMatthias Ringwald btstack.o \ 368f2a52f4SMatthias Ringwald btstack_linked_list.o \ 378f2a52f4SMatthias Ringwald btstack_run_loop.o \ 38c31f2371SMatthias Ringwald btstack_run_loop_base.o \ 398f1b6c71SMatthias Ringwald btstack_run_loop_posix.o \ 40e07b53a6SMatthias Ringwald btstack_tlv.o \ 412531c97eSMatthias Ringwald btstack_util.o \ 4256042629SMatthias Ringwald hci_cmd.o \ 43*6ee5ced0SMatthias Ringwald hci_event_builder.o \ 442531c97eSMatthias Ringwald daemon_cmds.o \ 458caefee3SMatthias Ringwald hci_dump.o \ 467435ec7bSMatthias Ringwald hci_dump_posix_fs.o \ 478caefee3SMatthias Ringwald sdp_util.o \ 4896dc834dSMatthias Ringwald spp_server.o \ 498caefee3SMatthias Ringwald socket_connection.o \ 508caefee3SMatthias Ringwald 518caefee3SMatthias RingwaldBTdaemon_OBJS = $(libBTstack_OBJS) \ 5249232d5cSMatthias Ringwald ad_parser.o \ 538caefee3SMatthias Ringwald att_dispatch.o \ 54046d2a34SMatthias Ringwald btstack_link_key_db_tlv.o \ 558caefee3SMatthias Ringwald btstack_memory.o \ 562531c97eSMatthias Ringwald btstack_memory_pool.o \ 57046d2a34SMatthias Ringwald btstack_tlv.o \ 58046d2a34SMatthias Ringwald btstack_tlv_posix.o \ 59a0eb57daSMatthias Ringwald btstack_crypto.o \ 602531c97eSMatthias Ringwald daemon.o \ 612531c97eSMatthias Ringwald gatt_client.o \ 628caefee3SMatthias Ringwald hci.o \ 632531c97eSMatthias Ringwald hci_transport_h4_mtk.o \ 64793a0509SMatthias Ringwald btstack_uart_posix.o \ 658caefee3SMatthias Ringwald l2cap.o \ 668caefee3SMatthias Ringwald l2cap_signaling.o \ 67046d2a34SMatthias Ringwald le_device_db_tlv.o \ 68046d2a34SMatthias Ringwald md5.o \ 698caefee3SMatthias Ringwald rfcomm.o \ 702531c97eSMatthias Ringwald rfcomm_service_db_hash.o \ 712531c97eSMatthias Ringwald sdp_server.o \ 722531c97eSMatthias Ringwald sm.o \ 732531c97eSMatthias Ringwald att_db.o \ 742531c97eSMatthias Ringwald att_server.o \ 758caefee3SMatthias Ringwald sdp_client.o \ 76efda0b48SMatthias Ringwald sdp_client_rfcomm.o \ 778caefee3SMatthias Ringwald 78d6549a6eSMatthias Ringwaldall: $(TOOLCHAIN) version BTstackDaemon libBTstack.so BTstackDaemonRespawn inquiry le_scan rfcomm_echo dist 798caefee3SMatthias Ringwald 808caefee3SMatthias Ringwalddist: 818caefee3SMatthias Ringwald rm -f *.o 828caefee3SMatthias Ringwald 838caefee3SMatthias Ringwaldclean: 84d6549a6eSMatthias Ringwald rm -f BTstackDaemon BTstackDaemonRespawn le_scan inquiry rfcomm_echo *.so *.o 858caefee3SMatthias Ringwald 868caefee3SMatthias Ringwald$(TOOLCHAIN): 878caefee3SMatthias Ringwald $(NDK)/build/tools/make-standalone-toolchain.sh --install-dir=$@ 888caefee3SMatthias Ringwald 898f1b6c71SMatthias Ringwaldlibbluetoothdrv.so: bluetoothdrv_stub.o 908f1b6c71SMatthias Ringwald $(GCC) $(LDFLAGS) -shared -o libbluetoothdrv.so bluetoothdrv_stub.o 918caefee3SMatthias Ringwald 928caefee3SMatthias Ringwald.c.o: 938caefee3SMatthias Ringwald $(GCC) $(CFLAGS) -o $@ -c $< 948caefee3SMatthias Ringwald 958caefee3SMatthias Ringwaldinstall: 968caefee3SMatthias Ringwald ./installer.sh 978caefee3SMatthias Ringwald 988caefee3SMatthias Ringwaldrun: 998caefee3SMatthias Ringwald $(ADB) shell le_scan 1008caefee3SMatthias Ringwald 1018caefee3SMatthias Ringwaldshell: 1028caefee3SMatthias Ringwald $(ADB) shell 1038caefee3SMatthias Ringwald 1048caefee3SMatthias Ringwaldversion: 1053edc84c5SMatthias Ringwald $(BTSTACK_ROOT)/tool/get_version.sh 1062531c97eSMatthias Ringwald grep BTSTACK_DATE $(BTSTACK_ROOT)/platform/daemon/src/btstack_version.h 1078caefee3SMatthias Ringwald 1088caefee3SMatthias RingwaldBTstackDaemon: $(BTdaemon_OBJS) libbluetoothdrv.so 1098caefee3SMatthias Ringwald $(GCC) $(LDFLAGS) -o $@ libbluetoothdrv.so $^ 1108caefee3SMatthias Ringwald 1118caefee3SMatthias RingwaldBTstackDaemonRespawn: BTstackDaemonRespawn.o 1128caefee3SMatthias Ringwald $(GCC) $(LDFLAGS) -o $@ BTstackDaemonRespawn.o 1138caefee3SMatthias Ringwald 1148caefee3SMatthias Ringwald 1158caefee3SMatthias RingwaldlibBTstack.so: $(libBTstack_OBJS) 1168caefee3SMatthias Ringwald $(GCC) $(LDFLAGS) -shared -Wl,-soname,/system/lib/libBTstack.so -o $@ $^ 1178caefee3SMatthias Ringwald 1188caefee3SMatthias Ringwaldinquiry: inquiry.o 1198caefee3SMatthias Ringwald $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ inquiry.o 1208caefee3SMatthias Ringwald 121d6549a6eSMatthias Ringwaldrfcomm_echo: rfcomm_echo.o 122d6549a6eSMatthias Ringwald $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ rfcomm_echo.o 1238caefee3SMatthias Ringwald 1248caefee3SMatthias Ringwaldle_scan: le_scan.o 1258caefee3SMatthias Ringwald $(GCC) $(LDFLAGS) -Wl,-rpath,/system/lib libBTstack.so -o $@ le_scan.o 1268caefee3SMatthias Ringwald 1278caefee3SMatthias Ringwald# minimal_peripheral: minimal_peripheral.o 1288caefee3SMatthias Ringwald# $(GCC) $(LDFLAGS) libs/libbluetoothdrv.so -o $@ minimal_peripheral.o 1298caefee3SMatthias Ringwald 1308caefee3SMatthias Ringwaldhci_dump: 1318caefee3SMatthias Ringwald killall PacketLogger 1328caefee3SMatthias Ringwald $(ADB) shell su root chmod 666 /data/btstack/hci_dump.pklg 1338caefee3SMatthias Ringwald $(ADB) pull /data/btstack/hci_dump.pklg 2> /dev/null 1348caefee3SMatthias Ringwald open hci_dump.pklg 1358caefee3SMatthias Ringwald 1368caefee3SMatthias Ringwaldlog: hci_dump 137