citra/Makefile.common

1603 lines
98 KiB
Makefile

INCFLAGS := -I$(SRC_DIR) \
-I$(SRC_DIR)/video_core/shaders/src \
-I$(EXTERNALS_DIR) \
-I$(EXTERNALS_DIR)/dds-ktx \
-I$(EXTERNALS_DIR)/dynarmic/externals/robin-map/include \
-I$(EXTERNALS_DIR)/dynarmic/src \
-I$(EXTERNALS_DIR)/enet/include \
-I$(EXTERNALS_DIR)/faad2/faad2/include \
-I$(EXTERNALS_DIR)/fmt/include \
-I$(EXTERNALS_DIR)/glslang \
-I$(EXTERNALS_DIR)/glslang/build \
-I$(EXTERNALS_DIR)/httplib \
-I$(EXTERNALS_DIR)/json \
-I$(EXTERNALS_DIR)/libressl/include \
-I$(EXTERNALS_DIR)/microprofile \
-I$(EXTERNALS_DIR)/nihstro/include \
-I$(EXTERNALS_DIR)/boost \
-I$(EXTERNALS_DIR)/cryptopp \
-I$(EXTERNALS_DIR)/libretro-common/include \
-I$(EXTERNALS_DIR)/open_source_archives/include \
-I$(EXTERNALS_DIR)/teakra/include \
-I$(EXTERNALS_DIR)/sirit/include \
-I$(EXTERNALS_DIR)/sirit/externals/SPIRV-Headers/include \
-I$(EXTERNALS_DIR)/sirit/src \
-I$(EXTERNALS_DIR)/soundtouch/include \
-I$(EXTERNALS_DIR)/vma/include \
-I$(EXTERNALS_DIR)/vulkan-headers/include \
-I$(EXTERNALS_DIR)/zstd/lib
SOURCES_C :=
SOURCES_CXX :=
DEFINES += -DCPPHTTPLIB_OPENSSL_SUPPORT
# Begone boost linking
CXXFLAGS += -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_LIB -DBOOST_DATE_TIME_NO_LIB -DBOOST_REGEX_NO_LIB \
-DNULL_POINTER_TAG=BOOST_SERIALIZATION_NULL_POINTER_TAG # Stupid workaround for boost serialization
SOURCES_CXX += $(EXTERNALS_DIR)/boost/libs/iostreams/src/file_descriptor.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/archive_exception.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_pointer_oserializer.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/extended_type_info_no_rtti.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_text_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/stl_port.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_archive_exception.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_archive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_serializer_map.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/binary_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/extended_type_info_typeid.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_text_wiarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/text_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_grammar.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_text_iprimitive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/binary_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_binary_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_text_woarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/text_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_iserializer.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_text_oprimitive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/binary_wiarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_binary_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_xml_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/text_wiarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_text_wiprimitive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/binary_woarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_xml_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/text_woarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_wgrammar.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_oserializer.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_text_woprimitive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/codecvt_null.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_oarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_xml_wiarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/utf8_codecvt_facet.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_wiarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_pointer_iserializer.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/basic_xml_archive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/extended_type_info.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_text_iarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/polymorphic_xml_woarchive.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/void_cast.cpp \
$(EXTERNALS_DIR)/boost/libs/serialization/src/xml_woarchive.cpp
ifeq ($(platform), libnx)
INCFLAGS += -isystem$(EXTERNALS_DIR)/switch-compat/include
SOURCES_C += $(EXTERNALS_DIR)/switch-compat/src/switch-compat.c
endif
# Externals - CryptoPP
SOURCES_CXX += $(EXTERNALS_DIR)/cryptopp/allocate.cpp \
$(EXTERNALS_DIR)/cryptopp/cryptlib.cpp \
$(EXTERNALS_DIR)/cryptopp/cpu.cpp \
$(EXTERNALS_DIR)/cryptopp/integer.cpp \
$(EXTERNALS_DIR)/cryptopp/algparam.cpp \
$(EXTERNALS_DIR)/cryptopp/asn.cpp \
$(EXTERNALS_DIR)/cryptopp/authenc.cpp \
$(EXTERNALS_DIR)/cryptopp/base64.cpp \
$(EXTERNALS_DIR)/cryptopp/basecode.cpp \
$(EXTERNALS_DIR)/cryptopp/ccm.cpp \
$(EXTERNALS_DIR)/cryptopp/crc_simd.cpp \
$(EXTERNALS_DIR)/cryptopp/des.cpp \
$(EXTERNALS_DIR)/cryptopp/dessp.cpp \
$(EXTERNALS_DIR)/cryptopp/dll.cpp \
$(EXTERNALS_DIR)/cryptopp/ec2n.cpp \
$(EXTERNALS_DIR)/cryptopp/ecp.cpp \
$(EXTERNALS_DIR)/cryptopp/filters.cpp \
$(EXTERNALS_DIR)/cryptopp/fips140.cpp \
$(EXTERNALS_DIR)/cryptopp/gcm_simd.cpp \
$(EXTERNALS_DIR)/cryptopp/gf2n.cpp \
$(EXTERNALS_DIR)/cryptopp/gfpcrypt.cpp \
$(EXTERNALS_DIR)/cryptopp/hex.cpp \
$(EXTERNALS_DIR)/cryptopp/hmac.cpp \
$(EXTERNALS_DIR)/cryptopp/hrtimer.cpp \
$(EXTERNALS_DIR)/cryptopp/iterhash.cpp \
$(EXTERNALS_DIR)/cryptopp/md5.cpp \
$(EXTERNALS_DIR)/cryptopp/misc.cpp \
$(EXTERNALS_DIR)/cryptopp/modes.cpp \
$(EXTERNALS_DIR)/cryptopp/mqueue.cpp \
$(EXTERNALS_DIR)/cryptopp/nbtheory.cpp \
$(EXTERNALS_DIR)/cryptopp/neon_simd.cpp \
$(EXTERNALS_DIR)/cryptopp/oaep.cpp \
$(EXTERNALS_DIR)/cryptopp/osrng.cpp \
$(EXTERNALS_DIR)/cryptopp/pubkey.cpp \
$(EXTERNALS_DIR)/cryptopp/primetab.cpp \
$(EXTERNALS_DIR)/cryptopp/queue.cpp \
$(EXTERNALS_DIR)/cryptopp/randpool.cpp \
$(EXTERNALS_DIR)/cryptopp/rdtables.cpp \
$(EXTERNALS_DIR)/cryptopp/rijndael_simd.cpp \
$(EXTERNALS_DIR)/cryptopp/rijndael.cpp \
$(EXTERNALS_DIR)/cryptopp/rng.cpp \
$(EXTERNALS_DIR)/cryptopp/sha_simd.cpp \
$(EXTERNALS_DIR)/cryptopp/sha.cpp
ifeq ($(HAVE_SSE), 1)
SOURCES_CXX += $(EXTERNALS_DIR)/cryptopp/sse_simd.cpp
endif
CXXFLAGS += -DCRYPTOPP_DISABLE_ASM -DCRYPTOPP_DISABLE_SSSE3 -DCRYPTOPP_DISABLE_SSE4
# Externals - Dynarmic
ifeq ($(HAVE_DYNARMIC), 1)
DEFINES += -DHAVE_DYNARMIC
DYNARMICINCFLAGS := -I$(EXTERNALS_DIR)/dynarmic/src \
-I$(EXTERNALS_DIR)/dynarmic/src/dynarmic \
-I$(EXTERNALS_DIR)/dynarmic/externals/mcl/include \
-I$(EXTERNALS_DIR)/dynarmic/externals/oaknut/include \
-I$(EXTERNALS_DIR)/dynarmic/externals/robin-map/include \
-I$(EXTERNALS_DIR)/dynarmic/externals/zycore/include \
-I$(EXTERNALS_DIR)/dynarmic/externals/zydis/include \
-I$(EXTERNALS_DIR)/dynarmic/externals/zydis/src \
-I$(EXTERNALS_DIR)/fmt/include
DYNARMICSOURCES_C += $(EXTERNALS_DIR)/dynarmic/externals/zydis/src/Decoder.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/DecoderData.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/Formatter.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/FormatterATT.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/FormatterBase.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/FormatterBuffer.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/FormatterIntel.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/Mnemonic.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/Register.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/SharedData.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/String.c \
$(EXTERNALS_DIR)/dynarmic/externals/zydis/src/Utils.c
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/externals/mcl/src/assert.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/crypto/aes.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/crypto/crc32.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/crypto/sm4.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/fused.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPCompare.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPConvert.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPMulAdd.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRecipEstimate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRecipExponent.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRecipStepFused.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRoundInt.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRSqrtEstimate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPRSqrtStepFused.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/op/FPToFixed.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/process_exception.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/process_nan.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/fp/unpacked.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/llvm_disassemble.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/math_util.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/memory_pool.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/u128.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/x64_disassemble.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/imm.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/a32_ir_emitter.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/a32_location_descriptor.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/a32_types.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/disassembler/disassembler_arm.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/disassembler/disassembler_thumb.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/a32_translate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/conditional_state.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/a32_branch.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/a32_crc32.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/a32_exception_generating.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/a32_translate_impl.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_load_store_structures.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_misc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_one_reg_modified_immediate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_three_regs.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_two_regs_misc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_two_regs_scalar.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/asimd_two_regs_shift.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/barrier.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/coprocessor.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/data_processing.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/divide.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/extension.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/hint.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/load_store.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/misc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/multiply.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/packing.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/parallel.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/reversal.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/saturated.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/status_register_access.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/synchronization.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb16.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_branch.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_control.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_coprocessor.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_data_processing_modified_immediate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_data_processing_plain_binary_immediate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_data_processing_register.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_data_processing_shifted_register.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_load_byte.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_load_halfword.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_load_store_dual.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_load_store_multiple.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_load_word.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_long_multiply.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_misc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_multiply.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_parallel.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/thumb32_store_single_data_item.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/impl/vfp.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/translate_arm.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A32/translate/translate_thumb.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/frontend/A64/a64_types.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/basic_block.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/ir_emitter.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/location_descriptor.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/microinstruction.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opcodes.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/type.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/value.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/a32_constant_memory_reads_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/a32_get_set_elimination_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/constant_propagation_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/dead_code_elimination_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/identity_removal_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/naming_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/polyfill_pass.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/ir/opt/verification_pass.cpp
ifeq ($(ARCH), x86_64)
DEFINES += -DXBYAK_NO_OP_NAMES
DYNARMICINCFLAGS += -I$(EXTERNALS_DIR)/xbyak
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/block_range_information.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/a32_emit_x64.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/a32_interface.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/a32_jitstate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/abi.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/block_of_code.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/callback.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/constant_pool.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/a32_emit_x64_memory.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_aes.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_crc32.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_data_processing.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_floating_point.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_packed.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_saturation.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_sha.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_sm4.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_vector_floating_point.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_vector_saturation.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64_vector.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/emit_x64.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/exclusive_monitor.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/hostloc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/perf_map.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/reg_alloc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/x64/verbose_debugging_output.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/common/spin_lock_x64.cpp
ifeq ($(platform), win)
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/exception_handler_windows.cpp
else ifeq ($(platform), unix)
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
else
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/exception_handler_generic.cpp
endif
else ifeq ($(ARCH), aarch64)
DYNARMICSOURCES_CXX += $(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/a32_address_space.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/a32_interface.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/a32_jitstate.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/abi.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64_a32.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64_data_processing.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64_floating_point.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64_packed.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/emit_arm64_saturation.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/arm64/reg_alloc.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/block_range_information.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/exception_handler_generic.cpp \
$(EXTERNALS_DIR)/dynarmic/src/dynarmic/backend/exception_handler_posix.cpp
else
$(error Bad architecture used with dynarmic: $(ARCH))
endif
endif
# Externals - Enet
SOURCES_C += $(EXTERNALS_DIR)/enet/callbacks.c \
$(EXTERNALS_DIR)/enet/compress.c \
$(EXTERNALS_DIR)/enet/host.c \
$(EXTERNALS_DIR)/enet/list.c \
$(EXTERNALS_DIR)/enet/packet.c \
$(EXTERNALS_DIR)/enet/peer.c \
$(EXTERNALS_DIR)/enet/protocol.c \
$(EXTERNALS_DIR)/enet/unix.c \
$(EXTERNALS_DIR)/enet/win32.c
CFLAGS += -DHAS_SOCKLEN_T
# Externals - glad
ifeq ($(HAVE_GLAD), 1)
DEFINES += -DHAVE_GLAD
INCFLAGS += -I$(EXTERNALS_DIR)/glad/include
SOURCES_C += $(EXTERNALS_DIR)/glad/src/glad.c
endif
# Externals - faad2
FAAD2_VERSION := '"$(shell cat $(EXTERNALS_DIR)/faad2/faad2/properties.json | grep 'PACKAGE_VERSION' | cut -d'"' -f4)"'
FAAD2FLAGS := -DLC_ONLY_DECODER -DDISABLE_SBR -DPACKAGE_VERSION=$(FAAD2_VERSION) \
-DAPPLY_DRC -DHAVE_INTTYPES_H=1 -DHAVE_MEMCPY=1 -DHAVE_STRING_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DSTDC_HEADERS=1 \
-I$(EXTERNALS_DIR)/faad2/faad2/include -I$(EXTERNALS_DIR)/faad2/faad2/libfaad
FAAD2SOURCES_C += $(EXTERNALS_DIR)/faad2/faad2/libfaad/bits.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/cfft.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/common.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/decoder.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/drc.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/error.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/filtbank.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/huffman.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/is.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/mdct.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/mp4.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/ms.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/output.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/pns.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/pulse.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/specrec.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/syntax.c \
$(EXTERNALS_DIR)/faad2/faad2/libfaad/tns.c
# Externals - fmt
SOURCES_CXX += $(EXTERNALS_DIR)/fmt/src/format.cc
# Externals - glslang
SOURCES_CXX += $(EXTERNALS_DIR)/glslang/glslang/GenericCodeGen/CodeGen.cpp \
$(EXTERNALS_DIR)/glslang/glslang/GenericCodeGen/Link.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/attribute.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/Constant.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/glslang_tab.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/Initialize.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/InfoSink.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/Intermediate.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/intermOut.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/IntermTraverse.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/iomapper.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/limits.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/linkValidate.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/ParseContextBase.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/parseConst.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/ParseHelper.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/PoolAlloc.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/propagateNoContraction.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/reflection.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/RemoveTree.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/Scan.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/ShaderLang.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/SpirvIntrinsics.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/SymbolTable.cpp \
$(EXTERNALS_DIR)/glslang/glslang/MachineIndependent/Versions.cpp \
$(EXTERNALS_DIR)/glslang/OGLCompilersDLL/InitializeDll.cpp \
$(EXTERNALS_DIR)/glslang/SPIRV/GlslangToSpv.cpp \
$(EXTERNALS_DIR)/glslang/SPIRV/InReadableOrder.cpp \
$(EXTERNALS_DIR)/glslang/SPIRV/Logger.cpp \
$(EXTERNALS_DIR)/glslang/SPIRV/SpvBuilder.cpp \
$(EXTERNALS_DIR)/glslang/SPIRV/SpvPostProcess.cpp
ifeq ($(platform), win)
SOURCES_CXX += $(EXTERNALS_DIR)/glslang/glslang/OSDependent/Windows/ossource.cpp
else ifeq ($(platform), unix)
SOURCES_CXX += $(EXTERNALS_DIR)/glslang/glslang/OSDependent/Unix/ossource.cpp
endif
# Externals - libressl
LIBRESSLFLAGS += -I$(EXTERNALS_DIR)/libressl/include/compat \
-I$(EXTERNALS_DIR)/libressl/include \
-I$(EXTERNALS_DIR)/libressl/crypto \
-I$(EXTERNALS_DIR)/libressl/crypto/asn1 \
-I$(EXTERNALS_DIR)/libressl/crypto/bio \
-I$(EXTERNALS_DIR)/libressl/crypto/bn \
-I$(EXTERNALS_DIR)/libressl/crypto/bytestring \
-I$(EXTERNALS_DIR)/libressl/crypto/dh \
-I$(EXTERNALS_DIR)/libressl/crypto/dsa \
-I$(EXTERNALS_DIR)/libressl/crypto/curve25519 \
-I$(EXTERNALS_DIR)/libressl/crypto/ec \
-I$(EXTERNALS_DIR)/libressl/crypto/ecdh \
-I$(EXTERNALS_DIR)/libressl/crypto/ecdsa \
-I$(EXTERNALS_DIR)/libressl/crypto/evp \
-I$(EXTERNALS_DIR)/libressl/crypto/hidden \
-I$(EXTERNALS_DIR)/libressl/crypto/hmac \
-I$(EXTERNALS_DIR)/libressl/crypto/modes \
-I$(EXTERNALS_DIR)/libressl/crypto/ocsp \
-I$(EXTERNALS_DIR)/libressl/crypto/pkcs12 \
-I$(EXTERNALS_DIR)/libressl/crypto/rsa \
-I$(EXTERNALS_DIR)/libressl/crypto/sha \
-I$(EXTERNALS_DIR)/libressl/crypto/x509 \
-DLIBRESSL_INTERNAL -DOPENSSL_NO_HW_PADLOCK -D__BEGIN_HIDDEN_DECLS= -D__END_HIDDEN_DECLS= \
-DLIBRESSL_CRYPTO_INTERNAL -DHAVE_ENDIAN_H -DOPENSSL_NO_ASM
ifeq ($(ARCH), x86_64)
LIBRESSLFLAGS += -I$(EXTERNALS_DIR)/libressl/crypto/bn/arch/amd64
else ifeq ($(ARCH), aarch64)
LIBRESSLFLAGS += -I$(EXTERNALS_DIR)/libressl/crypto/bn/arch/aarch64
else
$(error Bad architecture used with libressl: $(ARCH))
endif
ifeq ($(platform), win)
LIBRESSLSOURCES_C += $(EXTERNALS_DIR)/libressl/crypto/compat/crypto_lock_win.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/getprogname_windows.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/posix_win.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/b_win.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_log.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_openssl_win.c
else ifeq ($(platform), unix)
LIBRESSLSOURCES_C += $(EXTERNALS_DIR)/libressl/crypto/crypto_lock.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/getprogname_unimpl.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/b_posix.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_log.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_openssl.c
endif
LIBRESSLSOURCES_C += $(EXTERNALS_DIR)/libressl/crypto/compat/freezero.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/recallocarray.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/strtonum.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/syslog_r.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/timingsafe_bcmp.c \
$(EXTERNALS_DIR)/libressl/crypto/compat/timingsafe_memcmp.c \
$(EXTERNALS_DIR)/libressl/crypto/cpt_err.c \
$(EXTERNALS_DIR)/libressl/crypto/cryptlib.c \
$(EXTERNALS_DIR)/libressl/crypto/crypto_init.c \
$(EXTERNALS_DIR)/libressl/crypto/cversion.c \
$(EXTERNALS_DIR)/libressl/crypto/ex_data.c \
$(EXTERNALS_DIR)/libressl/crypto/malloc-wrapper.c \
$(EXTERNALS_DIR)/libressl/crypto/mem_clr.c \
$(EXTERNALS_DIR)/libressl/crypto/mem_dbg.c \
$(EXTERNALS_DIR)/libressl/crypto/o_fips.c \
$(EXTERNALS_DIR)/libressl/crypto/o_init.c \
$(EXTERNALS_DIR)/libressl/crypto/o_str.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_cfb.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_ctr.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_ige.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_misc.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_ofb.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_wrap.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_bitstr.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_enum.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_int.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_mbstr.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_object.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_octet.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_print.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_pubkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_strex.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_string.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_strnid.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_time.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_time_posix.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_time_tm.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_type.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/a_utf8.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/ameth_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_err.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_gen.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_item.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_old.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_old_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_par.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn1_types.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn_mime.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/asn_moid.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/bio_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/bio_ndef.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/p5_pbe.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/p5_pbev2.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/p8_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_crl.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_req.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_spki.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_x509.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/t_x509a.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_dec.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_fre.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_new.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_typ.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/tasn_utl.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_algor.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_attrib.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_bignum.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_crl.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_exten.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_info.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_long.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_name.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_pubkey.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_req.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_sig.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_spki.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_val.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_x509.c \
$(EXTERNALS_DIR)/libressl/crypto/asn1/x_x509a.c \
$(EXTERNALS_DIR)/libressl/crypto/stack/stack.c \
$(EXTERNALS_DIR)/libressl/crypto/objects/obj_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/objects/obj_dat.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_akeya.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_genn.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_obj.c \
$(EXTERNALS_DIR)/libressl/crypto/bf/bf_cfb64.c \
$(EXTERNALS_DIR)/libressl/crypto/bf/bf_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/bf/bf_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/bf/bf_ofb64.c \
$(EXTERNALS_DIR)/libressl/crypto/bf/bf_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/b_dump.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/b_print.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/b_sock.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bf_buff.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bf_nbio.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bf_null.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bio_cb.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bio_err.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bio_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bio_meth.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_acpt.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_bio.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_conn.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_dgram.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_fd.c \
$(EXTERNALS_DIR)/libressl/crypto/err/err.c \
$(EXTERNALS_DIR)/libressl/crypto/lhash/lhash.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_file.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_null.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_sock.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_add.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_blind.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_bpsw.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_const.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_convert.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_ctx.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_div.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_err.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_exp.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_gcd.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_isqrt.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_kron.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_mod.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_mod_sqrt.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_mont.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_mul.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_prime.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_rand.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_recp.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_shift.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_small_primes.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_sqr.c \
$(EXTERNALS_DIR)/libressl/crypto/bn/bn_word.c \
$(EXTERNALS_DIR)/libressl/crypto/buffer/buf_err.c \
$(EXTERNALS_DIR)/libressl/crypto/buffer/buf_str.c \
$(EXTERNALS_DIR)/libressl/crypto/buffer/buffer.c \
$(EXTERNALS_DIR)/libressl/crypto/bio/bss_mem.c \
$(EXTERNALS_DIR)/libressl/crypto/bytestring/bs_ber.c \
$(EXTERNALS_DIR)/libressl/crypto/bytestring/bs_cbb.c \
$(EXTERNALS_DIR)/libressl/crypto/bytestring/bs_cbs.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_cfb.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_ctr.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_misc.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_ofb.c \
$(EXTERNALS_DIR)/libressl/crypto/cast/c_cfb64.c \
$(EXTERNALS_DIR)/libressl/crypto/cast/c_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/cast/c_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/cast/c_ofb64.c \
$(EXTERNALS_DIR)/libressl/crypto/cast/c_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/chacha/chacha.c \
$(EXTERNALS_DIR)/libressl/crypto/cmac/cm_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/cmac/cm_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/cmac/cmac.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_att.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_cd.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_dd.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_env.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_err.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_ess.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_io.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_kari.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_pwri.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_sd.c \
$(EXTERNALS_DIR)/libressl/crypto/cms/cms_smime.c \
$(EXTERNALS_DIR)/libressl/crypto/comp/c_rle.c \
$(EXTERNALS_DIR)/libressl/crypto/comp/c_zlib.c \
$(EXTERNALS_DIR)/libressl/crypto/comp/comp_err.c \
$(EXTERNALS_DIR)/libressl/crypto/comp/comp_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_api.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_def.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_err.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_mall.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_mod.c \
$(EXTERNALS_DIR)/libressl/crypto/conf/conf_sap.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_b64.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_log.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_oct.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_policy.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_sct.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_sct_ctx.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_vfy.c \
$(EXTERNALS_DIR)/libressl/crypto/ct/ct_x509v3.c \
$(EXTERNALS_DIR)/libressl/crypto/curve25519/curve25519-generic.c \
$(EXTERNALS_DIR)/libressl/crypto/curve25519/curve25519.c \
$(EXTERNALS_DIR)/libressl/crypto/des/cbc_cksm.c \
$(EXTERNALS_DIR)/libressl/crypto/des/cbc_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/cfb64ede.c \
$(EXTERNALS_DIR)/libressl/crypto/des/cfb64enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/cfb_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/des_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ecb3_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ecb_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ede_cbcm_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/enc_read.c \
$(EXTERNALS_DIR)/libressl/crypto/des/enc_writ.c \
$(EXTERNALS_DIR)/libressl/crypto/des/fcrypt.c \
$(EXTERNALS_DIR)/libressl/crypto/des/fcrypt_b.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ofb64ede.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ofb64enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/ofb_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/pcbc_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/des/qud_cksm.c \
$(EXTERNALS_DIR)/libressl/crypto/des/rand_key.c \
$(EXTERNALS_DIR)/libressl/crypto/des/set_key.c \
$(EXTERNALS_DIR)/libressl/crypto/des/str2key.c \
$(EXTERNALS_DIR)/libressl/crypto/des/xcbc_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_check.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_err.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_gen.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_key.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/dh/dh_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_err.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_gen.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_key.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_meth.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_ossl.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/dsa/dsa_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/dso/dso_dlfcn.c \
$(EXTERNALS_DIR)/libressl/crypto/dso/dso_err.c \
$(EXTERNALS_DIR)/libressl/crypto/dso/dso_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/dso/dso_null.c \
$(EXTERNALS_DIR)/libressl/crypto/dso/dso_openssl.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_check.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_curve.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_cvt.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_key.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_kmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_mult.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_oct.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ec_print.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/eck_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ecp_mont.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ecp_oct.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ecp_smpl.c \
$(EXTERNALS_DIR)/libressl/crypto/ec/ecx_methods.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdh/ecdh_kdf.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdh/ech_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdh/ech_key.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdh/ech_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdsa/ecs_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdsa/ecs_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdsa/ecs_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ecdsa/ecs_ossl.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_all.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_cnf.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_ctrl.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_dyn.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_err.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_fat.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_init.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_list.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_openssl.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/eng_table.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_asnmth.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_cipher.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_dh.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_digest.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_dsa.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_ecdh.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_ecdsa.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_eckey.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_pkmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_rand.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_rsa.c \
$(EXTERNALS_DIR)/libressl/crypto/engine/tb_store.c \
$(EXTERNALS_DIR)/libressl/crypto/err/err_all.c \
$(EXTERNALS_DIR)/libressl/crypto/err/err_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/bio_b64.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/bio_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/bio_md.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/c_all.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/cipher_method_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/digest.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_aes.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_aes_cbc_hmac_sha1.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_bf.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_camellia.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_cast.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_chacha.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_chacha20poly1305.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_des.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_des3.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_gost2814789.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_idea.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_null.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_rc2.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_rc4.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_rc4_hmac_md5.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_sm4.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/e_xcbc_d.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/encode.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_aead.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_err.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_key.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_pbe.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/evp_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_gost2814789.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_gostr341194.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_md4.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_md5.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_md5_sha1.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_null.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_ripemd.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_sha1.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_sha3.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_sigver.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_streebog.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_sm3.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/m_wp.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/names.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p5_crpt.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p5_crpt2.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_dec.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_open.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_seal.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_sign.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/p_verify.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/pmeth_fn.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/pmeth_gn.c \
$(EXTERNALS_DIR)/libressl/crypto/evp/pmeth_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost2814789.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost89_keywrap.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost89_params.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost89imit_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost89imit_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gost_err.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341001.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341001_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341001_key.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341001_params.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341001_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/gostr341194.c \
$(EXTERNALS_DIR)/libressl/crypto/gost/streebog.c \
$(EXTERNALS_DIR)/libressl/crypto/hkdf/hkdf.c \
$(EXTERNALS_DIR)/libressl/crypto/hmac/hm_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/hmac/hm_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/hmac/hmac.c \
$(EXTERNALS_DIR)/libressl/crypto/idea/i_cbc.c \
$(EXTERNALS_DIR)/libressl/crypto/idea/i_cfb64.c \
$(EXTERNALS_DIR)/libressl/crypto/idea/i_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/idea/i_ofb64.c \
$(EXTERNALS_DIR)/libressl/crypto/idea/i_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/kdf/hkdf_evp.c \
$(EXTERNALS_DIR)/libressl/crypto/kdf/kdf_err.c \
$(EXTERNALS_DIR)/libressl/crypto/lhash/lh_stats.c \
$(EXTERNALS_DIR)/libressl/crypto/md4/md4_dgst.c \
$(EXTERNALS_DIR)/libressl/crypto/md4/md4_one.c \
$(EXTERNALS_DIR)/libressl/crypto/md5/md5_dgst.c \
$(EXTERNALS_DIR)/libressl/crypto/md5/md5_one.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/cbc128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/ccm128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/cfb128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/ctr128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/gcm128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/ofb128.c \
$(EXTERNALS_DIR)/libressl/crypto/modes/xts128.c \
$(EXTERNALS_DIR)/libressl/crypto/objects/o_names.c \
$(EXTERNALS_DIR)/libressl/crypto/objects/obj_err.c \
$(EXTERNALS_DIR)/libressl/crypto/objects/obj_xref.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_asn.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_cl.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_ext.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_ht.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_srv.c \
$(EXTERNALS_DIR)/libressl/crypto/ocsp/ocsp_vfy.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_all.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_err.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_info.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_oth.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_pk8.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_pkey.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_sign.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_x509.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pem_xaux.c \
$(EXTERNALS_DIR)/libressl/crypto/pem/pvkfmt.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_add.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_asn.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_attr.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_crpt.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_crt.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_decr.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_init.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_key.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_kiss.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_mutl.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_npas.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_p8d.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_p8e.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_sbag.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/p12_utl.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs12/pk12err.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_attr.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_doit.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_mime.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pk7_smime.c \
$(EXTERNALS_DIR)/libressl/crypto/pkcs7/pkcs7err.c \
$(EXTERNALS_DIR)/libressl/crypto/poly1305/poly1305.c \
$(EXTERNALS_DIR)/libressl/crypto/rand/rand_err.c \
$(EXTERNALS_DIR)/libressl/crypto/rand/rand_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/rand/randfile.c \
$(EXTERNALS_DIR)/libressl/crypto/rc2/rc2_cbc.c \
$(EXTERNALS_DIR)/libressl/crypto/rc2/rc2_ecb.c \
$(EXTERNALS_DIR)/libressl/crypto/rc2/rc2_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/rc2/rc2cfb64.c \
$(EXTERNALS_DIR)/libressl/crypto/rc2/rc2ofb64.c \
$(EXTERNALS_DIR)/libressl/crypto/ripemd/rmd_dgst.c \
$(EXTERNALS_DIR)/libressl/crypto/ripemd/rmd_one.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_ameth.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_chk.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_crpt.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_eay.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_err.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_gen.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_meth.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_none.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_oaep.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_pk1.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_pmeth.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_pss.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_saos.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_sign.c \
$(EXTERNALS_DIR)/libressl/crypto/rsa/rsa_x931.c \
$(EXTERNALS_DIR)/libressl/crypto/sha/sha1.c \
$(EXTERNALS_DIR)/libressl/crypto/sha/sha256.c \
$(EXTERNALS_DIR)/libressl/crypto/sha/sha3.c \
$(EXTERNALS_DIR)/libressl/crypto/sha/sha512.c \
$(EXTERNALS_DIR)/libressl/crypto/sm3/sm3.c \
$(EXTERNALS_DIR)/libressl/crypto/sm4/sm4.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_asn1.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_conf.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_req_print.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_req_utils.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_rsp_print.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_rsp_sign.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_rsp_utils.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_rsp_verify.c \
$(EXTERNALS_DIR)/libressl/crypto/ts/ts_verify_ctx.c \
$(EXTERNALS_DIR)/libressl/crypto/txt_db/txt_db.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_err.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_null.c \
$(EXTERNALS_DIR)/libressl/crypto/ui/ui_util.c \
$(EXTERNALS_DIR)/libressl/crypto/whrlpool/wp_dgst.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/by_dir.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/by_file.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/by_mem.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_addr.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_akey.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_alt.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_asid.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_att.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_bcons.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_bitst.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_cmp.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_conf.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_constraints.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_cpols.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_crld.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_d2.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_def.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_err.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_ext.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_extku.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_ia5.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_info.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_int.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_issuer_cache.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_lib.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_lu.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_ncons.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_ocsp.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_pcons.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_pku.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_pmaps.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_policy.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_prn.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_purp.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_r2x.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_req.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_set.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_trs.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_txt.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_utl.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_v3.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_verify.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_vfy.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509_vpm.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509cset.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509name.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509rset.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509spki.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x509type.c \
$(EXTERNALS_DIR)/libressl/crypto/x509/x_all.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_cbc.c \
$(EXTERNALS_DIR)/libressl/crypto/aes/aes_core.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/camellia.c \
$(EXTERNALS_DIR)/libressl/crypto/camellia/cmll_cbc.c \
$(EXTERNALS_DIR)/libressl/crypto/rc4/rc4_enc.c \
$(EXTERNALS_DIR)/libressl/crypto/rc4/rc4_skey.c \
$(EXTERNALS_DIR)/libressl/crypto/whrlpool/wp_block.c \
$(EXTERNALS_DIR)/libressl/ssl/bio_ssl.c \
$(EXTERNALS_DIR)/libressl/ssl/d1_both.c \
$(EXTERNALS_DIR)/libressl/ssl/d1_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/d1_pkt.c \
$(EXTERNALS_DIR)/libressl/ssl/d1_srtp.c \
$(EXTERNALS_DIR)/libressl/ssl/pqueue.c \
$(EXTERNALS_DIR)/libressl/ssl/s3_cbc.c \
$(EXTERNALS_DIR)/libressl/ssl/s3_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_algs.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_asn1.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_both.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_cert.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_ciph.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_ciphers.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_clnt.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_err.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_init.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_kex.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_methods.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_packet.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_pkt.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_rsa.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_seclevel.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_sess.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_sigalgs.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_srvr.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_stat.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_tlsext.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_transcript.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_txt.c \
$(EXTERNALS_DIR)/libressl/ssl/ssl_versions.c \
$(EXTERNALS_DIR)/libressl/ssl/t1_enc.c \
$(EXTERNALS_DIR)/libressl/ssl/t1_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/tls_buffer.c \
$(EXTERNALS_DIR)/libressl/ssl/tls_content.c \
$(EXTERNALS_DIR)/libressl/ssl/tls_key_share.c \
$(EXTERNALS_DIR)/libressl/ssl/tls_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/tls12_key_schedule.c \
$(EXTERNALS_DIR)/libressl/ssl/tls12_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/tls12_record_layer.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_client.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_error.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_handshake.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_handshake_msg.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_key_schedule.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_legacy.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_lib.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_quic.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_record.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_record_layer.c \
$(EXTERNALS_DIR)/libressl/ssl/tls13_server.c
# Externals - lodepng
INCFLAGS += -I$(EXTERNALS_DIR)/lodepng/lodepng
SOURCES_CXX += $(EXTERNALS_DIR)/lodepng/lodepng/lodepng.cpp
# Externals - sirit
SOURCES_CXX += $(EXTERNALS_DIR)/sirit/src/instructions/function.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/annotation.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/arithmetic.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/bit.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/constant.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/conversion.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/debug.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/derivatives.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/flow.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/image.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/logical.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/memory.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/extension.cpp \
$(EXTERNALS_DIR)/sirit/src/instructions/type.cpp \
$(EXTERNALS_DIR)/sirit/src/sirit.cpp
# Externals - SoundTouch
SOURCES_CXX += $(EXTERNALS_DIR)/soundtouch/source/SoundTouch/AAFilter.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/BPMDetect.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/cpu_detect_x86.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/FIFOSampleBuffer.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/FIRFilter.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/InterpolateCubic.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/InterpolateLinear.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/InterpolateShannon.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/mmx_optimized.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/PeakFinder.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/RateTransposer.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/SoundTouch.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/sse_optimized.cpp \
$(EXTERNALS_DIR)/soundtouch/source/SoundTouch/TDStretch.cpp
# Externals - Teakra
SOURCES_CXX += $(EXTERNALS_DIR)/teakra/src/ahbm.cpp \
$(EXTERNALS_DIR)/teakra/src/apbp.cpp \
$(EXTERNALS_DIR)/teakra/src/btdmp.cpp \
$(EXTERNALS_DIR)/teakra/src/disassembler.cpp \
$(EXTERNALS_DIR)/teakra/src/dma.cpp \
$(EXTERNALS_DIR)/teakra/src/timer.cpp \
$(EXTERNALS_DIR)/teakra/src/memory_interface.cpp \
$(EXTERNALS_DIR)/teakra/src/mmio.cpp \
$(EXTERNALS_DIR)/teakra/src/parser.cpp \
$(EXTERNALS_DIR)/teakra/src/processor.cpp \
$(EXTERNALS_DIR)/teakra/src/teakra.cpp \
$(EXTERNALS_DIR)/teakra/src/test_generator.cpp
# Externals - Zstd
DEFINES += -DZSTD_DISABLE_ASM
SOURCES_C += $(EXTERNALS_DIR)/zstd/lib/common/debug.c \
$(EXTERNALS_DIR)/zstd/lib/common/entropy_common.c \
$(EXTERNALS_DIR)/zstd/lib/common/error_private.c \
$(EXTERNALS_DIR)/zstd/lib/common/fse_decompress.c \
$(EXTERNALS_DIR)/zstd/lib/common/pool.c \
$(EXTERNALS_DIR)/zstd/lib/common/threading.c \
$(EXTERNALS_DIR)/zstd/lib/common/xxhash.c \
$(EXTERNALS_DIR)/zstd/lib/common/zstd_common.c \
$(EXTERNALS_DIR)/zstd/lib/compress/fse_compress.c \
$(EXTERNALS_DIR)/zstd/lib/compress/hist.c \
$(EXTERNALS_DIR)/zstd/lib/compress/huf_compress.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_compress_literals.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_compress_sequences.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_compress_superblock.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_compress.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_double_fast.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_fast.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_lazy.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_ldm.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstd_opt.c \
$(EXTERNALS_DIR)/zstd/lib/compress/zstdmt_compress.c \
$(EXTERNALS_DIR)/zstd/lib/decompress/huf_decompress.c \
$(EXTERNALS_DIR)/zstd/lib/decompress/zstd_ddict.c \
$(EXTERNALS_DIR)/zstd/lib/decompress/zstd_decompress_block.c \
$(EXTERNALS_DIR)/zstd/lib/decompress/zstd_decompress.c
# Externals - libretro-common/rglgen
ifeq ($(HAVE_RGLGEN), 1)
SOURCES_C += $(EXTERNALS_DIR)/libretro-common/glsym/glsym_gl.c \
$(EXTERNALS_DIR)/libretro-common/glsym/rglgen.c
endif
ifeq ($(HAVE_LIBRETRO_VFS), 1)
LIBRETRO_COMMON := $(EXTERNALS_DIR)/libretro-common
DEFINES += -DHAVE_LIBRETRO_VFS
SOURCES_C += $(LIBRETRO_COMMON)/compat/compat_posix_string.c \
$(LIBRETRO_COMMON)/compat/fopen_utf8.c \
$(LIBRETRO_COMMON)/encodings/encoding_utf.c \
$(LIBRETRO_COMMON)/compat/compat_strl.c \
$(LIBRETRO_COMMON)/file/file_path.c \
$(LIBRETRO_COMMON)/streams/file_stream.c \
$(LIBRETRO_COMMON)/streams/file_stream_transforms.c \
$(LIBRETRO_COMMON)/string/stdstring.c \
$(LIBRETRO_COMMON)/time/rtime.c \
$(LIBRETRO_COMMON)/vfs/vfs_implementation.c
endif
# Common
SOURCES_CXX += $(SRC_DIR)/common/detached_tasks.cpp \
$(SRC_DIR)/common/dynamic_library/dynamic_library.cpp \
$(SRC_DIR)/common/cityhash.cpp \
$(SRC_DIR)/common/error.cpp \
$(SRC_DIR)/common/file_util.cpp \
$(SRC_DIR)/common/logging/backend.cpp \
$(SRC_DIR)/common/logging/filter.cpp \
$(SRC_DIR)/common/logging/text_formatter.cpp \
$(SRC_DIR)/common/memory_detect.cpp \
$(SRC_DIR)/common/microprofile.cpp \
$(SRC_DIR)/common/misc.cpp \
$(SRC_DIR)/common/param_package.cpp \
$(SRC_DIR)/common/scm_rev.cpp \
$(SRC_DIR)/common/settings.cpp \
$(SRC_DIR)/common/string_util.cpp \
$(SRC_DIR)/common/telemetry.cpp \
$(SRC_DIR)/common/texture.cpp \
$(SRC_DIR)/common/thread.cpp \
$(SRC_DIR)/common/timer.cpp \
$(SRC_DIR)/common/zstd_compression.cpp
ifeq ($(ARCH), x86_64)
SOURCES_CXX += $(SRC_DIR)/common/x64/cpu_detect.cpp
endif
# Core
SOURCES_CXX += $(SRC_DIR)/core/arm/dyncom/arm_dyncom.cpp \
$(SRC_DIR)/core/arm/dyncom/arm_dyncom_dec.cpp \
$(SRC_DIR)/core/arm/dyncom/arm_dyncom_interpreter.cpp \
$(SRC_DIR)/core/arm/dyncom/arm_dyncom_thumb.cpp \
$(SRC_DIR)/core/arm/dyncom/arm_dyncom_trans.cpp \
$(SRC_DIR)/core/arm/exclusive_monitor.cpp \
$(SRC_DIR)/core/arm/skyeye_common/armstate.cpp \
$(SRC_DIR)/core/arm/skyeye_common/armsupp.cpp \
$(SRC_DIR)/core/arm/skyeye_common/vfp/vfp.cpp \
$(SRC_DIR)/core/arm/skyeye_common/vfp/vfpdouble.cpp \
$(SRC_DIR)/core/arm/skyeye_common/vfp/vfpinstr.cpp \
$(SRC_DIR)/core/arm/skyeye_common/vfp/vfpsingle.cpp \
$(SRC_DIR)/core/cheats/cheat_base.cpp \
$(SRC_DIR)/core/cheats/cheats.cpp \
$(SRC_DIR)/core/cheats/gateway_cheat.cpp \
$(SRC_DIR)/core/core.cpp \
$(SRC_DIR)/core/core_timing.cpp \
$(SRC_DIR)/core/dumping/backend.cpp \
$(SRC_DIR)/core/file_sys/archive_backend.cpp \
$(SRC_DIR)/core/file_sys/archive_extsavedata.cpp \
$(SRC_DIR)/core/file_sys/archive_ncch.cpp \
$(SRC_DIR)/core/file_sys/archive_other_savedata.cpp \
$(SRC_DIR)/core/file_sys/archive_savedata.cpp \
$(SRC_DIR)/core/file_sys/archive_sdmc.cpp \
$(SRC_DIR)/core/file_sys/archive_sdmcwriteonly.cpp \
$(SRC_DIR)/core/file_sys/archive_selfncch.cpp \
$(SRC_DIR)/core/file_sys/archive_source_sd_savedata.cpp \
$(SRC_DIR)/core/file_sys/archive_systemsavedata.cpp \
$(SRC_DIR)/core/file_sys/cia_container.cpp \
$(SRC_DIR)/core/file_sys/disk_archive.cpp \
$(SRC_DIR)/core/file_sys/delay_generator.cpp \
$(SRC_DIR)/core/file_sys/ivfc_archive.cpp \
$(SRC_DIR)/core/file_sys/layered_fs.cpp \
$(SRC_DIR)/core/file_sys/ncch_container.cpp \
$(SRC_DIR)/core/file_sys/patch.cpp \
$(SRC_DIR)/core/file_sys/path_parser.cpp \
$(SRC_DIR)/core/file_sys/plugin_3gx.cpp \
$(SRC_DIR)/core/file_sys/romfs_reader.cpp \
$(SRC_DIR)/core/file_sys/savedata_archive.cpp \
$(SRC_DIR)/core/file_sys/seed_db.cpp \
$(SRC_DIR)/core/file_sys/ticket.cpp \
$(SRC_DIR)/core/file_sys/title_metadata.cpp \
$(SRC_DIR)/core/frontend/applets/default_applets.cpp \
$(SRC_DIR)/core/frontend/applets/mii_selector.cpp \
$(SRC_DIR)/core/frontend/applets/swkbd.cpp \
$(SRC_DIR)/core/frontend/camera/blank_camera.cpp \
$(SRC_DIR)/core/frontend/camera/factory.cpp \
$(SRC_DIR)/core/frontend/camera/interface.cpp \
$(SRC_DIR)/core/frontend/emu_window.cpp \
$(SRC_DIR)/core/frontend/framebuffer_layout.cpp \
$(SRC_DIR)/core/frontend/image_interface.cpp \
$(SRC_DIR)/core/gdbstub/gdbstub.cpp \
$(SRC_DIR)/core/gdbstub/hio.cpp \
$(SRC_DIR)/core/hle/applets/applet.cpp \
$(SRC_DIR)/core/hle/applets/erreula.cpp \
$(SRC_DIR)/core/hle/applets/mii_selector.cpp \
$(SRC_DIR)/core/hle/applets/mint.cpp \
$(SRC_DIR)/core/hle/applets/swkbd.cpp \
$(SRC_DIR)/core/hle/kernel/address_arbiter.cpp \
$(SRC_DIR)/core/hle/kernel/client_port.cpp \
$(SRC_DIR)/core/hle/kernel/client_session.cpp \
$(SRC_DIR)/core/hle/kernel/config_mem.cpp \
$(SRC_DIR)/core/hle/kernel/event.cpp \
$(SRC_DIR)/core/hle/kernel/handle_table.cpp \
$(SRC_DIR)/core/hle/kernel/hle_ipc.cpp \
$(SRC_DIR)/core/hle/kernel/ipc.cpp \
$(SRC_DIR)/core/hle/kernel/ipc_debugger/recorder.cpp \
$(SRC_DIR)/core/hle/kernel/kernel.cpp \
$(SRC_DIR)/core/hle/kernel/memory.cpp \
$(SRC_DIR)/core/hle/kernel/mutex.cpp \
$(SRC_DIR)/core/hle/kernel/object.cpp \
$(SRC_DIR)/core/hle/kernel/process.cpp \
$(SRC_DIR)/core/hle/kernel/resource_limit.cpp \
$(SRC_DIR)/core/hle/kernel/semaphore.cpp \
$(SRC_DIR)/core/hle/kernel/server_port.cpp \
$(SRC_DIR)/core/hle/kernel/server_session.cpp \
$(SRC_DIR)/core/hle/kernel/session.cpp \
$(SRC_DIR)/core/hle/kernel/shared_memory.cpp \
$(SRC_DIR)/core/hle/kernel/shared_page.cpp \
$(SRC_DIR)/core/hle/kernel/svc.cpp \
$(SRC_DIR)/core/hle/kernel/thread.cpp \
$(SRC_DIR)/core/hle/kernel/timer.cpp \
$(SRC_DIR)/core/hle/kernel/vm_manager.cpp \
$(SRC_DIR)/core/hle/kernel/wait_object.cpp \
$(SRC_DIR)/core/hle/mii.cpp \
$(SRC_DIR)/core/hle/romfs.cpp \
$(SRC_DIR)/core/hle/service/ac/ac.cpp \
$(SRC_DIR)/core/hle/service/ac/ac_i.cpp \
$(SRC_DIR)/core/hle/service/ac/ac_u.cpp \
$(SRC_DIR)/core/hle/service/act/act.cpp \
$(SRC_DIR)/core/hle/service/act/act_a.cpp \
$(SRC_DIR)/core/hle/service/act/act_u.cpp \
$(SRC_DIR)/core/hle/service/am/am.cpp \
$(SRC_DIR)/core/hle/service/am/am_app.cpp \
$(SRC_DIR)/core/hle/service/am/am_net.cpp \
$(SRC_DIR)/core/hle/service/am/am_sys.cpp \
$(SRC_DIR)/core/hle/service/am/am_u.cpp \
$(SRC_DIR)/core/hle/service/apt/applet_manager.cpp \
$(SRC_DIR)/core/hle/service/apt/apt.cpp \
$(SRC_DIR)/core/hle/service/apt/apt_a.cpp \
$(SRC_DIR)/core/hle/service/apt/apt_s.cpp \
$(SRC_DIR)/core/hle/service/apt/apt_u.cpp \
$(SRC_DIR)/core/hle/service/apt/ns.cpp \
$(SRC_DIR)/core/hle/service/apt/ns_c.cpp \
$(SRC_DIR)/core/hle/service/apt/ns_s.cpp \
$(SRC_DIR)/core/hle/service/apt/bcfnt/bcfnt.cpp \
$(SRC_DIR)/core/hle/service/boss/boss.cpp \
$(SRC_DIR)/core/hle/service/boss/boss_p.cpp \
$(SRC_DIR)/core/hle/service/boss/boss_u.cpp \
$(SRC_DIR)/core/hle/service/cam/cam.cpp \
$(SRC_DIR)/core/hle/service/cam/cam_c.cpp \
$(SRC_DIR)/core/hle/service/cam/cam_q.cpp \
$(SRC_DIR)/core/hle/service/cam/cam_s.cpp \
$(SRC_DIR)/core/hle/service/cam/cam_u.cpp \
$(SRC_DIR)/core/hle/service/cam/y2r_u.cpp \
$(SRC_DIR)/core/hle/service/cecd/cecd.cpp \
$(SRC_DIR)/core/hle/service/cecd/cecd_ndm.cpp \
$(SRC_DIR)/core/hle/service/cecd/cecd_s.cpp \
$(SRC_DIR)/core/hle/service/cecd/cecd_u.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg_defaults.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg_i.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg_nor.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg_s.cpp \
$(SRC_DIR)/core/hle/service/cfg/cfg_u.cpp \
$(SRC_DIR)/core/hle/service/csnd/csnd_snd.cpp \
$(SRC_DIR)/core/hle/service/dlp/dlp.cpp \
$(SRC_DIR)/core/hle/service/dlp/dlp_clnt.cpp \
$(SRC_DIR)/core/hle/service/dlp/dlp_fkcl.cpp \
$(SRC_DIR)/core/hle/service/dlp/dlp_srvr.cpp \
$(SRC_DIR)/core/hle/service/dsp/dsp_dsp.cpp \
$(SRC_DIR)/core/hle/service/err/err_f.cpp \
$(SRC_DIR)/core/hle/service/frd/frd.cpp \
$(SRC_DIR)/core/hle/service/frd/frd_a.cpp \
$(SRC_DIR)/core/hle/service/frd/frd_u.cpp \
$(SRC_DIR)/core/hle/service/fs/archive.cpp \
$(SRC_DIR)/core/hle/service/fs/directory.cpp \
$(SRC_DIR)/core/hle/service/fs/file.cpp \
$(SRC_DIR)/core/hle/service/fs/fs_user.cpp \
$(SRC_DIR)/core/hle/service/gsp/gsp.cpp \
$(SRC_DIR)/core/hle/service/gsp/gsp_gpu.cpp \
$(SRC_DIR)/core/hle/service/gsp/gsp_lcd.cpp \
$(SRC_DIR)/core/hle/service/hid/hid.cpp \
$(SRC_DIR)/core/hle/service/hid/hid_spvr.cpp \
$(SRC_DIR)/core/hle/service/hid/hid_user.cpp \
$(SRC_DIR)/core/hle/service/http/http_c.cpp \
$(SRC_DIR)/core/hle/service/ir/extra_hid.cpp \
$(SRC_DIR)/core/hle/service/ir/ir.cpp \
$(SRC_DIR)/core/hle/service/ir/ir_rst.cpp \
$(SRC_DIR)/core/hle/service/ir/ir_u.cpp \
$(SRC_DIR)/core/hle/service/ir/ir_user.cpp \
$(SRC_DIR)/core/hle/service/ldr_ro/cro_helper.cpp \
$(SRC_DIR)/core/hle/service/ldr_ro/ldr_ro.cpp \
$(SRC_DIR)/core/hle/service/mic/mic_u.cpp \
$(SRC_DIR)/core/hle/service/mvd/mvd.cpp \
$(SRC_DIR)/core/hle/service/mvd/mvd_std.cpp \
$(SRC_DIR)/core/hle/service/ndm/ndm_u.cpp \
$(SRC_DIR)/core/hle/service/news/news.cpp \
$(SRC_DIR)/core/hle/service/news/news_s.cpp \
$(SRC_DIR)/core/hle/service/news/news_u.cpp \
$(SRC_DIR)/core/hle/service/nfc/amiibo_crypto.cpp \
$(SRC_DIR)/core/hle/service/nfc/nfc.cpp \
$(SRC_DIR)/core/hle/service/nfc/nfc_device.cpp \
$(SRC_DIR)/core/hle/service/nfc/nfc_m.cpp \
$(SRC_DIR)/core/hle/service/nfc/nfc_u.cpp \
$(SRC_DIR)/core/hle/service/nim/nim.cpp \
$(SRC_DIR)/core/hle/service/nim/nim_aoc.cpp \
$(SRC_DIR)/core/hle/service/nim/nim_s.cpp \
$(SRC_DIR)/core/hle/service/nim/nim_u.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_cec.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_ext.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_inf.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_sap.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_soc.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_tst.cpp \
$(SRC_DIR)/core/hle/service/nwm/nwm_uds.cpp \
$(SRC_DIR)/core/hle/service/nwm/uds_beacon.cpp \
$(SRC_DIR)/core/hle/service/nwm/uds_connection.cpp \
$(SRC_DIR)/core/hle/service/nwm/uds_data.cpp \
$(SRC_DIR)/core/hle/service/plgldr/plgldr.cpp \
$(SRC_DIR)/core/hle/service/pm/pm.cpp \
$(SRC_DIR)/core/hle/service/pm/pm_app.cpp \
$(SRC_DIR)/core/hle/service/pm/pm_dbg.cpp \
$(SRC_DIR)/core/hle/service/ps/ps_ps.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm_gets.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm_play.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm_sets.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm_sysm.cpp \
$(SRC_DIR)/core/hle/service/ptm/ptm_u.cpp \
$(SRC_DIR)/core/hle/service/pxi/dev.cpp \
$(SRC_DIR)/core/hle/service/pxi/pxi.cpp \
$(SRC_DIR)/core/hle/service/qtm/qtm.cpp \
$(SRC_DIR)/core/hle/service/qtm/qtm_c.cpp \
$(SRC_DIR)/core/hle/service/qtm/qtm_s.cpp \
$(SRC_DIR)/core/hle/service/qtm/qtm_sp.cpp \
$(SRC_DIR)/core/hle/service/qtm/qtm_u.cpp \
$(SRC_DIR)/core/hle/service/service.cpp \
$(SRC_DIR)/core/hle/service/sm/sm.cpp \
$(SRC_DIR)/core/hle/service/sm/srv.cpp \
$(SRC_DIR)/core/hle/service/soc/soc_u.cpp \
$(SRC_DIR)/core/hle/service/ssl/ssl_c.cpp \
$(SRC_DIR)/core/hw/aes/arithmetic128.cpp \
$(SRC_DIR)/core/hw/aes/ccm.cpp \
$(SRC_DIR)/core/hw/aes/key.cpp \
$(SRC_DIR)/core/hw/gpu.cpp \
$(SRC_DIR)/core/hw/hw.cpp \
$(SRC_DIR)/core/hw/lcd.cpp \
$(SRC_DIR)/core/hw/rsa/rsa.cpp \
$(SRC_DIR)/core/hw/y2r.cpp \
$(SRC_DIR)/core/loader/3dsx.cpp \
$(SRC_DIR)/core/loader/elf.cpp \
$(SRC_DIR)/core/loader/loader.cpp \
$(SRC_DIR)/core/loader/ncch.cpp \
$(SRC_DIR)/core/loader/smdh.cpp \
$(SRC_DIR)/core/memory.cpp \
$(SRC_DIR)/core/movie.cpp \
$(SRC_DIR)/core/nus_download.cpp \
$(SRC_DIR)/core/perf_stats.cpp \
$(SRC_DIR)/core/savestate.cpp \
$(SRC_DIR)/core/system_titles.cpp \
$(SRC_DIR)/core/telemetry_session.cpp \
$(SRC_DIR)/core/tracer/recorder.cpp
ifeq ($(HAVE_DYNARMIC), 1)
SOURCES_CXX += $(SRC_DIR)/core/arm/dynarmic/arm_dynarmic.cpp \
$(SRC_DIR)/core/arm/dynarmic/arm_dynarmic_cp15.cpp \
$(SRC_DIR)/core/arm/dynarmic/arm_exclusive_monitor.cpp \
$(SRC_DIR)/core/arm/dynarmic/arm_tick_counts.cpp
endif
ifeq ($(HAVE_RPC), 1)
DEFINES += -DHAVE_RPC
SOURCES_CXX += $(SRC_DIR)/core/rpc/packet.cpp \
$(SRC_DIR)/core/rpc/rpc_server.cpp \
$(SRC_DIR)/core/rpc/server.cpp \
$(SRC_DIR)/core/rpc/udp_server.cpp
endif
# Video Core
SOURCES_CXX += $(SRC_DIR)/video_core/command_processor.cpp \
$(SRC_DIR)/video_core/custom_textures/custom_format.cpp \
$(SRC_DIR)/video_core/custom_textures/custom_tex_manager.cpp \
$(SRC_DIR)/video_core/custom_textures/material.cpp \
$(SRC_DIR)/video_core/debug_utils/debug_utils.cpp \
$(SRC_DIR)/video_core/geometry_pipeline.cpp \
$(SRC_DIR)/video_core/pica.cpp \
$(SRC_DIR)/video_core/primitive_assembly.cpp \
$(SRC_DIR)/video_core/rasterizer_accelerated.cpp \
$(SRC_DIR)/video_core/rasterizer_cache/pixel_format.cpp \
$(SRC_DIR)/video_core/rasterizer_cache/rasterizer_cache.cpp \
$(SRC_DIR)/video_core/rasterizer_cache/surface_base.cpp \
$(SRC_DIR)/video_core/rasterizer_cache/surface_params.cpp \
$(SRC_DIR)/video_core/rasterizer_cache/utils.cpp \
$(SRC_DIR)/video_core/regs.cpp \
$(SRC_DIR)/video_core/renderer_base.cpp \
$(SRC_DIR)/video_core/renderer_opengl/frame_dumper_opengl.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_blit_helper.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_driver.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_rasterizer.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_rasterizer_cache.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_resource_manager.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_shader_disk_cache.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_shader_manager.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_shader_util.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_state.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_stream_buffer.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_texture_mailbox.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_texture_runtime.cpp \
$(SRC_DIR)/video_core/renderer_opengl/gl_vars.cpp \
$(SRC_DIR)/video_core/renderer_opengl/post_processing_opengl.cpp \
$(SRC_DIR)/video_core/renderer_opengl/renderer_opengl.cpp \
$(SRC_DIR)/video_core/renderer_software/renderer_software.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_clipper.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_framebuffer.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_lighting.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_proctex.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_rasterizer.cpp \
$(SRC_DIR)/video_core/renderer_software/sw_texturing.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/renderer_vulkan.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_blit_helper.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_common.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_descriptor_pool.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_graphics_pipeline.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_instance.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_master_semaphore.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_memory_util.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_pipeline_cache.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_platform.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_present_window.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_rasterizer_cache.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_rasterizer.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_renderpass_cache.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_resource_pool.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_scheduler.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_shader_util.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_stream_buffer.cpp \
$(SRC_DIR)/video_core/renderer_vulkan/vk_texture_runtime.cpp \
$(SRC_DIR)/video_core/shader/generator/glsl_fs_shader_gen.cpp \
$(SRC_DIR)/video_core/shader/generator/glsl_shader_gen.cpp \
$(SRC_DIR)/video_core/shader/generator/glsl_shader_decompiler.cpp \
$(SRC_DIR)/video_core/shader/generator/pica_fs_config.cpp \
$(SRC_DIR)/video_core/shader/generator/shader_gen.cpp \
$(SRC_DIR)/video_core/shader/generator/shader_uniforms.cpp \
$(SRC_DIR)/video_core/shader/generator/spv_fs_shader_gen.cpp \
$(SRC_DIR)/video_core/shader/shader.cpp \
$(SRC_DIR)/video_core/shader/shader_interpreter.cpp \
$(SRC_DIR)/video_core/texture/etc1.cpp \
$(SRC_DIR)/video_core/texture/texture_decode.cpp \
$(SRC_DIR)/video_core/vertex_loader.cpp \
$(SRC_DIR)/video_core/video_core.cpp
ifeq ($(ARCH), x86_64)
INCFLAGS += -I$(EXTERNALS_DIR)/xbyak
SOURCES_CXX += $(SRC_DIR)/video_core/shader/shader_jit.cpp \
$(SRC_DIR)/video_core/shader/shader_jit_x64_compiler.cpp
endif
# Audio Core
SOURCES_CXX += $(SRC_DIR)/audio_core/codec.cpp \
$(SRC_DIR)/audio_core/dsp_interface.cpp \
$(SRC_DIR)/audio_core/hle/decoder.cpp \
$(SRC_DIR)/audio_core/hle/faad2_decoder.cpp \
$(SRC_DIR)/audio_core/hle/filter.cpp \
$(SRC_DIR)/audio_core/hle/hle.cpp \
$(SRC_DIR)/audio_core/hle/mixers.cpp \
$(SRC_DIR)/audio_core/hle/source.cpp \
$(SRC_DIR)/audio_core/lle/lle.cpp \
$(SRC_DIR)/audio_core/input_details.cpp \
$(SRC_DIR)/audio_core/interpolate.cpp \
$(SRC_DIR)/audio_core/sink_details.cpp \
$(SRC_DIR)/audio_core/static_input.cpp \
$(SRC_DIR)/audio_core/time_stretch.cpp \
$(SRC_DIR)/audio_core/libretro_sink.cpp
ifeq ($(HAVE_MF), 1)
DEFINES += -DHAVE_MF
SOURCES_CXX += $(SRC_DIR)/audio_core/hle/wmf_decoder.cpp \
$(SRC_DIR)/audio_core/hle/wmf_decoder_utils.cpp
endif
# Network
SOURCES_CXX += $(SRC_DIR)/network/network.cpp \
$(SRC_DIR)/network/packet.cpp \
$(SRC_DIR)/network/room.cpp \
$(SRC_DIR)/network/room_member.cpp \
$(SRC_DIR)/network/network_settings.cpp \
$(SRC_DIR)/network/verify_user.cpp
# Citra Libretro
SOURCES_CXX += $(SRC_DIR)/citra_libretro/emu_window/libretro_window.cpp \
$(SRC_DIR)/citra_libretro/input/input_factory.cpp \
$(SRC_DIR)/citra_libretro/input/mouse_tracker.cpp \
$(SRC_DIR)/citra_libretro/citra_libretro.cpp \
$(SRC_DIR)/citra_libretro/environment.cpp \
$(SRC_DIR)/citra_libretro/core_settings.cpp \
$(SRC_DIR)/citra_libretro/vulkan/vk_swapchain.cpp
SHADER_FILES += $(SRC_DIR)/video_core/host_shaders/format_reinterpreter/d24s8_to_rgba8.frag \
$(SRC_DIR)/video_core/host_shaders/format_reinterpreter/rgba4_to_rgb5a1.frag \
$(SRC_DIR)/video_core/host_shaders/format_reinterpreter/vulkan_d24s8_to_rgba8.comp \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/bicubic.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/refine.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/scale_force.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/xbrz_freescale.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/mmpx.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/x_gradient.frag \
$(SRC_DIR)/video_core/host_shaders/texture_filtering/y_gradient.frag \
$(SRC_DIR)/video_core/host_shaders/full_screen_triangle.vert \
$(SRC_DIR)/video_core/host_shaders/opengl_present.frag \
$(SRC_DIR)/video_core/host_shaders/opengl_present.vert \
$(SRC_DIR)/video_core/host_shaders/opengl_present_anaglyph.frag \
$(SRC_DIR)/video_core/host_shaders/opengl_present_interlaced.frag \
$(SRC_DIR)/video_core/host_shaders/vulkan_depth_to_buffer.comp \
$(SRC_DIR)/video_core/host_shaders/vulkan_present.frag \
$(SRC_DIR)/video_core/host_shaders/vulkan_present.vert \
$(SRC_DIR)/video_core/host_shaders/vulkan_present_anaglyph.frag \
$(SRC_DIR)/video_core/host_shaders/vulkan_present_interlaced.frag \
$(SRC_DIR)/video_core/host_shaders/vulkan_blit_depth_stencil.frag
# Shader cache version depends (see CMakeModules/GenerateSCMRev)
SHADER_CACHE_DEPENDS = ${SRC_DIR}/video_core/renderer_opengl/gl_shader_disk_cache.cpp \
${SRC_DIR}/video_core/renderer_opengl/gl_shader_disk_cache.h \
${SRC_DIR}/video_core/renderer_opengl/gl_shader_util.cpp \
${SRC_DIR}/video_core/renderer_opengl/gl_shader_util.h \
${SRC_DIR}/video_core/renderer_vulkan/vk_shader_util.cpp \
${SRC_DIR}/video_core/renderer_vulkan/vk_shader_util.h \
${SRC_DIR}/video_core/shader/generator/glsl_fs_shader_gen.cpp \
${SRC_DIR}/video_core/shader/generator/glsl_fs_shader_gen.h \
${SRC_DIR}/video_core/shader/generator/glsl_shader_decompiler.cpp \
${SRC_DIR}/video_core/shader/generator/glsl_shader_decompiler.h \
${SRC_DIR}/video_core/shader/generator/glsl_shader_gen.cpp \
${SRC_DIR}/video_core/shader/generator/glsl_shader_gen.h \
${SRC_DIR}/video_core/shader/generator/pica_fs_config.cpp \
${SRC_DIR}/video_core/shader/generator/pica_fs_config.h \
${SRC_DIR}/video_core/shader/generator/shader_gen.cpp \
${SRC_DIR}/video_core/shader/generator/shader_gen.h \
${SRC_DIR}/video_core/shader/generator/shader_uniforms.cpp \
${SRC_DIR}/video_core/shader/generator/shader_uniforms.h \
${SRC_DIR}/video_core/shader/generator/spv_fs_shader_gen.cpp \
${SRC_DIR}/video_core/shader/generator/spv_fs_shader_gen.h \
${SRC_DIR}/video_core/shader/shader.cpp \
${SRC_DIR}/video_core/shader/shader.h \
${SRC_DIR}/video_core/pica.cpp \
${SRC_DIR}/video_core/pica.h \
${SRC_DIR}/video_core/regs_framebuffer.h \
${SRC_DIR}/video_core/regs_lighting.h \
${SRC_DIR}/video_core/regs_pipeline.h \
${SRC_DIR}/video_core/regs_rasterizer.h \
${SRC_DIR}/video_core/regs_shader.h \
${SRC_DIR}/video_core/regs_texturing.h \
${SRC_DIR}/video_core/regs.cpp \
${SRC_DIR}/video_core/regs.h