DEPS_DIR = $(CORE_DIR)/core/deps LIBRETRO_COMM_DIR = $(CORE_DIR)/core/libretro-common INCFLAGS += -I$(CORE_DIR)/core/libretro \ -I$(CORE_DIR)/core/ \ -I$(DEPS_DIR) \ -I$(LIBRETRO_COMM_DIR)/include \ -I$(DEPS_DIR)/vixl \ -I$(DEPS_DIR)/stb SOURCES_C ?= SOURCES_CXX := \ $(CORE_DIR)/core/hw/arm7/arm_mem.cpp \ $(CORE_DIR)/core/hw/arm7/arm7.cpp \ $(CORE_DIR)/core/hw/arm7/arm7_rec.cpp \ $(CORE_DIR)/core/hw/arm7/arm7_rec_x64.cpp \ $(CORE_DIR)/core/hw/arm7/arm7_rec_x86.cpp \ $(CORE_DIR)/core/hw/arm7/arm7_rec_arm64.cpp \ $(CORE_DIR)/core/hw/arm7/vbaARM.cpp \ \ $(CORE_DIR)/core/hw/aica/dsp.cpp \ $(CORE_DIR)/core/hw/aica/dsp_arm64.cpp \ $(CORE_DIR)/core/hw/aica/dsp_interp.cpp \ $(CORE_DIR)/core/hw/aica/dsp_x64.cpp \ $(CORE_DIR)/core/hw/aica/dsp_x86.cpp \ $(CORE_DIR)/core/hw/aica/aica.cpp \ $(CORE_DIR)/core/hw/aica/aica_if.cpp \ $(CORE_DIR)/core/hw/aica/aica_mem.cpp \ $(CORE_DIR)/core/hw/aica/sgc_if.cpp \ \ $(CORE_DIR)/core/hw/holly/holly_intc.cpp \ $(CORE_DIR)/core/hw/holly/sb.cpp \ $(CORE_DIR)/core/hw/holly/sb_mem.cpp \ \ $(CORE_DIR)/core/hw/gdrom/gdrom_response.cpp \ $(CORE_DIR)/core/hw/gdrom/gdromv3.cpp \ \ $(CORE_DIR)/core/hw/maple/maple_helper.cpp \ $(CORE_DIR)/core/hw/maple/maple_devs.cpp \ $(CORE_DIR)/core/hw/maple/maple_if.cpp \ $(CORE_DIR)/core/hw/maple/maple_cfg.cpp \ $(CORE_DIR)/core/hw/maple/vmu_beep.cpp \ \ $(CORE_DIR)/core/hw/mem/_vmem.cpp \ \ $(CORE_DIR)/core/hw/pvr/drkPvr.cpp \ $(CORE_DIR)/core/hw/pvr/elan_host.cpp \ $(CORE_DIR)/core/hw/pvr/Renderer_if.cpp \ $(CORE_DIR)/core/hw/pvr/pvr_mem.cpp \ $(CORE_DIR)/core/hw/pvr/pvr_regs.cpp \ $(CORE_DIR)/core/hw/pvr/pvr_sb_regs.cpp \ $(CORE_DIR)/core/hw/pvr/spg.cpp \ $(CORE_DIR)/core/hw/pvr/ta.cpp \ $(CORE_DIR)/core/hw/pvr/ta_ctx.cpp \ $(CORE_DIR)/core/hw/pvr/ta_vtx.cpp \ $(CORE_DIR)/core/rend/CustomTexture.cpp \ $(CORE_DIR)/core/rend/sorter.cpp \ $(CORE_DIR)/core/rend/upscaler.cpp \ $(CORE_DIR)/core/rend/TexCache.cpp \ $(CORE_DIR)/core/rend/rtt_watch.cpp \ $(CORE_DIR)/core/rend/last_picture.cpp \ $(CORE_DIR)/core/rend/tile/compute_frame.cpp \ \ $(CORE_DIR)/core/hw/sh4/sh4_mmr.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_mem.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_interrupts.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_rom.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_core_regs.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_sched.cpp \ $(CORE_DIR)/core/hw/sh4/sh4_opcode_list.cpp \ $(CORE_DIR)/core/hw/sh4/interpr/sh4_interpreter.cpp \ $(CORE_DIR)/core/hw/sh4/interpr/sh4_fpu.cpp \ $(CORE_DIR)/core/hw/sh4/interpr/sh4_opcodes.cpp \ $(CORE_DIR)/core/hw/sh4/modules/serial.cpp \ $(CORE_DIR)/core/hw/sh4/modules/rtc.cpp \ $(CORE_DIR)/core/hw/sh4/modules/bsc.cpp \ $(CORE_DIR)/core/hw/sh4/modules/tmu.cpp \ $(CORE_DIR)/core/hw/sh4/modules/ccn.cpp \ $(CORE_DIR)/core/hw/sh4/modules/intc.cpp \ $(CORE_DIR)/core/hw/sh4/modules/ubc.cpp \ $(CORE_DIR)/core/hw/sh4/modules/cpg.cpp \ $(CORE_DIR)/core/hw/sh4/modules/dmac.cpp \ $(CORE_DIR)/core/hw/sh4/modules/mmu.cpp \ $(CORE_DIR)/core/hw/sh4/modules/fastmmu.cpp \ $(CORE_DIR)/core/imgread/ImgReader.cpp \ $(CORE_DIR)/core/imgread/cdi.cpp \ $(CORE_DIR)/core/imgread/chd.cpp \ $(CORE_DIR)/core/imgread/common.cpp \ $(CORE_DIR)/core/imgread/cue.cpp \ $(CORE_DIR)/core/imgread/gdi.cpp \ $(CORE_DIR)/core/log/LogManagerLibretro.cpp \ \ $(CORE_DIR)/core/cheats.cpp \ $(CORE_DIR)/core/nullDC.cpp \ $(CORE_DIR)/core/serialize.cpp \ $(CORE_DIR)/core/stdclass.cpp \ \ $(DEPS_DIR)/crypto/sha256.cpp \ $(DEPS_DIR)/crypto/md5.cpp \ $(DEPS_DIR)/libelf/elf.cpp \ $(DEPS_DIR)/libelf/elf32.cpp \ $(DEPS_DIR)/libelf/elf64.cpp \ $(DEPS_DIR)/chdpsr/cdipsr.cpp \ \ $(CORE_DIR)/core/reios/reios_elf.cpp \ $(CORE_DIR)/core/reios/reios.cpp \ $(CORE_DIR)/core/reios/gdrom_hle.cpp \ $(CORE_DIR)/core/reios/descrambl.cpp \ \ # CHD images are read by libretro-common's clean-room rchd reader. Its # FLAC and zstd hunk codecs come from the same tree; deflate and LZMA # are the archive codecs below, and the version 5 map needs # encoding_huffman.c to open at all. CHD_SOURCES_C = \ $(CORE_DIR)/core/imgread/chd_image.c \ $(LIBRETRO_COMM_DIR)/formats/chd/rchd.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_huffman.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_rzstd.c \ $(LIBRETRO_COMM_DIR)/formats/flac/rflac.c # zip and 7z archives: rzip_archive over encoding_deflate.c, r7z_archive # over the LZMA/LZMA2/BCJ units. ARCHIVE_SOURCES_C = \ $(CORE_DIR)/core/archive/archive.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_deflate.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_crc32.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_archive.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_rbzip2.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_lzma.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_lzma2.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_lzma_stream.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_bcj2.c \ $(LIBRETRO_COMM_DIR)/formats/7z/r7z_filters.c \ $(LIBRETRO_COMM_DIR)/formats/zip/rzip_archive.c \ $(LIBRETRO_COMM_DIR)/formats/rar/rrar_archive.c \ $(LIBRETRO_COMM_DIR)/formats/rar/rrar_ppmd7.c \ $(LIBRETRO_COMM_DIR)/features/features_cpu.c PICOTCP_INCFLAGS = \ -I$(DEPS_DIR)/picotcp/include \ -I$(DEPS_DIR)/picotcp/modules PICOTCP_CFLAGS = -DPICO_SUPPORT_UDP -DPICO_SUPPORT_DHCPD PICOTCP_SOURCES_C = \ $(DEPS_DIR)/picotcp/modules/pico_arp.c \ $(DEPS_DIR)/picotcp/modules/pico_dev_ppp.c \ $(DEPS_DIR)/picotcp/modules/pico_dhcp_common.c \ $(DEPS_DIR)/picotcp/modules/pico_dhcp_server.c \ $(DEPS_DIR)/picotcp/modules/pico_dns_client.c \ $(DEPS_DIR)/picotcp/modules/pico_dns_common.c \ $(DEPS_DIR)/picotcp/modules/pico_ethernet.c \ $(DEPS_DIR)/picotcp/modules/pico_fragments.c \ $(DEPS_DIR)/picotcp/modules/pico_ipv4.c \ $(DEPS_DIR)/picotcp/modules/pico_socket_tcp.c \ $(DEPS_DIR)/picotcp/modules/pico_socket_udp.c \ $(DEPS_DIR)/picotcp/modules/pico_tcp.c \ $(DEPS_DIR)/picotcp/modules/pico_udp.c \ $(DEPS_DIR)/picotcp/stack/pico_device.c \ $(DEPS_DIR)/picotcp/stack/pico_frame.c \ $(DEPS_DIR)/picotcp/stack/pico_md5.c \ $(DEPS_DIR)/picotcp/stack/pico_protocol.c \ $(DEPS_DIR)/picotcp/stack/pico_socket_multicast.c \ $(DEPS_DIR)/picotcp/stack/pico_socket.c \ $(DEPS_DIR)/picotcp/stack/pico_stack.c \ $(DEPS_DIR)/picotcp/stack/pico_tree.c XXHASH_SOURCES_C = $(DEPS_DIR)/xxhash/xxhash.c # The NAOMI 2's geometry processor SOURCES_C += $(CORE_DIR)/core/hw/pvr/elan.c # The ROMs of a NAOMI cartridge that share a range a word each in turn SOURCES_C += $(CORE_DIR)/core/hw/naomi/naomi_interleave.c # What a GD-ROM game's DIMM board leaves in the NAOMI's memory SOURCES_C += $(CORE_DIR)/core/hw/naomi/naomi_dimm.c # The lists a frame's parse appends to (List's, typed: helper_classes.h) SOURCES_C += $(CORE_DIR)/core/hw/pvr/ta_list.c # ...and a strip's indices (make_index()'s) SOURCES_C += $(CORE_DIR)/core/hw/pvr/ta_index.c # ...and where a renderer has them parsed to (core/rend/parse_arena.h) SOURCES_C += $(CORE_DIR)/core/rend/parse_arena.c SOURCES_ASM := ifeq ($(SYSTEM_PICOTCP), 1) CFLAGS += $(shell pkg-config --cflags picotcp) LIBS += $(shell pkg-config --libs picotcp) else INCFLAGS += $(PICOTCP_INCFLAGS) CFLAGS += $(PICOTCP_CFLAGS) SOURCES_C += $(PICOTCP_SOURCES_C) endif ifeq ($(SYSTEM_XXHASH), 1) CFLAGS += $(shell pkg-config --cflags libxxhash) LIBS += $(shell pkg-config --libs libxxhash) else SOURCES_C += $(XXHASH_SOURCES_C) endif ifeq ($(ENABLE_MODEM), 1) INCFLAGS += -I$(CORE_DIR)/core/deps/miniupnpc SOURCES_CXX += $(CORE_DIR)/core/hw/modem/dns.cpp \ $(CORE_DIR)/core/hw/modem/modem.cpp \ $(CORE_DIR)/core/hw/bba/bba.cpp \ $(CORE_DIR)/core/hw/bba/rtl8139c.cpp \ $(CORE_DIR)/core/network/picoppp.cpp \ $(CORE_DIR)/core/network/miniupnp.cpp SOURCES_CXX += $(CORE_DIR)/core/hw/modem/v42.cpp \ $(CORE_DIR)/core/hw/modem/v42bis.cpp \ $(CORE_DIR)/core/network/dcnet.cpp SOURCES_C += \ $(CORE_DIR)/core/deps/miniupnpc/addr_is_reserved.c \ $(CORE_DIR)/core/deps/miniupnpc/igd_desc_parse.c \ $(CORE_DIR)/core/deps/miniupnpc/upnpreplyparse.c \ $(CORE_DIR)/core/deps/miniupnpc/upnpcommands.c \ $(CORE_DIR)/core/deps/miniupnpc/upnperrors.c \ $(CORE_DIR)/core/deps/miniupnpc/connecthostport.c \ $(CORE_DIR)/core/deps/miniupnpc/portlistingparse.c \ $(CORE_DIR)/core/deps/miniupnpc/receivedata.c \ $(CORE_DIR)/core/deps/miniupnpc/upnpdev.c \ $(CORE_DIR)/core/deps/miniupnpc/minissdpc.c \ $(CORE_DIR)/core/deps/miniupnpc/miniwget.c \ $(CORE_DIR)/core/deps/miniupnpc/miniupnpc.c \ $(CORE_DIR)/core/deps/miniupnpc/minixml.c \ $(CORE_DIR)/core/deps/miniupnpc/minisoap.c CORE_DEFINES += -DENABLE_MODEM -DMINIUPNP_STATICLIB endif ifeq ($(HAVE_GL), 1) SOURCES_CXX += $(CORE_DIR)/core/rend/gles/gles.cpp \ $(CORE_DIR)/core/rend/gles/gldraw.cpp \ $(CORE_DIR)/core/rend/gles/gltex.cpp \ $(CORE_DIR)/core/rend/gles/gl_texdecoder.cpp \ $(CORE_DIR)/core/rend/gles/gl_writeout.cpp \ $(CORE_DIR)/core/rend/gles/glprogram_cache.cpp ifeq ($(HAVE_GL4), 1) SOURCES_CXX += $(CORE_DIR)/core/rend/gl4/gles.cpp \ $(CORE_DIR)/core/rend/gl4/gldraw.cpp \ $(CORE_DIR)/core/rend/gl4/gltex.cpp \ $(CORE_DIR)/core/rend/gl4/abuffer.cpp \ $(CORE_DIR)/core/rend/gles/ta_decoder_gl.cpp # (where a frame is parsed when the card draws it from there: gles/parse_arena_gl.h) SOURCES_C += $(CORE_DIR)/core/rend/gles/parse_arena_gl.c endif SOURCES_C += $(LIBRETRO_COMM_DIR)/glsym/rglgen.c \ $(LIBRETRO_COMM_DIR)/glsm/glsm.c ifeq ($(GLES), 1) SOURCES_C += $(LIBRETRO_COMM_DIR)/glsym/glsym_es2.c else SOURCES_C += $(LIBRETRO_COMM_DIR)/glsym/glsym_gl.c endif endif ifeq ($(HAVE_VULKAN), 1) # (the shaders are SPIR-V made when the source is: tools/rend/kernels_spv.sh; no GLSL compiler is built in) INCFLAGS += -I$(DEPS_DIR)/khronos SOURCES_C += $(LIBRETRO_COMM_DIR)/vulkan/vulkan_symbol_wrapper.c \ $(CORE_DIR)/core/rend/vulkan/vk_heap.c \ $(CORE_DIR)/core/rend/vulkan/parse_arena_vk.c \ $(CORE_DIR)/core/rend/vulkan/hdr_encode_vk.c SOURCES_CXX += \ $(CORE_DIR)/core/rend/vulkan/vulkan_context.cpp \ $(CORE_DIR)/core/rend/vulkan/heap.cpp \ $(CORE_DIR)/core/rend/vulkan/buffer.cpp \ $(CORE_DIR)/core/rend/vulkan/drawer.cpp \ $(CORE_DIR)/core/rend/vulkan/motion_pass.cpp \ $(CORE_DIR)/core/rend/vulkan/writeout.cpp \ $(CORE_DIR)/core/rend/vulkan/rtt_read.cpp \ $(CORE_DIR)/core/rend/vulkan/pipeline.cpp \ $(CORE_DIR)/core/rend/vulkan/pso.cpp \ $(CORE_DIR)/core/rend/vulkan/quad.cpp \ $(CORE_DIR)/core/rend/vulkan/shaders.cpp \ $(CORE_DIR)/core/rend/vulkan/texture.cpp \ $(CORE_DIR)/core/rend/vulkan/tex_decoder.cpp \ $(CORE_DIR)/core/rend/vulkan/ta_decoder.cpp \ $(CORE_DIR)/core/rend/vulkan/vmu.cpp \ $(CORE_DIR)/core/rend/vulkan/vulkan_renderer.cpp \ $(CORE_DIR)/core/rend/vulkan/oit/oit_drawer.cpp \ $(CORE_DIR)/core/rend/vulkan/oit/oit_pipeline.cpp \ $(CORE_DIR)/core/rend/vulkan/oit/oit_renderer.cpp \ $(CORE_DIR)/core/rend/vulkan/oit/oit_renderpass.cpp \ $(CORE_DIR)/core/rend/vulkan/compute_drawer.cpp endif # Direct3D 11, on Windows: the frontend's device, the shaders compiled when # they are first needed ifeq ($(HAVE_D3D11), 1) SOURCES_CXX += \ $(CORE_DIR)/core/rend/dx11/dx11context_lr.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_overlay.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_nvapi.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_renderer.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_writeout.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_renderstate.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_shaders.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_ta_decoder.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_texdecoder.cpp \ $(CORE_DIR)/core/rend/dx11/dx11_texture.cpp \ $(CORE_DIR)/core/rend/dx11/oit/dx11_oitrenderer.cpp \ $(CORE_DIR)/core/rend/dx11/oit/dx11_oitshaders.cpp SOURCES_C += $(CORE_DIR)/core/rend/hdr/hdr_encode_d3d11.c endif # Direct3D 12, on Windows: the frontend's device and queue, the shaders DXBC # made when the core is built (rend/dx12/dx12_dxbc.inc) ifeq ($(HAVE_D3D12), 1) SOURCES_CXX += \ $(CORE_DIR)/core/rend/dx12/dx12context_lr.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_overlay.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_pso.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_nvapi.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_renderer.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_shaders.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_ta_decoder.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_compute.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_writeout.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_texdecoder.cpp \ $(CORE_DIR)/core/rend/dx12/dx12_texture.cpp \ $(CORE_DIR)/core/rend/dx12/oit/dx12_oitrenderer.cpp SOURCES_C += $(CORE_DIR)/core/rend/hdr/hdr_encode_d3d12.c \ $(CORE_DIR)/core/rend/dx12/parse_arena_d3d12.c endif # The HDR output's Display Transform (rend/hdr/, Color Format), for the # renderers that have the HDR output ifneq (,$(filter 1,$(HAVE_VULKAN) $(HAVE_D3D11) $(HAVE_D3D12))) SOURCES_C += $(CORE_DIR)/core/rend/hdr/hdr_output.c \ $(CORE_DIR)/core/rend/hdr/hdr_transform.c \ $(CORE_DIR)/core/rend/hdr/hdr_aces2.c \ $(CORE_DIR)/core/rend/hdr/hdr_display.c \ $(CORE_DIR)/core/rend/hdr/hdr_libretro.c endif # NVIDIA's NVAPI, loaded when it is run, for either Direct3D renderer # (libretro-common's loader, gfx/nvidia/nvapi_loader.h) ifneq (,$(filter 1,$(HAVE_D3D11) $(HAVE_D3D12))) SOURCES_C += $(LIBRETRO_COMM_DIR)/gfx/nvidia/nvapi_loader.c endif # Shaders and pipelines made ahead on a thread of their own, for either # Direct3D renderer (rend/d3d_warm.h) ifneq (,$(filter 1,$(HAVE_D3D11) $(HAVE_D3D12))) SOURCES_C += $(CORE_DIR)/core/rend/d3d_warm.c endif ifeq ($(HAVE_D3D11), 1) SOURCES_C += $(CORE_DIR)/core/rend/d3d_shader_cache.c endif # Direct3D 9, on Windows: the frontend's device, every shader compiled when # the renderer is first set up ifeq ($(HAVE_D3D9), 1) SOURCES_CXX += \ $(CORE_DIR)/core/rend/dx9/dx9context_lr.cpp \ $(CORE_DIR)/core/rend/dx9/dx9_overlay.cpp \ $(CORE_DIR)/core/rend/dx9/dx9_renderer.cpp \ $(CORE_DIR)/core/rend/dx9/dx9_shaders.cpp \ $(CORE_DIR)/core/rend/dx9/dx9_texture.cpp \ $(CORE_DIR)/core/rend/dx9/dx9_texdecoder.cpp endif SOURCES_CXX += $(CORE_DIR)/core/hw/naomi/naomi.cpp \ $(CORE_DIR)/core/hw/naomi/naomi_cart.cpp \ $(CORE_DIR)/core/hw/naomi/decrypt.cpp \ $(CORE_DIR)/core/hw/naomi/m1cartridge.cpp \ $(CORE_DIR)/core/hw/naomi/m4cartridge.cpp \ $(CORE_DIR)/core/hw/naomi/awcartridge.cpp \ $(CORE_DIR)/core/hw/naomi/gdcartridge.cpp \ $(CORE_DIR)/core/hw/flashrom/x76f100.cpp \ $(CORE_DIR)/core/hw/naomi/naomi_m3comm.cpp \ $(CORE_DIR)/core/hw/naomi/card_reader.cpp \ $(CORE_DIR)/core/hw/naomi/touchscreen.cpp \ $(CORE_DIR)/core/hw/naomi/hopper.cpp \ $(CORE_DIR)/core/hw/naomi/printer.cpp \ $(CORE_DIR)/core/hw/naomi/midiffb.cpp \ $(CORE_DIR)/core/hw/naomi/systemsp.cpp \ $(CORE_DIR)/core/hw/naomi/dinokich.cpp \ $(CORE_DIR)/core/hw/naomi/dinokich_card.cpp \ $(CORE_DIR)/core/network/naomi_network.cpp # The device in the Dreamcast's expansion port, in every build SOURCES_CXX += $(CORE_DIR)/core/network/netstate.cpp ifeq ($(HAVE_GENERIC_JIT), 1) DYNAREC_USED = 1 SOURCES_CXX += $(CORE_DIR)/core/rec-cpp/rec_cpp.cpp endif # Recompiler (x64) ifneq ($(filter $(WITH_DYNAREC), x86_64 x64),) DYNAREC_USED = 1 SOURCES_CXX += $(CORE_DIR)/core/rec-x64/rec_x64.cpp # Recompiler (x86 32bit) else ifneq ($(filter $(WITH_DYNAREC), i386 i686 x86),) DYNAREC_USED = 1 SOURCES_CXX += $(CORE_DIR)/core/rec-x86/rec_x86.cpp endif # Recompiler (ARM) ifeq ($(WITH_DYNAREC), arm) DYNAREC_USED = 1 SOURCES_CXX += $(CORE_DIR)/core/rec-ARM/rec_arm.cpp SOURCES_ASM += $(CORE_DIR)/core/rec-ARM/ngen_arm.S endif # Recompiler (ARM64) ifneq ($(filter $(WITH_DYNAREC), arm64 aarch64),) DYNAREC_USED = 1 # (for macOS, what it has is in rec_arm64.cpp, in Apple's syntax) ifeq (,$(findstring osx,$(platform))) SOURCES_ASM += $(CORE_DIR)/core/rec-ARM64/ngen_arm64.S endif SOURCES_CXX += $(CORE_DIR)/core/rec-ARM64/rec_arm64.cpp \ $(DEPS_DIR)/vixl/code-buffer-vixl.cc \ $(DEPS_DIR)/vixl/compiler-intrinsics-vixl.cc \ $(DEPS_DIR)/vixl/cpu-features.cc \ $(DEPS_DIR)/vixl/utils-vixl.cc \ $(DEPS_DIR)/vixl/aarch64/assembler-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/cpu-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/cpu-features-auditor-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/decoder-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/disasm-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/instructions-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/instrument-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/logic-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/macro-assembler-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/operands-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/pointer-auth-aarch64.cc \ $(DEPS_DIR)/vixl/aarch64/simulator-aarch64.cc endif # Dynarec ifeq ($(DYNAREC_USED), 1) SOURCES_CXX += $(CORE_DIR)/core/hw/sh4/dyna/decoder.cpp \ $(CORE_DIR)/core/hw/sh4/dyna/driver.cpp \ $(CORE_DIR)/core/hw/sh4/dyna/blockmanager.cpp \ $(CORE_DIR)/core/hw/sh4/dyna/wait_site.cpp \ $(CORE_DIR)/core/hw/sh4/dyna/shil.cpp \ $(CORE_DIR)/core/hw/sh4/dyna/ssa.cpp endif SOURCES_CXX += $(CORE_DIR)/core/libretro/libretro.cpp \ $(CORE_DIR)/core/libretro/audiostream.cpp \ $(CORE_DIR)/core/libretro/common.cpp \ $(CORE_DIR)/core/libretro/vmem_utils.cpp SOURCES_C += $(DEPS_DIR)/coreio/coreio.c SOURCES_C += $(CORE_DIR)/core/savewriter.c # When statically linked into RetroArch (e.g. libnx), the frontend already # compiles these libretro-common sources; building them again would duplicate # symbols at link time. The headers stay -- they now match current upstream, so # the declarations agree with the objects RetroArch provides. ifneq ($(STATIC_LINKING), 1) SOURCES_C += $(LIBRETRO_COMM_DIR)/memmap/memalign.c \ $(LIBRETRO_COMM_DIR)/file/file_path.c \ $(LIBRETRO_COMM_DIR)/file/file_path_io.c \ $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.c \ $(LIBRETRO_COMM_DIR)/vfs/vfs_prefetch.c \ $(LIBRETRO_COMM_DIR)/streams/file_stream.c \ $(LIBRETRO_COMM_DIR)/streams/file_stream_transforms.c \ $(LIBRETRO_COMM_DIR)/encodings/encoding_utf.c \ $(LIBRETRO_COMM_DIR)/compat/compat_strl.c \ $(LIBRETRO_COMM_DIR)/compat/fopen_utf8.c \ $(LIBRETRO_COMM_DIR)/compat/compat_strcasestr.c \ $(LIBRETRO_COMM_DIR)/file/retro_dirent.c \ $(LIBRETRO_COMM_DIR)/string/stdstring.c \ $(LIBRETRO_COMM_DIR)/string/rstrtod.c \ $(LIBRETRO_COMM_DIR)/time/rtime.c endif ifeq ($(NO_THREADS), 1) else ifneq ($(STATIC_LINKING), 1) SOURCES_C += $(LIBRETRO_COMM_DIR)/rthreads/rthreads.c \ $(LIBRETRO_COMM_DIR)/rthreads/retro_eventcount.c \ $(LIBRETRO_COMM_DIR)/queues/retro_spsc.c endif endif ifeq ($(HAVE_TEXUPSCALE), 1) SOURCES_CXX += $(DEPS_DIR)/xbrz/xbrz.cpp endif ifeq ($(HAVE_CHD), 1) SOURCES_C += $(CHD_SOURCES_C) endif SOURCES_C += $(ARCHIVE_SOURCES_C)