Add LunaSVG
This commit is contained in:
155
Android/android-ndk-r27d/build/core/default-build-commands.mk
Normal file
155
Android/android-ndk-r27d/build/core/default-build-commands.mk
Normal file
@ -0,0 +1,155 @@
|
||||
# The following definitions are the defaults used by all toolchains.
|
||||
# This is included in setup-toolchain.mk just before the inclusion
|
||||
# of the toolchain's specific setup.mk file which can then override
|
||||
# these definitions.
|
||||
#
|
||||
|
||||
# These flags are used to ensure that a binary doesn't reference undefined
|
||||
# flags.
|
||||
TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
|
||||
|
||||
|
||||
# Return the list of object, static libraries and shared libraries as they
|
||||
# must appear on the final static linker command (order is important).
|
||||
#
|
||||
# This can be over-ridden by a specific toolchain. Note that by default
|
||||
# we always put libgcc _after_ all static libraries and _before_ shared
|
||||
# libraries. This ensures that any libgcc function used by the final
|
||||
# executable will be copied into it. Otherwise, it could contain
|
||||
# symbol references to the same symbols as exported by shared libraries
|
||||
# and this causes binary compatibility problems when they come from
|
||||
# system libraries (e.g. libc.so and others).
|
||||
#
|
||||
# IMPORTANT: The result must use the host path convention.
|
||||
#
|
||||
# $1: object files
|
||||
# $2: static libraries
|
||||
# $3: whole static libraries
|
||||
# $4: shared libraries
|
||||
#
|
||||
TARGET-get-linker-objects-and-libraries = \
|
||||
$(call host-path, $1) \
|
||||
$(call link-whole-archives,$3) \
|
||||
$(call host-path, $2) \
|
||||
$(PRIVATE_LIBATOMIC) \
|
||||
$(call host-path, $4) \
|
||||
|
||||
# This flag are used to provide compiler protection against format
|
||||
# string vulnerabilities.
|
||||
TARGET_FORMAT_STRING_CFLAGS := -Wformat -Werror=format-security
|
||||
|
||||
# This flag disables the above security checks
|
||||
TARGET_DISABLE_FORMAT_STRING_CFLAGS := -Wno-error=format-security
|
||||
|
||||
define cmd-build-shared-library
|
||||
$(PRIVATE_LD_DRIVER) \
|
||||
-Wl,-soname,$(notdir $(LOCAL_BUILT_MODULE)) \
|
||||
-shared \
|
||||
$(PRIVATE_LINKER_OBJECTS_AND_LIBRARIES) \
|
||||
$(GLOBAL_LDFLAGS) \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
$(PRIVATE_LDLIBS) \
|
||||
-o $(call host-path,$(LOCAL_BUILT_MODULE))
|
||||
endef
|
||||
|
||||
# The following -rpath-link= are needed for ld.bfd (default for ARM64) when
|
||||
# linking executables to supress warning about missing symbol from libraries not
|
||||
# directly needed. ld.gold (default for all other architectures) doesn't emulate
|
||||
# this buggy behavior.
|
||||
define cmd-build-executable
|
||||
$(PRIVATE_LD_DRIVER) \
|
||||
-Wl,-rpath-link=$(call host-path,$(PRIVATE_SYSROOT_API_LIB_DIR)) \
|
||||
-Wl,-rpath-link=$(call host-path,$(TARGET_OUT)) \
|
||||
$(PRIVATE_LINKER_OBJECTS_AND_LIBRARIES) \
|
||||
$(GLOBAL_LDFLAGS) \
|
||||
$(PRIVATE_LDFLAGS) \
|
||||
$(PRIVATE_LDLIBS) \
|
||||
-o $(call host-path,$(LOCAL_BUILT_MODULE))
|
||||
endef
|
||||
|
||||
define cmd-build-static-library
|
||||
$(PRIVATE_AR) $(call host-path,$(LOCAL_BUILT_MODULE)) $(PRIVATE_AR_OBJECTS)
|
||||
endef
|
||||
|
||||
cmd-strip = $(PRIVATE_STRIP) $(PRIVATE_STRIP_MODE) $(call host-path,$1)
|
||||
|
||||
# arm32 currently uses a linker script in place of libgcc to ensure that
|
||||
# libunwind is linked in the correct order. --exclude-libs does not propagate to
|
||||
# the contents of the linker script and can't be specified within the linker
|
||||
# script. Hide both regardless of architecture to future-proof us in case we
|
||||
# move other architectures to a linker script (which we may want to do so we
|
||||
# automatically link libclangrt on other architectures).
|
||||
TARGET_LIBATOMIC = -latomic
|
||||
TARGET_LDLIBS := -lc -lm
|
||||
|
||||
LLVM_TOOLCHAIN_PREFIX := $(TOOLCHAIN_ROOT)/bin/
|
||||
|
||||
# IMPORTANT: The following definitions must use lazy assignment because
|
||||
# the value of TOOLCHAIN_NAME or TARGET_CFLAGS can be changed later by
|
||||
# the toolchain's setup.mk script.
|
||||
TOOLCHAIN_PREFIX = $(TOOLCHAIN_ROOT)/bin/$(TOOLCHAIN_NAME)-
|
||||
|
||||
TARGET_CC = $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
|
||||
TARGET_CXX = $(LLVM_TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
|
||||
|
||||
CLANG_TIDY = $(LLVM_TOOLCHAIN_PREFIX)clang-tidy$(HOST_EXEEXT)
|
||||
|
||||
GLOBAL_CFLAGS = \
|
||||
-target $(LLVM_TRIPLE)$(TARGET_PLATFORM_LEVEL) \
|
||||
-fdata-sections \
|
||||
-ffunction-sections \
|
||||
-fstack-protector-strong \
|
||||
-funwind-tables \
|
||||
-no-canonical-prefixes \
|
||||
|
||||
# This is unnecessary given the new toolchain layout, but Studio will not
|
||||
# recognize this as an Android build if there is no --sysroot flag.
|
||||
# TODO: Teach Studio to recognize Android builds based on --target.
|
||||
GLOBAL_CFLAGS += --sysroot $(call host-path,$(NDK_UNIFIED_SYSROOT_PATH))
|
||||
|
||||
# Always enable debug info. We strip binaries when needed.
|
||||
GLOBAL_CFLAGS += -g
|
||||
|
||||
# TODO: Remove.
|
||||
GLOBAL_CFLAGS += \
|
||||
-Wno-invalid-command-line-argument \
|
||||
-Wno-unused-command-line-argument \
|
||||
|
||||
GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=2
|
||||
|
||||
|
||||
ifeq ($(APP_WEAK_API_DEFS), true)
|
||||
GLOBAL_CFLAGS += \
|
||||
-D__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__ \
|
||||
-Werror=unguarded-availability \
|
||||
|
||||
endif
|
||||
|
||||
GLOBAL_LDFLAGS = \
|
||||
-target $(LLVM_TRIPLE)$(TARGET_PLATFORM_LEVEL) \
|
||||
-no-canonical-prefixes \
|
||||
|
||||
ifeq ($(APP_OPTIM),release)
|
||||
GLOBAL_LDFLAGS += -Wl,--gc-sections
|
||||
endif
|
||||
|
||||
GLOBAL_CXXFLAGS = $(GLOBAL_CFLAGS) -fno-exceptions -fno-rtti
|
||||
|
||||
TARGET_CFLAGS =
|
||||
TARGET_CONLYFLAGS =
|
||||
TARGET_CXXFLAGS = $(TARGET_CFLAGS)
|
||||
|
||||
TARGET_ASM = $(TOOLCHAIN_ROOT)/bin/yasm
|
||||
TARGET_ASMFLAGS =
|
||||
|
||||
TARGET_LD = $(TOOLCHAIN_ROOT)/bin/ld
|
||||
TARGET_LDFLAGS :=
|
||||
|
||||
TARGET_AR = $(LLVM_TOOLCHAIN_PREFIX)llvm-ar$(HOST_EXEEXT)
|
||||
TARGET_ARFLAGS := crsD
|
||||
|
||||
TARGET_STRIP = $(LLVM_TOOLCHAIN_PREFIX)llvm-strip$(HOST_EXEEXT)
|
||||
|
||||
TARGET_OBJ_EXTENSION := .o
|
||||
TARGET_LIB_EXTENSION := .a
|
||||
TARGET_SONAME_EXTENSION := .so
|
||||
Reference in New Issue
Block a user