Android.mk revision 77643ba4fb6e93037940294a03149e68c353b4fa
1227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# 2227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# Copyright (C) 2010 The Android Open Source Project 3227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# 4227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# Licensed under the Apache License, Version 2.0 (the "License"); 5227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# you may not use this file except in compliance with the License. 6227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# You may obtain a copy of the License at 7227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# 8227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# http://www.apache.org/licenses/LICENSE-2.0 9227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# 10227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# Unless required by applicable law or agreed to in writing, software 11227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# distributed under the License is distributed on an "AS IS" BASIS, 12227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# See the License for the specific language governing permissions and 14227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# limitations under the License. 15227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# 16227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 17227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricksifneq ($(TARGET_SIMULATOR),true) 18227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 19227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksLOCAL_PATH := $(call my-dir) 20227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 21227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin HendricksLLVM_ROOT_PATH := external/llvm 22227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 23227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks# Extract Configuration from Cache.h 24227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 25227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslibbcc_GET_CONFIG = $(shell cat "$(LOCAL_PATH)/Config.h" | \ 26227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks grep "^\#define $1 [01]$$" | \ 27227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks cut -d ' ' -f 3) 28227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendricks 29227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslibbcc_USE_CACHE := $(call libbcc_GET_CONFIG,USE_CACHE) 30227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslibbcc_USE_DISASSEMBLER := $(call libbcc_GET_CONFIG,USE_DISASSEMBLER) 31227b47625d7482b5b47ad0e4c70ce0a246236adeBenjamin Hendrickslibbcc_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 47ifeq ($(libbcc_USE_CACHE),1) 48libbcc_SRC_FILES += \ 49 lib/bcc/CacheReader.cpp \ 50 lib/bcc/CacheWriter.cpp \ 51 lib/bcc/ScriptCached.cpp \ 52 lib/bcc/Sha1Helper.cpp \ 53 helper/sha1.c 54endif 55 56# 57# Shared library for target 58# ======================================================== 59include $(CLEAR_VARS) 60LOCAL_PRELINK_MODULE := false 61LOCAL_MODULE := libbcc 62LOCAL_MODULE_TAGS := optional 63LOCAL_SRC_FILES := \ 64 $(libbcc_SRC_FILES) \ 65 runtime/lib/arm/adddf3vfp.S \ 66 runtime/lib/arm/addsf3vfp.S \ 67 runtime/lib/arm/divdf3vfp.S \ 68 runtime/lib/arm/divsf3vfp.S \ 69 runtime/lib/arm/eqdf2vfp.S \ 70 runtime/lib/arm/eqsf2vfp.S \ 71 runtime/lib/arm/extendsfdf2vfp.S \ 72 runtime/lib/arm/fixdfsivfp.S \ 73 runtime/lib/arm/fixsfsivfp.S \ 74 runtime/lib/arm/fixunsdfsivfp.S \ 75 runtime/lib/arm/fixunssfsivfp.S \ 76 runtime/lib/arm/floatsidfvfp.S \ 77 runtime/lib/arm/floatsisfvfp.S \ 78 runtime/lib/arm/floatunssidfvfp.S \ 79 runtime/lib/arm/floatunssisfvfp.S \ 80 runtime/lib/arm/gedf2vfp.S \ 81 runtime/lib/arm/gesf2vfp.S \ 82 runtime/lib/arm/gtdf2vfp.S \ 83 runtime/lib/arm/gtsf2vfp.S \ 84 runtime/lib/arm/ledf2vfp.S \ 85 runtime/lib/arm/lesf2vfp.S \ 86 runtime/lib/arm/ltdf2vfp.S \ 87 runtime/lib/arm/ltsf2vfp.S \ 88 runtime/lib/arm/muldf3vfp.S \ 89 runtime/lib/arm/mulsf3vfp.S \ 90 runtime/lib/arm/nedf2vfp.S \ 91 runtime/lib/arm/negdf2vfp.S \ 92 runtime/lib/arm/negsf2vfp.S \ 93 runtime/lib/arm/nesf2vfp.S \ 94 runtime/lib/arm/subdf3vfp.S \ 95 runtime/lib/arm/subsf3vfp.S \ 96 runtime/lib/arm/truncdfsf2vfp.S \ 97 runtime/lib/arm/unorddf2vfp.S \ 98 runtime/lib/arm/unordsf2vfp.S 99 100LOCAL_STATIC_LIBRARIES := \ 101 libLLVMARMCodeGen \ 102 libLLVMARMInfo \ 103 libLLVMBitReader \ 104 libLLVMSelectionDAG \ 105 libLLVMAsmPrinter \ 106 libLLVMCodeGen \ 107 libLLVMLinker \ 108 libLLVMJIT \ 109 libLLVMTarget \ 110 libLLVMMC \ 111 libLLVMScalarOpts \ 112 libLLVMInstCombine \ 113 libLLVMipo \ 114 libLLVMipa \ 115 libLLVMTransformUtils \ 116 libLLVMCore \ 117 libLLVMSupport \ 118 libLLVMSystem \ 119 libLLVMAnalysis 120 121LOCAL_SHARED_LIBRARIES := libdl libcutils libutils libstlport 122 123LOCAL_C_INCLUDES := \ 124 $(LOCAL_PATH)/lib/bcc \ 125 $(LOCAL_PATH)/lib/CodeGen \ 126 $(LOCAL_PATH)/helper \ 127 $(LOCAL_PATH)/include \ 128 $(LOCAL_PATH) 129 130ifeq ($(libbcc_USE_DISASSEMBLER),1) 131LOCAL_STATIC_LIBRARIES := \ 132 libLLVMARMDisassembler \ 133 libLLVMARMAsmPrinter \ 134 libLLVMMCParser \ 135 $(LOCAL_STATIC_LIBRARIES) 136endif 137 138# This makes libclcore.bc get installed if and only if the target libbcc.so is installed. 139LOCAL_REQUIRED_MODULES := libclcore.bc 140 141# -Wl,--exclude-libs=ALL would hide most of the symbols in the shared library 142# and reduces the size of libbcc.so by about 800k. 143# As libLLVMBitReader:libLLVMCore:libLLVMSupport are used by pixelflinger2, 144# use below instead. 145LOCAL_LDFLAGS += -Wl,--exclude-libs=libLLVMARMDisassembler:libLLVMARMAsmPrinter:libLLVMMCParser:libLLVMARMCodeGen:libLLVMARMInfo:libLLVMSelectionDAG:libLLVMAsmPrinter:libLLVMCodeGen:libLLVMLinker:libLLVMJIT:libLLVMTarget:libLLVMMC:libLLVMScalarOpts:libLLVMInstCombine:libLLVMipo:libLLVMipa:libLLVMTransformUtils:libLLVMSystem:libLLVMAnalysis 146 147include $(LLVM_ROOT_PATH)/llvm-device-build.mk 148include $(BUILD_SHARED_LIBRARY) 149 150# Shared library for host 151# ======================================================== 152include $(CLEAR_VARS) 153 154LOCAL_MODULE := libbcc 155LOCAL_MODULE_TAGS := optional 156LOCAL_SRC_FILES := \ 157 $(libbcc_SRC_FILES) \ 158 helper/logd_write.c 159 160LOCAL_STATIC_LIBRARIES := \ 161 libcutils \ 162 libLLVMX86CodeGen \ 163 libLLVMX86Info \ 164 libLLVMARMCodeGen \ 165 libLLVMARMInfo \ 166 libLLVMBitReader \ 167 libLLVMSelectionDAG \ 168 libLLVMAsmPrinter \ 169 libLLVMMCParser \ 170 libLLVMCodeGen \ 171 libLLVMLinker \ 172 libLLVMJIT \ 173 libLLVMTarget \ 174 libLLVMMC \ 175 libLLVMScalarOpts \ 176 libLLVMInstCombine \ 177 libLLVMipo \ 178 libLLVMipa \ 179 libLLVMTransformUtils \ 180 libLLVMCore \ 181 libLLVMSupport \ 182 libLLVMSystem \ 183 libLLVMAnalysis 184 185LOCAL_LDLIBS := -ldl -lpthread 186 187LOCAL_C_INCLUDES := \ 188 $(LOCAL_PATH)/lib/bcc \ 189 $(LOCAL_PATH)/lib/CodeGen \ 190 $(LOCAL_PATH)/helper \ 191 $(LOCAL_PATH)/include \ 192 $(LOCAL_PATH) 193 194# definitions for LLVM 195LOCAL_CFLAGS += -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -DFORCE_ARM_CODEGEN=1 -DDEBUG_CODEGEN=1 196 197ifeq ($(libbcc_USE_DISASSEMBLER),1) 198LOCAL_STATIC_LIBRARIES := \ 199 libLLVMARMDisassembler \ 200 libLLVMARMAsmPrinter \ 201 libLLVMMCParser \ 202 $(LOCAL_STATIC_LIBRARIES) 203endif 204 205include $(LLVM_ROOT_PATH)/llvm-host-build.mk 206include $(BUILD_HOST_SHARED_LIBRARY) 207 208# Build children 209# ======================================================== 210include $(call all-makefiles-under,$(LOCAL_PATH)) 211 212endif # TARGET_SIMULATOR != true 213