1
2LOCAL_PATH:=$(call my-dir)
3
4rs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fno-exceptions
5ifeq ($(TARGET_BUILD_PDK), true)
6  rs_base_CFLAGS += -D__RS_PDK__
7endif
8
9ifneq ($(OVERRIDE_RS_DRIVER),)
10  rs_base_CFLAGS += -DOVERRIDE_RS_DRIVER=$(OVERRIDE_RS_DRIVER)
11endif
12
13include $(CLEAR_VARS)
14ifneq ($(HOST_OS),windows)
15LOCAL_CLANG := true
16endif
17LOCAL_MODULE := libRSCpuRef
18LOCAL_MODULE_TARGET_ARCH := arm mips mips64 x86 x86_64 arm64
19
20ifeq ($(HOST_OS), darwin)
21LOCAL_CFLAGS += -no-integrated-as
22LOCAL_ASFLAGS += -no-integrated-as
23endif
24
25LOCAL_SRC_FILES:= \
26	rsCpuCore.cpp \
27	rsCpuScript.cpp \
28	rsCpuRuntimeMath.cpp \
29	rsCpuRuntimeStubs.cpp \
30	rsCpuScriptGroup.cpp \
31	rsCpuIntrinsic.cpp \
32	rsCpuIntrinsic3DLUT.cpp \
33	rsCpuIntrinsicBlend.cpp \
34	rsCpuIntrinsicBlur.cpp \
35	rsCpuIntrinsicColorMatrix.cpp \
36	rsCpuIntrinsicConvolve3x3.cpp \
37	rsCpuIntrinsicConvolve5x5.cpp \
38	rsCpuIntrinsicHistogram.cpp \
39	rsCpuIntrinsicResize.cpp \
40	rsCpuIntrinsicLUT.cpp \
41	rsCpuIntrinsicYuvToRGB.cpp
42
43LOCAL_CFLAGS_arm64 += -DARCH_ARM_USE_INTRINSICS -DARCH_ARM64_USE_INTRINSICS -DARCH_ARM64_HAVE_NEON
44
45ifeq ($(RS_DISABLE_A53_WORKAROUND),true)
46LOCAL_CFLAGS_arm64 += -DDISABLE_A53_WORKAROUND
47endif
48
49LOCAL_SRC_FILES_arm64 += \
50    rsCpuIntrinsics_advsimd_3DLUT.S \
51    rsCpuIntrinsics_advsimd_Convolve.S \
52    rsCpuIntrinsics_advsimd_Blur.S \
53    rsCpuIntrinsics_advsimd_ColorMatrix.S \
54    rsCpuIntrinsics_advsimd_YuvToRGB.S
55#    rsCpuIntrinsics_advsimd_Blend.S \
56
57ifeq ($(ARCH_ARM_HAVE_NEON),true)
58    LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_NEON
59endif
60
61ifeq ($(ARCH_ARM_HAVE_VFP),true)
62    LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS
63    LOCAL_SRC_FILES_arm += \
64    rsCpuIntrinsics_neon_3DLUT.S \
65    rsCpuIntrinsics_neon_Blend.S \
66    rsCpuIntrinsics_neon_Blur.S \
67    rsCpuIntrinsics_neon_Convolve.S \
68    rsCpuIntrinsics_neon_ColorMatrix.S \
69    rsCpuIntrinsics_neon_YuvToRGB.S \
70
71    LOCAL_ASFLAGS_arm := -mfpu=neon
72endif
73
74ifeq ($(ARCH_X86_HAVE_SSSE3),true)
75    LOCAL_CFLAGS += -DARCH_X86_HAVE_SSSE3
76    LOCAL_SRC_FILES+= \
77    rsCpuIntrinsics_x86.c
78endif
79
80LOCAL_SHARED_LIBRARIES += libRS libcutils libutils liblog libsync libc++
81
82# these are not supported in 64-bit yet
83LOCAL_SHARED_LIBRARIES += libbcc libbcinfo
84
85
86LOCAL_C_INCLUDES += frameworks/compile/libbcc/include
87LOCAL_C_INCLUDES += frameworks/rs
88
89ifneq ($(HOST_OS),windows)
90include external/libcxx/libcxx.mk
91endif
92include frameworks/compile/libbcc/libbcc-targets.mk
93
94LOCAL_CFLAGS += $(rs_base_CFLAGS)
95
96LOCAL_MODULE_TAGS := optional
97
98include $(BUILD_SHARED_LIBRARY)
99