Files
Michał Narajowski 3358930f36 porting: Fix Tinycrypt port build
Tinycrypt requires -std=c99 flag to build.
2018-11-05 10:57:54 +01:00

88 lines
2.0 KiB
Makefile

# Toolchain commands
CROSS_COMPILE ?=
CC := ccache $(CROSS_COMPLIE)gcc
CXX := ccache $(CROSS_COMPILE)g++
LD := $(CROSS_COMPILE)gcc
AR := $(CROSS_COMPILE)ar
AS := $(CROSS_COMPILE)as
NM := $(CROSS_COMPILE)nm
OBJDUMP := $(CROSS_COMPILE)objdump
OBJCOPY := $(CROSS_COMPILE)objcopy
SIZE := $(CROSS_COMPILE)size
# Configure NimBLE variables
NIMBLE_ROOT := ../../..
NIMBLE_CFG_TINYCRYPT := 1
include $(NIMBLE_ROOT)/porting/nimble/Makefile.defs
SRC := $(NIMBLE_SRC)
# Source files for NPL OSAL
SRC += \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_atomic.c \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_callout.c \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_eventq.cc \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_mutex.c \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_sem.c \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_task.c \
$(NIMBLE_ROOT)/porting/npl/linux/src/os_time.c \
$(NIMBLE_ROOT)/nimble/transport/socket/src/ble_hci_socket.c \
$(TINYCRYPT_SRC) \
$(NULL)
# Source files for demo app
SRC += \
./ble.c \
./main.c \
$(NULL)
# Add NPL and all NimBLE directories to include paths
INC = \
./include \
$(NIMBLE_ROOT)/porting/npl/linux/include \
$(NIMBLE_ROOT)/porting/npl/linux/src \
$(NIMBLE_ROOT)/nimble/transport/socket/include \
$(NIMBLE_INCLUDE) \
$(TINYCRYPT_INCLUDE) \
$(NULL)
INCLUDES := $(addprefix -I, $(INC))
SRC_C = $(filter %.c, $(SRC))
SRC_CC = $(filter %.cc, $(SRC))
OBJ := $(SRC_C:.c=.o)
OBJ += $(SRC_CC:.cc=.o)
TINYCRYPT_OBJ := $(TINYCRYPT_SRC:.c=.o)
CFLAGS = \
$(NIMBLE_CFLAGS) \
$(INCLUDES) \
-g \
-D_GNU_SOURCE \
$(NULL)
LIBS := -lrt -lpthread -lstdc++
.PHONY: all clean
.DEFAULT: all
all: nimble-linux
clean:
rm $(OBJ) -f
rm dummy -f
$(TINYCRYPT_OBJ): CFLAGS+=$(TINYCRYPT_CFLAGS)
%.o: %.c
$(CC) -c $(INCLUDES) $(CFLAGS) -o $@ $<
%.o: %.cc
$(CXX) -c $(INCLUDES) $(CFLAGS) -o $@ $<
nimble-linux: $(OBJ) $(TINYCRYPT_OBJ)
$(LD) -o $@ $^ $(LIBS)
$(SIZE) $@