blob: 0d677d97f2a3b92a323d523e5a38a7064b57c74a [file] [log] [blame]
#
# 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)
WITH_MDNS ?= mojo
ifeq ($(WITH_MDNS),mojo)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := libmdns_mojom
LOCAL_MODULE_TAGS := eng
LOCAL_CPP_EXTENSION := .cc
LOCAL_C_INCLUDES := \
external/libchrome \
external/gtest/include \
$(NULL)
LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
LOCAL_CPPFLAGS += -std=c++14
LOCAL_MOJOM_FILES := \
third_party/chromecast/mojom/mdns.mojom \
$(NULL)
LOCAL_MOJOM_TYPEMAP_FILES :=
LIB_MOJO_ROOT := external/libchrome
LOCAL_SOURCE_ROOT := $(LOCAL_PATH)
include external/libchrome/generate_mojom_sources.mk
MDNS_MOJOM_SRCS := $(gen_src)
LOCAL_SHARED_LIBRARIES += libchrome libmojo
include $(BUILD_STATIC_LIBRARY)
endif
include $(CLEAR_VARS)
ifeq ($(USE_OTBR_DAEMON), 1)
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE := libotbr-dbus-client
LOCAL_MODULE_TAGS := eng
LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/src \
external/openthread/include \
$(NULL)
LOCAL_SRC_FILES = \
src/dbus/client/client_error.cpp \
src/dbus/client/thread_api_dbus.cpp \
src/dbus/common/dbus_message_helper.cpp \
src/dbus/common/dbus_message_helper_openthread.cpp \
src/dbus/common/error.cpp \
$(NULL)
LOCAL_EXPORT_C_INCLUDE_DIRS := \
$(LOCAL_PATH)/src \
$(LOCAL_PATH)/include \
$(NULL)
LOCAL_SHARED_LIBRARIES += libdbus
include $(BUILD_STATIC_LIBRARY)
endif # ifeq ($(USE_OTBR_DAEMON), 1)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := EXECUTABLES
LOCAL_MODULE := otbr-agent
LOCAL_MODULE_TAGS := eng
LOCAL_SHARED_LIBRARIES := libdbus
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/include \
$(LOCAL_PATH)/src \
external/libchrome \
external/gtest/include \
external/openthread/include \
external/openthread/src \
external/openthread/src/posix/platform/include \
$(NULL)
LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
LOCAL_CFLAGS += \
-DPACKAGE_VERSION=\"0.01.00\" \
$(NULL)
LOCAL_CPPFLAGS += -std=c++14
LOCAL_SRC_FILES := \
src/agent/agent_instance.cpp \
src/agent/border_agent.cpp \
src/agent/main.cpp \
src/common/event_emitter.cpp \
src/common/logging.cpp \
src/utils/hex.cpp \
src/utils/strcpy_utils.cpp \
$(NULL)
ifeq ($(USE_OTBR_DAEMON), 1)
LOCAL_CFLAGS += \
-DOTBR_ENABLE_NCP_OPENTHREAD=1 \
-DOTBR_ENABLE_DBUS_SERVER=1 \
$(NULL)
LOCAL_SRC_FILES += \
src/agent/ncp_openthread.cpp \
src/agent/thread_helper.cpp \
src/dbus/common/dbus_message_helper.cpp \
src/dbus/common/dbus_message_helper_openthread.cpp \
src/dbus/common/error.cpp \
src/dbus/server/dbus_agent.cpp \
src/dbus/server/dbus_object.cpp \
src/dbus/server/dbus_thread_object.cpp \
src/dbus/server/error_helper.cpp \
$(NULL)
LOCAL_STATIC_LIBRARIES += \
libopenthread-ncp \
libopenthread-cli \
ot-core \
$(NULL)
LOCAL_LDLIBS := \
-lutil
else
LOCAL_CFLAGS += -DOTBR_ENABLE_NCP_WPANTUND=1
LOCAL_SRC_FILES += \
src/agent/ncp_wpantund.cpp \
third_party/wpantund/repo/src/util/string-utils.c \
third_party/wpantund/repo/src/wpanctl/wpanctl-utils.c \
$(NULL)
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/third_party/wpantund \
$(LOCAL_PATH)/third_party/wpantund \
$(LOCAL_PATH)/third_party/wpantund/repo/src \
$(LOCAL_PATH)/third_party/wpantund/repo/src/ipc-dbus \
$(LOCAL_PATH)/third_party/wpantund/repo/src/util \
$(LOCAL_PATH)/third_party/wpantund/repo/src/wpantund \
$(LOCAL_PATH)/third_party/wpantund/repo/src/wpanctl \
$(LOCAL_PATH)/third_party/wpantund/repo/third_party/assert-macros \
$(LOCAL_PATH)/third_party/wpantund/repo/third_party/openthread/src/ncp \
$(NULL)
endif
ifeq ($(WITH_MDNS),mDNSResponder)
LOCAL_SRC_FILES += \
src/agent/mdns_mdnssd.cpp \
$(NULL)
LOCAL_SHARED_LIBRARIES += libmdnssd
else
ifeq ($(WITH_MDNS),mojo)
LOCAL_CFLAGS += \
-DOTBR_ENABLE_MDNS_MOJO=1 \
$(NULL)
LOCAL_SRC_FILES += \
src/agent/mdns_mojo.cpp \
$(NULL)
# The generated header files are not in dependency chain.
# Force dependency here
LOCAL_ADDITIONAL_DEPENDENCIES += $(MDNS_MOJOM_SRCS)
LOCAL_STATIC_LIBRARIES += libmdns_mojom
LOCAL_SHARED_LIBRARIES += libchrome libmojo
endif
endif
include $(BUILD_EXECUTABLE)
include $(CLEAR_VARS)
LOCAL_MODULE_CLASS := ETC
LOCAL_MODULE := otbr-agent.conf
LOCAL_MODULE_TAGS := eng
LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/dbus-1/system.d
LOCAL_SRC_FILES := src/agent/otbr-agent.conf
$(LOCAL_PATH)/src/agent/otbr-agent.conf: $(LOCAL_PATH)/src/agent/otbr-agent.conf.in
sed 's/@OTBR_AGENT_USER@/root/g' $< > $@
include $(BUILD_PREBUILT)