#
#  Copyright (c) 2018, 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.
#

LOCAL_PATH := $(call my-dir)

OPENTHREAD_DEFAULT_VERSION := $(shell cat $(LOCAL_PATH)/.default-version)
OPENTHREAD_SOURCE_VERSION := $(shell git -C $(LOCAL_PATH) describe --always --match "[0-9].*" 2> /dev/null)

OPENTHREAD_COMMON_FLAGS                                          := \
    -DPACKAGE=\"openthread\"                                        \
    -DPACKAGE_BUGREPORT=\"openthread-devel@googlegroups.com\"       \
    -DPACKAGE_NAME=\"OPENTHREAD\"                                   \
    -DPACKAGE_STRING=\"OPENTHREAD\ $(OPENTHREAD_DEFAULT_VERSION)\"  \
    -DPACKAGE_VERSION=\"$(OPENTHREAD_SOURCE_VERSION)\"              \
    -DPACKAGE_TARNAME=\"openthread\"                                \
    -DVERSION=\"$(OPENTHREAD_DEFAULT_VERSION)\"                     \
    -DPACKAGE_URL=\"http://github.com/openthread/openthread\"       \
    -DOPENTHREAD_CONFIG_MAC_FILTER_ENABLE=1                         \
    $(NULL)

# Enable required features for on-device tests.
ifeq ($(TARGET_BUILD_VARIANT),eng)
OPENTHREAD_COMMON_FLAGS                                          += \
    -DOPENTHREAD_CONFIG_DIAG_ENABLE=1                               \
    $(NULL)
endif

# Enable all optional features for CI tests.
ifeq ($(TARGET_PRODUCT),generic)
OPENTHREAD_COMMON_FLAGS                                          += \
    -DOPENTHREAD_CONFIG_COAP_API_ENABLE=1                           \
    -DOPENTHREAD_CONFIG_COMMISSIONER_ENABLE=1                       \
    -DOPENTHREAD_CONFIG_DHCP6_CLIENT_ENABLE=1                       \
    -DOPENTHREAD_CONFIG_DHCP6_SERVER_ENABLE=1                       \
    -DOPENTHREAD_CONFIG_DNS_CLIENT_ENABLE=1                         \
    -DOPENTHREAD_CONFIG_REFERENCE_DEVICE_ENABLE=0                   \
    -DOPENTHREAD_CONFIG_TMF_NETWORK_DIAG_MTD_ENABLE=1               \
    $(NULL)
endif

include $(CLEAR_VARS)

LOCAL_MODULE := spi-hdlc-adapter
LOCAL_MODULE_TAGS := eng
LOCAL_SRC_FILES := tools/spi-hdlc-adapter/spi-hdlc-adapter.c

include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_MODULE := ot-core
LOCAL_MODULE_TAGS := eng

LOCAL_C_INCLUDES                                         := \
    $(LOCAL_PATH)/include                                   \
    $(LOCAL_PATH)/src                                       \
    $(LOCAL_PATH)/src/cli                                   \
    $(LOCAL_PATH)/src/core                                  \
    $(LOCAL_PATH)/src/ncp                                   \
    $(LOCAL_PATH)/src/posix/platform                        \
    $(LOCAL_PATH)/third_party                               \
    $(LOCAL_PATH)/third_party/mbedtls                       \
    $(LOCAL_PATH)/third_party/mbedtls/repo/include          \
    $(NULL)

LOCAL_CFLAGS                                                                := \
    -DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"                                 \
    -DOPENTHREAD_CONFIG_FILE=\<openthread-config-android.h\>                   \
    $(OPENTHREAD_COMMON_FLAGS)                                                 \
    -DOPENTHREAD_CONFIG_POSIX_APP_ENABLE_PTY_DEVICE=1                          \
    -DOPENTHREAD_FTD=1                                                         \
    -DOPENTHREAD_POSIX=1                                                       \
    -DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"                             \
    $(NULL)

LOCAL_CPPFLAGS                                                              := \
    -Wno-non-virtual-dtor                                                      \
    $(NULL)

