mirror of
https://github.com/espressif/openthread.git
synced 2026-11-02 12:33:22 +00:00
321 lines
9.6 KiB
Makefile
321 lines
9.6 KiB
Makefile
#
|
|
# Copyright (c) 2016-2017, The OpenThread Authors.
|
|
# All rights reserved.
|
|
#
|
|
# Redistribution and use in source and binary forms, with or without
|
|
# modification, are permitted provided that the following conditions are met:
|
|
# 1. Redistributions of source code must retain the above copyright
|
|
# notice, this list of conditions and the following disclaimer.
|
|
# 2. Redistributions in binary form must reproduce the above copyright
|
|
# notice, this list of conditions and the following disclaimer in the
|
|
# documentation and/or other materials provided with the distribution.
|
|
# 3. Neither the name of the copyright holder nor the
|
|
# names of its contributors may be used to endorse or promote products
|
|
# derived from this software without specific prior written permission.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
# POSSIBILITY OF SUCH DAMAGE.
|
|
#
|
|
|
|
# OpenThread Features (Makefile default configuration).
|
|
|
|
BACKBONE_ROUTER ?= 0
|
|
BIG_ENDIAN ?= 0
|
|
BORDER_AGENT ?= 0
|
|
BORDER_ROUTER ?= 0
|
|
COAP ?= 0
|
|
COAP_OBSERVE ?= 0
|
|
COAPS ?= 0
|
|
COMMISSIONER ?= 0
|
|
COVERAGE ?= 0
|
|
CHANNEL_MANAGER ?= 0
|
|
CHANNEL_MONITOR ?= 0
|
|
CHILD_SUPERVISION ?= 0
|
|
CLI_TRANSPORT ?= UART
|
|
DEBUG ?= 0
|
|
DHCP6_CLIENT ?= 0
|
|
DHCP6_SERVER ?= 0
|
|
DIAGNOSTIC ?= 0
|
|
DISABLE_DOC ?= 0
|
|
DISABLE_TOOLS ?= 0
|
|
DNS_CLIENT ?= 0
|
|
DUA ?= 0
|
|
DYNAMIC_LOG_LEVEL ?= 0
|
|
ECDSA ?= 0
|
|
EXTERNAL_HEAP ?= 0
|
|
IP6_FRAGM ?= 0
|
|
JAM_DETECTION ?= 0
|
|
JOINER ?= 0
|
|
LEGACY ?= 0
|
|
ifeq ($(REFERENCE_DEVICE),1)
|
|
LOG_OUTPUT ?= APP
|
|
endif
|
|
LINK_RAW ?= 0
|
|
MAC_FILTER ?= 0
|
|
MLE_LONG_ROUTES ?= 0
|
|
MLR ?= 0
|
|
MTD_NETDIAG ?= 0
|
|
MULTIPLE_INSTANCE ?= 0
|
|
OTNS ?= 0
|
|
PLATFORM_UDP ?= 0
|
|
REFERENCE_DEVICE ?= 0
|
|
SERVICE ?= 0
|
|
SETTINGS_RAM ?= 0
|
|
# SLAAC is enabled by default
|
|
SLAAC ?= 1
|
|
SNTP_CLIENT ?= 0
|
|
THREAD_VERSION ?= 1.1
|
|
TIME_SYNC ?= 0
|
|
UDP_FORWARD ?= 0
|
|
|
|
|
|
ifeq ($(BACKBONE_ROUTER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_BACKBONE_ROUTER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(BIG_ENDIAN),1)
|
|
COMMONCFLAGS += -DBYTE_ORDER_BIG_ENDIAN=1
|
|
endif
|
|
|
|
ifeq ($(BORDER_AGENT),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_BORDER_AGENT_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(BORDER_ROUTER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_BORDER_ROUTER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(COAP),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_COAP_API_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(COAPS),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_COAP_SECURE_API_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(COAP_OBSERVE),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_COAP_OBSERVE_API_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(COMMISSIONER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(COVERAGE),1)
|
|
configure_OPTIONS += --enable-coverage
|
|
endif
|
|
|
|
ifeq ($(CHANNEL_MANAGER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_CHANNEL_MANAGER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(CHANNEL_MONITOR),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_CHANNEL_MONITOR_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(CHILD_SUPERVISION),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_CHILD_SUPERVISION_ENABLE=1
|
|
endif
|
|
|
|
ifneq ($(CLI_TRANSPORT),)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_CLI_TRANSPORT=OT_CLI_TRANSPORT_$(CLI_TRANSPORT)
|
|
endif
|
|
|
|
ifeq ($(CSL_RECEIVER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_MAC_CSL_RECEIVER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DEBUG),1)
|
|
configure_OPTIONS += --enable-debug --disable-optimization
|
|
endif
|
|
|
|
ifeq ($(DHCP6_CLIENT),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DHCP6_SERVER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DIAGNOSTIC),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DIAG_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DISABLE_DOC),1)
|
|
configure_OPTIONS += --disable-docs
|
|
endif
|
|
|
|
ifeq ($(DISABLE_TOOLS),1)
|
|
configure_OPTIONS += --disable-tools
|
|
endif
|
|
|
|
ifeq ($(DNS_CLIENT),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DUA),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_DUA_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DYNAMIC_LOG_LEVEL),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_LOG_LEVEL_DYNAMIC_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(ECDSA),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_ECDSA_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(EXTERNAL_HEAP),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_HEAP_EXTERNAL_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(IP6_FRAGM),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_IP6_FRAGMENTATION_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(JAM_DETECTION),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_JAM_DETECTION_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(JOINER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_JOINER_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(LEGACY),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_LEGACY_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(LINK_RAW),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_LINK_RAW_ENABLE=1
|
|
endif
|
|
|
|
ifneq ($(LOG_OUTPUT),)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_LOG_OUTPUT=OPENTHREAD_CONFIG_LOG_OUTPUT_$(LOG_OUTPUT)
|
|
endif
|
|
|
|
ifeq ($(MAC_FILTER),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1
|
|
endif
|
|
|
|
# Enable MLE long routes extension (experimental, breaks Thread conformance)
|
|
ifeq ($(MLE_LONG_ROUTES),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_MLE_LONG_ROUTES_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(MLR),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_MLR_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(MTD_NETDIAG),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_TMF_NETWORK_DIAG_MTD_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(MULTIPLE_INSTANCE),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_MULTIPLE_INSTANCE_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(PLATFORM_UDP),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_PLATFORM_UDP_ENABLE=1
|
|
endif
|
|
|
|
# Enable features only required for reference device during certification.
|
|
ifeq ($(REFERENCE_DEVICE),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(SERVICE),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_TMF_NETDATA_SERVICE_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(SLAAC),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_IP6_SLAAC_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(SNTP_CLIENT),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_SNTP_CLIENT_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(THREAD_VERSION),1.1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_THREAD_VERSION=2
|
|
else ifeq ($(THREAD_VERSION),1.2)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_THREAD_VERSION=3
|
|
endif
|
|
|
|
ifeq ($(TIME_SYNC),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_TIME_SYNC_ENABLE=1 -DOPENTHREAD_CONFIG_MAC_HEADER_IE_SUPPORT=1
|
|
endif
|
|
|
|
ifeq ($(UDP_FORWARD),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_UDP_FORWARD_ENABLE=1
|
|
endif
|
|
|
|
ifeq ($(DISABLE_BUILTIN_MBEDTLS),1)
|
|
configure_OPTIONS += --disable-builtin-mbedtls
|
|
endif
|
|
|
|
ifneq ($(BUILTIN_MBEDTLS_MANAGEMENT),)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_ENABLE_BUILTIN_MBEDTLS_MANAGEMENT=$(BUILTIN_MBEDTLS_MANAGEMENT)
|
|
endif
|
|
|
|
ifeq ($(DISABLE_EXECUTABLE),1)
|
|
configure_OPTIONS += --enable-executable=no
|
|
endif
|
|
|
|
ifeq ($(DEBUG_UART),1)
|
|
CFLAGS += -DOPENTHREAD_CONFIG_ENABLE_DEBUG_UART=1
|
|
CXXFLAGS += -DOPENTHREAD_CONFIG_ENABLE_DEBUG_UART=1
|
|
endif
|
|
|
|
ifeq ($(DEBUG_UART_LOG),1)
|
|
CFLAGS += -DOPENTHREAD_CONFIG_LOG_OUTPUT=OPENTHREAD_CONFIG_LOG_OUTPUT_DEBUG_UART
|
|
CXXFLAGS += -DOPENTHREAD_CONFIG_LOG_OUTPUT=OPENTHREAD_CONFIG_LOG_OUTPUT_DEBUG_UART
|
|
endif
|
|
|
|
ifeq ($(SETTINGS_RAM),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_SETTINGS_RAM=1
|
|
endif
|
|
|
|
ifeq ($(OTNS),1)
|
|
COMMONCFLAGS += -DOPENTHREAD_CONFIG_OTNS_ENABLE=1
|
|
endif
|
|
|
|
ifneq ($(SPINEL_ENCRYPTER_LIBS),)
|
|
configure_OPTIONS += --with-ncp-spinel-encrypter-libs=$(SPINEL_ENCRYPTER_LIBS)
|
|
endif
|
|
|
|
ifeq ($(FULL_LOGS),1)
|
|
# HINT: Add more here, or comment out ones you do not need/want
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_LEVEL=OT_LOG_LEVEL_DEBG
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_API=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_ARP=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_BBR=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_CLI=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_COAP=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_DUA=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_ICMP=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_IP6=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_MAC=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_MEM=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_MESHCOP=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_MLE=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_MLR=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_NETDATA=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_NETDIAG=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_PKT_DUMP=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_PLATFORM=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_PREPEND_LEVEL=1
|
|
LOG_FLAGS += -DOPENTHREAD_CONFIG_LOG_PREPEND_REGION=1
|
|
endif
|
|
|
|
CFLAGS += ${LOG_FLAGS}
|
|
CXXFLAGS += ${LOG_FLAGS}
|