Home | History | Annotate | Download | only in libbcc
      1 #
      2 # Copyright (C) 2010-2012 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 # Don't build for unbundled branches
     18 ifeq (,$(TARGET_BUILD_APPS))
     19 
     20 LOCAL_PATH := $(call my-dir)
     21 LIBBCC_ROOT_PATH := $(LOCAL_PATH)
     22 include $(LIBBCC_ROOT_PATH)/libbcc.mk
     23 
     24 #=====================================================================
     25 # Whole Static Library to Be Linked In
     26 #=====================================================================
     27 
     28 libbcc_WHOLE_STATIC_LIBRARIES += \
     29   libbccAndroidBitcode \
     30   libbccRenderscript \
     31   libbccExecutionEngine \
     32   libbccCore \
     33   libbccSupport
     34 
     35 libmcld_STATIC_LIBRARIES += \
     36   libmcldCodeGen \
     37   libmcldTarget \
     38   libmcldLDVariant \
     39   libmcldMC \
     40   libmcldObject \
     41   libmcldFragment \
     42   libmcldCore \
     43   libmcldSupport \
     44   libmcldADT \
     45   libmcldLD
     46 
     47 #=====================================================================
     48 # Calculate SHA1 checksum for libbcc.so, libRS.so and libclcore.bc
     49 #=====================================================================
     50 
     51 include $(CLEAR_VARS)
     52 
     53 LOCAL_MODULE := libbcc.sha1
     54 LOCAL_MODULE_TAGS := optional
     55 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
     56 
     57 libbcc_SHA1_SRCS := \
     58   $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libbcc.so \
     59   $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libcompiler_rt.so \
     60   $(TARGET_OUT_INTERMEDIATE_LIBRARIES)/libRS.so \
     61   $(call intermediates-dir-for,SHARED_LIBRARIES,libclcore.bc,,)/libclcore.bc \
     62   $(call intermediates-dir-for,SHARED_LIBRARIES,libclcore_debug.bc,,)/libclcore_debug.bc
     63 
     64 ifeq ($(ARCH_ARM_HAVE_NEON),true)
     65   # Disable NEON on cortex-a15 temporarily
     66   ifneq ($(strip $(TARGET_CPU_VARIANT)), cortex-a15)
     67     libbcc_SHA1_SRCS += \
     68       $(call intermediates-dir-for,SHARED_LIBRARIES,libclcore_neon.bc,,)/libclcore_neon.bc
     69   endif
     70 endif
     71 
     72 libbcc_GEN_SHA1_STAMP := $(LOCAL_PATH)/tools/build/gen-sha1-stamp.py
     73 intermediates := $(call local-intermediates-dir)
     74 
     75 libbcc_SHA1_ASM := $(intermediates)/libbcc.sha1.S
     76 LOCAL_GENERATED_SOURCES += $(libbcc_SHA1_ASM)
     77 $(libbcc_SHA1_ASM): PRIVATE_SHA1_SRCS := $(libbcc_SHA1_SRCS)
     78 $(libbcc_SHA1_ASM): $(libbcc_SHA1_SRCS) $(libbcc_GEN_SHA1_STAMP)
     79 	@echo libbcc.sha1: $@
     80 	$(hide) mkdir -p $(dir $@)
     81 	$(hide) $(libbcc_GEN_SHA1_STAMP) $(PRIVATE_SHA1_SRCS) > $@
     82 
     83 LOCAL_CFLAGS += -D_REENTRANT -DPIC -fPIC
     84 LOCAL_CFLAGS += -O3 -nodefaultlibs -nostdlib
     85 
     86 include $(BUILD_SHARED_LIBRARY)
     87 
     88 #=====================================================================
     89 # Device Shared Library libbcc
     90 #=====================================================================
     91 
     92 include $(CLEAR_VARS)
     93 
     94 LOCAL_MODULE := libbcc
     95 LOCAL_MODULE_TAGS := optional
     96 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
     97 
     98 LOCAL_WHOLE_STATIC_LIBRARIES := $(libbcc_WHOLE_STATIC_LIBRARIES)
     99 
    100 LOCAL_WHOLE_STATIC_LIBRARIES += librsloader
    101 
    102 ifeq ($(TARGET_ARCH),arm)
    103   LOCAL_WHOLE_STATIC_LIBRARIES += \
    104     libmcldARMTarget \
    105     libmcldARMInfo
    106 else
    107   ifeq ($(TARGET_ARCH), mips)
    108     LOCAL_WHOLE_STATIC_LIBRARIES += \
    109       libmcldMipsTarget \
    110       libmcldMipsInfo
    111   else
    112     ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now
    113       LOCAL_WHOLE_STATIC_LIBRARIES += \
    114         libmcldX86Target \
    115         libmcldX86Info
    116     else
    117       $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
    118     endif
    119   endif
    120 endif
    121 
    122 LOCAL_WHOLE_STATIC_LIBRARIES += $(libmcld_STATIC_LIBRARIES)
    123 LOCAL_SHARED_LIBRARIES := libbcinfo libLLVM libdl libutils libcutils liblog libstlport
    124 
    125 # Modules that need get installed if and only if the target libbcc.so is
    126 # installed.
    127 LOCAL_REQUIRED_MODULES := libclcore.bc libclcore_debug.bc libbcc.sha1 libcompiler_rt
    128 
    129 ifeq ($(ARCH_X86_HAVE_SSE2),true)
    130 LOCAL_REQUIRED_MODULES += libclcore_x86.bc
    131 endif
    132 
    133 ifeq ($(ARCH_ARM_HAVE_NEON),true)
    134   # Disable NEON on cortex-a15 temporarily
    135   ifneq ($(strip $(TARGET_CPU_VARIANT)), cortex-a15)
    136     LOCAL_REQUIRED_MODULES += libclcore_neon.bc
    137   endif
    138 endif
    139 
    140 # Generate build information (Build time + Build git revision + Build Semi SHA1)
    141 include $(LIBBCC_ROOT_PATH)/libbcc-gen-build-info.mk
    142 
    143 include $(LIBBCC_DEVICE_BUILD_MK)
    144 include $(BUILD_SHARED_LIBRARY)
    145 
    146 #=====================================================================
    147 # Host Shared Library libbcc
    148 #=====================================================================
    149 
    150 include $(CLEAR_VARS)
    151 
    152 LOCAL_MODULE := libbcc
    153 LOCAL_MODULE_TAGS := optional
    154 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    155 LOCAL_IS_HOST_MODULE := true
    156 
    157 LOCAL_WHOLE_STATIC_LIBRARIES += $(libbcc_WHOLE_STATIC_LIBRARIES)
    158 
    159 LOCAL_WHOLE_STATIC_LIBRARIES += librsloader
    160 
    161 LOCAL_WHOLE_STATIC_LIBRARIES += \
    162   libmcldARMTarget \
    163   libmcldARMInfo \
    164   libmcldMipsTarget \
    165   libmcldMipsInfo \
    166   libmcldX86Target \
    167   libmcldX86Info
    168 
    169 LOCAL_WHOLE_STATIC_LIBRARIES += $(libmcld_STATIC_LIBRARIES)
    170 
    171 LOCAL_STATIC_LIBRARIES += \
    172   libutils \
    173   libcutils \
    174   liblog
    175 
    176 LOCAL_SHARED_LIBRARIES := libbcinfo libLLVM
    177 
    178 LOCAL_LDLIBS := -ldl -lpthread
    179 
    180 # Generate build information (Build time + Build git revision + Build Semi SHA1)
    181 include $(LIBBCC_ROOT_PATH)/libbcc-gen-build-info.mk
    182 
    183 include $(LIBBCC_HOST_BUILD_MK)
    184 include $(BUILD_HOST_SHARED_LIBRARY)
    185 
    186 endif # Don't build in unbundled branches
    187 
    188 #=====================================================================
    189 # Include Subdirectories
    190 #=====================================================================
    191 include $(call all-makefiles-under,$(LOCAL_PATH))
    192