mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-28 13:40:37 +08:00
97 lines
3.2 KiB
Makefile
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
|