host_executable.mk revision 7e57b8ca57d6de66a16cf6b81b9fc5a74d465caa
1LOCAL_IS_HOST_MODULE := true
2my_prefix := HOST_
3LOCAL_HOST_PREFIX :=
4include $(BUILD_SYSTEM)/multilib.mk
5
6ifndef LOCAL_MODULE_HOST_ARCH
7ifndef my_module_multilib
8ifeq ($(HOST_PREFER_32_BIT),true)
9my_module_multilib := 32
10else
11# By default we only build host module for the first arch.
12my_module_multilib := first
13endif
14endif
15endif
16
17ifeq ($(LOCAL_NO_FPIE),)
18LOCAL_LDFLAGS += $(HOST_FPIE_FLAGS)
19endif
20
21ifeq ($(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))
24endif
25ifeq ($(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
30endif
31
32LOCAL_2ND_ARCH_VAR_PREFIX :=
33include $(BUILD_SYSTEM)/module_arch_supported.mk
34
35ifeq ($(my_module_arch_supported),true)
36include $(BUILD_SYSTEM)/host_executable_internal.mk
37endif
38
39ifdef 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 :=
47LOCAL_INTERMEDIATE_TARGETS :=
48
49include $(BUILD_SYSTEM)/host_executable_internal.mk
50endif
51LOCAL_2ND_ARCH_VAR_PREFIX :=
52endif  # HOST_2ND_ARCH
53
54ifdef 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)
64saved_LOCAL_LDFLAGS := $(LOCAL_LDFLAGS)
65LOCAL_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
74LOCAL_LDFLAGS := $(saved_LOCAL_LDFLAGS)
75LOCAL_BUILT_MODULE := $(saved_LOCAL_BUILT_MODULE)
76LOCAL_INSTALLED_MODULE := $(saved_LOCAL_INSTALLED_MODULE)
77endif
78
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
103LOCAL_HOST_PREFIX :=
104endif
105
106LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
107my_module_arch_supported :=
108