3 Star 8 Fork 0

HarmonyHub / Harmony_AWS_IoT

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Makefile 3.54 KB
Copy Edit Web IDE Raw Blame History
#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
#Set this to @ to keep the makefile quiet
ifndef SILENCE
SILENCE = @
endif
CC = gcc
RM = rm
DEBUG =
#--- Inputs ----#
COMPONENT_NAME = IotSdkC
ALL_TARGETS := build-cpputest
ALL_TARGETS_CLEAN :=
CPPUTEST_USE_EXTENSIONS = Y
CPP_PLATFORM = Gcc
CPPUTEST_CFLAGS += -std=gnu99
CPPUTEST_LDFLAGS += -lpthread
CPPUTEST_CFLAGS += -D__USE_BSD
CPPUTEST_USE_GCOV = Y
#IoT client directory
IOT_CLIENT_DIR = .
APP_DIR = $(IOT_CLIENT_DIR)/tests/unit
APP_NAME = aws_iot_sdk_unit_tests
APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.cpp')
APP_SRC_FILES += $(shell find $(APP_DIR)/src -name '*.c')
APP_INCLUDE_DIRS = -I $(APP_DIR)/include
CPPUTEST_DIR = $(IOT_CLIENT_DIR)/external_libs/CppUTest
# Provide paths for CppUTest to run Unit Tests otherwise build will fail
ifndef CPPUTEST_INCLUDE
CPPUTEST_INCLUDE = $(CPPUTEST_DIR)/include
endif
ifndef CPPUTEST_BUILD_LIB
CPPUTEST_BUILD_LIB = $(CPPUTEST_DIR)
endif
CPPUTEST_LDFLAGS += -ldl $(CPPUTEST_BUILD_LIB)/libCppUTest.a
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux
#MbedTLS directory
TEMP_MBEDTLS_SRC_DIR = $(APP_DIR)/tls_mock
TLS_LIB_DIR = $(TEMP_MBEDTLS_SRC_DIR)
TLS_INCLUDE_DIR = -I $(TEMP_MBEDTLS_SRC_DIR)
# 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)
EXTERNAL_LIBS += -L$(CPPUTEST_BUILD_LIB)
#IoT client directory
PLATFORM_COMMON_DIR = $(PLATFORM_DIR)/common
IOT_INCLUDE_DIRS = -I $(PLATFORM_COMMON_DIR)
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn/ -name '*.c')
#Aggregate all include and src directories
INCLUDE_DIRS += $(IOT_INCLUDE_DIRS)
INCLUDE_DIRS += $(APP_INCLUDE_DIRS)
INCLUDE_DIRS += $(TLS_INCLUDE_DIR)
INCLUDE_DIRS += $(CPPUTEST_INCLUDE)
TEST_SRC_DIRS = $(APP_DIR)/src
SRC_FILES += $(APP_SRC_FILES)
SRC_FILES += $(IOT_SRC_FILES)
COMPILER_FLAGS += -g
COMPILER_FLAGS += $(LOG_FLAGS)
PRE_MAKE_CMDS = cd $(CPPUTEST_DIR) &&
PRE_MAKE_CMDS += cmake CMakeLists.txt &&
PRE_MAKE_CMDS += make &&
PRE_MAKE_CMDS += cd - &&
PRE_MAKE_CMDS += pwd &&
PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTest/libCppUTest.a $(CPPUTEST_DIR)/libCppUTest.a &&
PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTestExt/libCppUTestExt.a $(CPPUTEST_DIR)/libCppUTestExt.a
# Using TLS Mock for running Unit Tests
MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls_params.c
MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls.c
ISYSTEM_HEADERS += $(IOT_ISYSTEM_HEADERS)
CPPUTEST_CPPFLAGS += $(ISYSTEM_HEADERS)
CPPUTEST_CPPFLAGS += $(LOG_FLAGS)
LCOV_EXCLUDE_PATTERN = "tests/unit/*"
LCOV_EXCLUDE_PATTERN += "tests/integration/*"
LCOV_EXCLUDE_PATTERN += "external_libs/*"
#use this section for running a specific group of tests, comment this to run all
#ONLY FOR TESTING PURPOSE
#COMMAND_LINE_ARGUMENTS += -g CommonTests
#COMMAND_LINE_ARGUMENTS += -v
build-cpputest:
$(PRE_MAKE_CMDS)
include CppUTestMakefileWorker.mk
.PHONY: run-unit-tests
run-unit-tests: $(ALL_TARGETS)
@echo $(ALL_TARGETS)
.PHONY: clean
clean:
$(MAKE) -C $(CPPUTEST_DIR) clean
$(RM) -rf build_output
$(RM) -rf gcov
$(RM) -rf objs
$(RM) -rf testLibs

Comment ( 0 )

Sign in for post a comment

C
1
https://gitee.com/harmonyhub/harmony-aws-iot.git
git@gitee.com:harmonyhub/harmony-aws-iot.git
harmonyhub
harmony-aws-iot
Harmony_AWS_IoT
master

Search