mirror of
https://github.com/libretro/RetroArch.git
synced 2024-12-17 22:29:27 +00:00
51d238875e
ever implemented for OpenGL2 driver, lots of code debt, best to instead just keep improving the overlay system instead which is already available for most video drivers
223 lines
5.3 KiB
Makefile
223 lines
5.3 KiB
Makefile
#########################
|
|
## Toolchain variables ##
|
|
#########################
|
|
|
|
# Default toolchain directory
|
|
TOOLCHAIN_DIR=/opt/gcw0-toolchain
|
|
|
|
# All toolchain-related variables may be
|
|
# overridden via the command line
|
|
ifdef GCW0_CC
|
|
CC = $(GCW0_CC)
|
|
else
|
|
CC = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-gcc
|
|
endif
|
|
|
|
ifdef GCW0_CXX
|
|
CXX = $(GCW0_CXX)
|
|
else
|
|
CXX = $(TOOLCHAIN_DIR)/usr/bin/mipsel-gcw0-linux-uclibc-g++
|
|
endif
|
|
|
|
GCW0_SDL_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/sdl-config
|
|
GCW0_FREETYPE_CONFIG ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/bin/freetype-config
|
|
GCW0_MK_SQUASH_FS ?= $(TOOLCHAIN_DIR)/usr/bin/mksquashfs
|
|
|
|
GCW0_INC_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/include
|
|
GCW0_LIB_DIR ?= $(TOOLCHAIN_DIR)/usr/mipsel-gcw0-linux-uclibc/sysroot/usr/lib
|
|
|
|
#########################
|
|
#########################
|
|
|
|
PACKAGE_NAME = retroarch
|
|
|
|
DEBUG ?= 0
|
|
|
|
DINGUX = 1
|
|
HAVE_SCREENSHOTS = 1
|
|
HAVE_REWIND = 1
|
|
HAVE_7ZIP = 1
|
|
HAVE_AL = 1
|
|
# this freezes when switching back from menu
|
|
HAVE_ALSA = 0
|
|
HAVE_DSP_FILTER = 1
|
|
HAVE_VIDEO_FILTER = 1
|
|
HAVE_BUILTINMBEDTLS = 1
|
|
HAVE_BUILTINZLIB = 1
|
|
HAVE_C99 = 1
|
|
HAVE_CC = 1
|
|
HAVE_CC_RESAMPLER = 1
|
|
HAVE_CHD = 1
|
|
HAVE_CHEEVOS = 1
|
|
HAVE_COMMAND = 0
|
|
HAVE_CXX = 1
|
|
HAVE_DR_MP3 = 1
|
|
HAVE_DYNAMIC = 1
|
|
HAVE_EGL = 1
|
|
HAVE_FREETYPE = 1
|
|
HAVE_GDI = 1
|
|
HAVE_GETADDRINFO = 1
|
|
HAVE_GETOPT_LONG = 1
|
|
HAVE_GLSL = 1
|
|
HAVE_HID = 1
|
|
HAVE_IBXM = 1
|
|
HAVE_IMAGEVIEWER = 1
|
|
HAVE_LANGEXTRA = 1
|
|
HAVE_LIBRETRODB = 1
|
|
HAVE_MENU = 1
|
|
HAVE_MENU_COMMON = 1
|
|
HAVE_GFX_WIDGETS = 1
|
|
HAVE_MMAP = 1
|
|
HAVE_NETWORKING = 1
|
|
HAVE_IFINFO = 1
|
|
HAVE_OPENDINGUX_FBDEV = 1
|
|
HAVE_OPENGL = 1
|
|
HAVE_OPENGL1 = 0
|
|
HAVE_OPENGLES = 1
|
|
HAVE_OPENGLES3 = 0
|
|
HAVE_OPENGL_CORE = 0
|
|
HAVE_OPENSSL = 1
|
|
HAVE_OVERLAY = 1
|
|
HAVE_RBMP = 1
|
|
HAVE_RJPEG = 1
|
|
HAVE_RPILED = 1
|
|
HAVE_RPNG = 1
|
|
HAVE_RUNAHEAD = 1
|
|
HAVE_SDL_DINGUX = 1
|
|
HAVE_SHADERPIPELINE = 1
|
|
HAVE_STB_FONT = 1
|
|
HAVE_STB_IMAGE = 1
|
|
HAVE_STB_VORBIS = 1
|
|
HAVE_STDIN_CMD = 0
|
|
HAVE_STRCASESTR = 1
|
|
HAVE_THREADS = 1
|
|
HAVE_TRANSLATE = 1
|
|
HAVE_UDEV = 1
|
|
HAVE_XMB = 1
|
|
HAVE_ZLIB = 1
|
|
HAVE_CONFIGFILE = 1
|
|
HAVE_PATCH = 1
|
|
HAVE_CHEATS = 1
|
|
HAVE_LIBSHAKE = 1
|
|
HAVE_CORE_INFO_CACHE = 1
|
|
|
|
OS = Linux
|
|
TARGET = retroarch
|
|
OPK_NAME = retroarch.opk
|
|
|
|
OBJ :=
|
|
LINK := $(CXX)
|
|
DEF_FLAGS := -march=mips32 -mtune=mips32r2 -mhard-float -ffast-math -fomit-frame-pointer
|
|
DEF_FLAGS += -mplt -mno-shared
|
|
DEF_FLAGS += -ffunction-sections -fdata-sections
|
|
DEF_FLAGS += -I. -Ideps -Ideps/stb -DDINGUX=1 -MMD
|
|
DEF_FLAGS += -Wall -Wno-unused-variable
|
|
DEF_FLAGS += -std=gnu99 -D_GNU_SOURCE
|
|
LIBS := -ldl -lz -lrt -lcrypto -lssl -ludev -pthread
|
|
CFLAGS :=
|
|
CXXFLAGS := -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
|
|
ASFLAGS :=
|
|
LDFLAGS := -flto -Wl,--gc-sections
|
|
INCLUDE_DIRS = -I$(GCW0_INC_DIR)
|
|
LIBRARY_DIRS = -L$(GCW0_LIB_DIR)
|
|
DEFINES := -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -UHAVE_STATIC_DUMMY
|
|
DEFINES += -DHAVE_C99=1 -DHAVE_CXX=1 -DHAVE_OPENDINGUX_FBDEV=1
|
|
DEFINES += -DHAVE_GETOPT_LONG=1 -DHAVE_STRCASESTR=1 -DHAVE_DYNAMIC=1
|
|
DEFINES += -DHAVE_AL=1
|
|
DEFINES += -DHAVE_ONLINE_UPDATER=1
|
|
DEFINES += -DHAVE_UPDATE_ASSETS=1
|
|
DEFINES += -DHAVE_UDEV=1
|
|
|
|
SDL_DINGUX_CFLAGS := $(shell $(GCW0_SDL_CONFIG) --cflags)
|
|
SDL_DINGUX_LIBS := $(shell $(GCW0_SDL_CONFIG) --libs)
|
|
FREETYPE_CFLAGS := $(shell $(GCW0_FREETYPE_CONFIG) --cflags)
|
|
FREETYPE_LIBS := $(shell $(GCW0_FREETYPE_CONFIG) --libs)
|
|
AL_LIBS := -lopenal
|
|
OPENGLES_CFLAGS := -DMESA_EGL_NO_X11_HEADERS
|
|
OPENGLES_LIBS := -lGLESv2 -lEGL
|
|
MMAP_LIBS = -lc
|
|
|
|
OBJDIR_BASE := obj-unix
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
OBJDIR := $(OBJDIR_BASE)/debug
|
|
DEF_FLAGS += -O0 -g -DDEBUG -D_DEBUG
|
|
else
|
|
OBJDIR := $(OBJDIR_BASE)/release
|
|
DEF_FLAGS += -O2 -DNDEBUG
|
|
endif
|
|
|
|
include Makefile.common
|
|
|
|
DEF_FLAGS += $(INCLUDE_DIRS)
|
|
CFLAGS += $(DEF_FLAGS)
|
|
CXXFLAGS += $(DEF_FLAGS)
|
|
|
|
HEADERS = $(wildcard */*/*.h) $(wildcard */*.h) $(wildcard *.h)
|
|
|
|
Q := @
|
|
|
|
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
|
|
|
|
define DESKTOP_ENTRY
|
|
[Desktop Entry]
|
|
Name=RetroArch
|
|
Comment=Frontend for emulators, game engines
|
|
Exec=retroarch
|
|
Terminal=false
|
|
Type=Application
|
|
StartupNotify=true
|
|
Icon=retroarch
|
|
Categories=emulators;
|
|
X-OD-NeedsDownscaling=true
|
|
endef
|
|
export DESKTOP_ENTRY
|
|
|
|
all: $(TARGET) opk
|
|
|
|
-include $(RARCH_OBJ:.o=.d)
|
|
|
|
SYMBOL_MAP := -Wl,-Map=output.map
|
|
|
|
$(TARGET): $(RARCH_OBJ)
|
|
@$(if $(Q), $(shell echo echo LD $@),)
|
|
$(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo CC $<),)
|
|
$(Q)$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c -o $@ $<
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo CXX $<),)
|
|
$(Q)$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(DEFINES) -MMD -c -o $@ $<
|
|
|
|
$(OBJDIR)/%.o: %.m
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo OBJC $<),)
|
|
$(Q)$(CXX) $(OBJCFLAGS) $(DEFINES) -MMD -c -o $@ $<
|
|
|
|
$(OBJDIR)/%.o: %.S $(HEADERS)
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo AS $<),)
|
|
$(Q)$(CC) $(CFLAGS) $(ASFLAGS) $(DEFINES) -c -o $@ $<
|
|
|
|
clean:
|
|
rm -rf $(OBJDIR_BASE)
|
|
rm -f $(TARGET)
|
|
rm -f *.d
|
|
rm -rf $(OPK_NAME)
|
|
|
|
opk: $(TARGET)
|
|
echo "$$DESKTOP_ENTRY" > default.gcw0.desktop
|
|
rm -f $(OPK_NAME)
|
|
cp media/ico_src/icon32.png retroarch.png
|
|
$(GCW0_MK_SQUASH_FS) retroarch default.gcw0.desktop retroarch.png $(OPK_NAME) -all-root -no-xattrs -noappend -no-exports
|
|
rm -f default.gcw0.desktop retroarch.png
|
|
|
|
.PHONY: all clean opk
|
|
|
|
print-%:
|
|
@echo '$*=$($*)'
|