![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
test
aws-iot/Makefile@0:cd5404401c2f, 2017-04-12 (annotated)
- Committer:
- peyo
- Date:
- Wed Apr 12 14:07:09 2017 +0200
- Revision:
- 0:cd5404401c2f
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
peyo |
0:cd5404401c2f | 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. |
peyo |
0:cd5404401c2f | 2 | .prevent_execution: |
peyo |
0:cd5404401c2f | 3 | exit 0 |
peyo |
0:cd5404401c2f | 4 | |
peyo |
0:cd5404401c2f | 5 | #Set this to @ to keep the makefile quiet |
peyo |
0:cd5404401c2f | 6 | ifndef SILENCE |
peyo |
0:cd5404401c2f | 7 | SILENCE = @ |
peyo |
0:cd5404401c2f | 8 | endif |
peyo |
0:cd5404401c2f | 9 | |
peyo |
0:cd5404401c2f | 10 | CC = gcc |
peyo |
0:cd5404401c2f | 11 | RM = rm |
peyo |
0:cd5404401c2f | 12 | |
peyo |
0:cd5404401c2f | 13 | DEBUG = |
peyo |
0:cd5404401c2f | 14 | |
peyo |
0:cd5404401c2f | 15 | #--- Inputs ----# |
peyo |
0:cd5404401c2f | 16 | COMPONENT_NAME = IotSdkC |
peyo |
0:cd5404401c2f | 17 | |
peyo |
0:cd5404401c2f | 18 | ALL_TARGETS := build-cpputest |
peyo |
0:cd5404401c2f | 19 | ALL_TARGETS_CLEAN := |
peyo |
0:cd5404401c2f | 20 | |
peyo |
0:cd5404401c2f | 21 | CPPUTEST_USE_EXTENSIONS = Y |
peyo |
0:cd5404401c2f | 22 | CPP_PLATFORM = Gcc |
peyo |
0:cd5404401c2f | 23 | CPPUTEST_CFLAGS += -std=gnu99 |
peyo |
0:cd5404401c2f | 24 | CPPUTEST_LDFLAGS += -lpthread |
peyo |
0:cd5404401c2f | 25 | CPPUTEST_CFLAGS += -D__USE_BSD |
peyo |
0:cd5404401c2f | 26 | CPPUTEST_USE_GCOV = Y |
peyo |
0:cd5404401c2f | 27 | |
peyo |
0:cd5404401c2f | 28 | #IoT client directory |
peyo |
0:cd5404401c2f | 29 | IOT_CLIENT_DIR = . |
peyo |
0:cd5404401c2f | 30 | |
peyo |
0:cd5404401c2f | 31 | APP_DIR = $(IOT_CLIENT_DIR)/tests/unit |
peyo |
0:cd5404401c2f | 32 | APP_NAME = aws_iot_sdk_unit_tests |
peyo |
0:cd5404401c2f | 33 | APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.cpp') |
peyo |
0:cd5404401c2f | 34 | APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.c') |
peyo |
0:cd5404401c2f | 35 | APP_INCLUDE_DIRS = -I $(APP_DIR)/include |
peyo |
0:cd5404401c2f | 36 | |
peyo |
0:cd5404401c2f | 37 | CPPUTEST_DIR = $(IOT_CLIENT_DIR)/external_libs/CppUTest |
peyo |
0:cd5404401c2f | 38 | |
peyo |
0:cd5404401c2f | 39 | # Provide paths for CppUTest to run Unit Tests otherwise build will fail |
peyo |
0:cd5404401c2f | 40 | ifndef CPPUTEST_INCLUDE |
peyo |
0:cd5404401c2f | 41 | CPPUTEST_INCLUDE = $(CPPUTEST_DIR)/include |
peyo |
0:cd5404401c2f | 42 | endif |
peyo |
0:cd5404401c2f | 43 | |
peyo |
0:cd5404401c2f | 44 | ifndef CPPUTEST_BUILD_LIB |
peyo |
0:cd5404401c2f | 45 | CPPUTEST_BUILD_LIB = $(CPPUTEST_DIR) |
peyo |
0:cd5404401c2f | 46 | endif |
peyo |
0:cd5404401c2f | 47 | |
peyo |
0:cd5404401c2f | 48 | CPPUTEST_LDFLAGS += -ldl $(CPPUTEST_BUILD_LIB)/libCppUTest.a |
peyo |
0:cd5404401c2f | 49 | |
peyo |
0:cd5404401c2f | 50 | PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux |
peyo |
0:cd5404401c2f | 51 | |
peyo |
0:cd5404401c2f | 52 | #MbedTLS directory |
peyo |
0:cd5404401c2f | 53 | TEMP_MBEDTLS_SRC_DIR = $(APP_DIR)/tls_mock |
peyo |
0:cd5404401c2f | 54 | TLS_LIB_DIR = $(TEMP_MBEDTLS_SRC_DIR) |
peyo |
0:cd5404401c2f | 55 | TLS_INCLUDE_DIR = -I $(TEMP_MBEDTLS_SRC_DIR) |
peyo |
0:cd5404401c2f | 56 | |
peyo |
0:cd5404401c2f | 57 | # Logging level control |
peyo |
0:cd5404401c2f | 58 | LOG_FLAGS += -DENABLE_IOT_DEBUG |
peyo |
0:cd5404401c2f | 59 | #LOG_FLAGS += -DENABLE_IOT_TRACE |
peyo |
0:cd5404401c2f | 60 | LOG_FLAGS += -DENABLE_IOT_INFO |
peyo |
0:cd5404401c2f | 61 | LOG_FLAGS += -DENABLE_IOT_WARN |
peyo |
0:cd5404401c2f | 62 | LOG_FLAGS += -DENABLE_IOT_ERROR |
peyo |
0:cd5404401c2f | 63 | COMPILER_FLAGS += $(LOG_FLAGS) |
peyo |
0:cd5404401c2f | 64 | |
peyo |
0:cd5404401c2f | 65 | EXTERNAL_LIBS += -L$(CPPUTEST_BUILD_LIB) |
peyo |
0:cd5404401c2f | 66 | |
peyo |
0:cd5404401c2f | 67 | #IoT client directory |
peyo |
0:cd5404401c2f | 68 | PLATFORM_COMMON_DIR = $(PLATFORM_DIR)/common |
peyo |
0:cd5404401c2f | 69 | |
peyo |
0:cd5404401c2f | 70 | IOT_INCLUDE_DIRS = -I $(PLATFORM_COMMON_DIR) |
peyo |
0:cd5404401c2f | 71 | IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include |
peyo |
0:cd5404401c2f | 72 | IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn |
peyo |
0:cd5404401c2f | 73 | |
peyo |
0:cd5404401c2f | 74 | IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c') |
peyo |
0:cd5404401c2f | 75 | IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c') |
peyo |
0:cd5404401c2f | 76 | IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn/ -name '*.c') |
peyo |
0:cd5404401c2f | 77 | |
peyo |
0:cd5404401c2f | 78 | #Aggregate all include and src directories |
peyo |
0:cd5404401c2f | 79 | INCLUDE_DIRS += $(IOT_INCLUDE_DIRS) |
peyo |
0:cd5404401c2f | 80 | INCLUDE_DIRS += $(APP_INCLUDE_DIRS) |
peyo |
0:cd5404401c2f | 81 | INCLUDE_DIRS += $(TLS_INCLUDE_DIR) |
peyo |
0:cd5404401c2f | 82 | INCLUDE_DIRS += $(CPPUTEST_INCLUDE) |
peyo |
0:cd5404401c2f | 83 | |
peyo |
0:cd5404401c2f | 84 | TEST_SRC_DIRS = $(APP_DIR)/src |
peyo |
0:cd5404401c2f | 85 | |
peyo |
0:cd5404401c2f | 86 | SRC_FILES += $(APP_SRC_FILES) |
peyo |
0:cd5404401c2f | 87 | SRC_FILES += $(IOT_SRC_FILES) |
peyo |
0:cd5404401c2f | 88 | |
peyo |
0:cd5404401c2f | 89 | COMPILER_FLAGS += -g |
peyo |
0:cd5404401c2f | 90 | COMPILER_FLAGS += $(LOG_FLAGS) |
peyo |
0:cd5404401c2f | 91 | PRE_MAKE_CMDS = cd $(CPPUTEST_DIR) && |
peyo |
0:cd5404401c2f | 92 | PRE_MAKE_CMDS += cmake CMakeLists.txt && |
peyo |
0:cd5404401c2f | 93 | PRE_MAKE_CMDS += make && |
peyo |
0:cd5404401c2f | 94 | PRE_MAKE_CMDS += cd - && |
peyo |
0:cd5404401c2f | 95 | PRE_MAKE_CMDS += pwd && |
peyo |
0:cd5404401c2f | 96 | PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTest/libCppUTest.a $(CPPUTEST_DIR)/libCppUTest.a && |
peyo |
0:cd5404401c2f | 97 | PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTestExt/libCppUTestExt.a $(CPPUTEST_DIR)/libCppUTestExt.a |
peyo |
0:cd5404401c2f | 98 | |
peyo |
0:cd5404401c2f | 99 | # Using TLS Mock for running Unit Tests |
peyo |
0:cd5404401c2f | 100 | MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls_params.c |
peyo |
0:cd5404401c2f | 101 | MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls.c |
peyo |
0:cd5404401c2f | 102 | |
peyo |
0:cd5404401c2f | 103 | ISYSTEM_HEADERS += $(IOT_ISYSTEM_HEADERS) |
peyo |
0:cd5404401c2f | 104 | CPPUTEST_CPPFLAGS += $(ISYSTEM_HEADERS) |
peyo |
0:cd5404401c2f | 105 | CPPUTEST_CPPFLAGS += $(LOG_FLAGS) |
peyo |
0:cd5404401c2f | 106 | |
peyo |
0:cd5404401c2f | 107 | LCOV_EXCLUDE_PATTERN = "tests/unit/*" |
peyo |
0:cd5404401c2f | 108 | LCOV_EXCLUDE_PATTERN += "tests/integration/*" |
peyo |
0:cd5404401c2f | 109 | LCOV_EXCLUDE_PATTERN += "external_libs/*" |
peyo |
0:cd5404401c2f | 110 | |
peyo |
0:cd5404401c2f | 111 | #use this section for running a specific group of tests, comment this to run all |
peyo |
0:cd5404401c2f | 112 | #ONLY FOR TESTING PURPOSE |
peyo |
0:cd5404401c2f | 113 | #COMMAND_LINE_ARGUMENTS += -g CommonTests |
peyo |
0:cd5404401c2f | 114 | #COMMAND_LINE_ARGUMENTS += -v |
peyo |
0:cd5404401c2f | 115 | |
peyo |
0:cd5404401c2f | 116 | build-cpputest: |
peyo |
0:cd5404401c2f | 117 | $(PRE_MAKE_CMDS) |
peyo |
0:cd5404401c2f | 118 | |
peyo |
0:cd5404401c2f | 119 | include CppUTestMakefileWorker.mk |
peyo |
0:cd5404401c2f | 120 | |
peyo |
0:cd5404401c2f | 121 | .PHONY: run-unit-tests |
peyo |
0:cd5404401c2f | 122 | run-unit-tests: $(ALL_TARGETS) |
peyo |
0:cd5404401c2f | 123 | @echo $(ALL_TARGETS) |
peyo |
0:cd5404401c2f | 124 | |
peyo |
0:cd5404401c2f | 125 | .PHONY: clean |
peyo |
0:cd5404401c2f | 126 | clean: |
peyo |
0:cd5404401c2f | 127 | $(MAKE) -C $(CPPUTEST_DIR) clean |
peyo |
0:cd5404401c2f | 128 | $(RM) -rf build_output |
peyo |
0:cd5404401c2f | 129 | $(RM) -rf gcov |
peyo |
0:cd5404401c2f | 130 | $(RM) -rf objs |
peyo |
0:cd5404401c2f | 131 | $(RM) -rf testLibs |