blob: 0060c3e6270584551069e81278a6f05850c7a057 [file] [log] [blame]
Dan Willemsened635cf2015-09-04 15:08:08 -07001LOCAL_IS_HOST_MODULE := true
Ying Wang6feb6d52014-04-17 10:03:35 -07002my_prefix := HOST_
Dan Willemsen057aaea2015-08-14 12:59:50 -07003LOCAL_HOST_PREFIX :=
Ying Wang6feb6d52014-04-17 10:03:35 -07004include $(BUILD_SYSTEM)/multilib.mk
5
Ying Wang6e85f8b2014-06-10 16:21:50 -07006ifndef LOCAL_MODULE_HOST_ARCH
Ying Wang6feb6d52014-04-17 10:03:35 -07007ifndef my_module_multilib
Ying Wang966c1e02014-05-20 14:43:51 -07008ifeq ($(HOST_PREFER_32_BIT),true)
9my_module_multilib := 32
10else
Ying Wang6feb6d52014-04-17 10:03:35 -070011# By default we only build host module for the first arch.
12my_module_multilib := first
The Android Open Source Project88b60792009-03-03 19:28:42 -080013endif
Ying Wang966c1e02014-05-20 14:43:51 -070014endif
Ying Wang6e85f8b2014-06-10 16:21:50 -070015endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080016
Tim Murray595d0db2014-09-03 15:01:46 -070017ifeq ($(LOCAL_NO_FPIE),)
18LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS)
19endif
20
Ying Wang6feb6d52014-04-17 10:03:35 -070021ifeq ($(my_module_multilib),both)
Dan Willemsen7fe992c2016-03-02 13:54:51 -080022ifneq ($(LOCAL_MODULE_CLASS),NATIVE_TESTS)
Ying Wang6feb6d52014-04-17 10:03:35 -070023ifeq ($(LOCAL_MODULE_PATH_32)$(LOCAL_MODULE_STEM_32),)
24$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_32 or LOCAL_MODULE_PATH_32 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE))
Ying Wang63d94fa2012-12-13 18:23:01 -080025endif
Ying Wang6feb6d52014-04-17 10:03:35 -070026ifeq ($(LOCAL_MODULE_PATH_64)$(LOCAL_MODULE_STEM_64),)
27$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_64 or LOCAL_MODULE_PATH_64 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE))
28endif
Dan Willemsen7fe992c2016-03-02 13:54:51 -080029endif
Ying Wang6feb6d52014-04-17 10:03:35 -070030else #!LOCAL_MULTILIB == both
31LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true
Ying Wang63d94fa2012-12-13 18:23:01 -080032endif
33
Ying Wang6feb6d52014-04-17 10:03:35 -070034LOCAL_2ND_ARCH_VAR_PREFIX :=
35include $(BUILD_SYSTEM)/module_arch_supported.mk
Ying Wang63d94fa2012-12-13 18:23:01 -080036
Ying Wang6feb6d52014-04-17 10:03:35 -070037ifeq ($(my_module_arch_supported),true)
38include $(BUILD_SYSTEM)/host_executable_internal.mk
39endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080040
Ying Wang6feb6d52014-04-17 10:03:35 -070041ifdef HOST_2ND_ARCH
42LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
43include $(BUILD_SYSTEM)/module_arch_supported.mk
44ifeq ($(my_module_arch_supported),true)
45# Build for HOST_2ND_ARCH
46OVERRIDE_BUILT_MODULE_PATH :=
47LOCAL_BUILT_MODULE :=
48LOCAL_INSTALLED_MODULE :=
Ying Wang6feb6d52014-04-17 10:03:35 -070049LOCAL_INTERMEDIATE_TARGETS :=
Ying Wang63d94fa2012-12-13 18:23:01 -080050
Ying Wang6feb6d52014-04-17 10:03:35 -070051include $(BUILD_SYSTEM)/host_executable_internal.mk
52endif
53LOCAL_2ND_ARCH_VAR_PREFIX :=
54endif # HOST_2ND_ARCH
55
Dan Willemsen057aaea2015-08-14 12:59:50 -070056ifdef HOST_CROSS_OS
57my_prefix := HOST_CROSS_
58LOCAL_HOST_PREFIX := $(my_prefix)
59include $(BUILD_SYSTEM)/module_arch_supported.mk
60ifeq ($(my_module_arch_supported),true)
61# Build for Windows
62OVERRIDE_BUILT_MODULE_PATH :=
63# we don't want others using the cross compiled version
64saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE)
65saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE)
Dan Willemsen9ecbf832016-02-05 16:20:19 -080066saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070067LOCAL_BUILT_MODULE :=
68LOCAL_INSTALLED_MODULE :=
69LOCAL_INTERMEDIATE_TARGETS :=
70
71ifeq ($(LOCAL_NO_FPIE),)
72LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS)
73endif
74
75include $(BUILD_SYSTEM)/host_executable_internal.mk
Dan Willemsen9ecbf832016-02-05 16:20:19 -080076LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070077LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
78LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
79endif
Dan Willemsen9ecbf832016-02-05 16:20:19 -080080
81ifdef HOST_CROSS_2ND_ARCH
82LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)
83include $(BUILD_SYSTEM)/module_arch_supported.mk
84ifeq ($(my_module_arch_supported),true)
85OVERRIDE_BUILT_MODULE_PATH :=
86# we don't want others using the cross compiled version
87saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE)
88saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE)
89saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
90LOCAL_BUILT_MODULE :=
91LOCAL_INSTALLED_MODULE :=
92LOCAL_INTERMEDIATE_TARGETS :=
93
94ifeq ($(LOCAL_NO_FPIE),)
95LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS)
96endif
97
98include $(BUILD_SYSTEM)/host_executable_internal.mk
99LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
100LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
101LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
102endif
103LOCAL_2ND_ARCH_VAR_PREFIX :=
104endif
Dan Willemsen057aaea2015-08-14 12:59:50 -0700105LOCAL_HOST_PREFIX :=
106endif
107
Ying Wang6feb6d52014-04-17 10:03:35 -0700108LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
109my_module_arch_supported :=