blob: 1480c2c0c6af9f3283189414da3e889be701d604 [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
9# By default we only build host module for the first arch.
10my_module_multilib := first
The Android Open Source Project88b60792009-03-03 19:28:42 -080011endif
Ying Wang966c1e02014-05-20 14:43:51 -070012endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080013
Tim Murray595d0db2014-09-03 15:01:46 -070014ifeq ($(LOCAL_NO_FPIE),)
15LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS)
16endif
17
Ying Wang6feb6d52014-04-17 10:03:35 -070018ifeq ($(my_module_multilib),both)
Dan Willemsen7fe992c2016-03-02 13:54:51 -080019ifneq ($(LOCAL_MODULE_CLASS),NATIVE_TESTS)
Ying Wang6feb6d52014-04-17 10:03:35 -070020ifeq ($(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))
Ying Wang63d94fa2012-12-13 18:23:01 -080022endif
Ying Wang6feb6d52014-04-17 10:03:35 -070023ifeq ($(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
Dan Willemsen7fe992c2016-03-02 13:54:51 -080026endif
Ying Wang6feb6d52014-04-17 10:03:35 -070027else #!LOCAL_MULTILIB == both
28LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true
Ying Wang63d94fa2012-12-13 18:23:01 -080029endif
30
Ying Wang6feb6d52014-04-17 10:03:35 -070031LOCAL_2ND_ARCH_VAR_PREFIX :=
32include $(BUILD_SYSTEM)/module_arch_supported.mk
Ying Wang63d94fa2012-12-13 18:23:01 -080033
Ying Wang6feb6d52014-04-17 10:03:35 -070034ifeq ($(my_module_arch_supported),true)
35include $(BUILD_SYSTEM)/host_executable_internal.mk
36endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080037
Ying Wang6feb6d52014-04-17 10:03:35 -070038ifdef 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 :=
Ying Wang6feb6d52014-04-17 10:03:35 -070046LOCAL_INTERMEDIATE_TARGETS :=
Ying Wang63d94fa2012-12-13 18:23:01 -080047
Ying Wang6feb6d52014-04-17 10:03:35 -070048include $(BUILD_SYSTEM)/host_executable_internal.mk
49endif
50LOCAL_2ND_ARCH_VAR_PREFIX :=
51endif # HOST_2ND_ARCH
52
Dan Willemsen057aaea2015-08-14 12:59:50 -070053ifdef 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)
Dan Willemsen9ecbf832016-02-05 16:20:19 -080063saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070064LOCAL_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
Dan Willemsen9ecbf832016-02-05 16:20:19 -080073LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
Dan Willemsen057aaea2015-08-14 12:59:50 -070074LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
75LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
76endif
Dan Willemsen9ecbf832016-02-05 16:20:19 -080077
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
Dan Willemsen057aaea2015-08-14 12:59:50 -0700102LOCAL_HOST_PREFIX :=
103endif
104
Ying Wang6feb6d52014-04-17 10:03:35 -0700105LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
106my_module_arch_supported :=