1709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
2709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_PATH:=$(call my-dir)
3709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
48c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim Murrayrs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable -fno-exceptions
5709a0978ae141198018ca9769f8d96292a8928e6Jason Samsifeq ($(TARGET_BUILD_PDK), true)
6709a0978ae141198018ca9769f8d96292a8928e6Jason Sams  rs_base_CFLAGS += -D__RS_PDK__
7709a0978ae141198018ca9769f8d96292a8928e6Jason Samsendif
8709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
9709a0978ae141198018ca9769f8d96292a8928e6Jason Samsifneq ($(OVERRIDE_RS_DRIVER),)
10709a0978ae141198018ca9769f8d96292a8928e6Jason Sams  rs_base_CFLAGS += -DOVERRIDE_RS_DRIVER=$(OVERRIDE_RS_DRIVER)
11709a0978ae141198018ca9769f8d96292a8928e6Jason Samsendif
12709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
13709a0978ae141198018ca9769f8d96292a8928e6Jason Samsinclude $(CLEAR_VARS)
148d50174ff0e80bc3846f9dfd6f7d154fc4949db4Logan Chienifneq ($(HOST_OS),windows)
15709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_CLANG := true
168d50174ff0e80bc3846f9dfd6f7d154fc4949db4Logan Chienendif
17709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_MODULE := libRSCpuRef
18e8e408ada85b77e0a7314ef8e734aa9fc981a237Duane SandLOCAL_MODULE_TARGET_ARCH := arm mips mips64 x86 x86_64 arm64
19709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
208c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim Murrayifeq ($(HOST_OS), darwin)
218c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim MurrayLOCAL_CFLAGS += -no-integrated-as
228c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim MurrayLOCAL_ASFLAGS += -no-integrated-as
238c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim Murrayendif
248c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim Murray
25709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_SRC_FILES:= \
26709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuCore.cpp \
27709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuScript.cpp \
28709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuRuntimeMath.cpp \
29709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuRuntimeStubs.cpp \
30709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuScriptGroup.cpp \
31709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsic.cpp \
327c4b888f2147edf99690b6af75470774ff31c43bJason Sams	rsCpuIntrinsic3DLUT.cpp \
33709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicBlend.cpp \
34709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicBlur.cpp \
35709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicColorMatrix.cpp \
36709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicConvolve3x3.cpp \
37709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicConvolve5x5.cpp \
382282e2816ac5f5de53f9bd4f3ecbdfd6d756d120Jason Sams	rsCpuIntrinsicHistogram.cpp \
390d6043caef208ee6c661eb17bcb376abfe90cd48Jason Sams	rsCpuIntrinsicResize.cpp \
40709a0978ae141198018ca9769f8d96292a8928e6Jason Sams	rsCpuIntrinsicLUT.cpp \
41d56fa5280ec42b2609d2b0baa96a2b7006c4a611Jason Sams	rsCpuIntrinsicYuvToRGB.cpp
42709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
43bee48d79ba974e3dfbb782f9cce5c8d554f488e7Tim MurrayLOCAL_CFLAGS_arm64 += -DARCH_ARM_USE_INTRINSICS -DARCH_ARM64_USE_INTRINSICS -DARCH_ARM64_HAVE_NEON
44074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams
45c8d7a9313bb9bf980a4f88cf1b4a6437b7b95797Tim Murrayifeq ($(RS_DISABLE_A53_WORKAROUND),true)
46c8d7a9313bb9bf980a4f88cf1b4a6437b7b95797Tim MurrayLOCAL_CFLAGS_arm64 += -DDISABLE_A53_WORKAROUND
47c8d7a9313bb9bf980a4f88cf1b4a6437b7b95797Tim Murrayendif
48c8d7a9313bb9bf980a4f88cf1b4a6437b7b95797Tim Murray
49074424a4ac5b093331df2c92e7a5bcbfff136b71Jason SamsLOCAL_SRC_FILES_arm64 += \
50074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    rsCpuIntrinsics_advsimd_3DLUT.S \
51074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    rsCpuIntrinsics_advsimd_Convolve.S \
52074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    rsCpuIntrinsics_advsimd_Blur.S \
53074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    rsCpuIntrinsics_advsimd_ColorMatrix.S \
54074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    rsCpuIntrinsics_advsimd_YuvToRGB.S
55e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray#    rsCpuIntrinsics_advsimd_Blend.S \
5606b0f7d3b345ae1c36aed6686e79e403650f8baaJason Sams
5702170e63931c2d93f57912efbf5d7706578a8438Ying Wangifeq ($(ARCH_ARM_HAVE_NEON),true)
5802170e63931c2d93f57912efbf5d7706578a8438Ying Wang    LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_NEON
5902170e63931c2d93f57912efbf5d7706578a8438Ying Wangendif
6002170e63931c2d93f57912efbf5d7706578a8438Ying Wang
6102170e63931c2d93f57912efbf5d7706578a8438Ying Wangifeq ($(ARCH_ARM_HAVE_VFP),true)
62074424a4ac5b093331df2c92e7a5bcbfff136b71Jason Sams    LOCAL_CFLAGS_arm += -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS
6302170e63931c2d93f57912efbf5d7706578a8438Ying Wang    LOCAL_SRC_FILES_arm += \
645dcaaa5f50926bebf6877e254c521faa7e2593e3Simon Hosie    rsCpuIntrinsics_neon_3DLUT.S \
6502170e63931c2d93f57912efbf5d7706578a8438Ying Wang    rsCpuIntrinsics_neon_Blend.S \
6602170e63931c2d93f57912efbf5d7706578a8438Ying Wang    rsCpuIntrinsics_neon_Blur.S \
674e5c414252846e96d2e353515134387d86150c68Simon Hosie    rsCpuIntrinsics_neon_Convolve.S \
685dcaaa5f50926bebf6877e254c521faa7e2593e3Simon Hosie    rsCpuIntrinsics_neon_ColorMatrix.S \
6983f304cb26008d3f4da154cec19c3a12fa2e6c74Jason Sams    rsCpuIntrinsics_neon_YuvToRGB.S \
7079a9dacb328ac37a2ec29b06b2ee6740fe8fadf0Jason Sams
7102170e63931c2d93f57912efbf5d7706578a8438Ying Wang    LOCAL_ASFLAGS_arm := -mfpu=neon
72709a0978ae141198018ca9769f8d96292a8928e6Jason Samsendif
73709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
747b7060c61e4182b29186849c5a857ea5f0898e56Rose, Jamesifeq ($(ARCH_X86_HAVE_SSSE3),true)
757b7060c61e4182b29186849c5a857ea5f0898e56Rose, James    LOCAL_CFLAGS += -DARCH_X86_HAVE_SSSE3
767b7060c61e4182b29186849c5a857ea5f0898e56Rose, James    LOCAL_SRC_FILES+= \
777b7060c61e4182b29186849c5a857ea5f0898e56Rose, James    rsCpuIntrinsics_x86.c
787b7060c61e4182b29186849c5a857ea5f0898e56Rose, Jamesendif
797b7060c61e4182b29186849c5a857ea5f0898e56Rose, James
808c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim MurrayLOCAL_SHARED_LIBRARIES += libRS libcutils libutils liblog libsync libc++
81e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray
82e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray# these are not supported in 64-bit yet
838c24cd62187fb963cb1b76d2e91ae8c247c7f6fbTim MurrayLOCAL_SHARED_LIBRARIES += libbcc libbcinfo
84e195a3f57ace3b66d313a6ee88c6e93d5c9d87f4Tim Murray
85709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
86709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_C_INCLUDES += frameworks/compile/libbcc/include
87709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_C_INCLUDES += frameworks/rs
88709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
898d50174ff0e80bc3846f9dfd6f7d154fc4949db4Logan Chienifneq ($(HOST_OS),windows)
90005113297b19ed256b6db9d6bc293ed9266899fcStephen Hinesinclude external/libcxx/libcxx.mk
918d50174ff0e80bc3846f9dfd6f7d154fc4949db4Logan Chienendif
9282e0a6779cb1006921153081fb33374197e7c9deStephen Hinesinclude frameworks/compile/libbcc/libbcc-targets.mk
93005113297b19ed256b6db9d6bc293ed9266899fcStephen Hines
94709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_CFLAGS += $(rs_base_CFLAGS)
95709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
96709a0978ae141198018ca9769f8d96292a8928e6Jason SamsLOCAL_MODULE_TAGS := optional
97709a0978ae141198018ca9769f8d96292a8928e6Jason Sams
98709a0978ae141198018ca9769f8d96292a8928e6Jason Samsinclude $(BUILD_SHARED_LIBRARY)
99