Home | History | Annotate | Download | only in rs_support
      1 
      2 LOCAL_PATH:=frameworks/rs
      3 rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable \
      4 		  -Wno-overloaded-virtual -DRS_COMPATIBILITY_LIB -std=c++11
      5 
      6 ifeq ($(ARCH_ARM_HAVE_NEON),true)
      7 rs_base_CFLAGS += -DARCH_ARM_HAVE_NEON
      8 endif
      9 
     10 ifeq ($(TARGET_BUILD_PDK), true)
     11   rs_base_CFLAGS += -D__RS_PDK__
     12 endif
     13 
     14 # Build rsg-generator ====================
     15 include $(CLEAR_VARS)
     16 
     17 LOCAL_MODULE := rsg-generator_support
     18 
     19 # These symbols are normally defined by BUILD_XXX, but we need to define them
     20 # here so that local-intermediates-dir works.
     21 
     22 LOCAL_IS_HOST_MODULE := true
     23 LOCAL_MODULE_CLASS := EXECUTABLES
     24 intermediates := $(local-intermediates-dir)
     25 LOCAL_MODULE_TAGS := optional
     26 
     27 LOCAL_SRC_FILES:= \
     28     spec.l \
     29     rsg_generator.c
     30 
     31 LOCAL_CXX_STL := none
     32 LOCAL_SANITIZE := never
     33 
     34 include $(BUILD_HOST_EXECUTABLE)
     35 
     36 # TODO: This should go into build/core/config.mk
     37 RSG_GENERATOR_SUPPORT:=$(LOCAL_BUILT_MODULE)
     38 
     39 include $(CLEAR_VARS)
     40 LOCAL_CLANG := true
     41 LOCAL_MODULE := libRSSupport
     42 LOCAL_SDK_VERSION := 9
     43 
     44 
     45 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
     46 generated_sources_dir := $(call local-generated-sources-dir)
     47 
     48 # Generate custom headers
     49 
     50 GEN := $(addprefix $(generated_sources_dir)/, \
     51             rsgApiStructs.h \
     52             rsgApiFuncDecl.h \
     53         )
     54 
     55 $(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
     56 $(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rs_compat.spec | $(RSG_GENERATOR_SUPPORT) $< $@
     57 $(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rs_compat.spec
     58 $(GEN): $(generated_sources_dir)/%.h : $(LOCAL_PATH)/%.h.rsg
     59 	$(transform-generated-source)
     60 
     61 # used in jni/Android.mk
     62 rs_generated_source += $(GEN)
     63 LOCAL_GENERATED_SOURCES += $(GEN)
     64 
     65 # Generate custom source files
     66 
     67 GEN := $(addprefix $(generated_sources_dir)/, \
     68             rsgApi.cpp \
     69             rsgApiReplay.cpp \
     70         )
     71 
     72 $(GEN) : PRIVATE_PATH := $(LOCAL_PATH)
     73 $(GEN) : PRIVATE_CUSTOM_TOOL = cat $(PRIVATE_PATH)/rs.spec $(PRIVATE_PATH)/rs_compat.spec | $(RSG_GENERATOR_SUPPORT) $< $@
     74 $(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec $(LOCAL_PATH)/rs_compat.spec
     75 $(GEN): $(generated_sources_dir)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg
     76 	$(transform-generated-source)
     77 
     78 # used in jni/Android.mk
     79 rs_generated_source += $(GEN)
     80 
     81 LOCAL_GENERATED_SOURCES += $(GEN)
     82 
     83 LOCAL_SRC_FILES:= \
     84 	rsAllocation.cpp \
     85 	rsApiAllocation.cpp \
     86 	rsApiContext.cpp \
     87 	rsApiDevice.cpp \
     88 	rsApiElement.cpp \
     89 	rsApiType.cpp \
     90 	rsClosure.cpp \
     91 	rsCompatibilityLib.cpp \
     92 	rsComponent.cpp \
     93 	rsContext.cpp \
     94 	rsCppUtils.cpp \
     95 	rsDevice.cpp \
     96 	rsDriverLoader.cpp \
     97 	rsElement.cpp \
     98 	rsFifoSocket.cpp \
     99 	rsObjectBase.cpp \
    100 	rsMatrix2x2.cpp \
    101 	rsMatrix3x3.cpp \
    102 	rsMatrix4x4.cpp \
    103 	rsMutex.cpp \
    104 	rsSampler.cpp \
    105 	rsScript.cpp \
    106 	rsScriptC.cpp \
    107 	rsScriptC_Lib.cpp \
    108 	rsScriptGroup.cpp \
    109 	rsScriptGroup2.cpp \
    110 	rsScriptIntrinsic.cpp \
    111 	rsSignal.cpp \
    112 	rsStream.cpp \
    113 	rsThreadIO.cpp \
    114 	rsType.cpp \
    115 	driver/rsdAllocation.cpp \
    116 	driver/rsdBcc.cpp \
    117 	driver/rsdCore.cpp \
    118 	driver/rsdElement.cpp \
    119 	driver/rsdRuntimeStubs.cpp \
    120 	driver/rsdSampler.cpp \
    121 	driver/rsdScriptGroup.cpp \
    122 	driver/rsdType.cpp \
    123 	cpu_ref/rsCpuCore.cpp \
    124 	cpu_ref/rsCpuExecutable.cpp \
    125 	cpu_ref/rsCpuScript.cpp \
    126 	cpu_ref/rsCpuRuntimeMath.cpp \
    127 	cpu_ref/rsCpuScriptGroup.cpp \
    128 	cpu_ref/rsCpuScriptGroup2.cpp \
    129 	cpu_ref/rsCpuIntrinsic.cpp \
    130 	cpu_ref/rsCpuIntrinsic3DLUT.cpp \
    131 	cpu_ref/rsCpuIntrinsicBlend.cpp \
    132 	cpu_ref/rsCpuIntrinsicBlur.cpp \
    133 	cpu_ref/rsCpuIntrinsicBLAS.cpp \
    134 	cpu_ref/rsCpuIntrinsicColorMatrix.cpp \
    135 	cpu_ref/rsCpuIntrinsicConvolve3x3.cpp \
    136 	cpu_ref/rsCpuIntrinsicConvolve5x5.cpp \
    137 	cpu_ref/rsCpuIntrinsicHistogram.cpp \
    138 	cpu_ref/rsCpuIntrinsicLUT.cpp \
    139 	cpu_ref/rsCpuIntrinsicResize.cpp \
    140 	cpu_ref/rsCpuIntrinsicYuvToRGB.cpp
    141 
    142 ifeq ($(ARCH_ARM_HAVE_ARMV7A),true)
    143 LOCAL_CFLAGS_arm := -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS
    144 LOCAL_ASFLAGS_arm := -mfpu=neon
    145 LOCAL_SRC_FILES_arm := \
    146     cpu_ref/rsCpuIntrinsics_neon_3DLUT.S \
    147     cpu_ref/rsCpuIntrinsics_neon_Blend.S \
    148     cpu_ref/rsCpuIntrinsics_neon_Blur.S \
    149     cpu_ref/rsCpuIntrinsics_neon_ColorMatrix.S \
    150     cpu_ref/rsCpuIntrinsics_neon_Convolve.S \
    151     cpu_ref/rsCpuIntrinsics_neon_Resize.S \
    152     cpu_ref/rsCpuIntrinsics_neon_YuvToRGB.S
    153 endif
    154 
    155 LOCAL_CFLAGS_arm64 += \
    156     -DARCH_ARM_USE_INTRINSICS \
    157     -DARCH_ARM64_USE_INTRINSICS \
    158     -DARCH_ARM64_HAVE_NEON
    159 LOCAL_SRC_FILES_arm64 += \
    160     cpu_ref/rsCpuIntrinsics_advsimd_3DLUT.S \
    161     cpu_ref/rsCpuIntrinsics_advsimd_Blend.S \
    162     cpu_ref/rsCpuIntrinsics_advsimd_Blur.S \
    163     cpu_ref/rsCpuIntrinsics_advsimd_ColorMatrix.S \
    164     cpu_ref/rsCpuIntrinsics_advsimd_Convolve.S \
    165     cpu_ref/rsCpuIntrinsics_advsimd_Resize.S \
    166     cpu_ref/rsCpuIntrinsics_advsimd_YuvToRGB.S
    167 
    168 LOCAL_CFLAGS_x86 += -DARCH_X86_HAVE_SSSE3
    169 LOCAL_SRC_FILES_x86 += cpu_ref/rsCpuIntrinsics_x86.cpp
    170 LOCAL_CFLAGS_x86_64 += -DARCH_X86_HAVE_SSSE3
    171 LOCAL_SRC_FILES_x86_64 += cpu_ref/rsCpuIntrinsics_x86.cpp
    172 
    173 LOCAL_REQUIRED_MODULES := libblasV8
    174 LOCAL_STATIC_LIBRARIES := libbnnmlowpV8
    175 LOCAL_LDFLAGS += -llog -ldl -Wl,--exclude-libs,libc++_static.a
    176 LOCAL_NDK_STL_VARIANT := c++_static
    177 
    178 LOCAL_C_INCLUDES += external/cblas/include
    179 LOCAL_C_INCLUDES += external/gemmlowp/eight_bit_int_gemm
    180 
    181 LOCAL_CFLAGS += $(rs_base_CFLAGS) -DGEMMLOWP_USE_STLPORT
    182 
    183 LOCAL_MODULE:= libRSSupport
    184 LOCAL_MODULE_TAGS := optional
    185 
    186 # TODO: why isn't this picked up from the host GLOBAL_CFLAGS?
    187 LOCAL_CFLAGS += -D__STDC_FORMAT_MACROS
    188 
    189 include $(BUILD_SHARED_LIBRARY)
    190