blob: 78223eba1bc3d91680b33dc53de18c166041b6c2 [file] [log] [blame]
Dan Willemsen3bf15e72016-07-25 16:03:53 -07001$(call record-module-type,HOST_EXECUTABLE)
Dan Willemsened635cf2015-09-04 15:08:08 -07002LOCAL_IS_HOST_MODULE := true
Ying Wang6feb6d52014-04-17 10:03:35 -07003my_prefix := HOST_
Dan Willemsen057aaea2015-08-14 12:59:50 -07004LOCAL_HOST_PREFIX :=
Ying Wang6feb6d52014-04-17 10:03:35 -07005include $(BUILD_SYSTEM)/multilib.mk
6
Ying Wang6e85f8b2014-06-10 16:21:50 -07007ifndef LOCAL_MODULE_HOST_ARCH
Ying Wang6feb6d52014-04-17 10:03:35 -07008ifndef my_module_multilib
Ying Wang966c1e02014-05-20 14:43:51 -07009ifeq ($(HOST_PREFER_32_BIT),true)
10my_module_multilib := 32
11else
Ying Wang6feb6d52014-04-17 10:03:35 -070012# By default we only build host module for the first arch.
13my_module_multilib := first
The Android Open Source Project88b60792009-03-03 19:28:42 -080014endif
Ying Wang966c1e02014-05-20 14:43:51 -070015endif
Ying Wang6e85f8b2014-06-10 16:21:50 -070016endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080017
Tim Murray595d0db2014-09-03 15:01:46 -070018ifeq ($(LOCAL_NO_FPIE),)
19LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS)
20endif
21
Ying Wang6feb6d52014-04-17 10:03:35 -070022ifeq ($(my_module_multilib),both)
Dan Willemsen7fe992c2016-03-02 13:54:51 -080023ifneq ($(LOCAL_MODULE_CLASS),NATIVE_TESTS)
Ying Wang6feb6d52014-04-17 10:03:35 -070024ifeq ($(LOCAL_MODULE_PATH_32)$(LOCAL_MODULE_STEM_32),)
25$(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 -080026endif
Ying Wang6feb6d52014-04-17 10:03:35 -070027ifeq ($(LOCAL_MODULE_PATH_64)$(LOCAL_MODULE_STEM_64),)
28$(error $(LOCAL_PATH): LOCAL_MODULE_STEM_64 or LOCAL_MODULE_PATH_64 is required for LOCAL_MULTILIB := both for module $(LOCAL_MODULE))
29endif
Dan Willemsen7fe992c2016-03-02 13:54:51 -080030endif
Ying Wang6feb6d52014-04-17 10:03:35 -070031else #!LOCAL_MULTILIB == both
32LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true
Ying Wang63d94fa2012-12-13 18:23:01 -080033endif
34
Ying Wang6feb6d52014-04-17 10:03:35 -070035LOCAL_2ND_ARCH_VAR_PREFIX :=
36include $(BUILD_SYSTEM)/module_arch_supported.mk
Ying Wang63d94fa2012-12-13 18:23:01 -080037
Ying Wang6feb6d52014-04-17 10:03:35 -070038ifeq ($(my_module_arch_supported),true)
39include $(BUILD_SYSTEM)/host_executable_internal.mk
40endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080041
Ying Wang6feb6d52014-04-17 10:03:35 -070042ifdef HOST_2ND_ARCH
43LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_2ND_ARCH_VAR_PREFIX)
44include $(BUILD_SYSTEM)/module_arch_supported.mk
45ifeq ($(my_module_arch_supported),true)
46# Build for HOST_2ND_ARCH
47OVERRIDE_BUILT_MODULE_PATH :=
48LOCAL_BUILT_MODULE :=
49LOCAL_INSTALLED_MODULE :=
Ying Wang6feb6d52014-04-17 10:03:35 -070050LOCAL_INTERMEDIATE_TARGETS :=
Ying Wang63d94fa2012-12-13 18:23:01 -080051
Ying Wang6feb6d52014-04-17 10:03:35 -070052include $(BUILD_SYSTEM)/host_executable_internal.mk
53endif
54LOCAL_2ND_ARCH_VAR_PREFIX :=
55endif # HOST_2ND_ARCH
56
Dan Willemsen057aaea2015-08-14 12:59:50 -070057ifdef HOST_CROSS_OS
58my_prefix := HOST_CROSS_
59LOCAL_HOST_PREFIX := $(my_prefix)
60include $(BUILD_SYSTEM)/module_arch_supported.mk
61ifeq ($(my_module_arch_supported),true)
62# Build for Windows
63OVERRIDE_BUILT_MODULE_PATH :=
64# we don't want others using the cross compiled version
65saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE)
66saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE)
Dan Willemsen9ecbf832016-02-05 16:20:19 -080067saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070068LOCAL_BUILT_MODULE :=
69LOCAL_INSTALLED_MODULE :=
70LOCAL_INTERMEDIATE_TARGETS :=
71
72ifeq ($(LOCAL_NO_FPIE),)
73LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS)
74endif
75
76include $(BUILD_SYSTEM)/host_executable_internal.mk
Dan Willemsen9ecbf832016-02-05 16:20:19 -080077LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070078LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
79LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
80endif
Dan Willemsen9ecbf832016-02-05 16:20:19 -080081
82ifdef HOST_CROSS_2ND_ARCH
83LOCAL_2ND_ARCH_VAR_PREFIX := $(HOST_CROSS_2ND_ARCH_VAR_PREFIX)
84include $(BUILD_SYSTEM)/module_arch_supported.mk
85ifeq ($(my_module_arch_supported),true)
86OVERRIDE_BUILT_MODULE_PATH :=
87# we don't want others using the cross compiled version
88saved_LOCAL_BUILT_MODULE := $(LOCAL_BUILT_MODULE)
89saved_LOCAL_INSTALLED_MODULE := $(LOCAL_INSTALLED_MODULE)
90saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
91LOCAL_BUILT_MODULE :=
92LOCAL_INSTALLED_MODULE :=
93LOCAL_INTERMEDIATE_TARGETS :=
94
95ifeq ($(LOCAL_NO_FPIE),)
96LOCAL_LDFLAGS += $(HOST_CROSS_FPIE_FLAGS)
97endif
98
99include $(BUILD_SYSTEM)/host_executable_internal.mk
100LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
101LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
102LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
103endif
104LOCAL_2ND_ARCH_VAR_PREFIX :=
105endif
Dan Willemsen057aaea2015-08-14 12:59:50 -0700106LOCAL_HOST_PREFIX :=
107endif
108
Ying Wang6feb6d52014-04-17 10:03:35 -0700109LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
110my_module_arch_supported :=