diff --git a/core/clear_vars.mk b/core/clear_vars.mk index fb775c90f0..e2f14443bd 100644 --- a/core/clear_vars.mk +++ b/core/clear_vars.mk @@ -182,6 +182,7 @@ LOCAL_SANITIZE:= LOCAL_SANITIZE_RECOVER:= LOCAL_DBUS_PROXY_PREFIX:= LOCAL_INIT_RC:= +LOCAL_MODULE_HOST_OS:= # arch specific variables LOCAL_SRC_FILES_$(TARGET_ARCH):= diff --git a/core/module_arch_supported.mk b/core/module_arch_supported.mk index a5e4a7cbc5..9f05060fb2 100644 --- a/core/module_arch_supported.mk +++ b/core/module_arch_supported.mk @@ -8,6 +8,8 @@ ## LOCAL_MODULE_$(my_prefix)ARCH_WARN ## LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH ## LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN +## LOCAL_IS_HOST_MODULE +## LOCAL_MODULE_HOST_OS ## ## Inputs from build system: ## $(my_prefix)IS_64_BIT @@ -58,3 +60,14 @@ ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_ my_module_arch_supported := false $(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported) endif + +ifdef LOCAL_IS_HOST_MODULE +ifneq (,$(LOCAL_MODULE_HOST_OS)) + ifeq (,$(filter $($(my_prefix)OS),$(LOCAL_MODULE_HOST_OS))) + my_module_arch_supported := false + endif +else ifeq ($($(my_prefix)OS),windows) + # If LOCAL_MODULE_HOST_OS is empty, only linux and darwin are supported + my_module_arch_supported := false +endif +endif diff --git a/libs/host/Android.mk b/libs/host/Android.mk index 8c8f75589c..7eb3aa14dd 100644 --- a/libs/host/Android.mk +++ b/libs/host/Android.mk @@ -7,6 +7,7 @@ LOCAL_SRC_FILES:= \ LOCAL_CFLAGS_darwin += -DMACOSX_RSRC LOCAL_MODULE:= libhost +LOCAL_MODULE_HOST_OS := darwin linux windows LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_CXX_STL := none diff --git a/tools/zipalign/Android.mk b/tools/zipalign/Android.mk index cba6db3829..8c0240a27c 100644 --- a/tools/zipalign/Android.mk +++ b/tools/zipalign/Android.mk @@ -33,5 +33,6 @@ LOCAL_LDLIBS += -lpthread endif # BUILD_HOST_static LOCAL_MODULE := zipalign +LOCAL_MODULE_HOST_OS := darwin linux windows include $(BUILD_HOST_EXECUTABLE)