blob: 6f19bd1738d0421c87f5dc36bdd683f376b5811d [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)
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))
Ying Wang63d94fa2012-12-13 18:23:01 -080024endif
Ying Wang6feb6d52014-04-17 10:03:35 -070025ifeq ($(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
Ying Wang63d94fa2012-12-13 18:23:01 -080030endif
31
Ying Wang6feb6d52014-04-17 10:03:35 -070032LOCAL_2ND_ARCH_VAR_PREFIX :=
33include $(BUILD_SYSTEM)/module_arch_supported.mk
Ying Wang63d94fa2012-12-13 18:23:01 -080034
Ying Wang6feb6d52014-04-17 10:03:35 -070035ifeq ($(my_module_arch_supported),true)
36include $(BUILD_SYSTEM)/host_executable_internal.mk
37endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080038
Ying Wang6feb6d52014-04-17 10:03:35 -070039ifdef 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 :=
Ying Wang6feb6d52014-04-17 10:03:35 -070047LOCAL_INTERMEDIATE_TARGETS :=
Ying Wang63d94fa2012-12-13 18:23:01 -080048
Ying Wang6feb6d52014-04-17 10:03:35 -070049include $(BUILD_SYSTEM)/host_executable_internal.mk
50endif
51LOCAL_2ND_ARCH_VAR_PREFIX :=
52endif # HOST_2ND_ARCH
53
Dan Willemsen057aaea2015-08-14 12:59:50 -070054ifdef 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)
Dan Willemsen7e57b8c2016-02-05 16:20:19 -080064saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070065LOCAL_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
Dan Willemsen7e57b8c2016-02-05 16:20:19 -080074LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070075LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
76LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
77endif
Dan Willemsen7e57b8c2016-02-05 16:20:19 -080078
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
Dan Willemsen057aaea2015-08-14 12:59:50 -0700103LOCAL_HOST_PREFIX :=
104endif
105
Ying Wang6feb6d52014-04-17 10:03:35 -0700106LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
107my_module_arch_supported :=