| 1 | LOCAL_PATH := $(call my-dir) |
| 2 | |
| 3 | CORE_DIR := $(LOCAL_PATH)/.. |
| 4 | COMMON_DIR := $(CORE_DIR)/platform/common |
| 5 | LIBRETRO_DIR := $(CORE_DIR)/platform/libretro |
| 6 | LIBRETRO_COMM_DIR := $(LIBRETRO_DIR)/libretro-common |
| 7 | UNZIP_DIR := $(CORE_DIR)/unzip |
| 8 | R := $(CORE_DIR)/ |
| 9 | FR := $(R) |
| 10 | |
| 11 | SRCS_COMMON := |
| 12 | DEFINES := |
| 13 | ARCH := $(TARGET_ARCH) |
| 14 | |
| 15 | use_cyclone := 0 |
| 16 | use_fame := 1 |
| 17 | use_musashi := 0 |
| 18 | use_drz80 := 0 |
| 19 | use_cz80 := 1 |
| 20 | use_sh2drc := 0 |
| 21 | use_svpdrc := 0 |
| 22 | |
| 23 | asm_memory := 0 |
| 24 | asm_render := 0 |
| 25 | asm_ym2612 := 0 |
| 26 | asm_misc := 0 |
| 27 | asm_cdmemory := 0 |
| 28 | asm_mix := 0 |
| 29 | asm_32xdraw := 0 |
| 30 | asm_32xmemory := 0 |
| 31 | |
| 32 | ifeq ($(TARGET_ARCH),arm) |
| 33 | # use_cyclone := 1 |
| 34 | # use_fame := 0 |
| 35 | # use_drz80 := 1 |
| 36 | # use_cz80 := 0 |
| 37 | use_sh2drc := 1 |
| 38 | # use_svpdrc := 1 |
| 39 | |
| 40 | # asm_memory := 1 |
| 41 | # asm_render := 1 |
| 42 | # asm_ym2612 := 1 |
| 43 | # asm_misc := 1 |
| 44 | # asm_cdmemory := 1 |
| 45 | # asm_mix := 1 |
| 46 | # asm_32xdraw := 1 |
| 47 | # asm_32xmemory := 1 |
| 48 | endif |
| 49 | |
| 50 | ifeq ($(TARGET_ARCH_ABI),armeabi) |
| 51 | CYCLONE_CONFIG := cyclone_config_armv4.h |
| 52 | endif |
| 53 | |
| 54 | include $(COMMON_DIR)/common.mak |
| 55 | |
| 56 | LCHDR = $(CORE_DIR)/pico/cd/libchdr |
| 57 | LCHDR_LZMA = $(LCHDR)/deps/lzma-24.05 |
| 58 | LCHDR_ZSTD = $(LCHDR)/deps/zstd-1.5.6/lib |
| 59 | |
| 60 | SOURCES_C := $(LIBRETRO_DIR)/libretro.c \ |
| 61 | $(LIBRETRO_COMM_DIR)/formats/png/rpng.c \ |
| 62 | $(LIBRETRO_COMM_DIR)/streams/trans_stream.c \ |
| 63 | $(LIBRETRO_COMM_DIR)/streams/trans_stream_pipe.c \ |
| 64 | $(LIBRETRO_COMM_DIR)/streams/trans_stream_zlib.c \ |
| 65 | $(LIBRETRO_COMM_DIR)/file/file_path_io.c \ |
| 66 | $(LIBRETRO_COMM_DIR)/file/file_path.c \ |
| 67 | $(LIBRETRO_COMM_DIR)/vfs/vfs_implementation.c \ |
| 68 | $(LIBRETRO_COMM_DIR)/time/rtime.c \ |
| 69 | $(LIBRETRO_COMM_DIR)/string/stdstring.c \ |
| 70 | $(LIBRETRO_COMM_DIR)/encodings/encoding_utf.c \ |
| 71 | $(LIBRETRO_COMM_DIR)/compat/compat_strcasestr.c \ |
| 72 | $(LIBRETRO_COMM_DIR)/compat/compat_strl.c \ |
| 73 | $(COMMON_DIR)/mp3.c \ |
| 74 | $(COMMON_DIR)/mp3_sync.c \ |
| 75 | $(COMMON_DIR)/mp3_dummy.c \ |
| 76 | $(UNZIP_DIR)/unzip.c \ |
| 77 | $(LCHDR)/src/libchdr_bitstream.c \ |
| 78 | $(LCHDR)/src/libchdr_cdrom.c \ |
| 79 | $(LCHDR)/src/libchdr_chd.c \ |
| 80 | $(LCHDR)/src/libchdr_flac.c \ |
| 81 | $(LCHDR)/src/libchdr_huffman.c \ |
| 82 | $(LCHDR_LZMA)/src/Alloc.c \ |
| 83 | $(LCHDR_LZMA)/src/CpuArch.c \ |
| 84 | $(LCHDR_LZMA)/src/Delta.c \ |
| 85 | $(LCHDR_LZMA)/src/LzFind.c \ |
| 86 | $(LCHDR_LZMA)/src/LzmaDec.c \ |
| 87 | $(LCHDR_LZMA)/src/LzmaEnc.c \ |
| 88 | $(LCHDR_LZMA)/src/Sort.c \ |
| 89 | $(LCHDR_ZSTD)/common/entropy_common.c \ |
| 90 | $(LCHDR_ZSTD)/common/error_private.c \ |
| 91 | $(LCHDR_ZSTD)/common/fse_decompress.c \ |
| 92 | $(LCHDR_ZSTD)/common/xxhash.c \ |
| 93 | $(LCHDR_ZSTD)/common/zstd_common.c \ |
| 94 | $(LCHDR_ZSTD)/decompress/huf_decompress.c \ |
| 95 | $(LCHDR_ZSTD)/decompress/zstd_ddict.c \ |
| 96 | $(LCHDR_ZSTD)/decompress/zstd_decompress_block.c \ |
| 97 | $(LCHDR_ZSTD)/decompress/zstd_decompress.c |
| 98 | |
| 99 | COREFLAGS := $(addprefix -D,$(DEFINES)) -fno-strict-aliasing -DUSE_LIBCHDR=1 -DZ7_ST -DZSTD_DISABLE_ASM |
| 100 | COREFLAGS += -I$(LCHDR)/include -I$(LCHDR_LZMA)/include -I$(LCHDR_ZSTD) |
| 101 | ifeq (,$(call gte,$(APP_PLATFORM_LEVEL),18)) |
| 102 | ifneq ($(TARGET_ARCH_ABI),arm64-v8a) |
| 103 | # HACK |
| 104 | COREFLAGS += -Dgetauxval=0* |
| 105 | endif |
| 106 | endif |
| 107 | |
| 108 | GIT_REVISION := $(shell git rev-parse --short HEAD || echo unknown) |
| 109 | COREFLAGS += -DREVISION=\"$(GIT_REVISION)\" |
| 110 | |
| 111 | ifneq ($(filter armeabi%, $(TARGET_ARCH_ABI)),) |
| 112 | $(CORE_DIR)/pico/pico_int_offs.h: |
| 113 | cp $(CORE_DIR)/tools/offsets/generic-ilp32-offsets.h $@ |
| 114 | .PHONY: $(CORE_DIR)/pico/pico_int_offs.h |
| 115 | |
| 116 | $(filter %.S,$(SRCS_COMMON)): $(CORE_DIR)/pico/pico_int_offs.h |
| 117 | endif |
| 118 | |
| 119 | include $(CLEAR_VARS) |
| 120 | LOCAL_MODULE := retro |
| 121 | LOCAL_SRC_FILES := $(SRCS_COMMON) $(SOURCES_C) |
| 122 | LOCAL_CFLAGS := $(COREFLAGS) |
| 123 | LOCAL_C_INCLUDES := $(CORE_DIR) $(LIBRETRO_COMM_DIR)/include |
| 124 | LOCAL_LDFLAGS := -Wl,-version-script=$(LIBRETRO_DIR)/link.T |
| 125 | LOCAL_LDLIBS := -llog -lz |
| 126 | LOCAL_ARM_MODE := arm |
| 127 | |
| 128 | ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) |
| 129 | LOCAL_ARM_NEON := true |
| 130 | endif |
| 131 | |
| 132 | include $(BUILD_SHARED_LIBRARY) |