170 lines
3.8 KiB
Makefile
170 lines
3.8 KiB
Makefile
# Basic Settings
|
|
SHELL := /bin/bash
|
|
TOP_DIR ?= $(CURDIR)
|
|
SUBDIRS := directory-not-exist-actually
|
|
|
|
# Settings of input directory
|
|
SCRIPT_DIR := $(TOP_DIR)/tools/build_scripts
|
|
SRC_DIR := sdk_src
|
|
PLATFORM_DIR := platform
|
|
EXP_INC_DIR := include include/exports
|
|
INT_INC_DIR := sdk_src/internal_inc
|
|
|
|
# Thirdparty libs directory
|
|
THIRD_PARTY_PATH := $(TOP_DIR)/external_libs
|
|
TEST_LIB_DIR := $(THIRD_PARTY_PATH)/googletest
|
|
|
|
# Sample directory
|
|
SAMPLE_DIR := $(TOP_DIR)/samples
|
|
|
|
# Test directory
|
|
TESTS_DIR := $(TOP_DIR)/sdk-tests
|
|
|
|
include make.settings
|
|
include $(SCRIPT_DIR)/parse_make_settings.mk
|
|
|
|
# Settings of output directory
|
|
TEMP_DIR := $(TOP_DIR)/tmp
|
|
DIST_DIR := $(TOP_DIR)/output
|
|
FINAL_DIR := $(DIST_DIR)/$(BUILD_TYPE)
|
|
|
|
# Makefile echo
|
|
ifeq ($(DEBUG_MAKEFILE),n)
|
|
Q := @
|
|
TOP_Q := @
|
|
else
|
|
Q :=
|
|
TOP_Q :=
|
|
endif
|
|
|
|
# IoT SDK sources files defination
|
|
COMP_LIB := libiot_sdk.a
|
|
COMP_LIB_COMPONENTS := \
|
|
$(SRC_DIR)/utils \
|
|
$(SRC_DIR)/network \
|
|
$(SRC_DIR)/network/socket \
|
|
$(SRC_DIR)/protocol/http \
|
|
|
|
ifeq (,$(filter -DAUTH_WITH_NOTLS,$(CFLAGS)))
|
|
COMP_LIB_COMPONENTS += \
|
|
$(SRC_DIR)/network/tls
|
|
endif
|
|
|
|
$(call CompLib_Map, MQTT_COMM_ENABLED, \
|
|
$(SRC_DIR)/protocol/mqtt \
|
|
)
|
|
|
|
$(call CompLib_Map, COAP_COMM_ENABLED, \
|
|
$(SRC_DIR)/protocol/coap \
|
|
)
|
|
|
|
$(call CompLib_Map, MQTT_DEVICE_SHADOW, \
|
|
$(SRC_DIR)/services/shadow \
|
|
)
|
|
|
|
$(call CompLib_Map, SYSTEM_COMM_ENABLED, \
|
|
$(SRC_DIR)/services/system \
|
|
)
|
|
|
|
$(call CompLib_Map, LOG_UPLOAD_ENABLED, \
|
|
$(SRC_DIR)/services/log \
|
|
)
|
|
|
|
$(call CompLib_Map, OTA_COMM_ENABLED, \
|
|
$(SRC_DIR)/services/ota \
|
|
)
|
|
|
|
$(call CompLib_Map, GATEWAY_ENABLED, \
|
|
$(SRC_DIR)/services/gateway \
|
|
)
|
|
|
|
$(call CompLib_Map, DEV_DYN_REG_ENABLED, \
|
|
$(SRC_DIR)/services/dynreg \
|
|
)
|
|
|
|
$(call CompLib_Map, EVENT_POST_ENABLED, \
|
|
$(SRC_DIR)/services/event \
|
|
)
|
|
|
|
$(call CompLib_Map, AT_TCP_ENABLED, \
|
|
$(SRC_DIR)/network/at_socket \
|
|
)
|
|
|
|
IOTSDK_SRC_FILES := \
|
|
|
|
$(foreach v, \
|
|
$(COMP_LIB_COMPONENTS), \
|
|
$(eval \
|
|
export IOTSDK_SRC_FILES += \
|
|
$(wildcard $(TOP_DIR)/$(v)/*.c) \
|
|
) \
|
|
)
|
|
|
|
EXCLUDE_SRC_FILES := \
|
|
|
|
ifeq (,$(filter -DOTA_COAP_CHANNEL, $(CFLAGS)))
|
|
EXCLUDE_SRC_FILES += $(TOP_DIR)/$(SRC_DIR)/services/ota/ota_coap.c
|
|
IOTSDK_SRC_FILES := $(filter-out $(EXCLUDE_SRC_FILES),$(IOTSDK_SRC_FILES))
|
|
else
|
|
EXCLUDE_SRC_FILES += $(TOP_DIR)/$(SRC_DIR)/services/ota/ota_mqtt.c
|
|
IOTSDK_SRC_FILES := $(filter-out $(EXCLUDE_SRC_FILES),$(IOTSDK_SRC_FILES))
|
|
endif
|
|
|
|
|
|
# IoT Platform sources files defination
|
|
PLATFORM_LIB := libiot_platform.a
|
|
PLATFORM_LIB_COMPONENTS := \
|
|
$(PLATFORM_DIR)/os/$(PLATFORM_OS) \
|
|
|
|
ifeq (,$(filter -DAUTH_WITH_NOTLS,$(CFLAGS)))
|
|
PLATFORM_LIB_COMPONENTS += \
|
|
$(PLATFORM_DIR)/tls/$(PLATFORM_SSL)
|
|
endif
|
|
|
|
ifneq (,$(filter -DAT_TCP_ENABLED,$(CFLAGS)))
|
|
PLATFORM_LIB_COMPONENTS += \
|
|
$(PLATFORM_DIR)/at_device/$(PLATFORM_AT_DEV)
|
|
endif
|
|
|
|
IOTPLATFORM_SRC_FILES := \
|
|
|
|
$(foreach v, \
|
|
$(PLATFORM_LIB_COMPONENTS), \
|
|
$(eval \
|
|
export IOTPLATFORM_SRC_FILES += \
|
|
$(wildcard $(TOP_DIR)/$(v)/*.c) \
|
|
) \
|
|
)
|
|
|
|
|
|
# IoT Include files defination
|
|
COMP_LIB_COMPONENTS_INCLUDES := \
|
|
$(EXP_INC_DIR) \
|
|
$(INT_INC_DIR) \
|
|
external_libs/mbedtls/include \
|
|
|
|
IOTSDK_INCLUDE_FILES := \
|
|
|
|
$(foreach v, \
|
|
$(COMP_LIB_COMPONENTS_INCLUDES), \
|
|
$(eval \
|
|
export IOTSDK_INCLUDE_FILES += \
|
|
-I$(TOP_DIR)/$(v) \
|
|
) \
|
|
)
|
|
|
|
$(call CompInc_Map, AT_TCP_ENABLED, \
|
|
$(PLATFORM_DIR)/at_device/$(PLATFORM_AT_DEV) \
|
|
)
|
|
|
|
CFLAGS += -Werror -Wall -Wno-error=sign-compare -Wno-error=format -Os ${IOTSDK_INCLUDE_FILES} -pthread -DFORCE_SSL_VERIFY
|
|
|
|
#CFLAGS += -DMQTT_RMDUP_MSG_ENABLED
|
|
|
|
include $(SCRIPT_DIR)/rules.mk
|
|
|
|
ifneq (,$(filter -DSDKTESTS_ENABLED, $(CFLAGS)))
|
|
include sdk-tests/unit_test/unit_test.mk
|
|
include sdk-tests/multi_thread_test/multi_thread_test.mk
|
|
endif
|