Files
Wu Jian Gang 1d1ae209af feat(aws_iot): add aws_iot support
IDF: release/v3.1, commit: 66dad0c5
2018-07-10 22:12:15 +08:00

97 lines
3.2 KiB
Makefile

#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.
.prevent_execution:
exit 0
CC = gcc
RM = rm
DEBUG =
#IoT client directory
IOT_CLIENT_DIR = ../..
APP_DIR = $(IOT_CLIENT_DIR)/tests/integration
APP_NAME = integration_tests_mbedtls
MT_APP_NAME = integration_tests_mbedtls_mt
APP_SRC_FILES = $(shell find $(APP_DIR)/src/ -name '*.c')
MT_APP_SRC_FILES = $(shell find $(APP_DIR)/multithreadingTest/ -name '*.c')
APP_INCLUDE_DIRS = -I $(APP_DIR)/include
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux
#MbedTLS directory
TEMP_MBEDTLS_SRC_DIR = $(IOT_CLIENT_DIR)/external_libs/mbedTLS
TLS_LIB_DIR = $(TEMP_MBEDTLS_SRC_DIR)/library
TLS_INCLUDE_DIR = -I $(TEMP_MBEDTLS_SRC_DIR)/include
EXTERNAL_LIBS += -L$(TLS_LIB_DIR)
LD_FLAG += -Wl,-rpath,$(TLS_LIB_DIR)
LD_FLAG += -ldl $(TLS_LIB_DIR)/libmbedtls.a $(TLS_LIB_DIR)/libmbedcrypto.a $(TLS_LIB_DIR)/libmbedx509.a -lpthread
# Logging level control
#LOG_FLAGS += -DENABLE_IOT_DEBUG
#LOG_FLAGS += -DENABLE_IOT_TRACE
LOG_FLAGS += -DENABLE_IOT_INFO
LOG_FLAGS += -DENABLE_IOT_WARN
LOG_FLAGS += -DENABLE_IOT_ERROR
COMPILER_FLAGS += $(LOG_FLAGS)
#IoT client directory
PLATFORM_COMMON_DIR = $(PLATFORM_DIR)/common
PLATFORM_THREAD_DIR = $(PLATFORM_DIR)/pthread
PLATFORM_NETWORK_DIR = $(PLATFORM_DIR)/mbedtls
IOT_INCLUDE_DIRS = -I $(PLATFORM_COMMON_DIR)
IOT_INCLUDE_DIRS += -I $(PLATFORM_THREAD_DIR)
IOT_INCLUDE_DIRS += -I $(PLATFORM_NETWORK_DIR)
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn/ -name '*.c')
IOT_SRC_FILES += $(shell find $(PLATFORM_NETWORK_DIR)/ -name '*.c')
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
IOT_SRC_FILES += $(shell find $(PLATFORM_THREAD_DIR)/ -name '*.c')
#Aggregate all include and src directories
INCLUDE_ALL_DIRS += $(IOT_INCLUDE_DIRS)
INCLUDE_ALL_DIRS += $(APP_INCLUDE_DIRS)
INCLUDE_ALL_DIRS += $(TLS_INCLUDE_DIR)
SRC_FILES += $(APP_SRC_FILES)
SRC_FILES += $(IOT_SRC_FILES)
MT_SRC_FILES += $(MT_APP_SRC_FILES)
MT_SRC_FILES += $(IOT_SRC_FILES)
COMPILER_FLAGS += -g
COMPILER_FLAGS += $(LOG_FLAGS)
PRE_MAKE_CMDS += cd $(TEMP_MBEDTLS_SRC_DIR) && make
MAKE_CMD = $(CC) $(SRC_FILES) $(COMPILER_FLAGS) -g3 -o $(APP_DIR)/$(APP_NAME) $(EXTERNAL_LIBS) $(LD_FLAG) $(INCLUDE_ALL_DIRS);
MAKE_MT_CMD = $(CC) $(MT_SRC_FILES) $(COMPILER_FLAGS) -g3 -D_ENABLE_THREAD_SUPPORT_ -o $(APP_DIR)/$(MT_APP_NAME) $(EXTERNAL_LIBS) $(LD_FLAG) $(INCLUDE_ALL_DIRS);
ifeq ($(CODE_SIZE_ENABLE),Y)
POST_MAKE_CMDS += $(CC) -c $(SRC_FILES) $(INCLUDE_ALL_DIRS) -fstack-usage;
POST_MAKE_CMDS += (size --format=Berkeley *.o > $(APP_NAME)_size_info.txt);
POST_MAKE_CMDS += (cat *.su >> $(APP_NAME)_stack_usage.txt);
POST_MAKE_CMDS += ($(RM) *.o);
POST_MAKE_CMDS += ($(RM) *.su);
CLEAN_CMD += ($(RM) -f $(APP_NAME)_size_info.txt);
CLEAN_CMD += ($(RM) -f $(APP_NAME)_stack_usage.txt);
endif
all:
$(PRE_MAKE_CMDS)
$(DEBUG)$(MAKE_CMD)
$(DEBUG)$(MAKE_MT_CMD)
./$(APP_NAME)
./$(MT_APP_NAME)
$(POST_MAKE_CMDS)
clean:
$(RM) -f $(APP_DIR)/$(APP_NAME)
$(RM) -f $(APP_DIR)/$(MT_APP_NAME)
$(CLEAN_CMD)
ALL_TARGETS_CLEAN += test-integration-assert-clean