Android.mk revision 474cbd2fde362e63375f7a5099ca38b5c67835cf
1# 2# Copyright (C) 2010 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 17ifneq ($(TARGET_SIMULATOR),true) 18 19LOCAL_PATH := $(call my-dir) 20 21LLVM_ROOT_PATH := external/llvm 22 23# Extract Configuration from Cache.h 24 25libbcc_GET_CONFIG = $(shell cat "$(LOCAL_PATH)/Config.h" | \ 26 grep "^\#define $1 [01]$$" | \ 27 cut -d ' ' -f 3) 28 29libbcc_USE_CACHE := $(call libbcc_GET_CONFIG,USE_CACHE) 30libbcc_USE_DISASSEMBLER := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER) 31libbcc_USE_DISASSEMBLER_FILE := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER_FILE) 32libbcc_USE_LIBBCC_SHA1SUM := $(call libbcc_GET_CONFIG,USE_LIBBCC_SHA1SUM) 33 34# Source Files 35 36libbcc_SRC_FILES := \ 37 lib/bcc/bcc.cpp \ 38 lib/CodeGen/CodeEmitter.cpp \ 39 lib/CodeGen/CodeMemoryManager.cpp \ 40 lib/bcc/Compiler.cpp \ 41 lib/bcc/ContextManager.cpp \ 42 lib/bcc/FileHandle.cpp \ 43 lib/bcc/Runtime.c \ 44 lib/bcc/Script.cpp \ 45 lib/bcc/ScriptCompiled.cpp \ 46 lib/bcc/SourceInfo.cpp 47 48ifeq ($(libbcc_USE_CACHE),1) 49libbcc_SRC_FILES += \ 50 lib/bcc/CacheReader.cpp \ 51 lib/bcc/CacheWriter.cpp \ 52 lib/bcc/ScriptCached.cpp \ 53 lib/bcc/Sha1Helper.cpp \ 54 helper/sha1.c 55endif 56 57# 58# Shared library for target 59# ======================================================== 60include $(CLEAR_VARS) 61LOCAL_PRELINK_MODULE := false 62LOCAL_MODULE := libbcc 63LOCAL_MODULE_TAGS := optional 64LOCAL_SRC_FILES := \ 65 $(libbcc_SRC_FILES) \ 66 runtime/lib/arm/adddf3vfp.S \ 67 runtime/lib/arm/addsf3vfp.S \ 68 runtime/lib/arm/divdf3vfp.S \ 69 runtime/lib/arm/divsf3vfp.S \ 70 runtime/lib/arm/eqdf2vfp.S \ 71 runtime/lib/arm/eqsf2vfp.S \ 72 runtime/lib/arm/extendsfdf2vfp.S \ 73 runtime/lib/arm/fixdfsivfp.S \ 74 runtime/lib/arm/fixsfsivfp.S \ 75 runtime/lib/arm/fixunsdfsivfp.S \ 76 runtime/lib/arm/fixunssfsivfp.S \ 77 runtime/lib/arm/floatsidfvfp.S \ 78 runtime/lib/arm/floatsisfvfp.S \ 79 runtime/lib/arm/floatunssidfvfp.S \ 80 runtime/lib/arm/floatunssisfvfp.S \ 81 runtime/lib/arm/gedf2vfp.S \ 82 runtime/lib/arm/gesf2vfp.S \ 83 runtime/lib/arm/gtdf2vfp.S \ 84 runtime/lib/arm/gtsf2vfp.S \ 85 runtime/lib/arm/ledf2vfp.S \ 86 runtime/lib/arm/lesf2vfp.S \ 87 runtime/lib/arm/ltdf2vfp.S \ 88 runtime/lib/arm/ltsf2vfp.S \ 89 runtime/lib/arm/muldf3vfp.S \ 90 runtime/lib/arm/mulsf3vfp.S \ 91 runtime/lib/arm/nedf2vfp.S \ 92 runtime/lib/arm/negdf2vfp.S \ 93 runtime/lib/arm/negsf2vfp.S \ 94 runtime/lib/arm/nesf2vfp.S \ 95 runtime/lib/arm/subdf3vfp.S \ 96 runtime/lib/arm/subsf3vfp.S \ 97 runtime/lib/arm/truncdfsf2vfp.S \ 98 runtime/lib/arm/unorddf2vfp.S \ 99 runtime/lib/arm/unordsf2vfp.S 100 101LOCAL_STATIC_LIBRARIES := \ 102 libLLVMARMCodeGen \ 103 libLLVMARMInfo \ 104 libLLVMBitReader \ 105 libLLVMSelectionDAG \ 106 libLLVMAsmPrinter \ 107 libLLVMCodeGen \ 108 libLLVMLinker \ 109 libLLVMJIT \ 110 libLLVMTarget \ 111 libLLVMMC \ 112 libLLVMScalarOpts \ 113 libLLVMInstCombine \ 114 libLLVMipo \ 115 libLLVMipa \ 116 libLLVMTransformUtils \ 117 libLLVMCore \ 118 libLLVMSupport \ 119 libLLVMSystem \ 120 libLLVMAnalysis 121 122LOCAL_SHARED_LIBRARIES := libdl libcutils libutils libstlport 123 124LOCAL_C_INCLUDES := \ 125 $(LOCAL_PATH)/lib/bcc \ 126 $(LOCAL_PATH)/lib/CodeGen \ 127 $(LOCAL_PATH)/helper \ 128 $(LOCAL_PATH)/include \ 129 $(LOCAL_PATH) 130 131ifeq ($(libbcc_USE_DISASSEMBLER),1) 132LOCAL_STATIC_LIBRARIES := \ 133 libLLVMARMDisassembler \ 134 libLLVMARMAsmPrinter \ 135 libLLVMMCParser \ 136 $(LOCAL_STATIC_LIBRARIES) 137endif 138 139# This makes libclcore.bc get installed if and only if the target libbcc.so is installed. 140LOCAL_REQUIRED_MODULES := libclcore.bc 141 142# -Wl,--exclude-libs=ALL would hide most of the symbols in the shared library 143# and reduces the size of libbcc.so by about 800k. 144# As libLLVMBitReader:libLLVMCore:libLLVMSupport are used by pixelflinger2, 145# use below instead. 146LOCAL_LDFLAGS += -Wl,--exclude-libs=libLLVMARMDisassembler:libLLVMARMAsmPrinter:libLLVMMCParser:libLLVMARMCodeGen:libLLVMARMInfo:libLLVMSelectionDAG:libLLVMAsmPrinter:libLLVMCodeGen:libLLVMLinker:libLLVMJIT:libLLVMTarget:libLLVMMC:libLLVMScalarOpts:libLLVMInstCombine:libLLVMipo:libLLVMipa:libLLVMTransformUtils:libLLVMSystem:libLLVMAnalysis 147 148include $(LLVM_ROOT_PATH)/llvm-device-build.mk 149include $(BUILD_SHARED_LIBRARY) 150 151# Shared library for host 152# ======================================================== 153include $(CLEAR_VARS) 154 155LOCAL_MODULE := libbcc 156LOCAL_MODULE_TAGS := optional 157LOCAL_SRC_FILES := \ 158 $(libbcc_SRC_FILES) \ 159 helper/logd_write.c 160 161LOCAL_STATIC_LIBRARIES := \ 162 libcutils \ 163 libutils \ 164 libLLVMX86CodeGen \ 165 libLLVMX86Info \ 166 libLLVMARMCodeGen \ 167 libLLVMARMInfo \ 168 libLLVMBitReader \ 169 libLLVMSelectionDAG \ 170 libLLVMAsmPrinter \ 171 libLLVMMCParser \ 172 libLLVMCodeGen \ 173 libLLVMLinker \ 174 libLLVMJIT \ 175 libLLVMTarget \ 176 libLLVMMC \ 177 libLLVMScalarOpts \ 178 libLLVMInstCombine \ 179 libLLVMipo \ 180 libLLVMipa \ 181 libLLVMTransformUtils \ 182 libLLVMCore \ 183 libLLVMSupport \ 184 libLLVMSystem \ 185 libLLVMAnalysis 186 187LOCAL_LDLIBS := -ldl -lpthread 188 189LOCAL_C_INCLUDES := \ 190 $(LOCAL_PATH)/lib/bcc \ 191 $(LOCAL_PATH)/lib/CodeGen \ 192 $(LOCAL_PATH)/helper \ 193 $(LOCAL_PATH)/include \ 194 $(LOCAL_PATH) 195 196# definitions for LLVM 197LOCAL_CFLAGS += -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DFORCE_ARM_CODEGEN=1 -DDEBUG_CODEGEN=1 198 199ifeq ($(libbcc_USE_DISASSEMBLER),1) 200LOCAL_STATIC_LIBRARIES := \ 201 libLLVMARMDisassembler \ 202 libLLVMARMAsmPrinter \ 203 libLLVMMCParser \ 204 $(LOCAL_STATIC_LIBRARIES) 205endif 206 207include $(LLVM_ROOT_PATH)/llvm-host-build.mk 208include $(BUILD_HOST_SHARED_LIBRARY) 209 210# Build children 211# ======================================================== 212include $(call all-makefiles-under,$(LOCAL_PATH)) 213 214endif # TARGET_SIMULATOR != true 215