diff options
author | Joseph Wen <josephwen@google.com> | 2011-06-27 18:50:49 -0700 |
---|---|---|
committer | Joseph Wen <josephwen@google.com> | 2011-06-28 14:17:25 -0700 |
commit | 05be040fdd9fa9d23259d6b6a4aaf4f2aca9c9f2 (patch) | |
tree | f0a30a5cafa8bd5133fe5e93ab30c5dec3172442 /toolchains | |
parent | d93540db02e07fd4d169e8e79de2a1fc8f952064 (diff) | |
download | gdk-05be040fdd9fa9d23259d6b6a4aaf4f2aca9c9f2.tar.gz |
Upload GDK
Change-Id: I2413c15f933ef78e734757946ae9bdaf93b91aae
Diffstat (limited to 'toolchains')
-rw-r--r-- | toolchains/arm-eabi-4.4.0/config.mk | 19 | ||||
-rw-r--r-- | toolchains/arm-eabi-4.4.0/setup.mk | 122 | ||||
-rw-r--r-- | toolchains/llvm/config.mk | 1 | ||||
-rw-r--r-- | toolchains/llvm/setup.mk | 33 |
4 files changed, 175 insertions, 0 deletions
diff --git a/toolchains/arm-eabi-4.4.0/config.mk b/toolchains/arm-eabi-4.4.0/config.mk new file mode 100644 index 0000000..43a28fa --- /dev/null +++ b/toolchains/arm-eabi-4.4.0/config.mk @@ -0,0 +1,19 @@ +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# config file for the arm-eabi-4.4.0 toolchain for the Android NDK +# the real meat is in the setup.mk file adjacent to this one +# +TOOLCHAIN_ABIS := armeabi armeabi-v7a diff --git a/toolchains/arm-eabi-4.4.0/setup.mk b/toolchains/arm-eabi-4.4.0/setup.mk new file mode 100644 index 0000000..fc187c0 --- /dev/null +++ b/toolchains/arm-eabi-4.4.0/setup.mk @@ -0,0 +1,122 @@ +# Copyright (C) 2009 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# this file is used to prepare the NDK to build with the arm-eabi-4.4.0 +# toolchain any number of source files +# +# its purpose is to define (or re-define) templates used to build +# various sources into target object files, libraries or executables. +# +# Note that this file may end up being parsed several times in future +# revisions of the NDK. +# + +TARGET_CFLAGS := \ + -fpic \ + -mthumb-interwork \ + -ffunction-sections \ + -funwind-tables \ + -fstack-protector \ + -fno-short-enums \ + -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \ + -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ \ + +# +# Normally, this macro should be defined by the toolchain automatically. +# Unfortunately, this is not the case, so add it manually. Note that +# the arm-linux-androideabi toolchain does not have this problem. +# +TARGET_CFLAGS += -D__ANDROID__ + +TARGET_LDFLAGS := + +TARGET_C_INCLUDES := \ + $(SYSROOT)/usr/include + +# This is to avoid the dreaded warning compiler message: +# note: the mangling of 'va_list' has changed in GCC 4.4 +# +# The fact that the mangling changed does not affect the NDK ABI +# very fortunately (since none of the exposed APIs used va_list +# in their exported C++ functions). Also, GCC 4.5 has already +# removed the warning from the compiler. +# +TARGET_CFLAGS += -Wno-psabi + +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) + TARGET_CFLAGS += -march=armv7-a \ + -mfloat-abi=softfp \ + -mfpu=vfp + + TARGET_LDFLAGS += -Wl,--fix-cortex-a8 +else + TARGET_CFLAGS += -march=armv5te \ + -mtune=xscale \ + -msoft-float +endif + +TARGET_CFLAGS.neon := -mfpu=neon + +TARGET_arm_release_CFLAGS := -O2 \ + -fomit-frame-pointer \ + -fstrict-aliasing \ + -funswitch-loops \ + -finline-limit=300 + +TARGET_thumb_release_CFLAGS := -mthumb \ + -Os \ + -fomit-frame-pointer \ + -fno-strict-aliasing \ + -finline-limit=64 + +# When building for debug, compile everything as arm. +TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \ + -fno-omit-frame-pointer \ + -fno-strict-aliasing + +TARGET_thumb_debug_CFLAGS := $(TARGET_thumb_release_CFLAGS) \ + -marm \ + -fno-omit-frame-pointer + +# This function will be called to determine the target CFLAGS used to build +# a C or Assembler source file, based on its tags. +# +TARGET-process-src-files-tags = \ +$(eval __arm_sources := $(call get-src-files-with-tag,arm)) \ +$(eval __thumb_sources := $(call get-src-files-without-tag,arm)) \ +$(eval __debug_sources := $(call get-src-files-with-tag,debug)) \ +$(eval __release_sources := $(call get-src-files-without-tag,debug)) \ +$(call set-src-files-target-cflags, \ + $(call set_intersection,$(__arm_sources),$(__debug_sources)), \ + $(TARGET_arm_debug_CFLAGS)) \ +$(call set-src-files-target-cflags,\ + $(call set_intersection,$(__arm_sources),$(__release_sources)),\ + $(TARGET_arm_release_CFLAGS)) \ +$(call set-src-files-target-cflags,\ + $(call set_intersection,$(__arm_sources),$(__debug_sources)),\ + $(TARGET_arm_debug_CFLAGS)) \ +$(call set-src-files-target-cflags,\ + $(call set_intersection,$(__thumb_sources),$(__release_sources)),\ + $(TARGET_thumb_release_CFLAGS)) \ +$(call set-src-files-target-cflags,\ + $(call set_intersection,$(__thumb_sources),$(__debug_sources)),\ + $(TARGET_thumb_debug_CFLAGS)) \ +$(call add-src-files-target-cflags,\ + $(call get-src-files-with-tag,neon),\ + $(TARGET_CFLAGS.neon)) \ +$(call set-src-files-text,$(__arm_sources),arm$(space)$(space)) \ +$(call set-src-files-text,$(__thumb_sources),thumb) + +TARGET_LIBGCC := $(shell $(TARGET_CC) -mthumb-interwork -print-libgcc-file-name) diff --git a/toolchains/llvm/config.mk b/toolchains/llvm/config.mk new file mode 100644 index 0000000..c880834 --- /dev/null +++ b/toolchains/llvm/config.mk @@ -0,0 +1 @@ +TOOLCHAIN_ABIS := llvm diff --git a/toolchains/llvm/setup.mk b/toolchains/llvm/setup.mk new file mode 100644 index 0000000..7b3b481 --- /dev/null +++ b/toolchains/llvm/setup.mk @@ -0,0 +1,33 @@ +TOOLCHAIN_PREFIX := $(TOOLCHAIN_PREFIX:%-=%) + +TARGET_CC := $(TOOLCHAIN_PREFIX)llvm-ndk-cc +TARGET_CFLAGS := + +TARGET_CXX := $(TOOLCHAIN_PREFIX)llvm-ndk-cc +TARGET_CXXFLAGS := $(TARGET_CFLAGS) -fno-exceptions -fno-rtti -D __cplusplus + +TARGET_LD := $(TOOLCHAIN_PREFIX)llvm-ndk-link +TARGET_LDFLAGS := + +TARGET_AR := ar +TARGET_ARFLAGS := crs + +TARGET_C_INCLUDES := \ + $(SYSROOT)/usr/include + +# +# Break build/core/default-build-commands.mk rules +# +TARGET_NO_UNDEFINED_LDFLAGS := +TARGET_NO_EXECUTE_CFLAGS := +TARGET_NO_EXECUTE_LDFLAGS := +TARGET_LDLIBS := +cmd-strip := + +define cmd-build-bitcode +$(TARGET_LD) \ + $(call host-path, $(PRIVATE_OBJECTS)) \ + $(PRIVATE_LDFLAGS) \ + $(PRIVATE_LDLIBS) \ + -o $(call host-path, $@) +endef |