129 lines
4.1 KiB
Makefile
129 lines
4.1 KiB
Makefile
# Configuration for Linux on x86 as a target.
|
|
# Included by combo/select.make
|
|
|
|
# You can set TARGET_TOOLS_PREFIX to get gcc from somewhere else
|
|
ifeq ($(strip $($(combo_target)TOOLS_PREFIX)),)
|
|
$(combo_target)TOOLS_PREFIX := \
|
|
prebuilt/$(HOST_PREBUILT_TAG)/toolchain/i686-unknown-linux-gnu-4.2.1/bin/i686-unknown-linux-gnu-
|
|
endif
|
|
|
|
$(combo_target)CC := $($(combo_target)TOOLS_PREFIX)gcc$(HOST_EXECUTABLE_SUFFIX)
|
|
$(combo_target)CXX := $($(combo_target)TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX)
|
|
$(combo_target)AR := $($(combo_target)TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX)
|
|
$(combo_target)OBJCOPY := $($(combo_target)TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX)
|
|
$(combo_target)LD := $($(combo_target)TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX)
|
|
|
|
ifneq ($(wildcard $($(combo_target)CC)),)
|
|
$(combo_target)LIBGCC := \
|
|
$(shell $($(combo_target)CC) -m32 -print-file-name=libgcc.a) \
|
|
$(shell $($(combo_target)CC) -m32 -print-file-name=libgcc_eh.a)
|
|
endif
|
|
|
|
$(combo_target)NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
|
|
|
libc_root := bionic/libc
|
|
libm_root := bionic/libm
|
|
libstdc++_root := bionic/libstdc++
|
|
libthread_db_root := bionic/libthread_db
|
|
|
|
# unless CUSTOM_KERNEL_HEADERS is defined, we're going to use
|
|
# symlinks located in out/ to point to the appropriate kernel
|
|
# headers. see 'config/kernel_headers.make' for more details
|
|
#
|
|
ifneq ($(CUSTOM_KERNEL_HEADERS),)
|
|
KERNEL_HEADERS_COMMON := $(CUSTOM_KERNEL_HEADERS)
|
|
KERNEL_HEADERS_ARCH := $(CUSTOM_KERNEL_HEADERS)
|
|
else
|
|
KERNEL_HEADERS_COMMON := $(libc_root)/kernel/common
|
|
KERNEL_HEADERS_ARCH := $(libc_root)/kernel/arch-$(TARGET_ARCH)
|
|
endif
|
|
KERNEL_HEADERS := $(KERNEL_HEADERS_COMMON) $(KERNEL_HEADERS_ARCH)
|
|
|
|
$(combo_target)GLOBAL_CFLAGS += \
|
|
-march=i686 \
|
|
-m32 \
|
|
-fPIC \
|
|
-include $(call select-android-config-h,target_linux-x86)
|
|
|
|
$(combo_target)GLOBAL_CPPFLAGS += \
|
|
-fno-use-cxa-atexit
|
|
|
|
$(combo_target)C_INCLUDES := \
|
|
$(libc_root)/arch-x86/include \
|
|
$(libc_root)/include \
|
|
$(libstdc++_root)/include \
|
|
$(KERNEL_HEADERS) \
|
|
$(libm_root)/include \
|
|
$(libm_root)/include/i387 \
|
|
$(libthread_db_root)/include
|
|
|
|
TARGET_CRTBEGIN_STATIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_static.o
|
|
TARGET_CRTBEGIN_DYNAMIC_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_dynamic.o
|
|
TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o
|
|
|
|
|
|
TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
|
|
TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
|
|
|
|
# TARGET_STRIP_MODULE:=true
|
|
|
|
$(combo_target)DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm
|
|
|
|
$(combo_target)CUSTOM_LD_COMMAND := true
|
|
define transform-o-to-shared-lib-inner
|
|
$(TARGET_CXX) \
|
|
$(TARGET_GLOBAL_LDFLAGS) \
|
|
-nostdlib -Wl,-soname,$(notdir $@) \
|
|
-shared -Bsymbolic \
|
|
-fPIC -march=i686 \
|
|
$(TARGET_GLOBAL_LD_DIRS) \
|
|
$(TARGET_CRTBEGIN_SO_O) \
|
|
$(PRIVATE_ALL_OBJECTS) \
|
|
-Wl,--whole-archive \
|
|
$(call normalize-host-libraries,$(PRIVATE_ALL_WHOLE_STATIC_LIBRARIES)) \
|
|
-Wl,--no-whole-archive \
|
|
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
-o $@ \
|
|
$(PRIVATE_LDFLAGS) \
|
|
$(TARGET_LIBGCC) \
|
|
$(TARGET_CRTEND_SO_O)
|
|
endef
|
|
|
|
|
|
define transform-o-to-executable-inner
|
|
$(TARGET_CXX) \
|
|
$(TARGET_GLOBAL_LDFLAGS) \
|
|
-nostdlib -Bdynamic \
|
|
-Wl,-dynamic-linker,/system/bin/linker \
|
|
-Wl,-z,nocopyreloc \
|
|
-o $@ \
|
|
$(TARGET_GLOBAL_LD_DIRS) \
|
|
-Wl,-rpath-link=$(TARGET_OUT_INTERMEDIATE_LIBRARIES) \
|
|
$(call normalize-target-libraries,$(PRIVATE_ALL_SHARED_LIBRARIES)) \
|
|
$(TARGET_CRTBEGIN_DYNAMIC_O) \
|
|
$(PRIVATE_ALL_OBJECTS) \
|
|
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
$(PRIVATE_LDFLAGS) \
|
|
$(TARGET_LIBGCC) \
|
|
$(TARGET_CRTEND_O)
|
|
endef
|
|
|
|
define transform-o-to-static-executable-inner
|
|
$(TARGET_CXX) \
|
|
$(TARGET_GLOBAL_LDFLAGS) \
|
|
-nostdlib -Bstatic \
|
|
-o $@ \
|
|
$(TARGET_GLOBAL_LD_DIRS) \
|
|
$(TARGET_CRTBEGIN_STATIC_O) \
|
|
$(PRIVATE_LDFLAGS) \
|
|
$(PRIVATE_ALL_OBJECTS) \
|
|
-Wl,--start-group \
|
|
$(call normalize-target-libraries,$(PRIVATE_ALL_STATIC_LIBRARIES)) \
|
|
$(TARGET_LIBGCC) \
|
|
-Wl,--end-group \
|
|
$(TARGET_CRTEND_O)
|
|
endef
|
|
|
|
$(combo_target)GLOBAL_CFLAGS += -m32
|
|
$(combo_target)GLOBAL_LDFLAGS += -m32
|