Changes to enabled on-line compiler

Committer:
JMF
Date:
Wed May 30 20:59:51 2018 +0000
Revision:
0:082731ede69f
Initial commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JMF 0:082731ede69f 1 #This target is to ensure accidental execution of Makefile as a bash script will not execute commands like rm in unexpected directories and exit gracefully.
JMF 0:082731ede69f 2 .prevent_execution:
JMF 0:082731ede69f 3 exit 0
JMF 0:082731ede69f 4
JMF 0:082731ede69f 5 CC = gcc
JMF 0:082731ede69f 6
JMF 0:082731ede69f 7 #remove @ for no make command prints
JMF 0:082731ede69f 8 DEBUG = @
JMF 0:082731ede69f 9
JMF 0:082731ede69f 10 APP_DIR = .
JMF 0:082731ede69f 11 APP_INCLUDE_DIRS += -I $(APP_DIR)
JMF 0:082731ede69f 12 APP_NAME = jobs_sample
JMF 0:082731ede69f 13 APP_SRC_FILES = $(APP_NAME).c
JMF 0:082731ede69f 14
JMF 0:082731ede69f 15 #IoT client directory
JMF 0:082731ede69f 16 IOT_CLIENT_DIR = ../../..
JMF 0:082731ede69f 17
JMF 0:082731ede69f 18 PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux/mbedtls
JMF 0:082731ede69f 19 PLATFORM_COMMON_DIR = $(IOT_CLIENT_DIR)/platform/linux/common
JMF 0:082731ede69f 20
JMF 0:082731ede69f 21 IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
JMF 0:082731ede69f 22 IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/sdk_config
JMF 0:082731ede69f 23 IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
JMF 0:082731ede69f 24 IOT_INCLUDE_DIRS += -I $(PLATFORM_COMMON_DIR)
JMF 0:082731ede69f 25 IOT_INCLUDE_DIRS += -I $(PLATFORM_DIR)
JMF 0:082731ede69f 26
JMF 0:082731ede69f 27 IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
JMF 0:082731ede69f 28 IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn -name '*.c')
JMF 0:082731ede69f 29 IOT_SRC_FILES += $(shell find $(PLATFORM_DIR)/ -name '*.c')
JMF 0:082731ede69f 30 IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
JMF 0:082731ede69f 31
JMF 0:082731ede69f 32 #TLS - mbedtls
JMF 0:082731ede69f 33 MBEDTLS_DIR = $(IOT_CLIENT_DIR)/external_libs/mbedTLS
JMF 0:082731ede69f 34 TLS_LIB_DIR = $(MBEDTLS_DIR)/library
JMF 0:082731ede69f 35 TLS_INCLUDE_DIR = -I $(MBEDTLS_DIR)/include
JMF 0:082731ede69f 36 EXTERNAL_LIBS += -L$(TLS_LIB_DIR)
JMF 0:082731ede69f 37 LD_FLAG += -Wl,-rpath,$(TLS_LIB_DIR)
JMF 0:082731ede69f 38 LD_FLAG += -ldl $(TLS_LIB_DIR)/libmbedtls.a $(TLS_LIB_DIR)/libmbedcrypto.a $(TLS_LIB_DIR)/libmbedx509.a -lpthread
JMF 0:082731ede69f 39
JMF 0:082731ede69f 40 #Aggregate all include and src directories
JMF 0:082731ede69f 41 INCLUDE_ALL_DIRS += $(IOT_INCLUDE_DIRS)
JMF 0:082731ede69f 42 INCLUDE_ALL_DIRS += $(TLS_INCLUDE_DIR)
JMF 0:082731ede69f 43 INCLUDE_ALL_DIRS += $(APP_INCLUDE_DIRS)
JMF 0:082731ede69f 44
JMF 0:082731ede69f 45 SRC_FILES += $(APP_SRC_FILES)
JMF 0:082731ede69f 46 SRC_FILES += $(IOT_SRC_FILES)
JMF 0:082731ede69f 47
JMF 0:082731ede69f 48 # Logging level control
JMF 0:082731ede69f 49 LOG_FLAGS += -DENABLE_IOT_DEBUG
JMF 0:082731ede69f 50 LOG_FLAGS += -DENABLE_IOT_INFO
JMF 0:082731ede69f 51 LOG_FLAGS += -DENABLE_IOT_WARN
JMF 0:082731ede69f 52 LOG_FLAGS += -DENABLE_IOT_ERROR
JMF 0:082731ede69f 53
JMF 0:082731ede69f 54 COMPILER_FLAGS += $(LOG_FLAGS)
JMF 0:082731ede69f 55 #If the processor is big endian uncomment the compiler flag
JMF 0:082731ede69f 56 #COMPILER_FLAGS += -DREVERSED
JMF 0:082731ede69f 57
JMF 0:082731ede69f 58 MBED_TLS_MAKE_CMD = $(MAKE) -C $(MBEDTLS_DIR)
JMF 0:082731ede69f 59
JMF 0:082731ede69f 60 PRE_MAKE_CMD = $(MBED_TLS_MAKE_CMD)
JMF 0:082731ede69f 61 MAKE_CMD = $(CC) $(SRC_FILES) $(COMPILER_FLAGS) -o $(APP_NAME) $(LD_FLAG) $(EXTERNAL_LIBS) $(INCLUDE_ALL_DIRS)
JMF 0:082731ede69f 62
JMF 0:082731ede69f 63 all:
JMF 0:082731ede69f 64 $(PRE_MAKE_CMD)
JMF 0:082731ede69f 65 $(DEBUG)$(MAKE_CMD)
JMF 0:082731ede69f 66 $(POST_MAKE_CMD)
JMF 0:082731ede69f 67
JMF 0:082731ede69f 68 clean:
JMF 0:082731ede69f 69 rm -f $(APP_DIR)/$(APP_NAME)
JMF 0:082731ede69f 70 $(MBED_TLS_MAKE_CMD) clean