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.4 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.4/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.4/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.4/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.4/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.4/setup-common.mk 91 92else 93ifneq ($(filter %bcarm64-v8a,$(TARGET_ARCH_ABI)),) 94SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm64 95TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm64/gdbserver/gdbserver 96TARGET_ARCH_ABI := arm64-v8a 97TARGET_LDFLAGS += -Wl,-link-native-binary 98NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 99 100TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/aarch64-linux-android-$(TOOLCHAIN_VERSION)) 101cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/aarch64-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 102UNKNOWN_ABI_64 := true 103 104include $(NDK_ROOT)/toolchains/llvm-3.4/setup-common.mk 105 106else 107ifneq ($(filter %bcx86_64,$(TARGET_ARCH_ABI)),) 108SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86_64 109TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86_64/gdbserver/gdbserver 110TARGET_ARCH_ABI := x86_64 111TARGET_LDFLAGS += -Wl,-link-native-binary 112NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 113 114TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/x86_64-$(TOOLCHAIN_VERSION)) 115cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/x86_64-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 116UNKNOWN_ABI_64 := true 117 118include $(NDK_ROOT)/toolchains/llvm-3.4/setup-common.mk 119 120else 121ifneq ($(filter %bcmips64,$(TARGET_ARCH_ABI)),) 122SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips64 123TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips64/gdbserver/gdbserver 124TARGET_ARCH_ABI := mips64 125TARGET_LDFLAGS += -Wl,-link-native-binary 126NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 127 128TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/mips64el-linux-android-$(TOOLCHAIN_VERSION)) 129cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/mips64el-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1) 130UNKNOWN_ABI_64 := true 131 132include $(NDK_ROOT)/toolchains/llvm-3.4/setup-common.mk 133 134else 135ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),) 136 137SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 138TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 139TARGET_ARCH_ABI := armeabi-v7a 140NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 141TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS) 142TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.wrap 143include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.4/setup.mk 144 145else 146ifneq ($(filter %armeabi-v7a-hard,$(TARGET_ARCH_ABI)),) 147 148SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 149TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 150TARGET_ARCH_ABI := armeabi-v7a-hard 151NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 152TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.a $(TARGET_LDLIBS) 153TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.wrap 154include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.4/setup.mk 155 156else 157ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),) 158 159SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm 160TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver 161TARGET_ARCH_ABI := armeabi 162NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 163TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS) 164TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.wrap 165include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.4/setup.mk 166 167else 168ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),) 169 170SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86 171TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver 172TARGET_ARCH_ABI := x86 173NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 174TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS) 175TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.wrap 176include $(NDK_ROOT)/toolchains/x86-clang3.4/setup.mk 177 178else 179ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),) 180 181SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips 182TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver 183TARGET_ARCH_ABI := mips 184NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 185TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS) 186TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.wrap 187include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.4/setup.mk 188 189else 190ifneq ($(filter %arm64-v8a,$(TARGET_ARCH_ABI)),) 191 192SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm64 193TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm64/gdbserver/gdbserver 194TARGET_ARCH_ABI := arm64-v8a 195NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 196TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/arm64-v8a/libportable.a $(TARGET_LDLIBS) 197TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/arm64-v8a/libportable.wrap 198include $(NDK_ROOT)/toolchains/aarch64-linux-android-clang3.4/setup.mk 199 200else 201ifneq ($(filter %x86_64,$(TARGET_ARCH_ABI)),) 202 203SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86_64 204TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86_64/gdbserver/gdbserver 205TARGET_ARCH_ABI := x86_64 206NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 207TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/x86_64/libportable.a $(TARGET_LDLIBS) 208TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86_64/libportable.wrap 209include $(NDK_ROOT)/toolchains/x86_64-clang3.4/setup.mk 210 211else 212ifneq ($(filter %mips64,$(TARGET_ARCH_ABI)),) 213 214SYSROOT_LINK := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips64 215TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips64/gdbserver/gdbserver 216TARGET_ARCH_ABI := mips64 217NDK_APP_DST_DIR := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI) 218TARGET_LDLIBS := $(NDK_ROOT)/sources/android/libportable/libs/mips64/libportable.a $(TARGET_LDLIBS) 219TARGET_LDFLAGS += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips64/libportable.wrap 220include $(NDK_ROOT)/toolchains/mips64el-linux-android-clang3.4/setup.mk 221 222else 223 224TARGET_OBJ_EXTENSION := .bc 225TARGET_LIB_EXTENSION := .a 226TARGET_SONAME_EXTENSION := .bc 227 228include $(NDK_ROOT)/toolchains/llvm-3.4/setup-common.mk 229 230endif 231endif 232endif 233endif 234endif 235endif 236endif 237endif 238endif 239endif 240endif 241endif 242endif 243endif 244endif 245endif 246