aboutsummaryrefslogtreecommitdiff
path: root/Android.mk
diff options
context:
space:
mode:
authorJiacheng Guo <gjc@google.com>2021-01-28 03:17:17 +0800
committerGitHub <noreply@github.com>2021-01-27 11:17:17 -0800
commit5de1086daa12fda3d6d2b8b7d0f8954b709d5f66 (patch)
tree96014c24173ace0145b08049e97fb20483260397 /Android.mk
parentb77f143d76925ddeda9cd39f0f3a0db0e46c35ee (diff)
downloadot-br-posix-5de1086daa12fda3d6d2b8b7d0f8954b709d5f66.tar.gz
[build] eliminate generated files from the source directory (#687)
This makes the build more deterministic and prevents incremental build issues.
Diffstat (limited to 'Android.mk')
-rw-r--r--Android.mk29
1 files changed, 20 insertions, 9 deletions
diff --git a/Android.mk b/Android.mk
index 468ec38a..e64f9422 100644
--- a/Android.mk
+++ b/Android.mk
@@ -64,18 +64,21 @@ include $(BUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
-$(LOCAL_PATH)/src/dbus/server/dbus_thread_object.cpp: $(LOCAL_PATH)/src/dbus/server/introspect.hpp
+LOCAL_MODULE_CLASS := EXECUTABLES
+LOCAL_MODULE := otbr-agent
+LOCAL_MODULE_TAGS := eng
+LOCAL_SHARED_LIBRARIES := libdbus
+
+OTBR_GEN_HEADER_DIR := $(local-intermediates-dir)/gen
+OTBR_GEN_DBUS_INTROSPECT_HEADER := $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
-$(LOCAL_PATH)/src/dbus/server/introspect.hpp: $(LOCAL_PATH)/src/dbus/server/introspect.xml
+$(OTBR_GEN_DBUS_INTROSPECT_HEADER): $(LOCAL_PATH)/src/dbus/server/introspect.xml
+ mkdir -p $(OTBR_GEN_HEADER_DIR)/dbus/server
echo 'R"INTROSPECT(' > $@
cat $+ >> $@
echo ')INTROSPECT"' >> $@
-
-LOCAL_MODULE_CLASS := EXECUTABLES
-LOCAL_MODULE := otbr-agent
-LOCAL_MODULE_TAGS := eng
-LOCAL_SHARED_LIBRARIES := libdbus
+$(LOCAL_PATH)/src/dbus/server/dbus_thread_object.cpp: $(OTBR_GEN_HEADER_DIR)/dbus/server/introspect.hpp
ifneq ($(ANDROID_NDK),1)
LOCAL_SHARED_LIBRARIES += libcutils
@@ -89,6 +92,7 @@ LOCAL_C_INCLUDES := \
external/openthread/include \
external/openthread/src \
external/openthread/src/posix/platform/include \
+ $(OTBR_GEN_HEADER_DIR) \
$(OTBR_PROJECT_INCLUDES)
LOCAL_CFLAGS += -Wall -Wextra -Wno-unused-parameter
@@ -100,6 +104,8 @@ LOCAL_CFLAGS += \
LOCAL_CPPFLAGS += -std=c++14
+LOCAL_GENERATED_SOURCES = $(OTBR_GEN_DBUS_INTROSPECT_HEADER)
+
LOCAL_SRC_FILES := \
src/agent/agent_instance.cpp \
src/agent/instance_params.cpp \
@@ -151,9 +157,14 @@ OTBR_AGENT_USER ?= root
OTBR_AGENT_GROUP ?= root
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
+OTBR_GEN_DBUS_CONF_DIR := $(local-intermediates-dir)/gen
+$(OTBR_GEN_DBUS_CONF_DIR)/otbr-agent.conf: $(LOCAL_PATH)/src/agent/otbr-agent.conf.in
+ mkdir -p $(OTBR_GEN_DBUS_CONF_DIR)
sed -e 's/@OTBR_AGENT_USER@/$(OTBR_AGENT_USER)/g' -e 's/@OTBR_AGENT_GROUP@/$(OTBR_AGENT_GROUP)/g' $< > $@
+# Dirty hack for Android.mk to copy config files from the intermediate directory.
+LOCAL_PATH := $(local-intermediates-dir)
+LOCAL_SRC_FILES := gen/otbr-agent.conf
+
include $(BUILD_PREBUILT)
endif # ifeq ($(OTBR_ENABLE_ANDROID_MK),1)