libretro-chailove/Makefile.common
2025-02-06 20:37:27 -05:00

146 lines
5.6 KiB
Makefile

# ChaiLove
SOURCES_CXX := $(wildcard \
$(CORE_DIR)/src/*.cpp \
$(CORE_DIR)/src/love/*.cpp \
$(CORE_DIR)/src/love/Types/Audio/*.cpp \
$(CORE_DIR)/src/love/Types/Config/*.cpp \
$(CORE_DIR)/src/love/Types/FileSystem/*.cpp \
$(CORE_DIR)/src/love/Types/Graphics/*.cpp \
$(CORE_DIR)/src/love/Types/Input/*.cpp \
)
SOURCES_S =
FLAGS += -Wfatal-errors
# pntr
FLAGS += -I$(CORE_DIR)/vendor/pntr
FLAGS += -I$(CORE_DIR)/vendor/pntr_app/include
FLAGS += \
-DPNTR_ENABLE_VARGS \
-D__LIBRETRO__
# pntr_physfs
FLAGS += -I$(CORE_DIR)/vendor/pntr_physfs
# libretro-common
FLAGS += -I$(CORE_DIR)/vendor/libretro-common/include \
-DHAVE_RWAV=1
# Only compile libretro-common when not STATIC_LINKING
ifneq ($(STATIC_LINKING), 1)
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/audio_mix.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/float_to_s16.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/float_to_s16_neon.c
#SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/mono_to_stereo_float.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/s16_to_float.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/s16_to_float_neon.c
#SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/conversion/stereo_to_mono_float.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/resampler/audio_resampler.c
#SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/nearest_resampler.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/compat/compat_posix_string.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/compat/compat_strcasestr.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/compat/compat_strl.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/file/config_file.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/file/config_file_userdata.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/file/file_path.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/file/file_path_io.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/features/features_cpu.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/encodings/encoding_utf.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/formats/wav/rwav.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/lists/string_list.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/memmap/memalign.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/streams/file_stream.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/rthreads/rthreads.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/string/stdstring.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/time/rtime.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/vfs/vfs_implementation.c
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/compat/fopen_utf8.c
# Ensure the sinc_resampler_neon is available for ARM NEON devices.
SOURCES_S += $(CORE_DIR)/vendor/libretro-common/audio/resampler/drivers/sinc_resampler_neon.S
# MD5
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/utils/md5.c
endif
ifeq ($(platform), ctr)
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/audio/audio_mix.c \
$(CORE_DIR)/vendor/libretro-common/audio/audio_mixer.c
endif
ifeq ($(platform), emscripten)
SOURCES_C += $(CORE_DIR)/vendor/libretro-common/rthreads/rthreads.c
endif
# stb_vorbis
#SOURCES_C += $(CORE_DIR)/vendor/stb/stb_vorbis.c
FLAGS += -DHAVE_STB_VORBIS
FLAGS += -I$(CORE_DIR)/vendor/libretro-deps
# zlib
SOURCES_C += \
$(CORE_DIR)/vendor/libretro-deps/libz/adler32.c \
$(CORE_DIR)/vendor/libretro-deps/libz/compress.c \
$(CORE_DIR)/vendor/libretro-deps/libz/crc32.c \
$(CORE_DIR)/vendor/libretro-deps/libz/deflate.c \
$(CORE_DIR)/vendor/libretro-deps/libz/gzclose.c \
$(CORE_DIR)/vendor/libretro-deps/libz/gzlib.c \
$(CORE_DIR)/vendor/libretro-deps/libz/gzread.c \
$(CORE_DIR)/vendor/libretro-deps/libz/gzwrite.c \
$(CORE_DIR)/vendor/libretro-deps/libz/infback.c \
$(CORE_DIR)/vendor/libretro-deps/libz/inffast.c \
$(CORE_DIR)/vendor/libretro-deps/libz/inflate.c \
$(CORE_DIR)/vendor/libretro-deps/libz/inftrees.c \
$(CORE_DIR)/vendor/libretro-deps/libz/trees.c \
$(CORE_DIR)/vendor/libretro-deps/libz/zutil.c
FLAGS += -I$(CORE_DIR)/vendor/libretro-deps/libz
FLAGS += -I$(CORE_DIR)/vendor/libretro-common/compat
FLAGS += -DWANT_ZLIB
# PhysFS
PHYSFS_DIR = $(CORE_DIR)/vendor/physfs-libretro
FLAGS += -I$(PHYSFS_DIR)/src
FLAGS += -DPHYSFS_NO_CDROM_SUPPORT=1 \
-DPHYSFS_SUPPORTS_DEFAULT=0 \
-DPHYSFS_SUPPORTS_ZIP=1 \
-DPHYSFS_PLATFORM_LIBRETRO \
-DPHYSFS_PLATFORM_LIBRETRO_NO_THREADS=1
SOURCES_C += $(wildcard \
$(PHYSFS_DIR)/src/*.c \
)
ifeq ($(platform), osx)
# LDFLAGS += -mmacosx-version-min=10.2
LDFLAGS += -framework IOKit -framework Foundation
# FLAGS += -DMAC_OS_X_VERSION_MIN_REQUIRED=1020
# FLAGS += -D__MACH__ -D__APPLE__ -DPHYSFS_PLATFORM_APPLE
FLAGS += -D__MACH__ -D__APPLE__
endif
# TinySHA1
FLAGS += -I$(CORE_DIR)/vendor/TinySHA1
# cppcodec
FLAGS += -I$(CORE_DIR)/vendor/cppcodec
# ChaiScript
ifeq ($(HAVE_CHAISCRIPT),)
FLAGS += -I$(CORE_DIR)/vendor/chaiscript/include
FLAGS += -I$(CORE_DIR)/vendor/ChaiScript_Extras/include
FLAGS += -D__HAVE_CHAISCRIPT__
FLAGS += -DCHAISCRIPT_NO_THREADS -DCHAISCRIPT_NO_THREADS_WARNING -DCHAISCRIPT_NO_DYNLOAD
FLAGS += -DCHAISCRIPT_EXTRAS_MATH_SKIP_ADVANCED
endif
OBJECTS += $(SOURCES_CXX:.cpp=.o) $(SOURCES_C:.c=.o) $(SOURCES_S:.S=.o) $(SOURCES_M:.m=.o)
LDFLAGS += $(fpic) $(SHARED) $(EXTRA_LDF)
WARNINGS :=
# Windows: Fix retro_common_api.h
ifeq ($(system_platform), win)
FLAGS += -DPRId64=I64d -DPRIu64=I64u -DPRIuPTR=Iu
endif