Home | History | Annotate | Download | only in mips64el-linux-android-clang3.6
      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 mips64el llvm toolchain
     17 # 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 #
     27 # Override the toolchain prefix
     28 #
     29 
     30 LLVM_TOOLCHAIN_PREBUILT_ROOT := $(call get-toolchain-root,llvm)
     31 LLVM_TOOLCHAIN_PREFIX := $(LLVM_TOOLCHAIN_PREBUILT_ROOT)/bin/
     32 
     33 TOOLCHAIN_NAME := mips64el-linux-android
     34 BINUTILS_ROOT := $(call get-binutils-root,$(NDK_ROOT),$(TOOLCHAIN_NAME))
     35 TOOLCHAIN_ROOT := $(call get-toolchain-root,$(TOOLCHAIN_NAME)-4.9)
     36 TOOLCHAIN_PREFIX := $(TOOLCHAIN_ROOT)/bin/$(TOOLCHAIN_NAME)-
     37 
     38 TARGET_CC := $(LLVM_TOOLCHAIN_PREFIX)clang$(HOST_EXEEXT)
     39 TARGET_CXX := $(LLVM_TOOLCHAIN_PREFIX)clang++$(HOST_EXEEXT)
     40 
     41 #
     42 # CFLAGS, C_INCLUDES, and LDFLAGS
     43 #
     44 
     45 LLVM_TRIPLE := mips64el-none-linux-android
     46 
     47 TARGET_CFLAGS := \
     48     -gcc-toolchain $(call host-path,$(TOOLCHAIN_ROOT)) \
     49     -target $(LLVM_TRIPLE) \
     50     -fpic \
     51     -fno-strict-aliasing \
     52     -finline-functions \
     53     -ffunction-sections \
     54     -funwind-tables \
     55     -fstack-protector-strong \
     56     -fmessage-length=0 \
     57     -Wno-invalid-command-line-argument \
     58     -Wno-unused-command-line-argument \
     59     -no-canonical-prefixes
     60 
     61 TARGET_LDFLAGS += \
     62     -gcc-toolchain $(call host-path,$(TOOLCHAIN_ROOT)) \
     63     -target $(LLVM_TRIPLE) \
     64     -no-canonical-prefixes
     65 
     66 TARGET_mips64_release_CFLAGS := -O2 \
     67                                 -g \
     68                                 -DNDEBUG \
     69                                 -fomit-frame-pointer
     70 
     71 TARGET_mips64_debug_CFLAGS := -O0 \
     72                               -g \
     73                               -fno-omit-frame-pointer
     74 
     75 
     76 # This function will be called to determine the target CFLAGS used to build
     77 # a C or Assembler source file, based on its tags.
     78 TARGET-process-src-files-tags = \
     79 $(eval __debug_sources := $(call get-src-files-with-tag,debug)) \
     80 $(eval __release_sources := $(call get-src-files-without-tag,debug)) \
     81 $(call set-src-files-target-cflags, \
     82     $(__debug_sources),\
     83     $(TARGET_mips64_debug_CFLAGS)) \
     84 $(call set-src-files-target-cflags,\
     85     $(__release_sources),\
     86     $(TARGET_mips64_release_CFLAGS)) \
     87