1LOCAL_IS_HOST_MODULE := true 2my_prefix := HOST_ 3LOCAL_HOST_PREFIX := 4include $(BUILD_SYSTEM)/multilib.mk 5 6ifndef LOCAL_MODULE_HOST_ARCH 7ifndef my_module_multilib 8ifeq ($(HOST_PREFER_32_BIT),true) 9my_module_multilib := 32 10else 11# By default we only build host module for the first arch. 12my_module_multilib := first 13endif 14endif 15endif 16 17ifeq ($(LOCAL_NO_FPIE),) 18LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS) 19endif 20 21ifeq ($(my_module_multilib),both) 22ifeq ($(LOCAL_MODULE_PATH_32)$(LOCAL_MODULE_STEM_32),) 23$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_32 or LOCAL_MODULE_PATH_32 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE)) 24endif 25ifeq ($(LOCAL_MODULE_PATH_64)$(LOCAL_MODULE_STEM_64),) 26$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_64 or LOCAL_MODULE_PATH_64 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE)) 27endif 28else #!LOCAL_MULTILIB == both 29LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true 30endif 31 32LOCAL_2ND_ARCH_VAR_PREFIX := 33include $(BUILD_SYSTEM)/module_arch_supported.mk 34 35ifeq ($(my_module_arch_supported),true) 36include $(BUILD_SYSTEM)/host_executable_internal.mk 37endif 38 39ifdef HOST_2ND_ARCH 40LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX) 41include $(BUILD_SYSTEM)/module_arch_supported.mk 42ifeq ($(my_module_arch_supported),true) 43# Build for HOST_2ND_ARCH 44OVERRIDE_BUILT_MODULE_PATH := 45LOCAL_BUILT_MODULE := 46LOCAL_INSTALLED_MODULE := 47LOCAL_INTERMEDIATE_TARGETS := 48 49include $(BUILD_SYSTEM)/host_executable_internal.mk 50endif 51LOCAL_2ND_ARCH_VAR_PREFIX := 52endif # HOST_2ND_ARCH 53 54ifdef HOST_CROSS_OS 55my_prefix := HOST_CROSS_ 56LOCAL_HOST_PREFIX := $(my_prefix) 57include $(BUILD_SYSTEM)/module_arch_supported.mk 58ifeq ($(my_module_arch_supported),true) 59# Build for Windows 60OVERRIDE_BUILT_MODULE_PATH := 61# we don't want others using the cross compiled version 62saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE) 63saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE) 64saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS) 65LOCAL_BUILT_MODULE := 66LOCAL_INSTALLED_MODULE := 67LOCAL_INTERMEDIATE_TARGETS := 68 69ifeq ($(LOCAL_NO_FPIE),) 70LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS) 71endif 72 73include $(BUILD_SYSTEM)/host_executable_internal.mk 74LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS) 75LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE) 76LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE) 77endif 78 79ifdef HOST_CROSS_2ND_ARCH 80LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX) 81include $(BUILD_SYSTEM)/module_arch_supported.mk 82ifeq ($(my_module_arch_supported),true) 83OVERRIDE_BUILT_MODULE_PATH := 84# we don't want others using the cross compiled version 85saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE) 86saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE) 87saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS) 88LOCAL_BUILT_MODULE := 89LOCAL_INSTALLED_MODULE := 90LOCAL_INTERMEDIATE_TARGETS := 91 92ifeq ($(LOCAL_NO_FPIE),) 93LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS) 94endif 95 96include $(BUILD_SYSTEM)/host_executable_internal.mk 97LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS) 98LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE) 99LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE) 100endif 101LOCAL_2ND_ARCH_VAR_PREFIX := 102endif 103LOCAL_HOST_PREFIX := 104endif 105 106LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := 107my_module_arch_supported := 108