1LOCAL_PATH:= $(call my-dir)
2
3COMMON_C_INCLUDES += \
4	bionic \
5	$(LOCAL_PATH)/../include \
6	$(LOCAL_PATH)/OpenGL/ \
7	$(LOCAL_PATH)
8
9ifdef use_subzero
10COMMON_C_INCLUDES += \
11	$(LOCAL_PATH)/../third_party/subzero/ \
12	$(LOCAL_PATH)/../third_party/llvm-subzero/include/ \
13	$(LOCAL_PATH)/../third_party/llvm-subzero/build/Android/include/ \
14	$(LOCAL_PATH)/../third_party/subzero/pnacl-llvm/include/
15else
16COMMON_C_INCLUDES += \
17	$(LOCAL_PATH)/../third_party/LLVM/include
18endif
19
20# Project Treble is introduced from Oreo MR1
21ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 27 && echo OreoMR1),OreoMR1)
22COMMON_SHARED_LIBRARIES := libnativewindow liblog
23COMMON_HEADER_LIBRARIES := libhardware_headers libnativebase_headers
24COMMON_STATIC_LIBRARIES := libarect
25endif
26
27# Marshmallow does not have stlport, but comes with libc++ by default
28ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
29COMMON_C_INCLUDES += external/stlport/stlport
30endif
31
32COMMON_SRC_FILES := \
33	Common/CPUID.cpp \
34	Common/Configurator.cpp \
35	Common/DebugAndroid.cpp \
36	Common/GrallocAndroid.cpp \
37	Common/Half.cpp \
38	Common/Math.cpp \
39	Common/Memory.cpp \
40	Common/Resource.cpp \
41	Common/Socket.cpp \
42	Common/Thread.cpp \
43	Common/Timer.cpp
44
45COMMON_SRC_FILES += \
46	Main/Config.cpp \
47	Main/FrameBuffer.cpp \
48	Main/FrameBufferAndroid.cpp \
49	Main/SwiftConfig.cpp
50
51ifdef use_subzero
52COMMON_SRC_FILES += \
53	Reactor/SubzeroReactor.cpp \
54	Reactor/Routine.cpp \
55	Reactor/Optimizer.cpp
56else
57COMMON_SRC_FILES += \
58	Reactor/LLVMReactor.cpp \
59	Reactor/Routine.cpp \
60	Reactor/LLVMRoutine.cpp \
61	Reactor/LLVMRoutineManager.cpp
62endif
63
64COMMON_SRC_FILES += \
65	Renderer/Blitter.cpp \
66	Renderer/Clipper.cpp \
67	Renderer/Color.cpp \
68	Renderer/Context.cpp \
69	Renderer/ETC_Decoder.cpp \
70	Renderer/Matrix.cpp \
71	Renderer/PixelProcessor.cpp \
72	Renderer/Plane.cpp \
73	Renderer/Point.cpp \
74	Renderer/QuadRasterizer.cpp \
75	Renderer/Renderer.cpp \
76	Renderer/Sampler.cpp \
77	Renderer/SetupProcessor.cpp \
78	Renderer/Surface.cpp \
79	Renderer/TextureStage.cpp \
80	Renderer/Vector.cpp \
81	Renderer/VertexProcessor.cpp \
82
83COMMON_SRC_FILES += \
84	Shader/Constants.cpp \
85	Shader/PixelPipeline.cpp \
86	Shader/PixelProgram.cpp \
87	Shader/PixelRoutine.cpp \
88	Shader/PixelShader.cpp \
89	Shader/SamplerCore.cpp \
90	Shader/SetupRoutine.cpp \
91	Shader/Shader.cpp \
92	Shader/ShaderCore.cpp \
93	Shader/VertexPipeline.cpp \
94	Shader/VertexProgram.cpp \
95	Shader/VertexRoutine.cpp \
96	Shader/VertexShader.cpp \
97
98COMMON_SRC_FILES += \
99	OpenGL/common/Image.cpp \
100	OpenGL/common/Object.cpp \
101	OpenGL/common/MatrixStack.cpp \
102
103COMMON_CFLAGS := \
104	-DLOG_TAG=\"swiftshader\" \
105	-Wall \
106	-Werror \
107	-Wno-format \
108	-Wno-switch \
109	-Wno-unused-local-typedef \
110	-Wno-unused-parameter \
111	-Wno-unused-value \
112	-Wno-unused-variable \
113	-Wno-implicit-exception-spec-mismatch \
114	-Wno-overloaded-virtual \
115	-Wno-non-virtual-dtor \
116	-Wno-attributes \
117	-Wno-unknown-attributes \
118	-Wno-unknown-warning-option \
119	-fno-operator-names \
120	-msse2 \
121	-D__STDC_CONSTANT_MACROS \
122	-D__STDC_LIMIT_MACROS \
123	-DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) \
124	-std=c++11 \
125	-DNO_SANITIZE_FUNCTION=
126
127ifneq (16,${PLATFORM_SDK_VERSION})
128COMMON_CFLAGS += -Xclang -fuse-init-array
129else
130COMMON_CFLAGS += -D__STDC_INT64__
131endif
132
133# gralloc1 is introduced from N MR1
134ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 25 && echo NMR1),NMR1)
135COMMON_CFLAGS += -DHAVE_GRALLOC1
136COMMON_C_INCLUDES += \
137	system/core/libsync/include \
138	system/core/libsync
139endif
140
141# Common Subzero defines
142COMMON_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
143
144# Subzero target
145LOCAL_CFLAGS_x86 += -DSZTARGET=X8632
146LOCAL_CFLAGS_x86_64 += -DSZTARGET=X8664
147LOCAL_CFLAGS_arm += -DSZTARGET=ARM32
148
149include $(CLEAR_VARS)
150LOCAL_CLANG := true
151LOCAL_MODULE := swiftshader_top_release
152LOCAL_VENDOR_MODULE := true
153LOCAL_MODULE_TAGS := optional
154LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
155LOCAL_CFLAGS := $(COMMON_CFLAGS) -fomit-frame-pointer -ffunction-sections -fdata-sections -DANGLE_DISABLE_TRACE
156LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
157LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
158LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
159LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES)
160include $(BUILD_STATIC_LIBRARY)
161
162include $(CLEAR_VARS)
163LOCAL_CLANG := true
164LOCAL_MODULE := swiftshader_top_debug
165LOCAL_VENDOR_MODULE := true
166LOCAL_MODULE_TAGS := optional
167LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
168LOCAL_CFLAGS := $(COMMON_CFLAGS) -UNDEBUG -g -O0 -DDEFAULT_THREAD_COUNT=1
169LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
170LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
171LOCAL_HEADER_LIBRARIES := $(COMMON_HEADER_LIBRARIES)
172LOCAL_STATIC_LIBRARIES := $(COMMON_STATIC_LIBRARIES)
173include $(BUILD_STATIC_LIBRARY)
174
175include $(call all-makefiles-under,$(LOCAL_PATH))
176