2 # Copyright (c) 2018, The OpenThread Authors.
5 # Redistribution and use in source and binary forms, with or without
6 # modification, are permitted provided that the following conditions are met:
7 # 1. Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer.
9 # 2. Redistributions in binary form must reproduce the above copyright
10 # notice, this list of conditions and the following disclaimer in the
11 # documentation and/or other materials provided with the distribution.
12 # 3. Neither the name of the copyright holder nor the
13 # names of its contributors may be used to endorse or promote products
14 # derived from this software without specific prior written permission.
16 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20 # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 # POSSIBILITY OF SUCH DAMAGE.
29 LOCAL_PATH := $(call my-dir)
31 ifeq ($(OTBR_ENABLE_ANDROID_MK),1)
33 ifneq ($(OTBR_PROJECT_ANDROID_MK),)
34 include $(OTBR_PROJECT_ANDROID_MK)
39 LOCAL_MODULE_CLASS := STATIC_LIBRARIES
40 LOCAL_MODULE := libotbr-dbus-client
41 LOCAL_MODULE_TAGS := eng
43 LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
46 $(LOCAL_PATH)/include \
48 external/openthread/include \
51 src/dbus/client/client_error.cpp \
52 src/dbus/client/thread_api_dbus.cpp \
53 src/dbus/common/dbus_message_helper.cpp \
54 src/dbus/common/dbus_message_helper_openthread.cpp \
55 src/dbus/common/error.cpp \
57 LOCAL_EXPORT_C_INCLUDE_DIRS := \
59 $(LOCAL_PATH)/include \
61 LOCAL_SHARED_LIBRARIES += libdbus
63 include $(BUILD_STATIC_LIBRARY)
67 LOCAL_MODULE_CLASS := EXECUTABLES
68 LOCAL_MODULE := otbr-agent
69 LOCAL_MODULE_TAGS := eng
70 LOCAL_SHARED_LIBRARIES := libdbus
72 OTBR_GEN_HEADER_DIR := $(local-intermediates-dir)/gen
73 OTBR_GEN_DBUS_INTROSPECT_HEADER := $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
75 $(OTBR_GEN_DBUS_INTROSPECT_HEADER): $(LOCAL_PATH)/src/dbus/server/introspect.xml
76 mkdir -p $(OTBR_GEN_HEADER_DIR)/dbus/server
77 echo 'R"INTROSPECT(' > $@
79 echo ')INTROSPECT"' >> $@
81 $(LOCAL_PATH)/src/dbus/server/dbus_thread_object.cpp: $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
83 ifneq ($(ANDROID_NDK),1)
84 LOCAL_SHARED_LIBRARIES += libcutils
88 $(LOCAL_PATH)/include \
91 external/gtest/include \
92 external/openthread/include \
93 external/openthread/src \
94 external/openthread/src/posix/platform/include \
95 $(OTBR_GEN_HEADER_DIR) \
96 $(OTBR_PROJECT_INCLUDES)
98 LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
100 -DOTBR_PACKAGE_VERSION=\"0.2.0\" \
101 -DOTBR_ENABLE_DBUS_SERVER=1 \
102 -DOTBR_DBUS_INTROSPECT_FILE=\"\" \
103 $(OTBR_PROJECT_CFLAGS) \
105 LOCAL_CPPFLAGS += -std=c++14
107 LOCAL_GENERATED_SOURCES = $(OTBR_GEN_DBUS_INTROSPECT_HEADER)
110 src/agent/advertising_proxy.cpp \
111 src/agent/agent_instance.cpp \
112 src/agent/instance_params.cpp \
113 src/agent/border_agent.cpp \
115 src/agent/ncp_openthread.cpp \
116 src/agent/thread_helper.cpp \
117 src/common/logging.cpp \
118 src/dbus/common/dbus_message_dump.cpp \
119 src/dbus/common/dbus_message_helper.cpp \
120 src/dbus/common/dbus_message_helper_openthread.cpp \
121 src/dbus/common/error.cpp \
122 src/dbus/server/dbus_agent.cpp \
123 src/dbus/server/dbus_object.cpp \
124 src/dbus/server/dbus_thread_object.cpp \
125 src/dbus/server/error_helper.cpp \
126 src/utils/event_emitter.cpp \
128 src/utils/strcpy_utils.cpp \
130 LOCAL_STATIC_LIBRARIES += \
138 ifeq ($(OTBR_MDNS),mDNSResponder)
140 src/mdns/mdns_mdnssd.cpp \
142 LOCAL_SHARED_LIBRARIES += libmdnssd
145 LOCAL_SRC_FILES += $(OTBR_PROJECT_SRC_FILES)
146 LOCAL_STATIC_LIBRARIES += $(OTBR_PROJECT_STATIC_LIBRARIES)
147 LOCAL_SHARED_LIBRARIES += $(OTBR_PROJECT_SHARED_LIBRARIES)
149 include $(BUILD_EXECUTABLE)
151 include $(CLEAR_VARS)
153 LOCAL_MODULE_CLASS := ETC
154 LOCAL_MODULE := otbr-agent.conf
155 LOCAL_MODULE_TAGS := eng
157 OTBR_AGENT_USER ?= root
158 OTBR_AGENT_GROUP ?= root
160 LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/dbus-1/system.d
161 OTBR_GEN_DBUS_CONF_DIR := $(local-intermediates-dir)/gen
162 $(OTBR_GEN_DBUS_CONF_DIR)/otbr-agent.conf: $(LOCAL_PATH)/src/agent/otbr-agent.conf.in
163 mkdir -p $(OTBR_GEN_DBUS_CONF_DIR)
164 sed -e 's/@OTBR_AGENT_USER@/$(OTBR_AGENT_USER)/g' -e 's/@OTBR_AGENT_GROUP@/$(OTBR_AGENT_GROUP)/g' $< > $@
166 # Dirty hack for Android.mk to copy config files from the intermediate directory.
167 LOCAL_PATH := $(local-intermediates-dir)
168 LOCAL_SRC_FILES := gen/otbr-agent.conf
170 include $(BUILD_PREBUILT)
171 endif # ifeq ($(OTBR_ENABLE_ANDROID_MK),1)