Home | History | Annotate | Download | only in llvm-3.5
      1 # Copyright (C) 2014 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.5
     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 
     26 TOOLCHAIN_VERSION := 4.9
     27 
     28 ifneq ($(filter %bcarmeabi-v7a,$(TARGET_ARCH_ABI)),)
     29 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
     30 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
     31 TARGET_ARCH_ABI  := armeabi-v7a
     32 TARGET_ARM_MODE  := arm
     33 TARGET_LDFLAGS   += -Wl,-link-native-binary
     34 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
     35 
     36 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION))
     37 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
     38 
     39 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
     40 
     41 else
     42 ifneq ($(filter %bcarmeabi-v7a-hard,$(TARGET_ARCH_ABI)),)
     43 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
     44 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
     45 TARGET_ARCH_ABI  := armeabi-v7a-hard
     46 TARGET_ARM_MODE  := arm
     47 TARGET_LDFLAGS   += -Wl,-link-native-binary
     48 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
     49 
     50 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION))
     51 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
     52 
     53 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
     54 
     55 else
     56 ifneq ($(filter %bcarmeabi,$(TARGET_ARCH_ABI)),)
     57 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
     58 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
     59 TARGET_ARCH_ABI  := armeabi
     60 TARGET_ARM_MODE  := arm
     61 TARGET_LDFLAGS   += -Wl,-link-native-binary
     62 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
     63 
     64 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/arm-linux-androideabi-$(TOOLCHAIN_VERSION))
     65 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/arm-linux-androideabi-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
     66 
     67 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
     68 
     69 else
     70 ifneq ($(filter %bcx86,$(TARGET_ARCH_ABI)),)
     71 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
     72 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
     73 TARGET_ARCH_ABI  := x86
     74 TARGET_LDFLAGS   += -Wl,-link-native-binary
     75 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
     76 
     77 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/x86-$(TOOLCHAIN_VERSION))
     78 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/i686-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
     79 
     80 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
     81 
     82 else
     83 ifneq ($(filter %bcmips,$(TARGET_ARCH_ABI)),)
     84 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
     85 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
     86 TARGET_ARCH_ABI  := mips
     87 TARGET_LDFLAGS   += -Wl,-link-native-binary
     88 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
     89 
     90 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/mipsel-linux-android-$(TOOLCHAIN_VERSION))
     91 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/mipsel-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
     92 
     93 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
     94 
     95 else
     96 ifneq ($(filter %bcarm64-v8a,$(TARGET_ARCH_ABI)),)
     97 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm64
     98 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm64/gdbserver/gdbserver
     99 TARGET_ARCH_ABI  := arm64-v8a
    100 TARGET_LDFLAGS   += -Wl,-link-native-binary
    101 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    102 
    103 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/aarch64-linux-android-$(TOOLCHAIN_VERSION))
    104 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/aarch64-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
    105 UNKNOWN_ABI_64   := true
    106 
    107 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
    108 
    109 else
    110 ifneq ($(filter %bcx86_64,$(TARGET_ARCH_ABI)),)
    111 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86_64
    112 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86_64/gdbserver/gdbserver
    113 TARGET_ARCH_ABI  := x86_64
    114 TARGET_LDFLAGS   += -Wl,-link-native-binary
    115 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    116 
    117 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/x86_64-$(TOOLCHAIN_VERSION))
    118 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/x86_64-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
    119 UNKNOWN_ABI_64   := true
    120 
    121 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
    122 
    123 else
    124 ifneq ($(filter %bcmips64,$(TARGET_ARCH_ABI)),)
    125 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips64
    126 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips64/gdbserver/gdbserver
    127 TARGET_ARCH_ABI  := mips64
    128 TARGET_LDFLAGS   += -Wl,-link-native-binary
    129 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    130 
    131 TARGET_PREBUILT_ROOT = $(call host-prebuilt-tag,$(NDK_ROOT)/toolchains/mips64el-linux-android-$(TOOLCHAIN_VERSION))
    132 cmd-strip = $(TARGET_PREBUILT_ROOT)/bin/mips64el-linux-android-strip$(HOST_EXEEXT) --strip-unneeded $(call host-path,$1)
    133 UNKNOWN_ABI_64   := true
    134 
    135 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
    136 
    137 else
    138 ifneq ($(filter %armeabi-v7a,$(TARGET_ARCH_ABI)),)
    139 
    140 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
    141 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
    142 TARGET_ARCH_ABI  := armeabi-v7a
    143 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    144 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.a $(TARGET_LDLIBS)
    145 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a/libportable.wrap
    146 include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.5/setup.mk
    147 
    148 else
    149 ifneq ($(filter %armeabi-v7a-hard,$(TARGET_ARCH_ABI)),)
    150 
    151 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
    152 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
    153 TARGET_ARCH_ABI  := armeabi-v7a-hard
    154 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    155 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.a $(TARGET_LDLIBS)
    156 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi-v7a-hard/libportable.wrap
    157 include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.5/setup.mk
    158 
    159 else
    160 ifneq ($(filter %armeabi,$(TARGET_ARCH_ABI)),)
    161 
    162 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm
    163 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm/gdbserver/gdbserver
    164 TARGET_ARCH_ABI  := armeabi
    165 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    166 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.a $(TARGET_LDLIBS)
    167 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/armeabi/libportable.wrap
    168 include $(NDK_ROOT)/toolchains/arm-linux-androideabi-clang3.5/setup.mk
    169 
    170 else
    171 ifneq ($(filter %x86,$(TARGET_ARCH_ABI)),)
    172 
    173 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86
    174 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86/gdbserver/gdbserver
    175 TARGET_ARCH_ABI  := x86
    176 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    177 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.a $(TARGET_LDLIBS)
    178 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86/libportable.wrap
    179 include $(NDK_ROOT)/toolchains/x86-clang3.5/setup.mk
    180 
    181 else
    182 ifneq ($(filter %mips,$(TARGET_ARCH_ABI)),)
    183 
    184 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips
    185 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips/gdbserver/gdbserver
    186 TARGET_ARCH_ABI  := mips
    187 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    188 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.a $(TARGET_LDLIBS)
    189 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips/libportable.wrap
    190 include $(NDK_ROOT)/toolchains/mipsel-linux-android-clang3.5/setup.mk
    191 
    192 else
    193 ifneq ($(filter %arm64-v8a,$(TARGET_ARCH_ABI)),)
    194 
    195 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-arm64
    196 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-arm64/gdbserver/gdbserver
    197 TARGET_ARCH_ABI  := arm64-v8a
    198 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    199 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/arm64-v8a/libportable.a $(TARGET_LDLIBS)
    200 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/arm64-v8a/libportable.wrap
    201 include $(NDK_ROOT)/toolchains/aarch64-linux-android-clang3.5/setup.mk
    202 
    203 else
    204 ifneq ($(filter %x86_64,$(TARGET_ARCH_ABI)),)
    205 
    206 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-x86_64
    207 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-x86_64/gdbserver/gdbserver
    208 TARGET_ARCH_ABI  := x86_64
    209 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    210 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/x86_64/libportable.a $(TARGET_LDLIBS)
    211 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/x86_64/libportable.wrap
    212 include $(NDK_ROOT)/toolchains/x86_64-clang3.5/setup.mk
    213 
    214 else
    215 ifneq ($(filter %mips64,$(TARGET_ARCH_ABI)),)
    216 
    217 SYSROOT_LINK     := $(NDK_PLATFORMS_ROOT)/$(TARGET_PLATFORM)/arch-mips64
    218 TARGET_GDBSERVER := $(NDK_ROOT)/prebuilt/android-mips64/gdbserver/gdbserver
    219 TARGET_ARCH_ABI  := mips64
    220 NDK_APP_DST_DIR  := $(NDK_APP_PROJECT_PATH)/libs/$(TARGET_ARCH_ABI)
    221 TARGET_LDLIBS    := $(NDK_ROOT)/sources/android/libportable/libs/mips64/libportable.a $(TARGET_LDLIBS)
    222 TARGET_LDFLAGS   += -Wl,@$(NDK_ROOT)/sources/android/libportable/libs/mips64/libportable.wrap
    223 include $(NDK_ROOT)/toolchains/mips64el-linux-android-clang3.5/setup.mk
    224 
    225 else
    226 
    227 # if unknown ABI ends with 64 suffix then use le64
    228 ifneq ($(filter %64,$(APP_ABI)),)
    229 UNKNOWN_ABI_64 := true
    230 NDK_APP_DST_DIR := $(NDK_APP_LIBS_OUT)/$(TARGET_ARCH_ABI)64
    231 endif
    232 
    233 TARGET_OBJ_EXTENSION := .bc
    234 TARGET_LIB_EXTENSION := .a
    235 TARGET_SONAME_EXTENSION := .bc
    236 
    237 include $(NDK_ROOT)/toolchains/llvm-3.5/setup-common.mk
    238 
    239 endif
    240 endif
    241 endif
    242 endif
    243 endif
    244 endif
    245 endif
    246 endif
    247 endif
    248 endif
    249 endif
    250 endif
    251 endif
    252 endif
    253 endif
    254 endif
    255