1# Copyright (C) 2009 The Android Open Source Project 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14# 15 16# this file is used to prepare the NDK to build with the clang-3.3 17# toolchain any number of source files 18# 19# its purpose is to define (or re-define) templates used to build 20# various sources into target object files, libraries or executables. 21# 22# Note that this file may end up being parsed several times in future 23# revisions of the NDK. 24# 25 26TOOLCHAIN_VERSION := 4.8 27 28ifneq ($(filter %bcarmeabi-v7a,$(TARGET_ARCH_ABI)),) 29SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 30TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 31TARGET_ARCH_ABI := armeabi-v7a 32TARGET_LDFLAGS += -Wl,-link-native-binary 33NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 34 35TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION)) 36cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 37 38include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 39 40else 41ifneq ($(filter %bcarmeabi-v7a-hard,$(TARGET_ARCH_ABI)),) 42SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 43TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 44TARGET_ARCH_ABI := armeabi-v7a-hard 45TARGET_LDFLAGS += -Wl,-link-native-binary 46NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 47 48TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION)) 49cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 50 51include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 52 53else 54ifneq ($(filter %bcarmeabi,$(TARGET_ARCH_ABI)),) 55SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 56TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 57TARGET_ARCH_ABI := armeabi 58TARGET_LDFLAGS += -Wl,-link-native-binary 59NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 60 61TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION)) 62cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 63 64include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 65 66else 67ifneq ($(filter %bcx86,$(TARGET_ARCH_ABI)),) 68SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86 69TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver 70TARGET_ARCH_ABI := x86 71TARGET_LDFLAGS += -Wl,-link-native-binary 72NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 73 74TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/x86-$(TOOLCHAIN_VERSION)) 75cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/i686-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 76 77include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 78 79else 80ifneq ($(filter %bcmips,$(TARGET_ARCH_ABI)),) 81SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips 82TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver 83TARGET_ARCH_ABI := mips 84TARGET_LDFLAGS += -Wl,-link-native-binary 85NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 86 87TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/mipsel-linux-android-$(TOOLCHAIN_VERSION)) 88cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/mipsel-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 89 90include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 91 92else 93 94ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),) 95 96SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 97TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 98TARGET_ARCH_ABI := armeabi-v7a 99NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 100TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS) 101TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.wrap 102include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.3/setup.mk 103 104else 105ifneq ($(filter %armeabi-v7a-hard,$(TARGET_ARCH_ABI)),) 106 107SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 108TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 109TARGET_ARCH_ABI := armeabi-v7a-hard 110NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 111TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.a $(TARGET_LDLIBS) 112TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.wrap 113include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.3/setup.mk 114 115else 116ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),) 117 118SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 119TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 120TARGET_ARCH_ABI := armeabi 121NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 122TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS) 123TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.wrap 124include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.3/setup.mk 125 126else 127ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),) 128 129SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86 130TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver 131TARGET_ARCH_ABI := x86 132NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 133TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS) 134TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.wrap 135include $(NDK_ROOT)/toolchains/x86-clang3.3/setup.mk 136 137else 138ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),) 139 140SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips 141TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver 142TARGET_ARCH_ABI := mips 143NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 144TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS) 145TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.wrap 146include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.3/setup.mk 147 148else 149 150TARGET_OBJ_EXTENSION := .bc 151TARGET_LIB_EXTENSION := .a 152TARGET_SONAME_EXTENSION := .bc 153 154include $(NDK_ROOT)/toolchains/llvm-3.3/setup-common.mk 155 156endif 157endif 158endif 159endif 160endif 161endif 162endif 163endif 164endif 165endif 166