LOCAL_SRC_FILES                                          := \
    src/core/api/border_router_api.cpp                      \
    src/core/api/channel_manager_api.cpp                    \
    src/core/api/channel_monitor_api.cpp                    \
    src/core/api/child_supervision_api.cpp                  \
    src/core/api/coap_api.cpp                               \
    src/core/api/commissioner_api.cpp                       \
    src/core/api/crypto_api.cpp                             \
    src/core/api/dataset_api.cpp                            \
    src/core/api/dataset_ftd_api.cpp                        \
    src/core/api/diags_api.cpp                              \
    src/core/api/dns_api.cpp                                \
    src/core/api/icmp6_api.cpp                              \
    src/core/api/instance_api.cpp                           \
    src/core/api/ip6_api.cpp                                \
    src/core/api/jam_detection_api.cpp                      \
    src/core/api/joiner_api.cpp                             \
    src/core/api/link_api.cpp                               \
    src/core/api/link_raw_api.cpp                           \
    src/core/api/logging_api.cpp                            \
    src/core/api/message_api.cpp                            \
    src/core/api/netdata_api.cpp                            \
    src/core/api/random_crypto_api.cpp                      \
    src/core/api/random_noncrypto_api.cpp                   \
    src/core/api/server_api.cpp                             \
    src/core/api/tasklet_api.cpp                            \
    src/core/api/thread_api.cpp                             \
    src/core/api/thread_ftd_api.cpp                         \
    src/core/api/udp_api.cpp                                \
    src/core/coap/coap.cpp                                  \
    src/core/coap/coap_message.cpp                          \
    src/core/coap/coap_secure.cpp                           \
    src/core/common/crc16.cpp                               \
    src/core/common/instance.cpp                            \
    src/core/common/logging.cpp                             \
    src/core/common/message.cpp                             \
    src/core/common/notifier.cpp                            \
    src/core/common/random_manager.cpp                      \
    src/core/common/settings.cpp                            \
    src/core/common/string.cpp                              \
    src/core/common/tasklet.cpp                             \
    src/core/common/timer.cpp                               \
    src/core/common/tlvs.cpp                                \
    src/core/common/trickle_timer.cpp                       \
    src/core/crypto/aes_ccm.cpp                             \
    src/core/crypto/aes_ecb.cpp                             \
    src/core/crypto/hmac_sha256.cpp                         \
    src/core/crypto/mbedtls.cpp                             \
    src/core/crypto/pbkdf2_cmac.cpp                         \
    src/core/crypto/sha256.cpp                              \
    src/core/diags/factory_diags.cpp                        \
    src/core/mac/channel_mask.cpp                           \
    src/core/mac/data_poll_handler.cpp                      \
    src/core/mac/data_poll_sender.cpp                       \
    src/core/mac/mac.cpp                                    \
    src/core/mac/mac_filter.cpp                             \
    src/core/mac/mac_frame.cpp                              \
    src/core/mac/sub_mac.cpp                                \
    src/core/mac/sub_mac_callbacks.cpp                      \
    src/core/meshcop/announce_begin_client.cpp              \
    src/core/meshcop/border_agent.cpp                       \
    src/core/meshcop/commissioner.cpp                       \
    src/core/meshcop/dataset.cpp                            \
    src/core/meshcop/dataset_local.cpp                      \
    src/core/meshcop/dataset_manager.cpp                    \
    src/core/meshcop/dataset_manager_ftd.cpp                \
    src/core/meshcop/dtls.cpp                               \
    src/core/meshcop/energy_scan_client.cpp                 \
    src/core/meshcop/joiner.cpp                             \
    src/core/meshcop/joiner_router.cpp                      \
    src/core/meshcop/leader.cpp                             \
    src/core/meshcop/meshcop.cpp                            \
    src/core/meshcop/meshcop_tlvs.cpp                       \
    src/core/meshcop/panid_query_client.cpp                 \
    src/core/meshcop/timestamp.cpp                          \
    src/core/net/dhcp6_client.cpp                           \
    src/core/net/dhcp6_server.cpp                           \
    src/core/net/dns_client.cpp                             \
    src/core/net/icmp6.cpp                                  \
    src/core/net/ip6.cpp                                    \
    src/core/net/ip6_address.cpp                            \
    src/core/net/ip6_filter.cpp                             \
    src/core/net/ip6_headers.cpp                            \
    src/core/net/ip6_mpl.cpp                                \
    src/core/net/netif.cpp                                  \
    src/core/net/udp6.cpp                                   \
    src/core/radio/radio_callbacks.cpp                      \
    src/core/radio/radio_platform.cpp                       \
    src/core/thread/address_resolver.cpp                    \
    src/core/thread/announce_begin_server.cpp               \
    src/core/thread/announce_sender.cpp                     \
    src/core/thread/child_table.cpp                         \
    src/core/thread/device_mode.cpp                         \
    src/core/thread/energy_scan_server.cpp                  \
    src/core/thread/indirect_sender.cpp                     \
    src/core/thread/key_manager.cpp                         \
    src/core/thread/link_quality.cpp                        \
    src/core/thread/lowpan.cpp                              \
    src/core/thread/mesh_forwarder.cpp                      \
    src/core/thread/mesh_forwarder_ftd.cpp                  \
    src/core/thread/mesh_forwarder_mtd.cpp                  \
    src/core/thread/mle.cpp                                 \
    src/core/thread/mle_router.cpp                          \
    src/core/thread/network_data.cpp                        \
    src/core/thread/network_data_leader.cpp                 \
    src/core/thread/network_data_leader_ftd.cpp             \
    src/core/thread/network_data_local.cpp                  \
    src/core/thread/network_diagnostic.cpp                  \
    src/core/thread/panid_query_server.cpp                  \
    src/core/thread/router_table.cpp                        \
    src/core/thread/src_match_controller.cpp                \
    src/core/thread/thread_netif.cpp                        \
    src/core/thread/topology.cpp                            \
    src/core/utils/channel_manager.cpp                      \
    src/core/utils/channel_monitor.cpp                      \
    src/core/utils/child_supervision.cpp                    \
    src/core/utils/heap.cpp                                 \
    src/core/utils/jam_detector.cpp                         \
    src/core/utils/missing_strlcpy.c                        \
    src/core/utils/missing_strlcat.c                        \
    src/core/utils/missing_strnlen.c                        \
    src/core/utils/parse_cmdline.cpp                        \
    src/core/utils/slaac_address.cpp                        \
    src/ncp/hdlc.cpp                                        \
    src/ncp/spinel.c                                        \
    src/ncp/spinel_decoder.cpp                              \
    src/ncp/spinel_encoder.cpp                              \
    src/posix/platform/alarm.c                              \
    src/posix/platform/entropy.c                            \
    src/posix/platform/hdlc_interface.cpp                   \
    src/posix/platform/logging.c                            \
    src/posix/platform/misc.c                               \
    src/posix/platform/radio_spinel.cpp                     \
    src/posix/platform/settings.cpp                         \
    src/posix/platform/system.c                             \
    src/posix/platform/uart.c                               \
    third_party/mbedtls/repo/library/md.c                   \
    third_party/mbedtls/repo/library/md_wrap.c              \
    third_party/mbedtls/repo/library/memory_buffer_alloc.c  \
    third_party/mbedtls/repo/library/platform.c             \
    third_party/mbedtls/repo/library/platform_util.c        \
    third_party/mbedtls/repo/library/sha256.c               \
    third_party/mbedtls/repo/library/bignum.c               \
    third_party/mbedtls/repo/library/ccm.c                  \
    third_party/mbedtls/repo/library/cipher.c               \
    third_party/mbedtls/repo/library/cipher_wrap.c          \
    third_party/mbedtls/repo/library/cmac.c                 \
    third_party/mbedtls/repo/library/ctr_drbg.c             \
    third_party/mbedtls/repo/library/debug.c                \
    third_party/mbedtls/repo/library/ecjpake.c              \
    third_party/mbedtls/repo/library/ecp_curves.c           \
    third_party/mbedtls/repo/library/entropy.c              \
    third_party/mbedtls/repo/library/entropy_poll.c         \
    third_party/mbedtls/repo/library/ssl_cookie.c           \
    third_party/mbedtls/repo/library/ssl_ciphersuites.c     \
    third_party/mbedtls/repo/library/ssl_cli.c              \
    third_party/mbedtls/repo/library/ssl_srv.c              \
    third_party/mbedtls/repo/library/ssl_ticket.c           \
    third_party/mbedtls/repo/library/ssl_tls.c              \
    third_party/mbedtls/repo/library/aes.c                  \
    third_party/mbedtls/repo/library/ecp.c                  \
    $(NULL)

