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