Commit | Line | Data |
---|---|---|
b2058a5b TK |
1 | LOCAL_PATH := $(call my-dir) |
2 | ||
08700dbe | 3 | $(shell cd "$(LOCAL_PATH)" && ((git describe --always || echo) | sed -e 's/.*/#define REV "\0"/' > ../frontend/revision.h_)) |
77668f25 AK |
4 | $(shell cd "$(LOCAL_PATH)" && (diff -q ../frontend/revision.h_ ../frontend/revision.h > /dev/null 2>&1 || cp ../frontend/revision.h_ ../frontend/revision.h)) |
5 | $(shell cd "$(LOCAL_PATH)" && (rm ../frontend/revision.h_)) | |
b2058a5b | 6 | |
226a5691 | 7 | USE_LIBRETRO_VFS ?= 0 |
cadb8854 | 8 | |
77668f25 AK |
9 | ROOT_DIR := $(LOCAL_PATH)/.. |
10 | CORE_DIR := $(ROOT_DIR)/libpcsxcore | |
11 | SPU_DIR := $(ROOT_DIR)/plugins/dfsound | |
12 | GPU_DIR := $(ROOT_DIR)/plugins/gpulib | |
13 | CDR_DIR := $(ROOT_DIR)/plugins/cdrcimg | |
77668f25 AK |
14 | FRONTEND_DIR := $(ROOT_DIR)/frontend |
15 | NEON_DIR := $(ROOT_DIR)/plugins/gpu_neon | |
16 | UNAI_DIR := $(ROOT_DIR)/plugins/gpu_unai | |
ca177c0f | 17 | PEOPS_DIR := $(ROOT_DIR)/plugins/dfxvideo |
77668f25 | 18 | DYNAREC_DIR := $(ROOT_DIR)/libpcsxcore/new_dynarec |
275ed8df | 19 | DEPS_DIR := $(ROOT_DIR)/deps |
397ea1e5 | 20 | LIBRETRO_COMMON := $(DEPS_DIR)/libretro-common |
87cc59de | 21 | EXTRA_INCLUDES := |
77668f25 AK |
22 | |
23 | # core | |
24 | SOURCES_C := $(CORE_DIR)/cdriso.c \ | |
25 | $(CORE_DIR)/cdrom.c \ | |
26 | $(CORE_DIR)/cheat.c \ | |
630b122b | 27 | $(CORE_DIR)/database.c \ |
77668f25 | 28 | $(CORE_DIR)/decode_xa.c \ |
77668f25 AK |
29 | $(CORE_DIR)/mdec.c \ |
30 | $(CORE_DIR)/misc.c \ | |
31 | $(CORE_DIR)/plugins.c \ | |
32 | $(CORE_DIR)/ppf.c \ | |
33 | $(CORE_DIR)/psxbios.c \ | |
34 | $(CORE_DIR)/psxcommon.c \ | |
35 | $(CORE_DIR)/psxcounters.c \ | |
36 | $(CORE_DIR)/psxdma.c \ | |
c6a249e3 | 37 | $(CORE_DIR)/psxevents.c \ |
77668f25 AK |
38 | $(CORE_DIR)/psxhw.c \ |
39 | $(CORE_DIR)/psxinterpreter.c \ | |
40 | $(CORE_DIR)/psxmem.c \ | |
41 | $(CORE_DIR)/r3000a.c \ | |
42 | $(CORE_DIR)/sio.c \ | |
77668f25 | 43 | $(CORE_DIR)/spu.c \ |
1328fa32 | 44 | $(CORE_DIR)/gpu.c \ |
77668f25 AK |
45 | $(CORE_DIR)/gte.c \ |
46 | $(CORE_DIR)/gte_nf.c \ | |
47 | $(CORE_DIR)/gte_divider.c | |
b2058a5b | 48 | |
77668f25 AK |
49 | # spu |
50 | SOURCES_C += $(SPU_DIR)/dma.c \ | |
51 | $(SPU_DIR)/freeze.c \ | |
52 | $(SPU_DIR)/registers.c \ | |
53 | $(SPU_DIR)/spu.c \ | |
54 | $(SPU_DIR)/out.c \ | |
55 | $(SPU_DIR)/nullsnd.c | |
b2058a5b | 56 | |
77668f25 AK |
57 | # gpu |
58 | SOURCES_C += $(GPU_DIR)/gpu.c \ | |
59 | $(GPU_DIR)/vout_pl.c | |
b2058a5b | 60 | |
77668f25 AK |
61 | # cdrcimg |
62 | SOURCES_C += $(CDR_DIR)/cdrcimg.c | |
b2058a5b | 63 | |
77668f25 AK |
64 | # frontend |
65 | SOURCES_C += $(FRONTEND_DIR)/main.c \ | |
66 | $(FRONTEND_DIR)/plugin.c \ | |
67 | $(FRONTEND_DIR)/cspace.c \ | |
68 | $(FRONTEND_DIR)/libretro.c | |
b2058a5b | 69 | |
275ed8df | 70 | # libchdr |
175fe1b0 | 71 | LCHDR = $(DEPS_DIR)/libchdr |
72 | LCHDR_LZMA = $(LCHDR)/deps/lzma-22.01 | |
73 | LCHDR_ZSTD = $(LCHDR)/deps/zstd-1.5.5/lib | |
275ed8df | 74 | SOURCES_C += \ |
175fe1b0 | 75 | $(LCHDR)/src/libchdr_bitstream.c \ |
76 | $(LCHDR)/src/libchdr_cdrom.c \ | |
77 | $(LCHDR)/src/libchdr_chd.c \ | |
78 | $(LCHDR)/src/libchdr_flac.c \ | |
79 | $(LCHDR)/src/libchdr_huffman.c \ | |
80 | $(LCHDR_LZMA)/src/Alloc.c \ | |
81 | $(LCHDR_LZMA)/src/Bra86.c \ | |
82 | $(LCHDR_LZMA)/src/BraIA64.c \ | |
83 | $(LCHDR_LZMA)/src/CpuArch.c \ | |
84 | $(LCHDR_LZMA)/src/Delta.c \ | |
85 | $(LCHDR_LZMA)/src/LzFind.c \ | |
86 | $(LCHDR_LZMA)/src/Lzma86Dec.c \ | |
87 | $(LCHDR_LZMA)/src/LzmaDec.c \ | |
88 | $(LCHDR_LZMA)/src/LzmaEnc.c \ | |
89 | $(LCHDR_LZMA)/src/Sort.c \ | |
90 | $(LCHDR_ZSTD)/common/debug.c \ | |
91 | $(LCHDR_ZSTD)/common/entropy_common.c \ | |
92 | $(LCHDR_ZSTD)/common/error_private.c \ | |
93 | $(LCHDR_ZSTD)/common/fse_decompress.c \ | |
94 | $(LCHDR_ZSTD)/common/pool.c \ | |
95 | $(LCHDR_ZSTD)/common/threading.c \ | |
96 | $(LCHDR_ZSTD)/common/xxhash.c \ | |
97 | $(LCHDR_ZSTD)/common/zstd_common.c \ | |
98 | $(LCHDR_ZSTD)/decompress/huf_decompress.c \ | |
99 | $(LCHDR_ZSTD)/decompress/zstd_ddict.c \ | |
100 | $(LCHDR_ZSTD)/decompress/zstd_decompress_block.c \ | |
101 | $(LCHDR_ZSTD)/decompress/zstd_decompress.c | |
87cc59de | 102 | SOURCES_ASM := |
175fe1b0 | 103 | EXTRA_INCLUDES += $(LCHDR)/include $(LCHDR_LZMA)/include $(LCHDR_ZSTD) |
104 | COREFLAGS += -DHAVE_CHD -D_7ZIP_ST -DZSTD_DISABLE_ASM | |
c82f907a | 105 | |
175fe1b0 | 106 | COREFLAGS += -ffast-math -funroll-loops -DHAVE_LIBRETRO -DNO_FRONTEND -DFRONTEND_SUPPORTS_RGB565 -DANDROID -DREARMED |
107 | COREFLAGS += -DP_HAVE_MMAP=1 -DP_HAVE_PTHREAD=1 -DP_HAVE_POSIX_MEMALIGN=1 | |
b2058a5b | 108 | |
226a5691 | 109 | ifeq ($(USE_LIBRETRO_VFS),1) |
110 | SOURCES_C += \ | |
111 | $(LIBRETRO_COMMON)/compat/compat_posix_string.c \ | |
112 | $(LIBRETRO_COMMON)/compat/fopen_utf8.c \ | |
113 | $(LIBRETRO_COMMON)/encodings/compat_strl.c \ | |
114 | $(LIBRETRO_COMMON)/encodings/encoding_utf.c \ | |
115 | $(LIBRETRO_COMMON)/file/file_path.c \ | |
116 | $(LIBRETRO_COMMON)/streams/file_stream.c \ | |
117 | $(LIBRETRO_COMMON)/streams/file_stream_transforms.c \ | |
118 | $(LIBRETRO_COMMON)/string/stdstring.c \ | |
119 | $(LIBRETRO_COMMON)/time/rtime.c \ | |
120 | $(LIBRETRO_COMMON)/vfs/vfs_implementation.c | |
121 | COREFLAGS += -DUSE_LIBRETRO_VFS | |
122 | endif | |
175fe1b0 | 123 | EXTRA_INCLUDES += $(LIBRETRO_COMMON)/include |
226a5691 | 124 | |
87cc59de | 125 | HAVE_ARI64=0 |
126 | HAVE_LIGHTREC=0 | |
21597f53 | 127 | LIGHTREC_CUSTOM_MAP=0 |
06d32fcf | 128 | LIGHTREC_THREADED_COMPILER=0 |
cef87e92 | 129 | HAVE_GPU_NEON=0 |
87cc59de | 130 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) |
131 | HAVE_ARI64=1 | |
cef87e92 | 132 | HAVE_GPU_NEON=1 |
87cc59de | 133 | else ifeq ($(TARGET_ARCH_ABI),armeabi) |
134 | HAVE_ARI64=1 | |
135 | else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) | |
630b122b | 136 | HAVE_ARI64=1 |
cef87e92 | 137 | HAVE_GPU_NEON=1 |
87cc59de | 138 | else ifeq ($(TARGET_ARCH_ABI),x86_64) |
139 | HAVE_LIGHTREC=1 | |
cef87e92 | 140 | HAVE_GPU_NEON=1 |
87cc59de | 141 | else ifeq ($(TARGET_ARCH_ABI),x86) |
142 | HAVE_LIGHTREC=1 | |
cef87e92 | 143 | HAVE_GPU_NEON=1 |
87cc59de | 144 | else |
145 | COREFLAGS += -DDRC_DISABLE | |
146 | endif | |
b0ec7ab5 | 147 | COREFLAGS += -DLIGHTREC_CUSTOM_MAP=$(LIGHTREC_CUSTOM_MAP) |
06d32fcf | 148 | COREFLAGS += -DLIGHTREC_ENABLE_THREADED_COMPILER=$(LIGHTREC_THREADED_COMPILER) |
87cc59de | 149 | |
150 | ifeq ($(HAVE_ARI64),1) | |
77668f25 | 151 | SOURCES_C += $(DYNAREC_DIR)/new_dynarec.c \ |
630b122b | 152 | $(DYNAREC_DIR)/pcsxmem.c |
153 | ifeq ($(TARGET_ARCH_ABI),arm64-v8a) | |
154 | SOURCES_ASM += $(DYNAREC_DIR)/linkage_arm64.S | |
155 | else | |
156 | SOURCES_ASM += $(CORE_DIR)/gte_arm.S \ | |
157 | $(SPU_DIR)/arm_utils.S \ | |
158 | $(DYNAREC_DIR)/linkage_arm.S | |
159 | endif | |
b2058a5b | 160 | endif |
630b122b | 161 | SOURCES_C += $(DYNAREC_DIR)/emu_if.c |
b2058a5b | 162 | |
87cc59de | 163 | ifeq ($(HAVE_LIGHTREC),1) |
b0ec7ab5 | 164 | COREFLAGS += -DLIGHTREC -DLIGHTREC_STATIC |
87cc59de | 165 | EXTRA_INCLUDES += $(DEPS_DIR)/lightning/include \ |
e168d99d | 166 | $(DEPS_DIR)/lightrec \ |
b7de84b4 | 167 | $(DEPS_DIR)/lightrec/tlsf \ |
e168d99d PC |
168 | $(ROOT_DIR)/include/lightning \ |
169 | $(ROOT_DIR)/include/lightrec | |
87cc59de | 170 | SOURCES_C += $(DEPS_DIR)/lightrec/blockcache.c \ |
4373e29d | 171 | $(DEPS_DIR)/lightrec/constprop.c \ |
87cc59de | 172 | $(DEPS_DIR)/lightrec/disassembler.c \ |
173 | $(DEPS_DIR)/lightrec/emitter.c \ | |
174 | $(DEPS_DIR)/lightrec/interpreter.c \ | |
175 | $(DEPS_DIR)/lightrec/lightrec.c \ | |
176 | $(DEPS_DIR)/lightrec/memmanager.c \ | |
177 | $(DEPS_DIR)/lightrec/optimizer.c \ | |
178 | $(DEPS_DIR)/lightrec/regcache.c \ | |
43d9bcdc | 179 | $(DEPS_DIR)/lightrec/recompiler.c \ |
d0475b22 | 180 | $(DEPS_DIR)/lightrec/reaper.c \ |
181 | $(DEPS_DIR)/lightrec/tlsf/tlsf.c | |
87cc59de | 182 | SOURCES_C += $(DEPS_DIR)/lightning/lib/jit_disasm.c \ |
183 | $(DEPS_DIR)/lightning/lib/jit_memory.c \ | |
184 | $(DEPS_DIR)/lightning/lib/jit_names.c \ | |
185 | $(DEPS_DIR)/lightning/lib/jit_note.c \ | |
186 | $(DEPS_DIR)/lightning/lib/jit_print.c \ | |
187 | $(DEPS_DIR)/lightning/lib/jit_size.c \ | |
188 | $(DEPS_DIR)/lightning/lib/lightning.c | |
f21d4944 | 189 | SOURCES_C += $(CORE_DIR)/lightrec/plugin.c \ |
d0475b22 | 190 | $(CORE_DIR)/lightrec/internals.c |
74c817c6 | 191 | ifeq ($(LIGHTREC_CUSTOM_MAP),1) |
b0ec7ab5 | 192 | SOURCES_C += $(CORE_DIR)/lightrec/mem.c |
87cc59de | 193 | endif |
74c817c6 | 194 | endif |
87cc59de | 195 | |
196 | ||
cef87e92 | 197 | ifeq ($(HAVE_GPU_NEON),1) |
74ec4f3a | 198 | COREFLAGS += -DNEON_BUILD -DTEXTURE_CACHE_4BPP -DTEXTURE_CACHE_8BPP -DGPU_NEON |
cef87e92 | 199 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) |
200 | COREFLAGS += -DHAVE_bgr555_to_rgb565 -DHAVE_bgr888_to_x | |
201 | SOURCES_ASM += $(CORE_DIR)/gte_neon.S \ | |
202 | $(NEON_DIR)/psx_gpu/psx_gpu_arm_neon.S \ | |
203 | $(FRONTEND_DIR)/cspace_neon.S | |
204 | else | |
205 | COREFLAGS += -DSIMD_BUILD | |
206 | SOURCES_C += $(NEON_DIR)/psx_gpu/psx_gpu_simd.c | |
207 | endif | |
77668f25 AK |
208 | SOURCES_C += $(NEON_DIR)/psx_gpu_if.c |
209 | else ifeq ($(TARGET_ARCH_ABI),armeabi) | |
07ade526 | 210 | COREFLAGS += -DUSE_GPULIB=1 -DGPU_UNAI |
211 | COREFLAGS += -DHAVE_bgr555_to_rgb565 | |
b26afb99 | 212 | SOURCES_ASM += $(UNAI_DIR)/gpu_arm.S \ |
77668f25 AK |
213 | $(FRONTEND_DIR)/cspace_arm.S |
214 | SOURCES_C += $(UNAI_DIR)/gpulib_if.cpp | |
215 | else | |
ca177c0f C |
216 | COREFLAGS += -fno-strict-aliasing -DGPU_PEOPS |
217 | SOURCES_C += $(PEOPS_DIR)/gpulib_if.c | |
b2058a5b TK |
218 | endif |
219 | ||
77668f25 AK |
220 | GIT_VERSION := " $(shell git rev-parse --short HEAD || echo unknown)" |
221 | ifneq ($(GIT_VERSION)," unknown") | |
222 | COREFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\" | |
b2058a5b TK |
223 | endif |
224 | ||
77668f25 AK |
225 | include $(CLEAR_VARS) |
226 | LOCAL_MODULE := retro | |
227 | LOCAL_SRC_FILES := $(SOURCES_C) $(SOURCES_ASM) | |
228 | LOCAL_CFLAGS := $(COREFLAGS) | |
229 | LOCAL_C_INCLUDES := $(ROOT_DIR)/include | |
175fe1b0 | 230 | LOCAL_C_INCLUDES += $(DEPS_DIR)/crypto |
87cc59de | 231 | LOCAL_C_INCLUDES += $(EXTRA_INCLUDES) |
77668f25 AK |
232 | LOCAL_LDFLAGS := -Wl,-version-script=$(FRONTEND_DIR)/link.T |
233 | LOCAL_LDLIBS := -lz -llog | |
234 | LOCAL_ARM_MODE := arm | |
235 | ||
236 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) | |
237 | LOCAL_ARM_NEON := true | |
238 | endif | |
b2058a5b TK |
239 | |
240 | include $(BUILD_SHARED_LIBRARY) |