include $(OT_EXTRA_BUILD_CONFIG)

ifeq ($(filter -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=%,$(LOCAL_CFLAGS)),)
LOCAL_CFLAGS                                                                += \
    -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"openthread-core-posix-config.h\"   \
    $(NULL)
endif

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_MODULE := ot-cli
LOCAL_MODULE_TAGS := eng

LOCAL_C_INCLUDES                                         := \
    $(LOCAL_PATH)/include                                   \
    $(LOCAL_PATH)/src                                       \
    $(LOCAL_PATH)/src/cli                                   \
    $(LOCAL_PATH)/src/core                                  \
    $(LOCAL_PATH)/src/posix/platform                        \
    $(LOCAL_PATH)/third_party/mbedtls                       \
    $(LOCAL_PATH)/third_party/mbedtls/repo/include          \
    $(NULL)

LOCAL_CFLAGS                                                                := \
    -DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"                                 \
    -DOPENTHREAD_CONFIG_FILE=\<openthread-config-android.h\>                   \
    $(OPENTHREAD_COMMON_FLAGS)                                                 \
    -DOPENTHREAD_CONFIG_POSIX_APP_ENABLE_PTY_DEVICE=1                          \
    -DOPENTHREAD_CONFIG_UART_CLI_RAW=1                                         \
    -DOPENTHREAD_FTD=1                                                         \
    -DOPENTHREAD_POSIX=1                                                       \
    -DOPENTHREAD_POSIX_APP_TYPE=2                                              \
    -DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"                             \
    $(NULL)

