Skip to content

Commit 0267b8e

Browse files
committed
Add missing Makefiles
1 parent 40b8084 commit 0267b8e

File tree

7 files changed

+587
-0
lines changed

7 files changed

+587
-0
lines changed

Makefile

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
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.
2+
.prevent_execution:
3+
exit 0
4+
5+
#Set this to @ to keep the makefile quiet
6+
ifndef SILENCE
7+
SILENCE = @
8+
endif
9+
10+
CC = gcc
11+
RM = rm
12+
13+
DEBUG =
14+
15+
#--- Inputs ----#
16+
COMPONENT_NAME = IotSdkC
17+
18+
ALL_TARGETS := build-cpputest
19+
ALL_TARGETS_CLEAN :=
20+
21+
CPPUTEST_USE_EXTENSIONS = Y
22+
CPP_PLATFORM = Gcc
23+
CPPUTEST_CFLAGS += -std=gnu99
24+
CPPUTEST_LDFLAGS += -lpthread
25+
CPPUTEST_CFLAGS += -D__USE_BSD
26+
CPPUTEST_USE_GCOV = Y
27+
28+
#IoT client directory
29+
IOT_CLIENT_DIR = .
30+
31+
APP_DIR = $(IOT_CLIENT_DIR)/tests/unit
32+
APP_NAME = aws_iot_sdk_unit_tests
33+
APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.cpp')
34+
APP_SRC_FILES = $(shell find $(APP_DIR)/src -name '*.c')
35+
APP_INCLUDE_DIRS = -I $(APP_DIR)/include
36+
37+
CPPUTEST_DIR = $(IOT_CLIENT_DIR)/external_libs/CppUTest
38+
39+
# Provide paths for CppUTest to run Unit Tests otherwise build will fail
40+
ifndef CPPUTEST_INCLUDE
41+
CPPUTEST_INCLUDE = $(CPPUTEST_DIR)/include
42+
endif
43+
44+
ifndef CPPUTEST_BUILD_LIB
45+
CPPUTEST_BUILD_LIB = $(CPPUTEST_DIR)
46+
endif
47+
48+
CPPUTEST_LDFLAGS += -ldl $(CPPUTEST_BUILD_LIB)/libCppUTest.a
49+
50+
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux
51+
52+
#MbedTLS directory
53+
TEMP_MBEDTLS_SRC_DIR = $(APP_DIR)/tls_mock
54+
TLS_LIB_DIR = $(TEMP_MBEDTLS_SRC_DIR)
55+
TLS_INCLUDE_DIR = -I $(TEMP_MBEDTLS_SRC_DIR)
56+
57+
# Logging level control
58+
LOG_FLAGS += -DENABLE_IOT_DEBUG
59+
#LOG_FLAGS += -DENABLE_IOT_TRACE
60+
LOG_FLAGS += -DENABLE_IOT_INFO
61+
LOG_FLAGS += -DENABLE_IOT_WARN
62+
LOG_FLAGS += -DENABLE_IOT_ERROR
63+
COMPILER_FLAGS += $(LOG_FLAGS)
64+
65+
EXTERNAL_LIBS += -L$(CPPUTEST_BUILD_LIB)
66+
67+
#IoT client directory
68+
PLATFORM_COMMON_DIR = $(PLATFORM_DIR)/common
69+
70+
IOT_INCLUDE_DIRS = -I $(PLATFORM_COMMON_DIR)
71+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
72+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
73+
74+
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
75+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
76+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn/ -name '*.c')
77+
78+
#Aggregate all include and src directories
79+
INCLUDE_DIRS += $(IOT_INCLUDE_DIRS)
80+
INCLUDE_DIRS += $(APP_INCLUDE_DIRS)
81+
INCLUDE_DIRS += $(TLS_INCLUDE_DIR)
82+
INCLUDE_DIRS += $(CPPUTEST_INCLUDE)
83+
84+
TEST_SRC_DIRS = $(APP_DIR)/src
85+
86+
SRC_FILES += $(APP_SRC_FILES)
87+
SRC_FILES += $(IOT_SRC_FILES)
88+
89+
COMPILER_FLAGS += -g
90+
COMPILER_FLAGS += $(LOG_FLAGS)
91+
PRE_MAKE_CMDS = cd $(CPPUTEST_DIR) &&
92+
PRE_MAKE_CMDS += cmake CMakeLists.txt &&
93+
PRE_MAKE_CMDS += make &&
94+
PRE_MAKE_CMDS += cd - &&
95+
PRE_MAKE_CMDS += pwd &&
96+
PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTest/libCppUTest.a $(CPPUTEST_DIR)/libCppUTest.a &&
97+
PRE_MAKE_CMDS += cp -f $(CPPUTEST_DIR)/src/CppUTestExt/libCppUTestExt.a $(CPPUTEST_DIR)/libCppUTestExt.a
98+
99+
# Using TLS Mock for running Unit Tests
100+
MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls_params.c
101+
MOCKS_SRC += $(APP_DIR)/tls_mock/aws_iot_tests_unit_mock_tls.c
102+
103+
ISYSTEM_HEADERS += $(IOT_ISYSTEM_HEADERS)
104+
CPPUTEST_CPPFLAGS += $(ISYSTEM_HEADERS)
105+
CPPUTEST_CPPFLAGS += $(LOG_FLAGS)
106+
107+
LCOV_EXCLUDE_PATTERN = "tests/unit/*"
108+
LCOV_EXCLUDE_PATTERN += "tests/integration/*"
109+
LCOV_EXCLUDE_PATTERN += "external_libs/*"
110+
111+
#use this section for running a specific group of tests, comment this to run all
112+
#ONLY FOR TESTING PURPOSE
113+
#COMMAND_LINE_ARGUMENTS += -g CommonTests
114+
#COMMAND_LINE_ARGUMENTS += -v
115+
116+
build-cpputest:
117+
$(PRE_MAKE_CMDS)
118+
119+
include CppUTestMakefileWorker.mk
120+
121+
.PHONY: run-unit-tests
122+
run-unit-tests: $(ALL_TARGETS)
123+
@echo $(ALL_TARGETS)
124+
125+
.PHONY: clean
126+
clean:
127+
$(MAKE) -C $(CPPUTEST_DIR) clean
128+
$(RM) -rf build_output
129+
$(RM) -rf gcov
130+
$(RM) -rf objs
131+
$(RM) -rf testLibs
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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.
2+
.prevent_execution:
3+
exit 0
4+
5+
CC = gcc
6+
7+
#remove @ for no make command prints
8+
DEBUG = @
9+
10+
APP_DIR = .
11+
APP_INCLUDE_DIRS += -I $(APP_DIR)
12+
APP_NAME = shadow_sample
13+
APP_SRC_FILES = $(APP_NAME).c
14+
15+
#IoT client directory
16+
IOT_CLIENT_DIR = ../../..
17+
18+
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux/mbedtls
19+
PLATFORM_COMMON_DIR = $(IOT_CLIENT_DIR)/platform/linux/common
20+
21+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
22+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
23+
IOT_INCLUDE_DIRS += -I $(PLATFORM_COMMON_DIR)
24+
IOT_INCLUDE_DIRS += -I $(PLATFORM_DIR)
25+
26+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
27+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn -name '*.c')
28+
IOT_SRC_FILES += $(shell find $(PLATFORM_DIR)/ -name '*.c')
29+
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
30+
31+
#TLS - mbedtls
32+
MBEDTLS_DIR = $(IOT_CLIENT_DIR)/external_libs/mbedTLS
33+
TLS_LIB_DIR = $(MBEDTLS_DIR)/library
34+
TLS_INCLUDE_DIR = -I $(MBEDTLS_DIR)/include
35+
EXTERNAL_LIBS += -L$(TLS_LIB_DIR)
36+
LD_FLAG += -Wl,-rpath,$(TLS_LIB_DIR)
37+
LD_FLAG += -ldl $(TLS_LIB_DIR)/libmbedtls.a $(TLS_LIB_DIR)/libmbedcrypto.a $(TLS_LIB_DIR)/libmbedx509.a
38+
39+
40+
#Aggregate all include and src directories
41+
INCLUDE_ALL_DIRS += $(IOT_INCLUDE_DIRS)
42+
INCLUDE_ALL_DIRS += $(TLS_INCLUDE_DIR)
43+
INCLUDE_ALL_DIRS += $(APP_INCLUDE_DIRS)
44+
45+
SRC_FILES += $(APP_SRC_FILES)
46+
SRC_FILES += $(IOT_SRC_FILES)
47+
48+
# Logging level control
49+
LOG_FLAGS += -DENABLE_IOT_DEBUG
50+
LOG_FLAGS += -DENABLE_IOT_INFO
51+
LOG_FLAGS += -DENABLE_IOT_WARN
52+
LOG_FLAGS += -DENABLE_IOT_ERROR
53+
54+
COMPILER_FLAGS += -g
55+
COMPILER_FLAGS += $(LOG_FLAGS)
56+
#If the processor is big endian uncomment the compiler flag
57+
#COMPILER_FLAGS += -DREVERSED
58+
59+
MBED_TLS_MAKE_CMD = $(MAKE) -C $(MBEDTLS_DIR)
60+
61+
PRE_MAKE_CMD = $(MBED_TLS_MAKE_CMD)
62+
MAKE_CMD = $(CC) $(SRC_FILES) $(COMPILER_FLAGS) -o $(APP_NAME) $(LD_FLAG) $(EXTERNAL_LIBS) $(INCLUDE_ALL_DIRS)
63+
64+
all:
65+
$(PRE_MAKE_CMD)
66+
$(DEBUG)$(MAKE_CMD)
67+
$(POST_MAKE_CMD)
68+
69+
clean:
70+
rm -f $(APP_DIR)/$(APP_NAME)
71+
$(MBED_TLS_MAKE_CMD) clean
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
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.
2+
.prevent_execution:
3+
exit 0
4+
5+
CC = gcc
6+
7+
#remove @ for no make command prints
8+
DEBUG = @
9+
10+
APP_DIR = .
11+
APP_INCLUDE_DIRS += -I $(APP_DIR)
12+
APP_NAME = shadow_console_echo
13+
APP_SRC_FILES = $(APP_NAME).c
14+
15+
#IoT client directory
16+
IOT_CLIENT_DIR = ../../..
17+
18+
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux/mbedtls
19+
PLATFORM_COMMON_DIR = $(IOT_CLIENT_DIR)/platform/linux/common
20+
21+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
22+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
23+
IOT_INCLUDE_DIRS += -I $(PLATFORM_COMMON_DIR)
24+
IOT_INCLUDE_DIRS += -I $(PLATFORM_DIR)
25+
26+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
27+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn -name '*.c')
28+
IOT_SRC_FILES += $(shell find $(PLATFORM_DIR)/ -name '*.c')
29+
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
30+
31+
#TLS - mbedtls
32+
MBEDTLS_DIR = $(IOT_CLIENT_DIR)/external_libs/mbedTLS
33+
TLS_LIB_DIR = $(MBEDTLS_DIR)/library
34+
TLS_INCLUDE_DIR = -I $(MBEDTLS_DIR)/include
35+
EXTERNAL_LIBS += -L$(TLS_LIB_DIR)
36+
LD_FLAG += -Wl,-rpath,$(TLS_LIB_DIR)
37+
LD_FLAG += -ldl $(TLS_LIB_DIR)/libmbedtls.a $(TLS_LIB_DIR)/libmbedcrypto.a $(TLS_LIB_DIR)/libmbedx509.a
38+
39+
40+
#Aggregate all include and src directories
41+
INCLUDE_ALL_DIRS += $(IOT_INCLUDE_DIRS)
42+
INCLUDE_ALL_DIRS += $(MQTT_INCLUDE_DIR)
43+
INCLUDE_ALL_DIRS += $(TLS_INCLUDE_DIR)
44+
INCLUDE_ALL_DIRS += $(APP_INCLUDE_DIRS)
45+
46+
SRC_FILES += $(MQTT_SRC_FILES)
47+
SRC_FILES += $(APP_SRC_FILES)
48+
SRC_FILES += $(IOT_SRC_FILES)
49+
50+
# Logging level control
51+
LOG_FLAGS += -DENABLE_IOT_DEBUG
52+
LOG_FLAGS += -DENABLE_IOT_INFO
53+
LOG_FLAGS += -DENABLE_IOT_WARN
54+
LOG_FLAGS += -DENABLE_IOT_ERROR
55+
56+
COMPILER_FLAGS += -g
57+
COMPILER_FLAGS += $(LOG_FLAGS)
58+
59+
#If the processor is big endian uncomment the compiler flag
60+
#COMPILER_FLAGS += -DREVERSED
61+
62+
MBED_TLS_MAKE_CMD = $(MAKE) -C $(MBEDTLS_DIR)
63+
64+
PRE_MAKE_CMD = $(MBED_TLS_MAKE_CMD)
65+
MAKE_CMD = $(CC) $(SRC_FILES) $(COMPILER_FLAGS) -o $(APP_NAME) $(LD_FLAG) $(EXTERNAL_LIBS) $(INCLUDE_ALL_DIRS)
66+
67+
all:
68+
$(PRE_MAKE_CMD)
69+
$(DEBUG)$(MAKE_CMD)
70+
$(POST_MAKE_CMD)
71+
72+
clean:
73+
rm -f $(APP_DIR)/$(APP_NAME)
74+
$(MBED_TLS_MAKE_CMD) clean
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
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.
2+
.prevent_execution:
3+
exit 0
4+
5+
CC = g++
6+
7+
#remove @ for no make command prints
8+
DEBUG = @
9+
10+
APP_DIR = .
11+
APP_INCLUDE_DIRS += -I $(APP_DIR)
12+
APP_NAME = subscribe_publish_cpp_sample
13+
APP_SRC_FILES = $(APP_NAME).cpp
14+
15+
#IoT client directory
16+
IOT_CLIENT_DIR = ../../..
17+
18+
PLATFORM_DIR = $(IOT_CLIENT_DIR)/platform/linux/mbedtls
19+
PLATFORM_COMMON_DIR = $(IOT_CLIENT_DIR)/platform/linux/common
20+
21+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/include
22+
IOT_INCLUDE_DIRS += -I $(IOT_CLIENT_DIR)/external_libs/jsmn
23+
IOT_INCLUDE_DIRS += -I $(PLATFORM_COMMON_DIR)
24+
IOT_INCLUDE_DIRS += -I $(PLATFORM_DIR)
25+
26+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/src/ -name '*.c')
27+
IOT_SRC_FILES += $(shell find $(IOT_CLIENT_DIR)/external_libs/jsmn -name '*.c')
28+
IOT_SRC_FILES += $(shell find $(PLATFORM_DIR)/ -name '*.c')
29+
IOT_SRC_FILES += $(shell find $(PLATFORM_COMMON_DIR)/ -name '*.c')
30+
31+
#TLS - mbedtls
32+
MBEDTLS_DIR = $(IOT_CLIENT_DIR)/external_libs/mbedTLS
33+
TLS_LIB_DIR = $(MBEDTLS_DIR)/library
34+
TLS_INCLUDE_DIR = -I $(MBEDTLS_DIR)/include
35+
EXTERNAL_LIBS += -L$(TLS_LIB_DIR)
36+
LD_FLAG += -Wl,-rpath,$(TLS_LIB_DIR)
37+
LD_FLAG += -ldl $(TLS_LIB_DIR)/libmbedtls.a $(TLS_LIB_DIR)/libmbedcrypto.a $(TLS_LIB_DIR)/libmbedx509.a -lpthread
38+
39+
#Aggregate all include and src directories
40+
INCLUDE_ALL_DIRS += $(IOT_INCLUDE_DIRS)
41+
INCLUDE_ALL_DIRS += $(TLS_INCLUDE_DIR)
42+
INCLUDE_ALL_DIRS += $(APP_INCLUDE_DIRS)
43+
44+
SRC_FILES += $(APP_SRC_FILES)
45+
SRC_FILES += $(IOT_SRC_FILES)
46+
47+
# Logging level control
48+
LOG_FLAGS += -DENABLE_IOT_DEBUG
49+
LOG_FLAGS += -DENABLE_IOT_INFO
50+
LOG_FLAGS += -DENABLE_IOT_WARN
51+
LOG_FLAGS += -DENABLE_IOT_ERROR
52+
53+
COMPILER_FLAGS += $(LOG_FLAGS)
54+
#If the processor is big endian uncomment the compiler flag
55+
#COMPILER_FLAGS += -DREVERSED
56+
COMPILER_FLAGS += -std=c++0x
57+
58+
MBED_TLS_MAKE_CMD = $(MAKE) -C $(MBEDTLS_DIR)
59+
60+
PRE_MAKE_CMD = $(MBED_TLS_MAKE_CMD)
61+
MAKE_CMD = $(CC) $(SRC_FILES) $(COMPILER_FLAGS) -o $(APP_NAME) $(LD_FLAG) $(EXTERNAL_LIBS) $(INCLUDE_ALL_DIRS)
62+
63+
all:
64+
$(PRE_MAKE_CMD)
65+
$(DEBUG)$(MAKE_CMD)
66+
$(POST_MAKE_CMD)
67+
68+
clean:
69+
rm -f $(APP_DIR)/$(APP_NAME)
70+
$(MBED_TLS_MAKE_CMD) clean

0 commit comments

Comments
 (0)