blob: c6da7c938d2cf3e8812329c02aad428d49160d16 [file] [log] [blame]
Merck Hung90c0c552018-09-28 16:08:14 +08001LOCAL_PATH := $(call my-dir)
2swiftshader_src_root := $(LOCAL_PATH)
Greg Hartman9ec919a2015-04-16 21:44:59 -07003
Greg Hartmandf01da32015-09-16 15:27:27 -07004COMMON_C_INCLUDES += \
5 bionic \
Nicolas Capensb7510aa2016-05-16 13:16:32 -04006 $(LOCAL_PATH)/../include \
Nicolas Capens9c025c02015-12-07 20:58:40 -05007 $(LOCAL_PATH)/OpenGL/ \
Nicolas Capens708c24b2017-10-26 13:07:10 -04008 $(LOCAL_PATH)
Nicolas Capens9c025c02015-12-07 20:58:40 -05009
Logan Chien6c9fb0e2019-02-26 13:39:52 +080010ifeq ($(REACTOR_USE_SUBZERO),true)
Logan Chien17b75892018-08-27 10:49:24 +080011
Nicolas Capens1ba26112017-05-02 11:57:06 -040012COMMON_C_INCLUDES += \
Nicolas Capens5aebe182017-05-03 14:23:06 -040013 $(LOCAL_PATH)/../third_party/subzero/ \
Nicolas Capens1ba26112017-05-02 11:57:06 -040014 $(LOCAL_PATH)/../third_party/llvm-subzero/include/ \
15 $(LOCAL_PATH)/../third_party/llvm-subzero/build/Android/include/ \
Nicolas Capens5aebe182017-05-03 14:23:06 -040016 $(LOCAL_PATH)/../third_party/subzero/pnacl-llvm/include/
Logan Chien17b75892018-08-27 10:49:24 +080017
Nicolas Capens1ba26112017-05-02 11:57:06 -040018else
Logan Chien17b75892018-08-27 10:49:24 +080019
Nicolas Capensf417d9d2018-10-10 10:49:30 -040020ifeq ($(REACTOR_LLVM_VERSION),3)
Nicolas Capens1ba26112017-05-02 11:57:06 -040021COMMON_C_INCLUDES += \
22 $(LOCAL_PATH)/../third_party/LLVM/include
Logan Chien17b75892018-08-27 10:49:24 +080023else
24COMMON_C_INCLUDES += \
25 $(LOCAL_PATH)/../third_party/llvm-7.0/llvm/include \
26 $(LOCAL_PATH)/../third_party/llvm-7.0/configs/android/include \
27 $(LOCAL_PATH)/../third_party/llvm-7.0/configs/common/include
28endif
29
Nicolas Capens1ba26112017-05-02 11:57:06 -040030endif
31
Greg Hartman7e45f6d2018-03-16 00:02:23 -070032# Project Treble is introduced from Oreo MR1
33ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27 && echo OreoMR1),OreoMR1)
Jiyong Parka114ed52017-08-18 19:07:26 +090034COMMON_SHARED_LIBRARIES := libnativewindow liblog
35COMMON_HEADER_LIBRARIES := libhardware_headers libnativebase_headers
36COMMON_STATIC_LIBRARIES := libarect
Nicolas Capensc33b4732017-08-03 15:53:25 -040037endif
38
Nicolas Capens9c025c02015-12-07 20:58:40 -050039# Marshmallow does not have stlport, but comes with libc++ by default
40ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
41COMMON_C_INCLUDES += external/stlport/stlport
42endif
Greg Hartman9ec919a2015-04-16 21:44:59 -070043
Greg Hartmandf01da32015-09-16 15:27:27 -070044COMMON_SRC_FILES := \
Greg Hartman9ec919a2015-04-16 21:44:59 -070045 Common/CPUID.cpp \
46 Common/Configurator.cpp \
47 Common/DebugAndroid.cpp \
Greg Hartmanf66c1102015-04-17 17:29:14 -070048 Common/GrallocAndroid.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070049 Common/Half.cpp \
50 Common/Math.cpp \
51 Common/Memory.cpp \
52 Common/Resource.cpp \
53 Common/Socket.cpp \
54 Common/Thread.cpp \
55 Common/Timer.cpp
56
Greg Hartmandf01da32015-09-16 15:27:27 -070057COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -070058 Main/Config.cpp \
59 Main/FrameBuffer.cpp \
60 Main/FrameBufferAndroid.cpp \
Nicolas Capens518e41a2016-04-27 23:18:01 -040061 Main/SwiftConfig.cpp
Greg Hartman9ec919a2015-04-16 21:44:59 -070062
Nicolas Capensc07dc4b2018-08-06 14:20:45 -040063COMMON_SRC_FILES += \
Nicolas Capensb6d4ce32019-03-12 23:00:24 -040064 Reactor/Reactor.cpp \
Nicolas Capensc07dc4b2018-08-06 14:20:45 -040065 Reactor/Routine.cpp \
66 Reactor/Debug.cpp \
67 Reactor/DebugAndroid.cpp \
Nicolas Capens1a3ce872018-10-10 10:42:36 -040068 Reactor/ExecutableMemory.cpp
Nicolas Capensc07dc4b2018-08-06 14:20:45 -040069
Logan Chien6c9fb0e2019-02-26 13:39:52 +080070ifeq ($(REACTOR_USE_SUBZERO),true)
Nicolas Capens1ba26112017-05-02 11:57:06 -040071COMMON_SRC_FILES += \
72 Reactor/SubzeroReactor.cpp \
Nicolas Capens1ba26112017-05-02 11:57:06 -040073 Reactor/Optimizer.cpp
74else
Greg Hartmandf01da32015-09-16 15:27:27 -070075COMMON_SRC_FILES += \
Nicolas Capens5763d172016-09-26 13:44:20 -040076 Reactor/LLVMReactor.cpp \
Nicolas Capensdaa5d912016-09-28 16:56:36 -040077 Reactor/LLVMRoutine.cpp \
Nicolas Capensc07dc4b2018-08-06 14:20:45 -040078 Reactor/LLVMRoutineManager.cpp \
79 Reactor/CPUID.cpp
Nicolas Capens1ba26112017-05-02 11:57:06 -040080endif
Greg Hartman9ec919a2015-04-16 21:44:59 -070081
Greg Hartmandf01da32015-09-16 15:27:27 -070082COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -070083 Renderer/Blitter.cpp \
84 Renderer/Clipper.cpp \
85 Renderer/Color.cpp \
86 Renderer/Context.cpp \
Alexis Hetu0de50d42015-09-09 13:56:41 -040087 Renderer/ETC_Decoder.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070088 Renderer/Matrix.cpp \
89 Renderer/PixelProcessor.cpp \
90 Renderer/Plane.cpp \
91 Renderer/Point.cpp \
92 Renderer/QuadRasterizer.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070093 Renderer/Renderer.cpp \
94 Renderer/Sampler.cpp \
95 Renderer/SetupProcessor.cpp \
96 Renderer/Surface.cpp \
97 Renderer/TextureStage.cpp \
98 Renderer/Vector.cpp \
99 Renderer/VertexProcessor.cpp \
100
Greg Hartmandf01da32015-09-16 15:27:27 -0700101COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -0700102 Shader/Constants.cpp \
Alexis Hetuf2a8c372015-07-13 11:08:41 -0400103 Shader/PixelPipeline.cpp \
104 Shader/PixelProgram.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -0700105 Shader/PixelRoutine.cpp \
106 Shader/PixelShader.cpp \
107 Shader/SamplerCore.cpp \
108 Shader/SetupRoutine.cpp \
109 Shader/Shader.cpp \
110 Shader/ShaderCore.cpp \
111 Shader/VertexPipeline.cpp \
112 Shader/VertexProgram.cpp \
113 Shader/VertexRoutine.cpp \
114 Shader/VertexShader.cpp \
115
Greg Hartmandf01da32015-09-16 15:27:27 -0700116COMMON_SRC_FILES += \
Nicolas Capensdeda34b2015-04-28 15:21:53 -0700117 OpenGL/common/Image.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -0700118 OpenGL/common/Object.cpp \
119 OpenGL/common/MatrixStack.cpp \
120
Greg Hartman3b876b92015-12-01 20:07:21 -0800121COMMON_CFLAGS := \
122 -DLOG_TAG=\"swiftshader\" \
Chih-Hung Hsieh4be91712017-10-11 14:23:57 -0700123 -Wall \
124 -Werror \
125 -Wno-format \
126 -Wno-switch \
127 -Wno-unused-local-typedef \
Greg Hartman3b876b92015-12-01 20:07:21 -0800128 -Wno-unused-parameter \
Chih-Hung Hsieh4be91712017-10-11 14:23:57 -0700129 -Wno-unused-value \
130 -Wno-unused-variable \
Greg Hartman3b876b92015-12-01 20:07:21 -0800131 -Wno-implicit-exception-spec-mismatch \
Nicolas Capens7cfb50c2018-12-08 12:35:32 -0800132 -Wno-implicit-fallthrough \
Greg Hartman3b876b92015-12-01 20:07:21 -0800133 -Wno-overloaded-virtual \
Nicolas Capens1ba26112017-05-02 11:57:06 -0400134 -Wno-non-virtual-dtor \
Nicolas Capensdc209332017-08-04 09:40:46 -0400135 -Wno-attributes \
136 -Wno-unknown-attributes \
137 -Wno-unknown-warning-option \
Greg Hartman3b876b92015-12-01 20:07:21 -0800138 -fno-operator-names \
139 -msse2 \
140 -D__STDC_CONSTANT_MACROS \
141 -D__STDC_LIMIT_MACROS \
142 -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) \
Nicolas Capens506cc5e2017-07-24 11:30:55 -0400143 -std=c++11 \
144 -DNO_SANITIZE_FUNCTION=
Nicolas Capens135f6342015-11-11 10:49:08 -0500145
Greg Hartman3b876b92015-12-01 20:07:21 -0800146ifneq (16,${PLATFORM_SDK_VERSION})
147COMMON_CFLAGS += -Xclang -fuse-init-array
148else
149COMMON_CFLAGS += -D__STDC_INT64__
150endif
151
Jaesung Chungfccddfe2017-06-22 20:02:09 +0900152# gralloc1 is introduced from N MR1
153ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 25 && echo NMR1),NMR1)
154COMMON_CFLAGS += -DHAVE_GRALLOC1
155COMMON_C_INCLUDES += \
156 system/core/libsync/include \
157 system/core/libsync
158endif
159
Logan Chien17b75892018-08-27 10:49:24 +0800160# Common LLVM defines
Nicolas Capensf417d9d2018-10-10 10:49:30 -0400161COMMON_CFLAGS += -DREACTOR_LLVM_VERSION=$(REACTOR_LLVM_VERSION)
Logan Chien17b75892018-08-27 10:49:24 +0800162
Nicolas Capens1ba26112017-05-02 11:57:06 -0400163# Common Subzero defines
164COMMON_CFLAGS += -DALLOW_DUMP=0 -DALLOW_TIMERS=0 -DALLOW_LLVM_CL=0 -DALLOW_LLVM_IR=0 -DALLOW_LLVM_IR_AS_INPUT=0 -DALLOW_MINIMAL_BUILD=0 -DALLOW_WASM=0 -DICE_THREAD_LOCAL_HACK=1
165
166# Subzero target
167LOCAL_CFLAGS_x86 += -DSZTARGET=X8632
168LOCAL_CFLAGS_x86_64 += -DSZTARGET=X8664
169LOCAL_CFLAGS_arm += -DSZTARGET=ARM32
170
Greg Hartmandf01da32015-09-16 15:27:27 -0700171include $(CLEAR_VARS)
172LOCAL_CLANG := true
173LOCAL_MODULE := swiftshader_top_release
Jiyong Parka114ed52017-08-18 19:07:26 +0900174LOCAL_VENDOR_MODULE := true
Greg Hartmandf01da32015-09-16 15:27:27 -0700175LOCAL_MODULE_TAGS := optional
176LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
177LOCAL_CFLAGS := $(COMMON_CFLAGS) -fomit-frame-pointer -ffunction-sections -fdata-sections -DANGLE_DISABLE_TRACE
178LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
Nicolas Capensc33b4732017-08-03 15:53:25 -0400179LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
Jiyong Parka114ed52017-08-18 19:07:26 +0900180LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
181LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES)
Greg Hartmandf01da32015-09-16 15:27:27 -0700182include $(BUILD_STATIC_LIBRARY)
Greg Hartman9ec919a2015-04-16 21:44:59 -0700183
Greg Hartmandf01da32015-09-16 15:27:27 -0700184include $(CLEAR_VARS)
185LOCAL_CLANG := true
186LOCAL_MODULE := swiftshader_top_debug
Jiyong Parka114ed52017-08-18 19:07:26 +0900187LOCAL_VENDOR_MODULE := true
Greg Hartmandf01da32015-09-16 15:27:27 -0700188LOCAL_MODULE_TAGS := optional
189LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
Greg Hartman5d6c1c72015-10-02 16:29:40 -0700190LOCAL_CFLAGS := $(COMMON_CFLAGS) -UNDEBUG -g -O0 -DDEFAULT_THREAD_COUNT=1
Greg Hartmandf01da32015-09-16 15:27:27 -0700191LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
Nicolas Capensc33b4732017-08-03 15:53:25 -0400192LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
Jiyong Parka114ed52017-08-18 19:07:26 +0900193LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
194LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES)
Greg Hartman9ec919a2015-04-16 21:44:59 -0700195include $(BUILD_STATIC_LIBRARY)
Greg Hartman8527e472015-11-02 13:08:12 -0800196
Merck Hung90c0c552018-09-28 16:08:14 +0800197include $(swiftshader_src_root)/Reactor/Android.mk
198include $(swiftshader_src_root)/OpenGL/libGLESv2/Android.mk
199include $(swiftshader_src_root)/OpenGL/libGLES_CM/Android.mk
200include $(swiftshader_src_root)/OpenGL/libEGL/Android.mk
201include $(swiftshader_src_root)/OpenGL/compiler/Android.mk