LOCAL_CPPFLAGS                                                              := \
    -Wno-non-virtual-dtor                                                      \
    $(NULL)

LOCAL_LDLIBS                               := \
    -lutil

LOCAL_SRC_FILES                            := \
    src/cli/cli.cpp                           \
    src/cli/cli_coap.cpp                      \
    src/cli/cli_commissioner.cpp              \
    src/cli/cli_console.cpp                   \
    src/cli/cli_dataset.cpp                   \
    src/cli/cli_joiner.cpp                    \
    src/cli/cli_server.cpp                    \
    src/cli/cli_uart.cpp                      \
    src/cli/cli_udp.cpp                       \
    src/posix/main.c                          \
    $(NULL)

include $(OT_EXTRA_BUILD_CONFIG)

ifeq ($(filter -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=%,$(LOCAL_CFLAGS)),)
LOCAL_CFLAGS                                                                += \
    -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"openthread-core-posix-config.h\"   \
    $(NULL)
endif

LOCAL_STATIC_LIBRARIES = ot-core
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)

LOCAL_MODULE := ot-ncp
LOCAL_MODULE_TAGS := eng

LOCAL_C_INCLUDES                                         := \
    $(LOCAL_PATH)/include                                   \
    $(LOCAL_PATH)/src                                       \
    $(LOCAL_PATH)/src/core                                  \
    $(LOCAL_PATH)/src/ncp                                   \
    $(LOCAL_PATH)/src/posix/platform                        \
    $(LOCAL_PATH)/third_party/mbedtls                       \
    $(LOCAL_PATH)/third_party/mbedtls/repo/include          \
    $(NULL)

LOCAL_CFLAGS                                                                := \
    -DMBEDTLS_CONFIG_FILE=\"mbedtls-config.h\"                                 \
    -DOPENTHREAD_CONFIG_FILE=\<openthread-config-android.h\>                   \
    $(OPENTHREAD_COMMON_FLAGS)                                                 \
    -DOPENTHREAD_CONFIG_POSIX_APP_ENABLE_PTY_DEVICE=1                          \
    -DOPENTHREAD_FTD=1                                                         \
    -DOPENTHREAD_POSIX=1                                                       \
    -DOPENTHREAD_POSIX_APP_TYPE=1                                              \
    -DSPINEL_PLATFORM_HEADER=\"spinel_platform.h\"                             \
    $(NULL)

LOCAL_CPPFLAGS                                                              := \
    -Wno-non-virtual-dtor                                                      \
    $(NULL)

LOCAL_LDLIBS                               := \
    -lutil

LOCAL_SRC_FILES                            := \
    src/ncp/changed_props_set.cpp             \
    src/ncp/ncp_base.cpp                      \
    src/ncp/ncp_base_mtd.cpp                  \
    src/ncp/ncp_base_ftd.cpp                  \
    src/ncp/ncp_base_dispatcher.cpp           \
    src/ncp/ncp_buffer.cpp                    \
    src/ncp/ncp_uart.cpp                      \
    src/posix/main.c                          \
    $(NULL)

include $(OT_EXTRA_BUILD_CONFIG)

ifeq ($(filter -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=%,$(LOCAL_CFLAGS)),)
LOCAL_CFLAGS                                                                += \
    -DOPENTHREAD_PROJECT_CORE_CONFIG_FILE=\"openthread-core-posix-config.h\"   \
    $(NULL)
endif

LOCAL_STATIC_LIBRARIES = ot-core
include $(BUILD_EXECUTABLE)
