# # Copyright (C) 2011 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # $(1): target or host # $(2): ndebug or debug define build-libart ifneq ($(1),target) ifneq ($(1),host) $$(error expected target or host for argument 1, received $(1)) endif endif ifneq ($(2),ndebug) ifneq ($(2),debug) $$(error expected ndebug or debug for argument 2, received $(2)) endif endif art_target_or_host := $(1) art_ndebug_or_debug := $(2) include $(CLEAR_VARS) ifeq ($$(art_target_or_host),target) include external/stlport/libstlport.mk endif LOCAL_CPP_EXTENSION := $(ART_CPP_EXTENSION) ifeq ($$(art_ndebug_or_debug),ndebug) LOCAL_MODULE := libart else # debug LOCAL_MODULE := libartd endif LOCAL_MODULE_TAGS := optional LOCAL_MODULE_CLASS := SHARED_LIBRARIES ifeq ($$(art_target_or_host),target) LOCAL_SRC_FILES := $(LIBART_TARGET_SRC_FILES) else # host LOCAL_SRC_FILES := $(LIBART_HOST_SRC_FILES) endif ifeq ($$(art_target_or_host),target) LOCAL_CFLAGS := $(ART_TARGET_CFLAGS) else # host LOCAL_CFLAGS := $(ART_HOST_CFLAGS) endif ifeq ($$(art_ndebug_or_debug),debug) ifeq ($$(art_target_or_host),target) LOCAL_CFLAGS += $(ART_TARGET_DEBUG_CFLAGS) else # host LOCAL_CFLAGS += $(ART_HOST_DEBUG_CFLAGS) LOCAL_STATIC_LIBRARIES := libgtest_host endif else ifeq ($$(art_target_or_host),target) LOCAL_CFLAGS += $(ART_TARGET_NON_DEBUG_CFLAGS) else # host LOCAL_CFLAGS += $(ART_HOST_NON_DEBUG_CFLAGS) endif endif LOCAL_C_INCLUDES += $(ART_C_INCLUDES) ifeq ($(ART_USE_LLVM_COMPILER),true) LOCAL_C_INCLUDES += frameworks/compile/linkloader libart_arm_STATIC_LIBRARIES := \ libLLVMARMInfo \ libLLVMARMDisassembler \ libLLVMARMAsmParser \ libLLVMARMAsmPrinter \ libLLVMARMCodeGen \ libLLVMARMDesc libart_mips_STATIC_LIBRARIES := \ libLLVMMipsInfo \ libLLVMMipsCodeGen \ libLLVMMipsDesc \ libLLVMMipsAsmPrinter \ libart_x86_STATIC_LIBRARIES := \ libLLVMX86Info \ libLLVMX86AsmParser \ libLLVMX86CodeGen \ libLLVMX86Disassembler \ libLLVMX86Desc \ libLLVMX86AsmPrinter \ libLLVMX86Utils ifeq ($$(art_target_or_host),target) LOCAL_STATIC_LIBRARIES += \ $$(libart_arm_STATIC_LIBRARIES) else LOCAL_STATIC_LIBRARIES += \ $$(libart_arm_STATIC_LIBRARIES) \ $$(libart_mips_STATIC_LIBRARIES) \ $$(libart_x86_STATIC_LIBRARIES) endif LOCAL_STATIC_LIBRARIES += \ libLLVMLinker \ libLLVMipo \ libLLVMBitWriter \ libLLVMBitReader \ libLLVMAsmPrinter \ libLLVMSelectionDAG \ libLLVMCodeGen \ libLLVMScalarOpts \ libLLVMInstCombine \ libLLVMInstrumentation \ libLLVMTransformUtils \ libLLVMipa \ libLLVMAnalysis \ libLLVMTarget \ libLLVMMC \ libLLVMMCParser \ libLLVMCore \ libLLVMSupport \ librsloader endif LOCAL_SHARED_LIBRARIES := liblog libnativehelper ifeq ($$(art_target_or_host),target) LOCAL_SHARED_LIBRARIES += libcutils libstlport libz libdl LOCAL_SHARED_LIBRARIES += libdynamic_annotations # tsan support LOCAL_SHARED_LIBRARIES += libcorkscrew # native stack trace support else # host LOCAL_STATIC_LIBRARIES += libcutils LOCAL_SHARED_LIBRARIES += libz-host LOCAL_SHARED_LIBRARIES += libdynamic_annotations-host # tsan support LOCAL_LDLIBS := -ldl -lpthread ifeq ($(HOST_OS),linux) LOCAL_LDLIBS += -lrt endif endif ifeq ($$(art_target_or_host),target) ifeq ($(ART_USE_LLVM_COMPILER),true) include $(LLVM_GEN_INTRINSICS_MK) include $(LLVM_DEVICE_BUILD_MK) endif include $(BUILD_SHARED_LIBRARY) else # host LOCAL_IS_HOST_MODULE := true ifeq ($(ART_USE_LLVM_COMPILER),true) include $(LLVM_GEN_INTRINSICS_MK) include $(LLVM_HOST_BUILD_MK) endif include $(BUILD_HOST_SHARED_LIBRARY) endif endef ifeq ($(ART_BUILD_TARGET_NDEBUG),true) $(eval $(call build-libart,target,ndebug)) endif ifeq ($(ART_BUILD_TARGET_DEBUG),true) $(eval $(call build-libart,target,debug)) endif ifeq ($(ART_BUILD_HOST_NDEBUG),true) $(eval $(call build-libart,host,ndebug)) endif ifeq ($(ART_BUILD_HOST_DEBUG),true) $(eval $(call build-libart,host,debug)) endif