6feb6d5607
This change basically ported our target multilib to the host side. It supports 2 host build modes: x86 and x86_64 multilib build. For now you need to set "BUILD_HOST_64bit=true" to switch to x86_64 multilib build. Later we'll default to x86_64 build and have a flag to force 32-bit only build, which may be needed by SDK build. In host module definition, like in target ones, you can use the following LOCAL variables to set up multilib configuration: LOCAL_MULTILIB: can be "both", "first", "32" or "64". It also supports the same set of arch or 32-vs-64 specific LOCAL variables. By default, it builds only for the first arch. To keep path compatibility, in x86_64 build files are still output to out/host/linux-x86; Both 32-bit and 64-bit executables are in out/host/linux-86/bin; In x86_64 build 32-bit shared libraries are installed to out/host/linux-x86/lib32 and 64-bit shared libraries are installed to out/host/linux-x86/lib; 32-bit object files are output to out/host/linux-x86/obj32 and 64-bit object files are output to out/host/linux-x86/obj. Bug: 13751317 Change-Id: I6044f83b7db369a33e05209e8c588eb6dc83409f
64 lines
2.4 KiB
Makefile
64 lines
2.4 KiB
Makefile
|
|
include $(BUILD_SYSTEM)/clang/x86.mk
|
|
include $(BUILD_SYSTEM)/clang/HOST_x86_common.mk
|
|
|
|
ifeq ($(HOST_OS),linux)
|
|
CLANG_CONFIG_x86_HOST_TRIPLE := i686-linux-gnu
|
|
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_ASFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS)
|
|
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CFLAGS)
|
|
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CPPFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_CPPFLAGS)
|
|
CLANG_CONFIG_x86_HOST_COMBO_EXTRA_LDFLAGS := $(CLANG_CONFIG_x86_LINUX_HOST_EXTRA_LDFLAGS)
|
|
endif
|
|
ifeq ($(HOST_OS),darwin)
|
|
CLANG_CONFIG_x86_HOST_TRIPLE := i686-apple-darwin
|
|
endif
|
|
ifeq ($(HOST_OS),windows)
|
|
CLANG_CONFIG_x86_HOST_TRIPLE := i686-pc-mingw32
|
|
endif
|
|
|
|
CLANG_CONFIG_x86_HOST_EXTRA_ASFLAGS := \
|
|
$(CLANG_CONFIG_EXTRA_ASFLAGS) \
|
|
$(CLANG_CONFIG_HOST_EXTRA_ASFLAGS) \
|
|
$(CLANG_CONFIG_x86_EXTRA_ASFLAGS) \
|
|
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_ASFLAGS) \
|
|
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
|
|
|
CLANG_CONFIG_x86_HOST_EXTRA_CFLAGS := \
|
|
$(CLANG_CONFIG_EXTRA_CFLAGS) \
|
|
$(CLANG_CONFIG_HOST_EXTRA_CFLAGS) \
|
|
$(CLANG_CONFIG_x86_EXTRA_CFLAGS) \
|
|
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CFLAGS) \
|
|
$(CLANG_CONFIG_x86_HOST_EXTRA_ASFLAGS)
|
|
|
|
CLANG_CONFIG_x86_HOST_EXTRA_CPPFLAGS := \
|
|
$(CLANG_CONFIG_EXTRA_CPPFLAGS) \
|
|
$(CLANG_CONFIG_HOST_EXTRA_CPPFLAGS) \
|
|
$(CLANG_CONFIG_x86_EXTRA_CPPFLAGS) \
|
|
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_CPPFLAGS) \
|
|
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
|
|
|
CLANG_CONFIG_x86_HOST_EXTRA_LDFLAGS := \
|
|
$(CLANG_CONFIG_EXTRA_LDFLAGS) \
|
|
$(CLANG_CONFIG_HOST_EXTRA_LDFLAGS) \
|
|
$(CLANG_CONFIG_x86_EXTRA_LDFLAGS) \
|
|
$(CLANG_CONFIG_x86_HOST_COMBO_EXTRA_LDFLAGS) \
|
|
-target $(CLANG_CONFIG_x86_HOST_TRIPLE)
|
|
|
|
define $(clang_2nd_arch_prefix)convert-to-host-clang-flags
|
|
$(strip \
|
|
$(call subst-clang-incompatible-x86-flags,\
|
|
$(filter-out $(CLANG_CONFIG_x86_UNKNOWN_CFLAGS),\
|
|
$(1))))
|
|
endef
|
|
|
|
$(clang_2nd_arch_prefix)CLANG_HOST_GLOBAL_CFLAGS := \
|
|
$(call $(clang_2nd_arch_prefix)convert-to-host-clang-flags,$($(clang_2nd_arch_prefix)HOST_GLOBAL_CFLAGS)) \
|
|
$(CLANG_CONFIG_x86_HOST_EXTRA_CFLAGS)
|
|
|
|
$(clang_2nd_arch_prefix)CLANG_HOST_GLOBAL_CPPFLAGS := \
|
|
$(call $(clang_2nd_arch_prefix)convert-to-host-clang-flags,$($(clang_2nd_arch_prefix)HOST_GLOBAL_CPPFLAGS)) \
|
|
$(CLANG_CONFIG_x86_HOST_EXTRA_CPPFLAGS)
|
|
|
|
$(clang_2nd_arch_prefix)CLANG_HOST_GLOBAL_LDFLAGS := \
|
|
$(call $(clang_2nd_arch_prefix)convert-to-host-clang-flags,$($(clang_2nd_arch_prefix)HOST_GLOBAL_LDFLAGS)) \
|
|
$(CLANG_CONFIG_x86_HOST_EXTRA_LDFLAGS)
|