10f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 208b8f64be637bde97f6d0c20fe31387c311ca634Tim MurrayLOCAL_PATH:=frameworks/rs 36e127d6c76f02024ef906c9a450a9b2d80657566Stephen Hinesrs_base_CFLAGS := -Werror -Wall -Wno-unused-parameter -Wno-unused-variable \ 46625634eb9430e9c9af6bfef4772f72baa28bd15Chris Wailes -Wno-overloaded-virtual -DRS_COMPATIBILITY_LIB -std=c++11 5d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hines 6d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hinesifeq ($(ARCH_ARM_HAVE_NEON),true) 7d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hinesrs_base_CFLAGS += -DARCH_ARM_HAVE_NEON 8d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hinesendif 9d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hines 100f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesifeq ($(TARGET_BUILD_PDK), true) 110f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rs_base_CFLAGS += -D__RS_PDK__ 120f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesendif 130f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 140f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# Build rsg-generator ==================== 150f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesinclude $(CLEAR_VARS) 160f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 170f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE := rsg-generator_support 180f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 190f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# These symbols are normally defined by BUILD_XXX, but we need to define them 200f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# here so that local-intermediates-dir works. 210f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 220f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_IS_HOST_MODULE := true 230f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE_CLASS := EXECUTABLES 240f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesintermediates := $(local-intermediates-dir) 250f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE_TAGS := optional 260f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 270f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_SRC_FILES:= \ 280f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines spec.l \ 290f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsg_generator.c 300f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 310aec6cccd03b8ad8ee04d8822e1dbf261802cdb6Stephen HinesLOCAL_CXX_STL := none 32c0e12b8f7371c7dde5e684ba0a128edd9fcf4284Dan AlbertLOCAL_ADDRESS_SANITIZER := false 330aec6cccd03b8ad8ee04d8822e1dbf261802cdb6Stephen Hines 340f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesinclude $(BUILD_HOST_EXECUTABLE) 350f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 360f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# TODO: This should go into build/core/config.mk 370f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesRSG_GENERATOR_SUPPORT:=$(LOCAL_BUILT_MODULE) 380f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 390f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesinclude $(CLEAR_VARS) 400f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_CLANG := true 410f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE := libRSSupport 42f5f301597fa31aa2e18231f860c15828974bf2d6Stephen HinesLOCAL_SDK_VERSION := 8 430f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 44c53fa6cbc770a7bc3a233eea66455eca0aa8ef7bYing Wang 450f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE_CLASS := SHARED_LIBRARIES 4603b4972e5dd5c51c2b52d67149a786afc51d38d0Ying Wanggenerated_sources_dir := $(call local-generated-sources-dir) 470f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 480f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# Generate custom headers 490f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 5003b4972e5dd5c51c2b52d67149a786afc51d38d0Ying WangGEN := $(addprefix $(generated_sources_dir)/, \ 510f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsgApiStructs.h \ 520f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsgApiFuncDecl.h \ 530f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines ) 540f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 550f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 560f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : PRIVATE_CUSTOM_TOOL = $(RSG_GENERATOR_SUPPORT) $< $@ <$(PRIVATE_PATH)/rs.spec 570f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec 5803b4972e5dd5c51c2b52d67149a786afc51d38d0Ying Wang$(GEN): $(generated_sources_dir)/%.h : $(LOCAL_PATH)/%.h.rsg 590f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines $(transform-generated-source) 600f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 610f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# used in jni/Android.mk 620f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesrs_generated_source += $(GEN) 630f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_GENERATED_SOURCES += $(GEN) 640f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 650f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# Generate custom source files 660f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 6703b4972e5dd5c51c2b52d67149a786afc51d38d0Ying WangGEN := $(addprefix $(generated_sources_dir)/, \ 680f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsgApi.cpp \ 690f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsgApiReplay.cpp \ 700f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines ) 710f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 720f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : PRIVATE_PATH := $(LOCAL_PATH) 730f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : PRIVATE_CUSTOM_TOOL = $(RSG_GENERATOR_SUPPORT) $< $@ <$(PRIVATE_PATH)/rs.spec 740f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines$(GEN) : $(RSG_GENERATOR_SUPPORT) $(LOCAL_PATH)/rs.spec 7503b4972e5dd5c51c2b52d67149a786afc51d38d0Ying Wang$(GEN): $(generated_sources_dir)/%.cpp : $(LOCAL_PATH)/%.cpp.rsg 760f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines $(transform-generated-source) 770f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 780f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines# used in jni/Android.mk 790f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesrs_generated_source += $(GEN) 800f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 810f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_GENERATED_SOURCES += $(GEN) 820f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 830f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_SRC_FILES:= \ 840f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsAdapter.cpp \ 850f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsAllocation.cpp \ 86bcccd31800d79f28767fe3d5db4e5cb4fb148360Yang Ni rsClosure.cpp \ 8799fa396e67b407444b6a2c0919ddca920f24c944Stephen Hines rsCompatibilityLib.cpp \ 880f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsComponent.cpp \ 890f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsContext.cpp \ 901d25487751ddef5e2bc1724ed77b2a15fbcf81beJason Sams rsCppUtils.cpp \ 910f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsDevice.cpp \ 92519eb53a4e2759340e2e7b3da1aaa2e56162c305Jason Sams rsDriverLoader.cpp \ 930f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsElement.cpp \ 940f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsFifoSocket.cpp \ 950f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsObjectBase.cpp \ 960f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsMatrix2x2.cpp \ 970f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsMatrix3x3.cpp \ 980f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsMatrix4x4.cpp \ 990f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsMutex.cpp \ 1000f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsSampler.cpp \ 1010f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsScript.cpp \ 1020f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsScriptC.cpp \ 1030f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsScriptC_Lib.cpp \ 104ca29b8caf56fa4866752f9cea4ec02b2a271dceeJason Sams rsScriptGroup.cpp \ 105bcccd31800d79f28767fe3d5db4e5cb4fb148360Yang Ni rsScriptGroup2.cpp \ 106ca29b8caf56fa4866752f9cea4ec02b2a271dceeJason Sams rsScriptIntrinsic.cpp \ 1070f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsSignal.cpp \ 1080f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsStream.cpp \ 1090f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines rsThreadIO.cpp \ 1104513614e13d278070cf0dcb9322ca4ade350b58cJason Sams rsType.cpp \ 1114513614e13d278070cf0dcb9322ca4ade350b58cJason Sams driver/rsdAllocation.cpp \ 1124513614e13d278070cf0dcb9322ca4ade350b58cJason Sams driver/rsdBcc.cpp \ 1134513614e13d278070cf0dcb9322ca4ade350b58cJason Sams driver/rsdCore.cpp \ 114a7b5fb71398b3eb5fa98736ba183ea07e8934002Tim Murray driver/rsdElement.cpp \ 1154513614e13d278070cf0dcb9322ca4ade350b58cJason Sams driver/rsdRuntimeStubs.cpp \ 116ca29b8caf56fa4866752f9cea4ec02b2a271dceeJason Sams driver/rsdSampler.cpp \ 1171b370e358d16cc3b50b169511d6b387db09f972dJason Sams driver/rsdScriptGroup.cpp \ 118a7b5fb71398b3eb5fa98736ba183ea07e8934002Tim Murray driver/rsdType.cpp \ 1191b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuCore.cpp \ 12051980d0779a6619aca1b26ea5c96d37fb6bbc06fYang Ni cpu_ref/rsCpuExecutable.cpp \ 1211b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuScript.cpp \ 1221b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuRuntimeMath.cpp \ 1231b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuScriptGroup.cpp \ 124bcccd31800d79f28767fe3d5db4e5cb4fb148360Yang Ni cpu_ref/rsCpuScriptGroup2.cpp \ 1251b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsic.cpp \ 126f6eb6126e6ce5012dc6691849b4e3c1774a2c877Jason Sams cpu_ref/rsCpuIntrinsic3DLUT.cpp \ 1271b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicBlend.cpp \ 1281b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicBlur.cpp \ 1298dab1e59827244f84ceb73c5eb24427223b58b21Miao Wang cpu_ref/rsCpuIntrinsicBLAS.cpp \ 1301b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicColorMatrix.cpp \ 1311b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicConvolve3x3.cpp \ 1321b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicConvolve5x5.cpp \ 13359f38e84715560c3dd78fabffb539372526c0870Stephen Hines cpu_ref/rsCpuIntrinsicHistogram.cpp \ 1341b370e358d16cc3b50b169511d6b387db09f972dJason Sams cpu_ref/rsCpuIntrinsicLUT.cpp \ 135b680aeb2f52857274ce5bc36711485d59eedf99fJason Sams cpu_ref/rsCpuIntrinsicResize.cpp \ 1360e460d3cd6179a5dfd87945918c41a199b6927b9Tim Murray cpu_ref/rsCpuIntrinsicYuvToRGB.cpp \ 1370e460d3cd6179a5dfd87945918c41a199b6927b9Tim Murray cpu_ref/rsCpuRuntimeMathFuncs.cpp 1380f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 1394c16f793356049094cd5afe2f84ce45f48bc4078Tim Murrayifeq ($(ARCH_ARM_HAVE_ARMV7A),true) 140f96c8e00403a64d0215b563b96765f381881bfe8Tim MurrayLOCAL_CFLAGS_arm := -DARCH_ARM_HAVE_VFP -DARCH_ARM_USE_INTRINSICS 141c53fa6cbc770a7bc3a233eea66455eca0aa8ef7bYing WangLOCAL_ASFLAGS_arm := -mfpu=neon 142d326e117ad502d4b3ae823e18c421ea61af5a0deChih-Hung Hsieh# frameworks/rs/cpu_ref/rsCpuIntrinsics_neon_3DLUT.S does not compile. 143d326e117ad502d4b3ae823e18c421ea61af5a0deChih-Hung HsiehLOCAL_CLANG_ASFLAGS_arm += -no-integrated-as 144c53fa6cbc770a7bc3a233eea66455eca0aa8ef7bYing WangLOCAL_SRC_FILES_arm := \ 14543378e9f2a0bcf0d12aafdca76b78fe2729fa949Jason Sams cpu_ref/rsCpuIntrinsics_neon_3DLUT.S \ 146d49d091e11c51001bf3938c75004c07b646be24bTim Murray cpu_ref/rsCpuIntrinsics_neon_ColorMatrix.S \ 147d49d091e11c51001bf3938c75004c07b646be24bTim Murray cpu_ref/rsCpuIntrinsics_neon_Blend.S \ 148d49d091e11c51001bf3938c75004c07b646be24bTim Murray cpu_ref/rsCpuIntrinsics_neon_Blur.S \ 1493342757c37c16a544b47903000864afee8c85b16Jason Sams cpu_ref/rsCpuIntrinsics_neon_Convolve.S \ 150f7a4ceea535ef3a1ee7a4ec7bed2140e7f0b3c95Jason Sams cpu_ref/rsCpuIntrinsics_neon_Resize.S \ 151d49d091e11c51001bf3938c75004c07b646be24bTim Murray cpu_ref/rsCpuIntrinsics_neon_YuvToRGB.S 152d227f6cb022d73696c3e3c3d55470c80ba1167baStephen Hinesendif 1530f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 154ea476b88ae7075ee7b0dabc0771d8d1a3b480b31Miao WangLOCAL_REQUIRED_MODULES := libblasV8 15587645725349465a6981c2cf250e37bd6f0e2acbbStephen HinesLOCAL_LDFLAGS += -llog -ldl 156f5f301597fa31aa2e18231f860c15828974bf2d6Stephen HinesLOCAL_NDK_STL_VARIANT := stlport_static 1570f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 1580f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_C_INCLUDES += frameworks/compile/libbcc/include 1598dab1e59827244f84ceb73c5eb24427223b58b21Miao WangLOCAL_C_INCLUDES += external/cblas/include 1600f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 1610f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_CFLAGS += $(rs_base_CFLAGS) 1620f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 1630f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE:= libRSSupport 1640f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen HinesLOCAL_MODULE_TAGS := optional 1650f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hines 16693ea123bc454ffc76d824b571c9103f62eb39a02Ian Rogers# TODO: why isn't this picked up from the host GLOBAL_CFLAGS? 16793ea123bc454ffc76d824b571c9103f62eb39a02Ian RogersLOCAL_CFLAGS += -D__STDC_FORMAT_MACROS 16893ea123bc454ffc76d824b571c9103f62eb39a02Ian Rogers 1690f6f72e19db852cc253fd2fc05459abdf8d5c3afStephen Hinesinclude $(BUILD_SHARED_LIBRARY) 170