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