blob: c067be66b62caf596bbba3b41a099d23ca3f15b8 [file] [log] [blame]
Greg Hartman9ec919a2015-04-16 21:44:59 -07001LOCAL_PATH:= $(call my-dir)
Greg Hartman9ec919a2015-04-16 21:44:59 -07002
Nicolas Capens1ba26112017-05-02 11:57:06 -04003# Use Subzero as the Reactor JIT back-end on ARM, else LLVM.
4ifeq ($(TARGET_ARCH),$(filter $(TARGET_ARCH),arm))
5use_subzero := true
6endif
7
Greg Hartmandf01da32015-09-16 15:27:27 -07008COMMON_C_INCLUDES += \
9 bionic \
Nicolas Capensb7510aa2016-05-16 13:16:32 -040010 $(LOCAL_PATH)/../include \
Nicolas Capens9c025c02015-12-07 20:58:40 -050011 $(LOCAL_PATH)/OpenGL/ \
12 $(LOCAL_PATH) \
13 $(LOCAL_PATH)/Renderer/ \
14 $(LOCAL_PATH)/Common/ \
15 $(LOCAL_PATH)/Shader/ \
Nicolas Capens9c025c02015-12-07 20:58:40 -050016 $(LOCAL_PATH)/Main/
17
Nicolas Capens1ba26112017-05-02 11:57:06 -040018ifdef use_subzero
19COMMON_C_INCLUDES += \
Nicolas Capens5aebe182017-05-03 14:23:06 -040020 $(LOCAL_PATH)/../third_party/subzero/ \
Nicolas Capens1ba26112017-05-02 11:57:06 -040021 $(LOCAL_PATH)/../third_party/llvm-subzero/include/ \
22 $(LOCAL_PATH)/../third_party/llvm-subzero/build/Android/include/ \
Nicolas Capens5aebe182017-05-03 14:23:06 -040023 $(LOCAL_PATH)/../third_party/subzero/pnacl-llvm/include/
Nicolas Capens1ba26112017-05-02 11:57:06 -040024else
25COMMON_C_INCLUDES += \
26 $(LOCAL_PATH)/../third_party/LLVM/include
27endif
28
Nicolas Capensc33b4732017-08-03 15:53:25 -040029# libnativewindow is introduced from O
30ifeq ($(shell test $(PLATFORM_SDK_VERSION) -ge 26 && echo O),O)
31COMMON_SHARED_LIBRARIES := libnativewindow
32endif
33
Nicolas Capens9c025c02015-12-07 20:58:40 -050034# Marshmallow does not have stlport, but comes with libc++ by default
35ifeq ($(shell test $(PLATFORM_SDK_VERSION) -lt 23 && echo PreMarshmallow),PreMarshmallow)
36COMMON_C_INCLUDES += external/stlport/stlport
37endif
Greg Hartman9ec919a2015-04-16 21:44:59 -070038
Greg Hartmandf01da32015-09-16 15:27:27 -070039COMMON_SRC_FILES := \
Greg Hartman9ec919a2015-04-16 21:44:59 -070040 Common/CPUID.cpp \
41 Common/Configurator.cpp \
42 Common/DebugAndroid.cpp \
Greg Hartmanf66c1102015-04-17 17:29:14 -070043 Common/GrallocAndroid.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070044 Common/Half.cpp \
45 Common/Math.cpp \
46 Common/Memory.cpp \
47 Common/Resource.cpp \
48 Common/Socket.cpp \
49 Common/Thread.cpp \
50 Common/Timer.cpp
51
Greg Hartmandf01da32015-09-16 15:27:27 -070052COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -070053 Main/Config.cpp \
54 Main/FrameBuffer.cpp \
55 Main/FrameBufferAndroid.cpp \
Nicolas Capens518e41a2016-04-27 23:18:01 -040056 Main/SwiftConfig.cpp
Greg Hartman9ec919a2015-04-16 21:44:59 -070057
Nicolas Capens1ba26112017-05-02 11:57:06 -040058ifdef use_subzero
59COMMON_SRC_FILES += \
60 Reactor/SubzeroReactor.cpp \
61 Reactor/Routine.cpp \
62 Reactor/Optimizer.cpp
63else
Greg Hartmandf01da32015-09-16 15:27:27 -070064COMMON_SRC_FILES += \
Nicolas Capens5763d172016-09-26 13:44:20 -040065 Reactor/LLVMReactor.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070066 Reactor/Routine.cpp \
Nicolas Capensdaa5d912016-09-28 16:56:36 -040067 Reactor/LLVMRoutine.cpp \
68 Reactor/LLVMRoutineManager.cpp
Nicolas Capens1ba26112017-05-02 11:57:06 -040069endif
Greg Hartman9ec919a2015-04-16 21:44:59 -070070
Greg Hartmandf01da32015-09-16 15:27:27 -070071COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -070072 Renderer/Blitter.cpp \
73 Renderer/Clipper.cpp \
74 Renderer/Color.cpp \
75 Renderer/Context.cpp \
Alexis Hetu0de50d42015-09-09 13:56:41 -040076 Renderer/ETC_Decoder.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070077 Renderer/Matrix.cpp \
78 Renderer/PixelProcessor.cpp \
79 Renderer/Plane.cpp \
80 Renderer/Point.cpp \
81 Renderer/QuadRasterizer.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070082 Renderer/Renderer.cpp \
83 Renderer/Sampler.cpp \
84 Renderer/SetupProcessor.cpp \
85 Renderer/Surface.cpp \
86 Renderer/TextureStage.cpp \
87 Renderer/Vector.cpp \
88 Renderer/VertexProcessor.cpp \
89
Greg Hartmandf01da32015-09-16 15:27:27 -070090COMMON_SRC_FILES += \
Greg Hartman9ec919a2015-04-16 21:44:59 -070091 Shader/Constants.cpp \
Alexis Hetuf2a8c372015-07-13 11:08:41 -040092 Shader/PixelPipeline.cpp \
93 Shader/PixelProgram.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -070094 Shader/PixelRoutine.cpp \
95 Shader/PixelShader.cpp \
96 Shader/SamplerCore.cpp \
97 Shader/SetupRoutine.cpp \
98 Shader/Shader.cpp \
99 Shader/ShaderCore.cpp \
100 Shader/VertexPipeline.cpp \
101 Shader/VertexProgram.cpp \
102 Shader/VertexRoutine.cpp \
103 Shader/VertexShader.cpp \
104
Greg Hartmandf01da32015-09-16 15:27:27 -0700105COMMON_SRC_FILES += \
Nicolas Capensdeda34b2015-04-28 15:21:53 -0700106 OpenGL/common/Image.cpp \
Greg Hartman9ec919a2015-04-16 21:44:59 -0700107 OpenGL/common/Object.cpp \
108 OpenGL/common/MatrixStack.cpp \
109
Greg Hartman3b876b92015-12-01 20:07:21 -0800110COMMON_CFLAGS := \
111 -DLOG_TAG=\"swiftshader\" \
112 -Wno-unused-parameter \
113 -Wno-implicit-exception-spec-mismatch \
114 -Wno-overloaded-virtual \
Nicolas Capens1ba26112017-05-02 11:57:06 -0400115 -Wno-non-virtual-dtor \
Nicolas Capensdc209332017-08-04 09:40:46 -0400116 -Wno-attributes \
117 -Wno-unknown-attributes \
118 -Wno-unknown-warning-option \
Greg Hartman3b876b92015-12-01 20:07:21 -0800119 -fno-operator-names \
120 -msse2 \
121 -D__STDC_CONSTANT_MACROS \
122 -D__STDC_LIMIT_MACROS \
123 -DANDROID_PLATFORM_SDK_VERSION=$(PLATFORM_SDK_VERSION) \
Nicolas Capens506cc5e2017-07-24 11:30:55 -0400124 -std=c++11 \
125 -DNO_SANITIZE_FUNCTION=
Nicolas Capens135f6342015-11-11 10:49:08 -0500126
Greg Hartman3b876b92015-12-01 20:07:21 -0800127ifneq (16,${PLATFORM_SDK_VERSION})
128COMMON_CFLAGS += -Xclang -fuse-init-array
129else
130COMMON_CFLAGS += -D__STDC_INT64__
131endif
132
Jaesung Chungfccddfe2017-06-22 20:02:09 +0900133# 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
Nicolas Capens1ba26112017-05-02 11:57:06 -0400141# 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
Greg Hartmandf01da32015-09-16 15:27:27 -0700149include $(CLEAR_VARS)
150LOCAL_CLANG := true
151LOCAL_MODULE := swiftshader_top_release
152LOCAL_MODULE_TAGS := optional
153LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
154LOCAL_CFLAGS := $(COMMON_CFLAGS) -fomit-frame-pointer -ffunction-sections -fdata-sections -DANGLE_DISABLE_TRACE
155LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
Nicolas Capensc33b4732017-08-03 15:53:25 -0400156LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
Greg Hartmandf01da32015-09-16 15:27:27 -0700157include $(BUILD_STATIC_LIBRARY)
Greg Hartman9ec919a2015-04-16 21:44:59 -0700158
Greg Hartmandf01da32015-09-16 15:27:27 -0700159include $(CLEAR_VARS)
160LOCAL_CLANG := true
161LOCAL_MODULE := swiftshader_top_debug
162LOCAL_MODULE_TAGS := optional
163LOCAL_SRC_FILES := $(COMMON_SRC_FILES)
Greg Hartman5d6c1c72015-10-02 16:29:40 -0700164LOCAL_CFLAGS := $(COMMON_CFLAGS) -UNDEBUG -g -O0 -DDEFAULT_THREAD_COUNT=1
Greg Hartmandf01da32015-09-16 15:27:27 -0700165LOCAL_C_INCLUDES := $(COMMON_C_INCLUDES)
Nicolas Capensc33b4732017-08-03 15:53:25 -0400166LOCAL_SHARED_LIBRARIES := $(COMMON_SHARED_LIBRARIES)
Greg Hartman9ec919a2015-04-16 21:44:59 -0700167include $(BUILD_STATIC_LIBRARY)
Greg Hartman8527e472015-11-02 13:08:12 -0800168
Greg Hartman8527e472015-11-02 13:08:12 -0800169include $(call all-makefiles-under,$(LOCAL_PATH))