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