1# Toolchain commands 2CROSS_COMPILE ?= 3CC := ccache $(CROSS_COMPLIE)gcc 4CXX := ccache $(CROSS_COMPILE)g++ 5LD := $(CROSS_COMPILE)gcc 6AR := $(CROSS_COMPILE)ar 7AS := $(CROSS_COMPILE)as 8NM := $(CROSS_COMPILE)nm 9OBJDUMP := $(CROSS_COMPILE)objdump 10OBJCOPY := $(CROSS_COMPILE)objcopy 11SIZE := $(CROSS_COMPILE)size 12 13# Configure NimBLE variables 14NIMBLE_ROOT := ../../.. 15NIMBLE_CFG_TINYCRYPT := 1 16include $(NIMBLE_ROOT)/porting/nimble/Makefile.defs 17 18SRC := $(NIMBLE_SRC) 19 20# Source files for NPL OSAL 21SRC += \ 22 $(NIMBLE_ROOT)/porting/npl/linux/src/os_atomic.c \ 23 $(NIMBLE_ROOT)/porting/npl/linux/src/os_callout.c \ 24 $(NIMBLE_ROOT)/porting/npl/linux/src/os_eventq.cc \ 25 $(NIMBLE_ROOT)/porting/npl/linux/src/os_mutex.c \ 26 $(NIMBLE_ROOT)/porting/npl/linux/src/os_sem.c \ 27 $(NIMBLE_ROOT)/porting/npl/linux/src/os_task.c \ 28 $(NIMBLE_ROOT)/porting/npl/linux/src/os_time.c \ 29 $(NIMBLE_ROOT)/nimble/transport/socket/src/ble_hci_socket.c \ 30 $(TINYCRYPT_SRC) \ 31 $(NULL) 32 33# Source files for demo app 34SRC += \ 35 ./ble.c \ 36 ./main.c \ 37 $(NULL) 38 39# Add NPL and all NimBLE directories to include paths 40INC = \ 41 ./include \ 42 $(NIMBLE_ROOT)/porting/npl/linux/include \ 43 $(NIMBLE_ROOT)/porting/npl/linux/src \ 44 $(NIMBLE_ROOT)/nimble/transport/socket/include \ 45 $(NIMBLE_INCLUDE) \ 46 $(TINYCRYPT_INCLUDE) \ 47 $(NULL) 48 49INCLUDES := $(addprefix -I, $(INC)) 50 51SRC_C = $(filter %.c, $(SRC)) 52SRC_CC = $(filter %.cc, $(SRC)) 53 54OBJ := $(SRC_C:.c=.o) 55OBJ += $(SRC_CC:.cc=.o) 56 57TINYCRYPT_OBJ := $(TINYCRYPT_SRC:.c=.o) 58 59CFLAGS = \ 60 $(NIMBLE_CFLAGS) \ 61 $(INCLUDES) \ 62 -g \ 63 -D_GNU_SOURCE \ 64 $(NULL) 65 66LIBS := -lrt -lpthread -lstdc++ 67 68.PHONY: all clean 69.DEFAULT: all 70 71all: nimble-linux 72 73clean: 74 rm $(OBJ) -f 75 rm dummy -f 76 77$(TINYCRYPT_OBJ): CFLAGS+=$(TINYCRYPT_CFLAGS) 78 79%.o: %.c 80 $(CC) -c $(INCLUDES) $(CFLAGS) -o $@ $< 81 82%.o: %.cc 83 $(CXX) -c $(INCLUDES) $(CFLAGS) -o $@ $< 84 85nimble-linux: $(OBJ) $(TINYCRYPT_OBJ) 86 $(LD) -o $@ $^ $(LIBS) 87 $(SIZE) $@ 88