Home | History | Annotate | Download | only in Reactor
      1 #
      2 # Copyright 2016 The Android Open-Source Project
      3 #
      4 # Licensed under the Apache License, Version 2.0 (the "License");
      5 # you may not use this file except in compliance with the License.
      6 # You may obtain a copy of the License at
      7 #
      8 #      http://www.apache.org/licenses/LICENSE-2.0
      9 #
     10 # Unless required by applicable law or agreed to in writing, software
     11 # distributed under the License is distributed on an "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 # See the License for the specific language governing permissions and
     14 # limitations under the License.
     15 #
     16 
     17 LOCAL_PATH:= $(call my-dir)
     18 include $(CLEAR_VARS)
     19 
     20 LOCAL_CLANG := true
     21 
     22 LOCAL_MODULE := libsubzero
     23 LOCAL_MODULE_TAGS := optional
     24 LOCAL_VENDOR_MODULE := true
     25 
     26 SUBZERO_PATH := ../../third_party/subzero
     27 LLVMDEPENDENCIES_PATH := ../../third_party/llvm-subzero
     28 
     29 LOCAL_SRC_FILES := \
     30 	$(SUBZERO_PATH)/src/IceAssembler.cpp \
     31 	$(SUBZERO_PATH)/src/IceCfg.cpp \
     32 	$(SUBZERO_PATH)/src/IceCfgNode.cpp \
     33 	$(SUBZERO_PATH)/src/IceClFlags.cpp \
     34 	$(SUBZERO_PATH)/src/IceELFObjectWriter.cpp \
     35 	$(SUBZERO_PATH)/src/IceELFSection.cpp \
     36 	$(SUBZERO_PATH)/src/IceFixups.cpp \
     37 	$(SUBZERO_PATH)/src/IceGlobalContext.cpp \
     38 	$(SUBZERO_PATH)/src/IceGlobalInits.cpp \
     39 	$(SUBZERO_PATH)/src/IceInst.cpp \
     40 	$(SUBZERO_PATH)/src/IceInstrumentation.cpp \
     41 	$(SUBZERO_PATH)/src/IceIntrinsics.cpp \
     42 	$(SUBZERO_PATH)/src/IceLiveness.cpp \
     43 	$(SUBZERO_PATH)/src/IceLoopAnalyzer.cpp \
     44 	$(SUBZERO_PATH)/src/IceMangling.cpp \
     45 	$(SUBZERO_PATH)/src/IceMemory.cpp \
     46 	$(SUBZERO_PATH)/src/IceOperand.cpp \
     47 	$(SUBZERO_PATH)/src/IceRangeSpec.cpp \
     48 	$(SUBZERO_PATH)/src/IceRegAlloc.cpp \
     49 	$(SUBZERO_PATH)/src/IceRevision.cpp \
     50 	$(SUBZERO_PATH)/src/IceRNG.cpp \
     51 	$(SUBZERO_PATH)/src/IceSwitchLowering.cpp \
     52 	$(SUBZERO_PATH)/src/IceTargetLowering.cpp \
     53 	$(SUBZERO_PATH)/src/IceThreading.cpp \
     54 	$(SUBZERO_PATH)/src/IceTimerTree.cpp \
     55 	$(SUBZERO_PATH)/src/IceTypes.cpp \
     56 	$(SUBZERO_PATH)/src/IceVariableSplitting.cpp
     57 
     58 LOCAL_SRC_FILES_x86 += \
     59 	$(SUBZERO_PATH)/src/IceInstX8632.cpp \
     60 	$(SUBZERO_PATH)/src/IceTargetLoweringX8632.cpp
     61 LOCAL_SRC_FILES_x86_64 += \
     62 	$(SUBZERO_PATH)/src/IceInstX8664.cpp \
     63 	$(SUBZERO_PATH)/src/IceTargetLoweringX8664.cpp
     64 LOCAL_SRC_FILES_arm += \
     65 	$(SUBZERO_PATH)/src/IceAssemblerARM32.cpp \
     66 	$(SUBZERO_PATH)/src/IceTargetLoweringARM32.cpp \
     67 	$(SUBZERO_PATH)/src/IceInstARM32.cpp
     68 
     69 LOCAL_SRC_FILES += \
     70 	$(LLVMDEPENDENCIES_PATH)/lib/Support/APInt.cpp \
     71 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Atomic.cpp \
     72 	$(LLVMDEPENDENCIES_PATH)/lib/Support/circular_raw_ostream.cpp \
     73 	$(LLVMDEPENDENCIES_PATH)/lib/Support/CommandLine.cpp \
     74 	$(LLVMDEPENDENCIES_PATH)/lib/Support/ConvertUTF.cpp \
     75 	$(LLVMDEPENDENCIES_PATH)/lib/Support/ConvertUTFWrapper.cpp \
     76 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Debug.cpp \
     77 	$(LLVMDEPENDENCIES_PATH)/lib/Support/ErrorHandling.cpp \
     78 	$(LLVMDEPENDENCIES_PATH)/lib/Support/FoldingSet.cpp \
     79 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Hashing.cpp \
     80 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Host.cpp \
     81 	$(LLVMDEPENDENCIES_PATH)/lib/Support/ManagedStatic.cpp \
     82 	$(LLVMDEPENDENCIES_PATH)/lib/Support/MemoryBuffer.cpp \
     83 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Mutex.cpp \
     84 	$(LLVMDEPENDENCIES_PATH)/lib/Support/NativeFormatting.cpp \
     85 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Path.cpp \
     86 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Process.cpp \
     87 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Program.cpp \
     88 	$(LLVMDEPENDENCIES_PATH)/lib/Support/raw_ostream.cpp \
     89 	$(LLVMDEPENDENCIES_PATH)/lib/Support/raw_os_ostream.cpp \
     90 	$(LLVMDEPENDENCIES_PATH)/lib/Support/regcomp.c \
     91 	$(LLVMDEPENDENCIES_PATH)/lib/Support/regerror.c \
     92 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Regex.cpp \
     93 	$(LLVMDEPENDENCIES_PATH)/lib/Support/regexec.c \
     94 	$(LLVMDEPENDENCIES_PATH)/lib/Support/regfree.c \
     95 	$(LLVMDEPENDENCIES_PATH)/lib/Support/regstrlcpy.c \
     96 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Signals.cpp \
     97 	$(LLVMDEPENDENCIES_PATH)/lib/Support/SmallPtrSet.cpp \
     98 	$(LLVMDEPENDENCIES_PATH)/lib/Support/SmallVector.cpp \
     99 	$(LLVMDEPENDENCIES_PATH)/lib/Support/StringExtras.cpp \
    100 	$(LLVMDEPENDENCIES_PATH)/lib/Support/StringMap.cpp \
    101 	$(LLVMDEPENDENCIES_PATH)/lib/Support/StringRef.cpp \
    102 	$(LLVMDEPENDENCIES_PATH)/lib/Support/StringSaver.cpp \
    103 	$(LLVMDEPENDENCIES_PATH)/lib/Support/TargetParser.cpp \
    104 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Threading.cpp \
    105 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Timer.cpp \
    106 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Triple.cpp \
    107 	$(LLVMDEPENDENCIES_PATH)/lib/Support/Twine.cpp
    108 
    109 LOCAL_CPPFLAGS := -std=c++11
    110 
    111 LOCAL_CFLAGS += \
    112 	-DLOG_TAG=\"libsubzero\" \
    113 	-Wall \
    114 	-Werror \
    115 	-Wno-error=undefined-var-template \
    116 	-Wno-error=unused-lambda-capture \
    117 	-Wno-unused-parameter \
    118 	-Wno-implicit-exception-spec-mismatch \
    119 	-Wno-overloaded-virtual \
    120 	-Wno-non-virtual-dtor \
    121 	-Wno-unknown-warning-option
    122 
    123 ifneq (16,${PLATFORM_SDK_VERSION})
    124 LOCAL_CFLAGS += -Xclang -fuse-init-array
    125 else
    126 LOCAL_CFLAGS += -D__STDC_INT64__
    127 endif
    128 
    129 LOCAL_CFLAGS += -fomit-frame-pointer -Os -ffunction-sections -fdata-sections
    130 LOCAL_CFLAGS += -fno-operator-names -msse2 -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS
    131 
    132 # Common Subzero defines
    133 LOCAL_CFLAGS += -DALLOW_DUMP=0 -DALLOW_TIMERS=0 -DALLOW_LLVM_CL=0 -DALLOW_LLVM_IR=0 -DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_MINIMAL_BUILD=0 -DALLOW_WASM=0 -DICE_THREAD_LOCAL_HACK=1
    134 
    135 # Subzero target
    136 LOCAL_CFLAGS_x86 += -DSZTARGET=X8632
    137 LOCAL_CFLAGS_x86_64 += -DSZTARGET=X8664
    138 LOCAL_CFLAGS_arm += -DSZTARGET=ARM32
    139 
    140 # Android's make system also uses NDEBUG, so we need to set/unset it forcefully
    141 # Uncomment for debug ON:
    142 # LOCAL_CFLAGS += -UNDEBUG -g -O0
    143 
    144 LOCAL_C_INCLUDES += \
    145 	bionic \
    146 	$(LOCAL_PATH)/$(SUBZERO_PATH)/ \
    147 	$(LOCAL_PATH)/$(LLVMDEPENDENCIES_PATH)/include/ \
    148 	$(LOCAL_PATH)/$(LLVMDEPENDENCIES_PATH)/build/Android/include/ \
    149 	$(LOCAL_PATH)/$(SUBZERO_PATH)/pnacl-llvm/include/
    150 
    151 # Marshmallow does not have stlport, but comes with libc++ by default
    152 ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
    153 LOCAL_C_INCLUDES += external/stlport/stlport
    154 endif
    155 
    156 include $(BUILD_STATIC_LIBRARY)
    157