|
| 1 | +######################### |
| 2 | +## Toolchain variables ## |
| 3 | +######################### |
| 4 | + |
| 5 | +# Default toolchain directory |
| 6 | +TOOLCHAIN_DIR=/opt/miyoomini-toolchain |
| 7 | + |
| 8 | +# All toolchain-related variables may be |
| 9 | +# overridden via the command line |
| 10 | + |
| 11 | +CC = $(TOOLCHAIN_DIR)/bin/arm-linux-gnueabihf-gcc |
| 12 | +CXX = $(TOOLCHAIN_DIR)/bin/arm-linux-gnueabihf-g++ |
| 13 | +STRIP = $(TOOLCHAIN_DIR)/bin/arm-linux-gnueabihf-strip |
| 14 | + |
| 15 | +SDL_CONFIG ?= $(TOOLCHAIN_DIR)/arm-linux-gnueabihf/libc/usr/bin/sdl-config |
| 16 | +FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/arm-linux-gnueabihf/libc/usr/bin/freetype-config |
| 17 | + |
| 18 | +INC_DIR ?= $(TOOLCHAIN_DIR)/arm-linux-gnueabihf/libc/usr/include |
| 19 | +LIB_DIR ?= $(TOOLCHAIN_DIR)/arm-linux-gnueabihf/libc/usr/lib |
| 20 | + |
| 21 | +LTO = -flto |
| 22 | +STRIP_BIN = 1 |
| 23 | + |
| 24 | +######################### |
| 25 | +######################### |
| 26 | + |
| 27 | +ifeq ($(PACKAGE_NAME),) |
| 28 | +PACKAGE_NAME = retroarch.miniv4 |
| 29 | +endif |
| 30 | + |
| 31 | +DEBUG ?= 0 |
| 32 | + |
| 33 | +MIYOOMINI = 1 |
| 34 | +MMIYOOV4 = 1 |
| 35 | +DINGUX = 1 |
| 36 | +HAVE_SCREENSHOTS = 1 |
| 37 | +HAVE_REWIND = 0 |
| 38 | +HAVE_7ZIP = 1 |
| 39 | +HAVE_AL = 0 |
| 40 | +HAVE_ALSA = 0 |
| 41 | +HAVE_DSP_FILTER = 1 |
| 42 | +HAVE_VIDEO_FILTER = 1 |
| 43 | +HAVE_STATIC_VIDEO_FILTERS = 1 |
| 44 | +HAVE_STATIC_AUDIO_FILTERS = 1 |
| 45 | +HAVE_FILTERS_BUILTIN = 1 |
| 46 | +HAVE_BUILTINMBEDTLS = 0 |
| 47 | +HAVE_BUILTINZLIB = 1 |
| 48 | +HAVE_C99 = 1 |
| 49 | +HAVE_CC = 1 |
| 50 | +HAVE_CC_RESAMPLER = 1 |
| 51 | +HAVE_CHD = 1 |
| 52 | +HAVE_COMMAND = 1 |
| 53 | +HAVE_CXX = 1 |
| 54 | +HAVE_DR_MP3 = 1 |
| 55 | +HAVE_DYNAMIC = 1 |
| 56 | +HAVE_DYLIB = 1 |
| 57 | +HAVE_EGL = 0 |
| 58 | +HAVE_FREETYPE = 0 |
| 59 | +HAVE_GDI = 1 |
| 60 | +HAVE_GETOPT_LONG = 1 |
| 61 | +HAVE_GLSL = 0 |
| 62 | +HAVE_HID = 0 |
| 63 | +HAVE_IBXM = 1 |
| 64 | +HAVE_IMAGEVIEWER = 0 |
| 65 | +HAVE_LANGEXTRA = 1 |
| 66 | +HAVE_LIBRETRODB = 1 |
| 67 | +HAVE_MENU = 1 |
| 68 | +HAVE_MENU_COMMON = 1 |
| 69 | +HAVE_GFX_WIDGETS = 1 |
| 70 | +HAVE_MMAP = 1 |
| 71 | +HAVE_OPENDINGUX_FBDEV = 0 |
| 72 | +HAVE_OPENGL = 0 |
| 73 | +HAVE_OPENGL1 = 0 |
| 74 | +HAVE_OPENGLES = 0 |
| 75 | +HAVE_OPENGLES3 = 0 |
| 76 | +HAVE_OPENGL_CORE = 0 |
| 77 | +HAVE_OPENSSL = 1 |
| 78 | +HAVE_OVERLAY = 1 |
| 79 | +HAVE_RBMP = 1 |
| 80 | +HAVE_RJPEG = 1 |
| 81 | +HAVE_RPILED = 0 |
| 82 | +HAVE_RPNG = 1 |
| 83 | +HAVE_RUNAHEAD = 0 |
| 84 | +HAVE_SDL_DINGUX = 1 |
| 85 | +HAVE_SHADERPIPELINE = 0 |
| 86 | +HAVE_STB_FONT = 0 |
| 87 | +HAVE_STB_IMAGE = 0 |
| 88 | +HAVE_STB_VORBIS = 0 |
| 89 | +HAVE_STDIN_CMD = 0 |
| 90 | +HAVE_STRCASESTR = 1 |
| 91 | +HAVE_THREADS = 1 |
| 92 | +HAVE_UDEV = 0 |
| 93 | +HAVE_RGUI = 1 |
| 94 | +HAVE_MATERIALUI = 0 |
| 95 | +HAVE_XMB = 0 |
| 96 | +HAVE_OZONE = 0 |
| 97 | +HAVE_ZLIB = 1 |
| 98 | +HAVE_CONFIGFILE = 1 |
| 99 | +HAVE_PATCH = 1 |
| 100 | +HAVE_CHEATS = 1 |
| 101 | +HAVE_LIBSHAKE = 0 |
| 102 | +HAVE_CORE_INFO_CACHE = 1 |
| 103 | +HAVE_NEAREST_RESAMPLER = 1 |
| 104 | +HAVE_NEON = 1 |
| 105 | +HAVE_OSS = 1 |
| 106 | +HAVE_AUDIOIO = 1 |
| 107 | +HAVE_TRANSLATE = 0 |
| 108 | +HAVE_VIDEO_LAYOUT = 1 |
| 109 | + |
| 110 | +ADD_NETWORKING = 0 |
| 111 | + |
| 112 | +ifeq ($(ADD_NETWORKING),1) |
| 113 | +#Required for network features |
| 114 | +HAVE_NETWORKING = 1 |
| 115 | +HAVE_GETADDRINFO = 1 |
| 116 | +HAVE_IFINFO = 1 |
| 117 | +HAVE_NETPLAYDISCOVERY = 1 |
| 118 | +HAVE_CHEEVOS = 1 |
| 119 | +HAVE_ONLINE_UPDATER = 1 |
| 120 | +HAVE_UPDATE_ASSETS = 1 |
| 121 | +HAVE_UPDATE_CORES = 1 |
| 122 | +HAVE_UPDATE_CORE_INFO = 1 |
| 123 | +HAVE_SSL = 1 |
| 124 | +HAVE_SYSTEMMBEDTLS = 1 |
| 125 | +SYSTEMMBEDTLS_LIBS = -lmbedtls -lmbedx509 -lmbedcrypto |
| 126 | +endif |
| 127 | + |
| 128 | + |
| 129 | +OS = Linux |
| 130 | +TARGET = $(PACKAGE_NAME) |
| 131 | + |
| 132 | +OBJ := miyoo.o |
| 133 | +LINK := $(CXX) |
| 134 | +DEF_FLAGS := -marm -mtune=cortex-a7 -march=armv7ve+simd -mfpu=neon-vfpv4 -mfloat-abi=hard -ffast-math -fomit-frame-pointer |
| 135 | +DEF_FLAGS += -ffunction-sections -fdata-sections |
| 136 | +DEF_FLAGS += -I. -Ideps -Ideps/stb -DMIYOOMINI -DMMIYOOV4 -DDINGUX -MMD |
| 137 | +DEF_FLAGS += -Wall -Wno-unused-function -Wno-unused-variable $(LTO) |
| 138 | +DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE |
| 139 | +LIBS := -ldl -lz -lrt -pthread -lmi_sys -lmi_ao -lmi_gfx -lcam_os_wrapper -lmsettings -lmi_common |
| 140 | +CFLAGS := |
| 141 | +CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS |
| 142 | +ASFLAGS := |
| 143 | +LDFLAGS := -Wl,--gc-sections -s |
| 144 | +INCLUDE_DIRS = -I$(INC_DIR) |
| 145 | +LIBRARY_DIRS = -L$(LIB_DIR) |
| 146 | +DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY |
| 147 | +DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1 |
| 148 | +DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1 -DHAVE_OSS -DHAVE_AUDIOIO |
| 149 | +DEFINES += -DHAVE_FILTERS_BUILTIN -DHAVE_ARM_NEON_ASM_OPTIMIZATIONS |
| 150 | + |
| 151 | +SDL_DINGUX_CFLAGS := $(shell $(SDL_CONFIG) --cflags) |
| 152 | +SDL_DINGUX_LIBS := $(shell $(SDL_CONFIG) --libs) |
| 153 | +FREETYPE_CFLAGS := $(shell $(FREETYPE_CONFIG) --cflags) |
| 154 | +FREETYPE_LIBS := $(shell $(FREETYPE_CONFIG) --libs) |
| 155 | +MMAP_LIBS = -lc |
| 156 | + |
| 157 | +OBJDIR_BASE := obj-unix |
| 158 | + |
| 159 | +ifeq ($(DEBUG), 1) |
| 160 | + OBJDIR := $(OBJDIR_BASE)/debug |
| 161 | + DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG |
| 162 | +else |
| 163 | + OBJDIR := $(OBJDIR_BASE)/release |
| 164 | + DEF_FLAGS += -Ofast -DNDEBUG |
| 165 | +endif |
| 166 | + |
| 167 | +include Makefile.common |
| 168 | + |
| 169 | +DEF_FLAGS += $(INCLUDE_DIRS) |
| 170 | +LDFLAGS += $(CFLAGS) $(CXXFLAGS) $(DEF_FLAGS) |
| 171 | +CFLAGS += $(DEF_FLAGS) |
| 172 | +CXXFLAGS += $(DEF_FLAGS) |
| 173 | + |
| 174 | +HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h) |
| 175 | + |
| 176 | +Q := @ |
| 177 | + |
| 178 | +RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ)) |
| 179 | + |
| 180 | +all: $(TARGET) |
| 181 | + |
| 182 | +-include $(RARCH_OBJ:.o=.d) |
| 183 | + |
| 184 | +SYMBOL_MAP := -Wl,-Map=output.map |
| 185 | + |
| 186 | +$(TARGET): $(RARCH_OBJ) |
| 187 | + @$(if $(Q), $(shell echo echo LD $@),) |
| 188 | + $(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS) |
| 189 | + |
| 190 | +ifeq ($(STRIP_BIN),1) |
| 191 | + $(STRIP) --strip-unneeded $(TARGET) |
| 192 | +endif |
| 193 | + |
| 194 | +$(OBJDIR)/%.o: %.c |
| 195 | + @mkdir -p $(dir $@) |
| 196 | + @$(if $(Q), $(shell echo echo CC $<),) |
| 197 | + $(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $< |
| 198 | + |
| 199 | +$(OBJDIR)/%.o: %.cpp |
| 200 | + @mkdir -p $(dir $@) |
| 201 | + @$(if $(Q), $(shell echo echo CXX $<),) |
| 202 | + $(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $< |
| 203 | + |
| 204 | +$(OBJDIR)/%.o: %.m |
| 205 | + @mkdir -p $(dir $@) |
| 206 | + @$(if $(Q), $(shell echo echo OBJC $<),) |
| 207 | + $(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $< |
| 208 | + |
| 209 | +$(OBJDIR)/%.o: %.S $(HEADERS) |
| 210 | + @mkdir -p $(dir $@) |
| 211 | + @$(if $(Q), $(shell echo echo AS $<),) |
| 212 | + $(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $< |
| 213 | + |
| 214 | +clean: |
| 215 | + rm -rf $(OBJDIR_BASE) |
| 216 | + rm -f $(TARGET) |
| 217 | + rm -f retroarch.miniv4 |
| 218 | + rm -f *.d |
| 219 | + |
| 220 | +.PHONY: all clean |
| 221 | + |
| 222 | +print-%: |
| 223 | + @echo '$*=$($*)' |
0 commit comments