1 LOCAL_PATH := $(call my-dir)
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
13 ARCH := $(TARGET_ARCH)
32 ifeq ($(TARGET_ARCH),arm)
50 ifeq ($(TARGET_ARCH_ABI),armeabi)
51 CYCLONE_CONFIG := cyclone_config_armv4.h
54 include $(COMMON_DIR)/common.mak
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
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 \
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
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)
104 COREFLAGS += -Dgetauxval=0*
108 GIT_REVISION := $(shell git rev-parse --short HEAD || echo unknown)
109 COREFLAGS += -DREVISION=\"$(GIT_REVISION)\"
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
116 $(filter %.S,$(SRCS_COMMON)): $(CORE_DIR)/pico/pico_int_offs.h
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
128 ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
129 LOCAL_ARM_NEON := true
132 include $(BUILD_SHARED_LIBRARY)