Donald Meyers / Mbed OS evan
Committer:
djmeyers
Date:
Sat Mar 18 22:37:16 2017 +0000
Revision:
0:06ee5f8a484a
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
djmeyers 0:06ee5f8a484a 1 # Makefile for LWM2M Test Application
djmeyers 0:06ee5f8a484a 2 #
djmeyers 0:06ee5f8a484a 3 # Define compiler toolchain with PLATFORM variable
djmeyers 0:06ee5f8a484a 4 # Example
djmeyers 0:06ee5f8a484a 5 # make PLATFORM=arm-linux-gnueabi-
djmeyers 0:06ee5f8a484a 6 #
djmeyers 0:06ee5f8a484a 7
djmeyers 0:06ee5f8a484a 8 ROOT := ../../../..
djmeyers 0:06ee5f8a484a 9 LWM2M_ROOT := $(ROOT)/lwm2m
djmeyers 0:06ee5f8a484a 10 ROUTER_ROOT := $(ROOT)/Applications/NanoRouter
djmeyers 0:06ee5f8a484a 11
djmeyers 0:06ee5f8a484a 12 VERSION := $(shell cd $(ROOT) && git describe --tags --long --dirty --always)
djmeyers 0:06ee5f8a484a 13
djmeyers 0:06ee5f8a484a 14 # Specify list of sources to build
djmeyers 0:06ee5f8a484a 15 LWM2M_SRC := \
djmeyers 0:06ee5f8a484a 16 main.cpp \
djmeyers 0:06ee5f8a484a 17 cmd_commands.cpp \
djmeyers 0:06ee5f8a484a 18 cmd_lwm2m.cpp \
djmeyers 0:06ee5f8a484a 19 lwm2mtest.cpp \
djmeyers 0:06ee5f8a484a 20
djmeyers 0:06ee5f8a484a 21 CXX_SRCS += $(LWM2M_SRC)
djmeyers 0:06ee5f8a484a 22
djmeyers 0:06ee5f8a484a 23 HAL_SRCS += \
djmeyers 0:06ee5f8a484a 24 linux/arm_hal_interrupt.c \
djmeyers 0:06ee5f8a484a 25 linux/arm_hal_timer.c \
djmeyers 0:06ee5f8a484a 26 linux/ccm_mutex.c \
djmeyers 0:06ee5f8a484a 27
djmeyers 0:06ee5f8a484a 28 SRCS += $(addprefix $(ROOT)/Platforms/,$(HAL_SRCS))
djmeyers 0:06ee5f8a484a 29
djmeyers 0:06ee5f8a484a 30 EXE = lwm2mtestapplication
djmeyers 0:06ee5f8a484a 31
djmeyers 0:06ee5f8a484a 32 override CFLAGS += -DENDPOINT -DUSE_LINUX
djmeyers 0:06ee5f8a484a 33 override CFLAGS += -Wall -Wextra
djmeyers 0:06ee5f8a484a 34 override CFLAGS += -g
djmeyers 0:06ee5f8a484a 35 override CFLAGS += -pthread
djmeyers 0:06ee5f8a484a 36 override CFLAGS += -std=gnu99
djmeyers 0:06ee5f8a484a 37 override CFLAGS += -D'MEM_ALLOC=malloc' -D'MEM_FREE=free'
djmeyers 0:06ee5f8a484a 38
djmeyers 0:06ee5f8a484a 39 override CFLAGS += -DVERSION='"$(VERSION)"'
djmeyers 0:06ee5f8a484a 40
djmeyers 0:06ee5f8a484a 41 override CXXFLAGS += -I$(ROOT) -I$(NSDL_DIR)/nsdl-c -I$(LIBSERVICE_DIR)/libService -I$(ROOT)/nanostack/nanostack -I$(ROOT)/event-loop/nanostack-event-loop
djmeyers 0:06ee5f8a484a 42 override CXXFLAGS += -I$(LWM2M_ROOT) -I$(LWM2M_ROOT)/lwm2m-client
djmeyers 0:06ee5f8a484a 43 override CXXFLAGS += -DTARGET_LIKE_LINUX
djmeyers 0:06ee5f8a484a 44 override CXXFLAGS += -DHAVE_DEBUG
djmeyers 0:06ee5f8a484a 45 override CXXFLAGS += -g
djmeyers 0:06ee5f8a484a 46 # Generate dependency files when building
djmeyers 0:06ee5f8a484a 47 override CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)"
djmeyers 0:06ee5f8a484a 48
djmeyers 0:06ee5f8a484a 49 # Build with coverage
djmeyers 0:06ee5f8a484a 50 ifeq ($(COVERAGE), 1)
djmeyers 0:06ee5f8a484a 51 override CFLAGS += --coverage
djmeyers 0:06ee5f8a484a 52 override CXXFLAGS += --coverage
djmeyers 0:06ee5f8a484a 53 endif
djmeyers 0:06ee5f8a484a 54
djmeyers 0:06ee5f8a484a 55 #
djmeyers 0:06ee5f8a484a 56 # Libraries
djmeyers 0:06ee5f8a484a 57 #
djmeyers 0:06ee5f8a484a 58 NSDL_DIR := $(ROOT)/nsdl-c
djmeyers 0:06ee5f8a484a 59 LWM2M_DIR := $(ROOT)/lwm2m/lwm2m-client
djmeyers 0:06ee5f8a484a 60 MBEDTLS_DIR := $(ROOT)/mbedtls/library
djmeyers 0:06ee5f8a484a 61 LIBSERVICE_DIR := $(ROOT)/libService
djmeyers 0:06ee5f8a484a 62 override CFLAGS += -I$(ROOT) -I$(NSDL_DIR)/nsdl-c -I$(LIBSERVICE_DIR)/libService -I$(ROOT)/nanostack/nanostack -I$(ROOT)/event-loop/nanostack-event-loop
djmeyers 0:06ee5f8a484a 63 override CFLAGS += -I$(ROOT)/nanostack/Core/include -I$(ROOT)/Platforms/linux/include -I$(ROOT)/nanostack/HAL/common
djmeyers 0:06ee5f8a484a 64 override CFLAGS += -I$(ROUTER_ROOT)/include
djmeyers 0:06ee5f8a484a 65 override CFLAGS += -I$(ROOT)/Platforms/linux/include -I$(ROOT)/Drivers/linux -I$(ROOT)/Boards/linux
djmeyers 0:06ee5f8a484a 66 LDFLAGS += -D_REENTRANT
djmeyers 0:06ee5f8a484a 67 LDFLAGS += -L$(ROOT)/event-loop -leventOS_gcc
djmeyers 0:06ee5f8a484a 68 LDFLAGS += -L$(LWM2M_DIR) -lmbedclient_gcc
djmeyers 0:06ee5f8a484a 69 LDFLAGS += -L$(NSDL_DIR) -lnsdl_gcc
djmeyers 0:06ee5f8a484a 70 LDFLAGS += -L$(LIBSERVICE_DIR) -lCmdline_gcc -lservice_gcc
djmeyers 0:06ee5f8a484a 71 LDFLAGS += -L$(MBEDTLS_DIR) -lmbedtls -lmbedx509 -lmbedcrypto
djmeyers 0:06ee5f8a484a 72 LDFLAGS += -lpthread
djmeyers 0:06ee5f8a484a 73
djmeyers 0:06ee5f8a484a 74
djmeyers 0:06ee5f8a484a 75 # Main build goal, specify here before dependecy parsing
djmeyers 0:06ee5f8a484a 76 .DEFAULT_GOAL: all
djmeyers 0:06ee5f8a484a 77 .PHONY: all
djmeyers 0:06ee5f8a484a 78 all: $(EXE)
djmeyers 0:06ee5f8a484a 79
djmeyers 0:06ee5f8a484a 80 # Create a list of objects and depencies to build
djmeyers 0:06ee5f8a484a 81 OBJS := $(SRCS:.c=.o)
djmeyers 0:06ee5f8a484a 82 CXX_OBJS := $(CXX_SRCS:.cpp=.o)
djmeyers 0:06ee5f8a484a 83 DEPS += $$(SRCS:.c=.d) $$(CXX_SRCS:.cpp=.d)
djmeyers 0:06ee5f8a484a 84
djmeyers 0:06ee5f8a484a 85 # Include depencies
djmeyers 0:06ee5f8a484a 86 ifneq ($(MAKECMDGOALS),clean)
djmeyers 0:06ee5f8a484a 87 ifneq ($(strip $(DEPS)),)
djmeyers 0:06ee5f8a484a 88 -include $(DEPS)
djmeyers 0:06ee5f8a484a 89 endif
djmeyers 0:06ee5f8a484a 90 endif
djmeyers 0:06ee5f8a484a 91
djmeyers 0:06ee5f8a484a 92 # Linking
djmeyers 0:06ee5f8a484a 93 $(EXE): $(OBJS) $(CXX_OBJS)
djmeyers 0:06ee5f8a484a 94 @echo 'Building target: $@'
djmeyers 0:06ee5f8a484a 95 g++ $(CXXFLAGS) $(CFLAGS) -o $@ $(OBJS) $(CXX_OBJS) $(LDFLAGS)
djmeyers 0:06ee5f8a484a 96 @echo 'Finished building target: $@'
djmeyers 0:06ee5f8a484a 97 @echo ' '
djmeyers 0:06ee5f8a484a 98
djmeyers 0:06ee5f8a484a 99 .PHONY: clean
djmeyers 0:06ee5f8a484a 100 clean:
djmeyers 0:06ee5f8a484a 101 -$(RM) $(OBJS) $(CXX_OBJS) $(DEPS) $(EXE)