1LOCAL_PATH := $(call my-dir)
2
3include $(CLEAR_VARS)
4
5#TARGET_PLATFORM := android-8
6
7NATIVE := ../../ext/native
8SRC := ../..
9
10include $(LOCAL_PATH)/Locals.mk
11
12# http://software.intel.com/en-us/articles/getting-started-on-optimizing-ndk-project-for-multiple-cpu-architectures
13
14ifeq ($(TARGET_ARCH_ABI),x86)
15ARCH_FILES := \
16  $(SRC)/Common/ABI.cpp \
17  $(SRC)/Common/x64Emitter.cpp \
18  $(SRC)/Common/x64Analyzer.cpp \
19  $(SRC)/Common/Math/fast/fast_matrix_sse.c \
20  $(SRC)/Common/Thunk.cpp \
21  $(SRC)/Core/MIPS/x86/CompALU.cpp \
22  $(SRC)/Core/MIPS/x86/CompBranch.cpp \
23  $(SRC)/Core/MIPS/x86/CompFPU.cpp \
24  $(SRC)/Core/MIPS/x86/CompLoadStore.cpp \
25  $(SRC)/Core/MIPS/x86/CompVFPU.cpp \
26  $(SRC)/Core/MIPS/x86/CompReplace.cpp \
27  $(SRC)/Core/MIPS/x86/Asm.cpp \
28  $(SRC)/Core/MIPS/x86/Jit.cpp \
29  $(SRC)/Core/MIPS/x86/JitSafeMem.cpp \
30  $(SRC)/Core/MIPS/x86/RegCache.cpp \
31  $(SRC)/Core/MIPS/x86/RegCacheFPU.cpp \
32  $(SRC)/GPU/Common/VertexDecoderX86.cpp \
33  $(SRC)/GPU/Software/SamplerX86.cpp
34endif
35
36ifeq ($(TARGET_ARCH_ABI),x86_64)
37ARCH_FILES := \
38  $(SRC)/Common/ABI.cpp \
39  $(SRC)/Common/x64Emitter.cpp \
40  $(SRC)/Common/x64Analyzer.cpp \
41  $(SRC)/Common/Math/fast/fast_matrix_sse.c \
42  $(SRC)/Common/Thunk.cpp \
43  $(SRC)/Core/MIPS/x86/CompALU.cpp \
44  $(SRC)/Core/MIPS/x86/CompBranch.cpp \
45  $(SRC)/Core/MIPS/x86/CompFPU.cpp \
46  $(SRC)/Core/MIPS/x86/CompLoadStore.cpp \
47  $(SRC)/Core/MIPS/x86/CompVFPU.cpp \
48  $(SRC)/Core/MIPS/x86/CompReplace.cpp \
49  $(SRC)/Core/MIPS/x86/Asm.cpp \
50  $(SRC)/Core/MIPS/x86/Jit.cpp \
51  $(SRC)/Core/MIPS/x86/JitSafeMem.cpp \
52  $(SRC)/Core/MIPS/x86/RegCache.cpp \
53  $(SRC)/Core/MIPS/x86/RegCacheFPU.cpp \
54  $(SRC)/GPU/Common/VertexDecoderX86.cpp \
55  $(SRC)/GPU/Software/SamplerX86.cpp
56endif
57
58ifeq ($(findstring armeabi-v7a,$(TARGET_ARCH_ABI)),armeabi-v7a)
59ARCH_FILES := \
60  $(SRC)/GPU/Common/TextureDecoderNEON.cpp.neon \
61  $(SRC)/Core/Util/AudioFormatNEON.cpp.neon \
62  $(SRC)/Common/ArmEmitter.cpp \
63  $(SRC)/Common/Data/Convert/ColorConvNEON.cpp.neon \
64  $(SRC)/Common/Math/fast/fast_matrix_neon.S.neon \
65  $(SRC)/Core/MIPS/ARM/ArmCompALU.cpp \
66  $(SRC)/Core/MIPS/ARM/ArmCompBranch.cpp \
67  $(SRC)/Core/MIPS/ARM/ArmCompFPU.cpp \
68  $(SRC)/Core/MIPS/ARM/ArmCompLoadStore.cpp \
69  $(SRC)/Core/MIPS/ARM/ArmCompVFPU.cpp \
70  $(SRC)/Core/MIPS/ARM/ArmCompVFPUNEON.cpp \
71  $(SRC)/Core/MIPS/ARM/ArmCompVFPUNEONUtil.cpp \
72  $(SRC)/Core/MIPS/ARM/ArmCompReplace.cpp \
73  $(SRC)/Core/MIPS/ARM/ArmAsm.cpp \
74  $(SRC)/Core/MIPS/ARM/ArmJit.cpp \
75  $(SRC)/Core/MIPS/ARM/ArmRegCache.cpp \
76  $(SRC)/Core/MIPS/ARM/ArmRegCacheFPU.cpp \
77  $(SRC)/GPU/Common/VertexDecoderArm.cpp \
78  $(SRC)/ext/disarm.cpp \
79  $(SRC)/ext/libpng17/arm/arm_init.c \
80  $(SRC)/ext/libpng17/arm/filter_neon_intrinsics.c \
81  $(SRC)/ext/libpng17/arm/filter_neon.S.neon \
82  ArmEmitterTest.cpp
83endif
84
85ifeq ($(findstring arm64-v8a,$(TARGET_ARCH_ABI)),arm64-v8a)
86ARCH_FILES := \
87  $(SRC)/GPU/Common/TextureDecoderNEON.cpp \
88  $(SRC)/Core/Util/AudioFormatNEON.cpp \
89  $(SRC)/Common/Arm64Emitter.cpp \
90  $(SRC)/Common/Data/Convert/ColorConvNEON.cpp \
91  $(SRC)/Core/MIPS/ARM64/Arm64CompALU.cpp \
92  $(SRC)/Core/MIPS/ARM64/Arm64CompBranch.cpp \
93  $(SRC)/Core/MIPS/ARM64/Arm64CompFPU.cpp \
94  $(SRC)/Core/MIPS/ARM64/Arm64CompLoadStore.cpp \
95  $(SRC)/Core/MIPS/ARM64/Arm64CompVFPU.cpp \
96  $(SRC)/Core/MIPS/ARM64/Arm64CompReplace.cpp \
97  $(SRC)/Core/MIPS/ARM64/Arm64Asm.cpp \
98  $(SRC)/Core/MIPS/ARM64/Arm64Jit.cpp \
99  $(SRC)/Core/MIPS/ARM64/Arm64RegCache.cpp \
100  $(SRC)/Core/MIPS/ARM64/Arm64RegCacheFPU.cpp \
101  $(SRC)/Core/Util/DisArm64.cpp \
102  $(SRC)/GPU/Common/VertexDecoderArm64.cpp \
103  $(SRC)/ext/libpng17/arm/arm_init.c \
104  $(SRC)/ext/libpng17/arm/filter_neon_intrinsics.c \
105  Arm64EmitterTest.cpp
106endif
107
108NATIVE_FILES :=\
109  $(SRC)/Common/GPU/OpenGL/gl3stub.c \
110  $(SRC)/Common/GPU/OpenGL/thin3d_gl.cpp \
111  $(SRC)/Common/GPU/OpenGL/GLDebugLog.cpp \
112  $(SRC)/Common/GPU/OpenGL/GLSLProgram.cpp \
113  $(SRC)/Common/GPU/OpenGL/GLFeatures.cpp \
114  $(SRC)/Common/GPU/OpenGL/GLRenderManager.cpp \
115  $(SRC)/Common/GPU/OpenGL/GLQueueRunner.cpp \
116  $(SRC)/Common/GPU/OpenGL/DataFormatGL.cpp
117
118EGL_FILES := \
119  $(SRC)/Common/GL/GLInterface/EGL.cpp \
120  $(SRC)/Common/GL/GLInterface/EGLAndroid.cpp \
121  $(SRC)/Common/GL/GLInterface/GLInterface.cpp
122
123VULKAN_FILES := \
124  $(SRC)/Common/GPU/Vulkan/thin3d_vulkan.cpp \
125  $(SRC)/Common/GPU/Vulkan/VulkanQueueRunner.cpp \
126  $(SRC)/Common/GPU/Vulkan/VulkanRenderManager.cpp \
127  $(SRC)/Common/GPU/Vulkan/VulkanLoader.cpp \
128  $(SRC)/Common/GPU/Vulkan/VulkanContext.cpp \
129  $(SRC)/Common/GPU/Vulkan/VulkanDebug.cpp \
130  $(SRC)/Common/GPU/Vulkan/VulkanImage.cpp \
131  $(SRC)/Common/GPU/Vulkan/VulkanMemory.cpp \
132  $(SRC)/GPU/Vulkan/DrawEngineVulkan.cpp \
133  $(SRC)/GPU/Vulkan/FramebufferManagerVulkan.cpp \
134  $(SRC)/GPU/Vulkan/GPU_Vulkan.cpp \
135  $(SRC)/GPU/Vulkan/PipelineManagerVulkan.cpp \
136  $(SRC)/GPU/Vulkan/ShaderManagerVulkan.cpp \
137  $(SRC)/GPU/Vulkan/StateMappingVulkan.cpp \
138  $(SRC)/GPU/Vulkan/StencilBufferVulkan.cpp \
139  $(SRC)/GPU/Vulkan/TextureCacheVulkan.cpp \
140  $(SRC)/GPU/Vulkan/TextureScalerVulkan.cpp \
141  $(SRC)/GPU/Vulkan/DepalettizeShaderVulkan.cpp \
142  $(SRC)/GPU/Vulkan/VulkanUtil.cpp \
143  $(SRC)/GPU/Vulkan/DebugVisVulkan.cpp
144#endif
145
146SPIRV_CROSS_FILES := \
147  $(SRC)/ext/SPIRV-Cross/spirv_cfg.cpp \
148  $(SRC)/ext/SPIRV-Cross/spirv_cross.cpp \
149  $(SRC)/ext/SPIRV-Cross/spirv_cross_util.cpp \
150  $(SRC)/ext/SPIRV-Cross/spirv_glsl.cpp \
151  $(SRC)/ext/SPIRV-Cross/spirv_parser.cpp \
152  $(SRC)/ext/SPIRV-Cross/spirv_cross_parsed_ir.cpp
153
154EXT_FILES := \
155  $(SRC)/ext/cityhash/city.cpp \
156  $(SRC)/ext/libpng17/png.c \
157  $(SRC)/ext/libpng17/pngerror.c \
158  $(SRC)/ext/libpng17/pngget.c \
159  $(SRC)/ext/libpng17/pngmem.c \
160  $(SRC)/ext/libpng17/pngpread.c \
161  $(SRC)/ext/libpng17/pngread.c \
162  $(SRC)/ext/libpng17/pngrio.c \
163  $(SRC)/ext/libpng17/pngrtran.c \
164  $(SRC)/ext/libpng17/pngrutil.c \
165  $(SRC)/ext/libpng17/pngset.c \
166  $(SRC)/ext/libpng17/pngtest.c \
167  $(SRC)/ext/libpng17/pngtrans.c \
168  $(SRC)/ext/libpng17/pngwio.c \
169  $(SRC)/ext/libpng17/pngwrite.c \
170  $(SRC)/ext/libpng17/pngwtran.c \
171  $(SRC)/ext/libpng17/pngwutil.c \
172  $(SRC)/ext/jpge/jpgd.cpp \
173  $(SRC)/ext/jpge/jpge.cpp \
174  $(SRC)/ext/sha1/sha1.cpp \
175  $(SRC)/ext/gason/gason.cpp \
176  $(SRC)/ext/libkirk/AES.c \
177  $(SRC)/ext/libkirk/amctrl.c \
178  $(SRC)/ext/libkirk/SHA1.c \
179  $(SRC)/ext/libkirk/bn.c \
180  $(SRC)/ext/libkirk/ec.c \
181  $(SRC)/ext/libkirk/kirk_engine.c \
182  $(SRC)/ext/sfmt19937/SFMT.c \
183  $(SRC)/ext/snappy/snappy-c.cpp \
184  $(SRC)/ext/snappy/snappy-sinksource.cpp \
185  $(SRC)/ext/snappy/snappy-stubs-internal.cpp \
186  $(SRC)/ext/snappy/snappy.cpp \
187  $(SRC)/ext/udis86/decode.c \
188  $(SRC)/ext/udis86/itab.c \
189  $(SRC)/ext/udis86/syn-att.c \
190  $(SRC)/ext/udis86/syn-intel.c \
191  $(SRC)/ext/udis86/syn.c \
192  $(SRC)/ext/udis86/udis86.c \
193  $(SRC)/ext/xbrz/xbrz.cpp \
194  $(SRC)/ext/xxhash.c \
195
196
197EXEC_AND_LIB_FILES := \
198  $(ARCH_FILES) \
199  $(EGL_FILES) \
200  $(VULKAN_FILES) \
201  $(SPIRV_CROSS_FILES) \
202  $(EXT_FILES) \
203  $(NATIVE_FILES) \
204  TestRunner.cpp \
205  $(SRC)/Core/MIPS/MIPS.cpp.arm \
206  $(SRC)/Core/MIPS/MIPSAnalyst.cpp \
207  $(SRC)/Core/MIPS/MIPSDis.cpp \
208  $(SRC)/Core/MIPS/MIPSDisVFPU.cpp \
209  $(SRC)/Core/MIPS/MIPSAsm.cpp \
210  $(SRC)/Core/MIPS/MIPSInt.cpp.arm \
211  $(SRC)/Core/MIPS/MIPSIntVFPU.cpp.arm \
212  $(SRC)/Core/MIPS/MIPSStackWalk.cpp \
213  $(SRC)/Core/MIPS/MIPSTables.cpp \
214  $(SRC)/Core/MIPS/MIPSVFPUUtils.cpp.arm \
215  $(SRC)/Core/MIPS/MIPSCodeUtils.cpp.arm \
216  $(SRC)/Core/MIPS/MIPSDebugInterface.cpp \
217  $(SRC)/Core/MIPS/IR/IRFrontend.cpp \
218  $(SRC)/Core/MIPS/IR/IRJit.cpp \
219  $(SRC)/Core/MIPS/IR/IRCompALU.cpp \
220  $(SRC)/Core/MIPS/IR/IRCompBranch.cpp \
221  $(SRC)/Core/MIPS/IR/IRCompFPU.cpp \
222  $(SRC)/Core/MIPS/IR/IRCompLoadStore.cpp \
223  $(SRC)/Core/MIPS/IR/IRCompVFPU.cpp \
224  $(SRC)/Core/MIPS/IR/IRInst.cpp \
225  $(SRC)/Core/MIPS/IR/IRInterpreter.cpp \
226  $(SRC)/Core/MIPS/IR/IRPassSimplify.cpp \
227  $(SRC)/Core/MIPS/IR/IRRegCache.cpp \
228  $(SRC)/Common/Buffer.cpp \
229  $(SRC)/Common/Crypto/md5.cpp \
230  $(SRC)/Common/Crypto/sha1.cpp \
231  $(SRC)/Common/Crypto/sha256.cpp \
232  $(SRC)/Common/Data/Color/RGBAUtil.cpp \
233  $(SRC)/Common/Data/Convert/ColorConv.cpp \
234  $(SRC)/Common/Data/Convert/SmallDataConvert.cpp \
235  $(SRC)/Common/Data/Encoding/Base64.cpp \
236  $(SRC)/Common/Data/Encoding/Compression.cpp \
237  $(SRC)/Common/Data/Encoding/Utf8.cpp \
238  $(SRC)/Common/Data/Format/RIFF.cpp \
239  $(SRC)/Common/Data/Format/IniFile.cpp \
240  $(SRC)/Common/Data/Format/JSONReader.cpp \
241  $(SRC)/Common/Data/Format/JSONWriter.cpp \
242  $(SRC)/Common/Data/Format/PNGLoad.cpp \
243  $(SRC)/Common/Data/Format/PNGLoad.h \
244  $(SRC)/Common/Data/Format/ZIMLoad.cpp \
245  $(SRC)/Common/Data/Format/ZIMLoad.h \
246  $(SRC)/Common/Data/Format/ZIMSave.cpp \
247  $(SRC)/Common/Data/Format/ZIMSave.h \
248  $(SRC)/Common/Data/Hash/Hash.cpp \
249  $(SRC)/Common/Data/Text/I18n.cpp \
250  $(SRC)/Common/Data/Text/Parsers.cpp \
251  $(SRC)/Common/Data/Text/WrapText.cpp \
252  $(SRC)/Common/File/AndroidStorage.cpp \
253  $(SRC)/Common/File/VFS/VFS.cpp \
254  $(SRC)/Common/File/VFS/AssetReader.cpp \
255  $(SRC)/Common/File/DiskFree.cpp \
256  $(SRC)/Common/File/Path.cpp \
257  $(SRC)/Common/File/PathBrowser.cpp \
258  $(SRC)/Common/File/FileUtil.cpp \
259  $(SRC)/Common/File/DirListing.cpp \
260  $(SRC)/Common/File/FileDescriptor.cpp \
261  $(SRC)/Common/GPU/thin3d.cpp \
262  $(SRC)/Common/GPU/Shader.cpp \
263  $(SRC)/Common/GPU/ShaderWriter.cpp \
264  $(SRC)/Common/GPU/ShaderTranslation.cpp \
265  $(SRC)/Common/Render/DrawBuffer.cpp \
266  $(SRC)/Common/Render/TextureAtlas.cpp \
267  $(SRC)/Common/Render/Text/draw_text.cpp \
268  $(SRC)/Common/Render/Text/draw_text_android.cpp \
269  $(SRC)/Common/Input/GestureDetector.cpp \
270  $(SRC)/Common/Input/InputState.cpp \
271  $(SRC)/Common/Math/fast/fast_math.c \
272  $(SRC)/Common/Math/fast/fast_matrix.c \
273  $(SRC)/Common/Math/math_util.cpp \
274  $(SRC)/Common/Math/curves.cpp \
275  $(SRC)/Common/Math/expression_parser.cpp \
276  $(SRC)/Common/Math/lin/vec3.cpp.arm \
277  $(SRC)/Common/Math/lin/matrix4x4.cpp.arm \
278  $(SRC)/Common/Net/HTTPClient.cpp \
279  $(SRC)/Common/Net/HTTPHeaders.cpp \
280  $(SRC)/Common/Net/HTTPServer.cpp \
281  $(SRC)/Common/Net/NetBuffer.cpp \
282  $(SRC)/Common/Net/Resolve.cpp \
283  $(SRC)/Common/Net/Sinks.cpp \
284  $(SRC)/Common/Net/URL.cpp \
285  $(SRC)/Common/Net/WebsocketServer.cpp \
286  $(SRC)/Common/Profiler/Profiler.cpp \
287  $(SRC)/Common/System/Display.cpp \
288  $(SRC)/Common/Thread/ThreadUtil.cpp \
289  $(SRC)/Common/Thread/ThreadManager.cpp \
290  $(SRC)/Common/Thread/ParallelLoop.cpp \
291  $(SRC)/Common/UI/Root.cpp \
292  $(SRC)/Common/UI/Screen.cpp \
293  $(SRC)/Common/UI/UI.cpp \
294  $(SRC)/Common/UI/Context.cpp \
295  $(SRC)/Common/UI/UIScreen.cpp \
296  $(SRC)/Common/UI/Tween.cpp \
297  $(SRC)/Common/UI/View.cpp \
298  $(SRC)/Common/UI/ViewGroup.cpp \
299  $(SRC)/Common/Serialize/Serializer.cpp \
300  $(SRC)/Common/ArmCPUDetect.cpp \
301  $(SRC)/Common/CPUDetect.cpp \
302  $(SRC)/Common/ExceptionHandlerSetup.cpp \
303  $(SRC)/Common/FakeCPUDetect.cpp \
304  $(SRC)/Common/Log.cpp \
305  $(SRC)/Common/LogManager.cpp \
306  $(SRC)/Common/LogReporting.cpp \
307  $(SRC)/Common/MemArenaAndroid.cpp \
308  $(SRC)/Common/MemArenaDarwin.cpp \
309  $(SRC)/Common/MemArenaWin32.cpp \
310  $(SRC)/Common/MemArenaPosix.cpp \
311  $(SRC)/Common/MemoryUtil.cpp \
312  $(SRC)/Common/MipsCPUDetect.cpp \
313  $(SRC)/Common/StringUtils.cpp \
314  $(SRC)/Common/SysError.cpp \
315  $(SRC)/Common/TimeUtil.cpp \
316  $(SRC)/GPU/Math3D.cpp \
317  $(SRC)/GPU/GPU.cpp \
318  $(SRC)/GPU/GPUCommon.cpp \
319  $(SRC)/GPU/GPUState.cpp \
320  $(SRC)/GPU/GeConstants.cpp \
321  $(SRC)/GPU/GeDisasm.cpp \
322  $(SRC)/GPU/Common/DepalettizeShaderCommon.cpp \
323  $(SRC)/GPU/Common/FragmentShaderGenerator.cpp \
324  $(SRC)/GPU/Common/FramebufferManagerCommon.cpp \
325  $(SRC)/GPU/Common/PresentationCommon.cpp \
326  $(SRC)/GPU/Common/GPUDebugInterface.cpp \
327  $(SRC)/GPU/Common/IndexGenerator.cpp.arm \
328  $(SRC)/GPU/Common/ShaderId.cpp.arm \
329  $(SRC)/GPU/Common/GPUStateUtils.cpp.arm \
330  $(SRC)/GPU/Common/SoftwareTransformCommon.cpp.arm \
331  $(SRC)/GPU/Common/ReinterpretFramebuffer.cpp \
332  $(SRC)/GPU/Common/VertexDecoderCommon.cpp.arm \
333  $(SRC)/GPU/Common/TextureCacheCommon.cpp.arm \
334  $(SRC)/GPU/Common/TextureScalerCommon.cpp.arm \
335  $(SRC)/GPU/Common/ShaderCommon.cpp \
336  $(SRC)/GPU/Common/StencilCommon.cpp \
337  $(SRC)/GPU/Common/SplineCommon.cpp.arm \
338  $(SRC)/GPU/Common/DrawEngineCommon.cpp.arm \
339  $(SRC)/GPU/Common/TransformCommon.cpp.arm \
340  $(SRC)/GPU/Common/TextureDecoder.cpp \
341  $(SRC)/GPU/Common/PostShader.cpp \
342  $(SRC)/GPU/Common/ShaderUniforms.cpp \
343  $(SRC)/GPU/Common/VertexShaderGenerator.cpp \
344  $(SRC)/GPU/Debugger/Breakpoints.cpp \
345  $(SRC)/GPU/Debugger/Debugger.cpp \
346  $(SRC)/GPU/Debugger/Playback.cpp \
347  $(SRC)/GPU/Debugger/Record.cpp \
348  $(SRC)/GPU/Debugger/Stepping.cpp \
349  $(SRC)/GPU/GLES/FramebufferManagerGLES.cpp \
350  $(SRC)/GPU/GLES/DepalettizeShaderGLES.cpp \
351  $(SRC)/GPU/GLES/DepthBufferGLES.cpp \
352  $(SRC)/GPU/GLES/GPU_GLES.cpp.arm \
353  $(SRC)/GPU/GLES/StencilBufferGLES.cpp \
354  $(SRC)/GPU/GLES/TextureCacheGLES.cpp.arm \
355  $(SRC)/GPU/GLES/DrawEngineGLES.cpp.arm \
356  $(SRC)/GPU/GLES/StateMappingGLES.cpp.arm \
357  $(SRC)/GPU/GLES/ShaderManagerGLES.cpp.arm \
358  $(SRC)/GPU/GLES/FragmentTestCacheGLES.cpp.arm \
359  $(SRC)/GPU/GLES/TextureScalerGLES.cpp \
360  $(SRC)/GPU/Software/Clipper.cpp \
361  $(SRC)/GPU/Software/Lighting.cpp \
362  $(SRC)/GPU/Software/Rasterizer.cpp.arm \
363  $(SRC)/GPU/Software/RasterizerRectangle.cpp.arm \
364  $(SRC)/GPU/Software/Sampler.cpp \
365  $(SRC)/GPU/Software/SoftGpu.cpp \
366  $(SRC)/GPU/Software/TransformUnit.cpp \
367  $(SRC)/Core/ELF/ElfReader.cpp \
368  $(SRC)/Core/ELF/PBPReader.cpp \
369  $(SRC)/Core/ELF/PrxDecrypter.cpp \
370  $(SRC)/Core/ELF/ParamSFO.cpp \
371  $(SRC)/Core/HW/SimpleAudioDec.cpp \
372  $(SRC)/Core/HW/AsyncIOManager.cpp \
373  $(SRC)/Core/HW/BufferQueue.cpp \
374  $(SRC)/Core/HW/Camera.cpp \
375  $(SRC)/Core/HW/MemoryStick.cpp \
376  $(SRC)/Core/HW/MpegDemux.cpp.arm \
377  $(SRC)/Core/HW/MediaEngine.cpp.arm \
378  $(SRC)/Core/HW/SasAudio.cpp.arm \
379  $(SRC)/Core/HW/SasReverb.cpp.arm \
380  $(SRC)/Core/HW/StereoResampler.cpp.arm \
381  $(SRC)/Core/ControlMapper.cpp \
382  $(SRC)/Core/Core.cpp \
383  $(SRC)/Core/Compatibility.cpp \
384  $(SRC)/Core/Config.cpp \
385  $(SRC)/Core/CoreTiming.cpp \
386  $(SRC)/Core/CwCheat.cpp \
387  $(SRC)/Core/HDRemaster.cpp \
388  $(SRC)/Core/Instance.cpp \
389  $(SRC)/Core/KeyMap.cpp \
390  $(SRC)/Core/KeyMapDefaults.cpp \
391  $(SRC)/Core/Host.cpp \
392  $(SRC)/Core/Loaders.cpp \
393  $(SRC)/Core/PSPLoaders.cpp \
394  $(SRC)/Core/FileLoaders/CachingFileLoader.cpp \
395  $(SRC)/Core/FileLoaders/DiskCachingFileLoader.cpp \
396  $(SRC)/Core/FileLoaders/HTTPFileLoader.cpp \
397  $(SRC)/Core/FileLoaders/LocalFileLoader.cpp \
398  $(SRC)/Core/FileLoaders/RamCachingFileLoader.cpp \
399  $(SRC)/Core/FileLoaders/RetryingFileLoader.cpp \
400  $(SRC)/Core/MemFault.cpp \
401  $(SRC)/Core/MemMap.cpp \
402  $(SRC)/Core/MemMapFunctions.cpp \
403  $(SRC)/Core/Reporting.cpp \
404  $(SRC)/Core/Replay.cpp \
405  $(SRC)/Core/SaveState.cpp \
406  $(SRC)/Core/Screenshot.cpp \
407  $(SRC)/Core/System.cpp \
408  $(SRC)/Core/TextureReplacer.cpp \
409  $(SRC)/Core/ThreadPools.cpp \
410  $(SRC)/Core/WebServer.cpp \
411  $(SRC)/Core/Debugger/Breakpoints.cpp \
412  $(SRC)/Core/Debugger/DisassemblyManager.cpp \
413  $(SRC)/Core/Debugger/MemBlockInfo.cpp \
414  $(SRC)/Core/Debugger/SymbolMap.cpp \
415  $(SRC)/Core/Debugger/WebSocket.cpp \
416  $(SRC)/Core/Debugger/WebSocket/BreakpointSubscriber.cpp \
417  $(SRC)/Core/Debugger/WebSocket/CPUCoreSubscriber.cpp \
418  $(SRC)/Core/Debugger/WebSocket/DisasmSubscriber.cpp \
419  $(SRC)/Core/Debugger/WebSocket/GameBroadcaster.cpp \
420  $(SRC)/Core/Debugger/WebSocket/GameSubscriber.cpp \
421  $(SRC)/Core/Debugger/WebSocket/GPUBufferSubscriber.cpp \
422  $(SRC)/Core/Debugger/WebSocket/GPURecordSubscriber.cpp \
423  $(SRC)/Core/Debugger/WebSocket/HLESubscriber.cpp \
424  $(SRC)/Core/Debugger/WebSocket/InputBroadcaster.cpp \
425  $(SRC)/Core/Debugger/WebSocket/InputSubscriber.cpp \
426  $(SRC)/Core/Debugger/WebSocket/LogBroadcaster.cpp \
427  $(SRC)/Core/Debugger/WebSocket/MemorySubscriber.cpp \
428  $(SRC)/Core/Debugger/WebSocket/MemoryInfoSubscriber.cpp \
429  $(SRC)/Core/Debugger/WebSocket/ReplaySubscriber.cpp \
430  $(SRC)/Core/Debugger/WebSocket/SteppingBroadcaster.cpp \
431  $(SRC)/Core/Debugger/WebSocket/SteppingSubscriber.cpp \
432  $(SRC)/Core/Debugger/WebSocket/WebSocketUtils.cpp \
433  $(SRC)/Core/Dialog/PSPDialog.cpp \
434  $(SRC)/Core/Dialog/PSPGamedataInstallDialog.cpp \
435  $(SRC)/Core/Dialog/PSPMsgDialog.cpp \
436  $(SRC)/Core/Dialog/PSPNetconfDialog.cpp \
437  $(SRC)/Core/Dialog/PSPOskDialog.cpp \
438  $(SRC)/Core/Dialog/PSPScreenshotDialog.cpp \
439  $(SRC)/Core/Dialog/PSPPlaceholderDialog.cpp \
440  $(SRC)/Core/Dialog/PSPSaveDialog.cpp \
441  $(SRC)/Core/Dialog/SavedataParam.cpp \
442  $(SRC)/Core/Font/PGF.cpp \
443  $(SRC)/Core/HLE/HLEHelperThread.cpp \
444  $(SRC)/Core/HLE/HLETables.cpp \
445  $(SRC)/Core/HLE/ReplaceTables.cpp \
446  $(SRC)/Core/HLE/HLE.cpp \
447  $(SRC)/Core/HLE/KUBridge.cpp \
448  $(SRC)/Core/HLE/Plugins.cpp \
449  $(SRC)/Core/HLE/sceAdler.cpp \
450  $(SRC)/Core/HLE/sceAtrac.cpp \
451  $(SRC)/Core/HLE/__sceAudio.cpp.arm \
452  $(SRC)/Core/HLE/sceAudio.cpp.arm \
453  $(SRC)/Core/HLE/sceAudiocodec.cpp.arm \
454  $(SRC)/Core/HLE/sceAudioRouting.cpp \
455  $(SRC)/Core/HLE/sceChnnlsv.cpp \
456  $(SRC)/Core/HLE/sceCcc.cpp \
457  $(SRC)/Core/HLE/sceCtrl.cpp.arm \
458  $(SRC)/Core/HLE/sceDeflt.cpp \
459  $(SRC)/Core/HLE/sceDisplay.cpp \
460  $(SRC)/Core/HLE/sceDmac.cpp \
461  $(SRC)/Core/HLE/sceG729.cpp \
462  $(SRC)/Core/HLE/sceGe.cpp \
463  $(SRC)/Core/HLE/sceFont.cpp \
464  $(SRC)/Core/HLE/sceHeap.cpp \
465  $(SRC)/Core/HLE/sceHprm.cpp \
466  $(SRC)/Core/HLE/sceHttp.cpp \
467  $(SRC)/Core/HLE/sceImpose.cpp \
468  $(SRC)/Core/HLE/sceIo.cpp \
469  $(SRC)/Core/HLE/sceJpeg.cpp \
470  $(SRC)/Core/HLE/sceKernel.cpp \
471  $(SRC)/Core/HLE/sceKernelAlarm.cpp \
472  $(SRC)/Core/HLE/sceKernelEventFlag.cpp \
473  $(SRC)/Core/HLE/sceKernelHeap.cpp \
474  $(SRC)/Core/HLE/sceKernelInterrupt.cpp \
475  $(SRC)/Core/HLE/sceKernelMemory.cpp \
476  $(SRC)/Core/HLE/sceKernelModule.cpp \
477  $(SRC)/Core/HLE/sceKernelMutex.cpp \
478  $(SRC)/Core/HLE/sceKernelMbx.cpp \
479  $(SRC)/Core/HLE/sceKernelMsgPipe.cpp \
480  $(SRC)/Core/HLE/sceKernelSemaphore.cpp \
481  $(SRC)/Core/HLE/sceKernelThread.cpp.arm \
482  $(SRC)/Core/HLE/sceKernelTime.cpp \
483  $(SRC)/Core/HLE/sceKernelVTimer.cpp \
484  $(SRC)/Core/HLE/sceMpeg.cpp \
485  $(SRC)/Core/HLE/sceMd5.cpp \
486  $(SRC)/Core/HLE/sceMp4.cpp \
487  $(SRC)/Core/HLE/sceMp3.cpp \
488  $(SRC)/Core/HLE/sceNet.cpp \
489  $(SRC)/Core/HLE/proAdhoc.cpp \
490  $(SRC)/Core/HLE/proAdhocServer.cpp \
491  $(SRC)/Core/HLE/sceNetAdhoc.cpp \
492  $(SRC)/Core/HLE/sceOpenPSID.cpp \
493  $(SRC)/Core/HLE/sceP3da.cpp \
494  $(SRC)/Core/HLE/sceMt19937.cpp \
495  $(SRC)/Core/HLE/sceParseHttp.cpp \
496  $(SRC)/Core/HLE/sceParseUri.cpp \
497  $(SRC)/Core/HLE/scePower.cpp \
498  $(SRC)/Core/HLE/sceRtc.cpp \
499  $(SRC)/Core/HLE/scePsmf.cpp \
500  $(SRC)/Core/HLE/sceSas.cpp \
501  $(SRC)/Core/HLE/sceSfmt19937.cpp \
502  $(SRC)/Core/HLE/sceSha256.cpp \
503  $(SRC)/Core/HLE/sceSsl.cpp \
504  $(SRC)/Core/HLE/sceUmd.cpp \
505  $(SRC)/Core/HLE/sceUsb.cpp \
506  $(SRC)/Core/HLE/sceUsbAcc.cpp \
507  $(SRC)/Core/HLE/sceUsbCam.cpp \
508  $(SRC)/Core/HLE/sceUsbGps.cpp \
509  $(SRC)/Core/HLE/sceUsbMic.cpp \
510  $(SRC)/Core/HLE/sceUtility.cpp \
511  $(SRC)/Core/HLE/sceVaudio.cpp \
512  $(SRC)/Core/HLE/scePspNpDrm_user.cpp \
513  $(SRC)/Core/HLE/sceGameUpdate.cpp \
514  $(SRC)/Core/HLE/sceNp.cpp \
515  $(SRC)/Core/HLE/scePauth.cpp \
516  $(SRC)/Core/FileSystems/BlobFileSystem.cpp \
517  $(SRC)/Core/FileSystems/BlockDevices.cpp \
518  $(SRC)/Core/FileSystems/ISOFileSystem.cpp \
519  $(SRC)/Core/FileSystems/FileSystem.cpp \
520  $(SRC)/Core/FileSystems/MetaFileSystem.cpp \
521  $(SRC)/Core/FileSystems/DirectoryFileSystem.cpp \
522  $(SRC)/Core/FileSystems/VirtualDiscFileSystem.cpp \
523  $(SRC)/Core/FileSystems/tlzrc.cpp \
524  $(SRC)/Core/MIPS/JitCommon/JitCommon.cpp \
525  $(SRC)/Core/MIPS/JitCommon/JitBlockCache.cpp \
526  $(SRC)/Core/MIPS/JitCommon/JitState.cpp \
527  $(SRC)/Core/Util/AudioFormat.cpp \
528  $(SRC)/Core/Util/PortManager.cpp \
529  $(SRC)/Core/Util/GameManager.cpp \
530  $(SRC)/Core/Util/BlockAllocator.cpp \
531  $(SRC)/Core/Util/PPGeDraw.cpp \
532  $(SRC)/git-version.cpp
533
534LOCAL_MODULE := ppsspp_core
535LOCAL_SRC_FILES := $(EXEC_AND_LIB_FILES)
536include $(BUILD_STATIC_LIBRARY)
537
538include $(CLEAR_VARS)
539include $(LOCAL_PATH)/Locals.mk
540LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(SRC)/ext/armips $(LOCAL_C_INCLUDES)
541
542LIBARMIPS_FILES := \
543  $(SRC)/ext/armips/Archs/ARM/Arm.cpp \
544  $(SRC)/ext/armips/Archs/ARM/ArmOpcodes.cpp \
545  $(SRC)/ext/armips/Archs/ARM/ArmParser.cpp \
546  $(SRC)/ext/armips/Archs/ARM/ArmElfRelocator.cpp \
547  $(SRC)/ext/armips/Archs/ARM/ArmExpressionFunctions.cpp \
548  $(SRC)/ext/armips/Archs/ARM/CArmInstruction.cpp \
549  $(SRC)/ext/armips/Archs/ARM/CThumbInstruction.cpp \
550  $(SRC)/ext/armips/Archs/ARM/Pool.cpp \
551  $(SRC)/ext/armips/Archs/ARM/ThumbOpcodes.cpp \
552  $(SRC)/ext/armips/Archs/MIPS/CMipsInstruction.cpp \
553  $(SRC)/ext/armips/Archs/MIPS/Mips.cpp \
554  $(SRC)/ext/armips/Archs/MIPS/MipsElfFile.cpp \
555  $(SRC)/ext/armips/Archs/MIPS/MipsElfRelocator.cpp \
556  $(SRC)/ext/armips/Archs/MIPS/MipsExpressionFunctions.cpp \
557  $(SRC)/ext/armips/Archs/MIPS/MipsMacros.cpp \
558  $(SRC)/ext/armips/Archs/MIPS/MipsOpcodes.cpp \
559  $(SRC)/ext/armips/Archs/MIPS/MipsParser.cpp \
560  $(SRC)/ext/armips/Archs/MIPS/PsxRelocator.cpp \
561  $(SRC)/ext/armips/Archs/Architecture.cpp \
562  $(SRC)/ext/armips/Commands/CAssemblerCommand.cpp \
563  $(SRC)/ext/armips/Commands/CAssemblerLabel.cpp \
564  $(SRC)/ext/armips/Commands/CDirectiveArea.cpp \
565  $(SRC)/ext/armips/Commands/CDirectiveConditional.cpp \
566  $(SRC)/ext/armips/Commands/CDirectiveData.cpp \
567  $(SRC)/ext/armips/Commands/CDirectiveFile.cpp \
568  $(SRC)/ext/armips/Commands/CDirectiveMessage.cpp \
569  $(SRC)/ext/armips/Commands/CommandSequence.cpp \
570  $(SRC)/ext/armips/Core/ELF/ElfFile.cpp \
571  $(SRC)/ext/armips/Core/ELF/ElfRelocator.cpp \
572  $(SRC)/ext/armips/Core/Assembler.cpp \
573  $(SRC)/ext/armips/Core/Common.cpp \
574  $(SRC)/ext/armips/Core/Expression.cpp \
575  $(SRC)/ext/armips/Core/ExpressionFunctions.cpp \
576  $(SRC)/ext/armips/Core/FileManager.cpp \
577  $(SRC)/ext/armips/Core/Misc.cpp \
578  $(SRC)/ext/armips/Core/SymbolData.cpp \
579  $(SRC)/ext/armips/Core/SymbolTable.cpp \
580  $(SRC)/ext/armips/Parser/DirectivesParser.cpp \
581  $(SRC)/ext/armips/Parser/ExpressionParser.cpp \
582  $(SRC)/ext/armips/Parser/Parser.cpp \
583  $(SRC)/ext/armips/Parser/Tokenizer.cpp \
584  $(SRC)/ext/armips/Util/ByteArray.cpp \
585  $(SRC)/ext/armips/Util/CRC.cpp \
586  $(SRC)/ext/armips/Util/EncodingTable.cpp \
587  $(SRC)/ext/armips/Util/FileClasses.cpp \
588  $(SRC)/ext/armips/Util/Util.cpp
589
590LOCAL_MODULE := libarmips
591LOCAL_SRC_FILES := $(LIBARMIPS_FILES)
592include $(BUILD_STATIC_LIBRARY)
593
594include $(CLEAR_VARS)
595include $(LOCAL_PATH)/Locals.mk
596
597LIBZSTD_FILES := \
598  $(SRC)/ext/zstd/lib/common/debug.c \
599  $(SRC)/ext/zstd/lib/common/entropy_common.c \
600  $(SRC)/ext/zstd/lib/common/error_private.c \
601  $(SRC)/ext/zstd/lib/common/fse_decompress.c \
602  $(SRC)/ext/zstd/lib/common/pool.c \
603  $(SRC)/ext/zstd/lib/common/threading.c \
604  $(SRC)/ext/zstd/lib/common/xxhash.c \
605  $(SRC)/ext/zstd/lib/common/zstd_common.c \
606  $(SRC)/ext/zstd/lib/compress/fse_compress.c \
607  $(SRC)/ext/zstd/lib/compress/hist.c \
608  $(SRC)/ext/zstd/lib/compress/huf_compress.c \
609  $(SRC)/ext/zstd/lib/compress/zstd_compress.c \
610  $(SRC)/ext/zstd/lib/compress/zstd_compress_literals.c \
611  $(SRC)/ext/zstd/lib/compress/zstd_compress_sequences.c \
612  $(SRC)/ext/zstd/lib/compress/zstd_compress_superblock.c \
613  $(SRC)/ext/zstd/lib/compress/zstd_double_fast.c \
614  $(SRC)/ext/zstd/lib/compress/zstd_fast.c \
615  $(SRC)/ext/zstd/lib/compress/zstd_lazy.c \
616  $(SRC)/ext/zstd/lib/compress/zstd_ldm.c \
617  $(SRC)/ext/zstd/lib/compress/zstd_opt.c \
618  $(SRC)/ext/zstd/lib/compress/zstdmt_compress.c \
619  $(SRC)/ext/zstd/lib/decompress/huf_decompress.c \
620  $(SRC)/ext/zstd/lib/decompress/zstd_ddict.c \
621  $(SRC)/ext/zstd/lib/decompress/zstd_decompress.c \
622  $(SRC)/ext/zstd/lib/decompress/zstd_decompress_block.c \
623  $(SRC)/ext/zstd/lib/dictBuilder/cover.c \
624  $(SRC)/ext/zstd/lib/dictBuilder/divsufsort.c \
625  $(SRC)/ext/zstd/lib/dictBuilder/fastcover.c \
626  $(SRC)/ext/zstd/lib/dictBuilder/zdict.c
627
628LOCAL_MODULE := libzstd
629LOCAL_SRC_FILES := $(LIBZSTD_FILES)
630include $(BUILD_STATIC_LIBRARY)
631
632include $(CLEAR_VARS)
633include $(LOCAL_PATH)/Locals.mk
634LOCAL_STATIC_LIBRARIES += ppsspp_core libarmips libzstd
635
636# These are the files just for ppsspp_jni
637LOCAL_MODULE := ppsspp_jni
638LOCAL_SRC_FILES := \
639  $(SRC)/android/jni/app-android.cpp \
640  $(SRC)/android/jni/AndroidEGLContext.cpp \
641  $(SRC)/android/jni/AndroidJavaGLContext.cpp \
642  $(SRC)/android/jni/AndroidVulkanContext.cpp \
643  $(SRC)/android/jni/AndroidAudio.cpp \
644  $(SRC)/android/jni/OpenSLContext.cpp \
645  $(SRC)/UI/BackgroundAudio.cpp \
646  $(SRC)/UI/DiscordIntegration.cpp \
647  $(SRC)/UI/ChatScreen.cpp \
648  $(SRC)/UI/DevScreens.cpp \
649  $(SRC)/UI/DisplayLayoutEditor.cpp \
650  $(SRC)/UI/DisplayLayoutScreen.cpp \
651  $(SRC)/UI/EmuScreen.cpp \
652  $(SRC)/UI/MainScreen.cpp \
653  $(SRC)/UI/MemStickScreen.cpp \
654  $(SRC)/UI/MiscScreens.cpp \
655  $(SRC)/UI/RemoteISOScreen.cpp \
656  $(SRC)/UI/ReportScreen.cpp \
657  $(SRC)/UI/PauseScreen.cpp \
658  $(SRC)/UI/SavedataScreen.cpp \
659  $(SRC)/UI/Store.cpp \
660  $(SRC)/UI/GamepadEmu.cpp \
661  $(SRC)/UI/GameInfoCache.cpp \
662  $(SRC)/UI/GameScreen.cpp \
663  $(SRC)/UI/ControlMappingScreen.cpp \
664  $(SRC)/UI/GameSettingsScreen.cpp \
665  $(SRC)/UI/GPUDriverTestScreen.cpp \
666  $(SRC)/UI/TiltAnalogSettingsScreen.cpp \
667  $(SRC)/UI/TiltEventProcessor.cpp \
668  $(SRC)/UI/TouchControlLayoutScreen.cpp \
669  $(SRC)/UI/TouchControlVisibilityScreen.cpp \
670  $(SRC)/UI/CwCheatScreen.cpp \
671  $(SRC)/UI/InstallZipScreen.cpp \
672  $(SRC)/UI/OnScreenDisplay.cpp \
673  $(SRC)/UI/ProfilerDraw.cpp \
674  $(SRC)/UI/NativeApp.cpp \
675  $(SRC)/UI/TextureUtil.cpp \
676  $(SRC)/UI/ComboKeyMappingScreen.cpp
677
678ifneq ($(SKIPAPP),1)
679  include $(BUILD_SHARED_LIBRARY)
680endif
681
682ifeq ($(HEADLESS),1)
683  include $(CLEAR_VARS)
684  include $(LOCAL_PATH)/Locals.mk
685  LOCAL_STATIC_LIBRARIES += ppsspp_core libarmips libzstd
686
687  # Android 5.0 requires PIE for executables.  Only supported on 4.1+, but this is testing anyway.
688  LOCAL_CFLAGS += -fPIE
689  LOCAL_LDFLAGS += -fPIE -pie
690
691  LOCAL_MODULE := ppsspp_headless
692  LOCAL_SRC_FILES := \
693    $(SRC)/headless/Headless.cpp \
694    $(SRC)/headless/StubHost.cpp \
695    $(SRC)/headless/Compare.cpp
696
697  include $(BUILD_EXECUTABLE)
698endif
699
700ifeq ($(UNITTEST),1)
701  include $(CLEAR_VARS)
702  include $(LOCAL_PATH)/Locals.mk
703  LOCAL_STATIC_LIBRARIES += ppsspp_core libarmips libzstd
704
705  # Android 5.0 requires PIE for executables.  Only supported on 4.1+, but this is testing anyway.
706  LOCAL_CFLAGS += -fPIE
707  LOCAL_LDFLAGS += -fPIE -pie
708
709  ifeq ($(findstring arm64-v8a,$(TARGET_ARCH_ABI)),arm64-v8a)
710    TESTARMEMITTER_FILE = $(SRC)/unittest/TestArm64Emitter.cpp
711  else ifeq ($(findstring armeabi-v7a,$(TARGET_ARCH_ABI)),armeabi-v7a)
712    TESTARMEMITTER_FILE = $(SRC)/unittest/TestArmEmitter.cpp
713  else
714    TESTARMEMITTER_FILE = \
715      $(SRC)/Common/ArmEmitter.cpp \
716      $(SRC)/Common/Arm64Emitter.cpp \
717      $(SRC)/Core/MIPS/ARM/ArmRegCacheFPU.cpp \
718      $(SRC)/Core/Util/DisArm64.cpp \
719      $(SRC)/ext/disarm.cpp \
720      $(SRC)/unittest/TestArmEmitter.cpp \
721      $(SRC)/unittest/TestArm64Emitter.cpp \
722      $(SRC)/unittest/TestX64Emitter.cpp
723  endif
724
725  LOCAL_MODULE := ppsspp_unittest
726  LOCAL_SRC_FILES := \
727    $(SRC)/unittest/JitHarness.cpp \
728    $(SRC)/unittest/TestShaderGenerators.cpp \
729    $(SRC)/unittest/TestVertexJit.cpp \
730    $(SRC)/unittest/TestThreadManager.cpp \
731    $(TESTARMEMITTER_FILE) \
732    $(SRC)/unittest/UnitTest.cpp
733
734  include $(BUILD_EXECUTABLE)
735endif
736
737$(call import-module,libzip)
738$(call import-module,glslang-build)
739$(call import-module,miniupnp-build)
740
741jni/$(SRC)/git-version.cpp:
742	-./git-version-gen.sh
743	-..\Windows\git-version-gen.cmd
744
745.PHONY: jni/$(SRC)/git-version.cpp
746