mirror of
https://github.com/libretro/RetroArch
synced 2024-12-26 21:29:08 +00:00
265 lines
6.2 KiB
Makefile
265 lines
6.2 KiB
Makefile
TARGET := retroarch_vita
|
|
DEBUG ?= 0
|
|
HAVE_FILE_LOGGER = 1
|
|
GRIFFIN_BUILD = 0
|
|
WHOLE_ARCHIVE_LINK = 0
|
|
HAVE_STATIC_DUMMY ?= 0
|
|
|
|
VITA_TITLE_ID := RETROARCH
|
|
VITA_TITLE_NAME := RetroArch
|
|
|
|
PC_DEVELOPMENT_IP_ADDRESS =
|
|
PC_DEVELOPMENT_UDP_PORT =
|
|
|
|
OBJ :=
|
|
|
|
SCE_LIBC_SIZE := 4194304
|
|
DEFINES := -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_STB_VORBIS
|
|
INCDIRS :=
|
|
|
|
ifeq ($(GRIFFIN_BUILD), 1)
|
|
OBJ += griffin/griffin.o
|
|
DEFINES += -DHAVE_GRIFFIN=1 \
|
|
-DHAVE_REWIND \
|
|
-DHAVE_NEON \
|
|
-DHAVE_MENU \
|
|
-DHAVE_CONFIGFILE \
|
|
-DHAVE_PATCH \
|
|
-DHAVE_CHEATS \
|
|
-DHAVE_XMB \
|
|
-DHAVE_MATERIALUI \
|
|
-DHAVE_LIBRETRODB \
|
|
-DHAVE_KEYMAPPER \
|
|
-DHAVE_ZLIB \
|
|
-DHAVE_RPNG \
|
|
-DHAVE_RJPEG \
|
|
-DHAVE_RBMP \
|
|
-DHAVE_RTGA \
|
|
-DHAVE_CC_RESAMPLER \
|
|
-DHAVE_CORE_INFO_CACHE
|
|
ifeq ($(DEBUG), 1)
|
|
DEFINES += -DHAVE_NETLOGGER
|
|
endif
|
|
INCDIRS += -I. \
|
|
-Ideps/7zip \
|
|
-Ilibretro-common/include \
|
|
-Ilibretro-common/include/compat/zlib \
|
|
-Ideps/stb
|
|
else
|
|
HAVE_REWIND := 1
|
|
HAVE_UPDATE_ASSETS := 1
|
|
HAVE_ONLINE_UPDATER := 1
|
|
HAVE_NEON := 1
|
|
HAVE_DSP_FILTER := 1
|
|
HAVE_VIDEO_FILTER := 1
|
|
HAVE_SCREENSHOTS := 1
|
|
HAVE_FILTERS_BUILTIN := 1
|
|
HAVE_LANGEXTRA := 1
|
|
HAVE_RPNG := 1
|
|
HAVE_RJPEG := 1
|
|
HAVE_RBMP := 1
|
|
HAVE_RTGA := 1
|
|
HAVE_ZLIB := 1
|
|
HAVE_7ZIP := 1
|
|
ifeq ($(HAVE_VITAGLES), 1)
|
|
HAVE_VITA2D := 0
|
|
HAVE_VITAGL := 0
|
|
HAVE_VITAGLES := 1
|
|
HAVE_OPENGL := 1
|
|
HAVE_OPENGLES := 1
|
|
HAVE_OPENGLES2 := 1
|
|
HAVE_EGL := 1
|
|
HAVE_GLSL := 1
|
|
HAVE_SHADERPIPELINE := 1
|
|
else
|
|
HAVE_VITA2D := 1
|
|
HAVE_VITAGL := 0
|
|
endif
|
|
HAVE_NETWORKING := 1
|
|
HAVE_IFINFO := 1
|
|
HAVE_NETPLAYDISCOVERY := 1
|
|
HAVE_SOCKET_LEGACY := 1
|
|
HAVE_MENU := 1
|
|
HAVE_MENU_COMMON := 1
|
|
HAVE_GFX_WIDGETS := 1
|
|
HAVE_CONFIGFILE := 1
|
|
HAVE_PATCH := 1
|
|
HAVE_CHEATS := 1
|
|
HAVE_OVERLAY := 1
|
|
HAVE_VIDEO_LAYOUT := 0
|
|
HAVE_MATERIALUI := 1
|
|
HAVE_XMB := 1
|
|
HAVE_RGUI := 1
|
|
HAVE_STB_FONT := 1
|
|
HAVE_THREADS := 1
|
|
HAVE_LIBRETRODB := 1
|
|
HAVE_CC_RESAMPLER := 1
|
|
HAVE_CHEEVOS := 1
|
|
HAVE_RUNAHEAD := 1
|
|
RARCH_CONSOLE := 1
|
|
HAVE_STATIC_VIDEO_FILTERS = 1
|
|
HAVE_STATIC_AUDIO_FILTERS = 1
|
|
HAVE_AUDIOMIXER := 1
|
|
HAVE_RWAV := 1
|
|
HAVE_CORE_INFO_CACHE := 1
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
HAVE_NETLOGGER = 1
|
|
endif
|
|
|
|
include Makefile.common
|
|
CFLAGS += $(DEF_FLAGS)
|
|
BLACKLIST :=
|
|
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
|
|
INCDIRS += $(INCLUDE_DIRS)
|
|
endif
|
|
|
|
ifeq ($(strip $(VITASDK)),)
|
|
$(error "Please set VITASDK in your environment. export VITASDK=<path to>vitasdk")
|
|
endif
|
|
|
|
export PATH := $(PATH):$(VITASDK)/bin
|
|
|
|
PREFIX := arm-vita-eabi-
|
|
|
|
CC := $(PREFIX)gcc
|
|
CXX := $(PREFIX)g++
|
|
AS := $(PREFIX)as
|
|
AR := $(PREFIX)ar
|
|
OBJCOPY := $(PREFIX)objcopy
|
|
STRIP := $(PREFIX)strip
|
|
NM := $(PREFIX)nm
|
|
LD := $(CXX)
|
|
|
|
LIBDIRS := -L.
|
|
|
|
ARCHFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=hard -DVITA
|
|
ifeq ($(HAVE_VITAGLES), 1)
|
|
ARCHFLAGS += -DSCE_LIBC_SIZE=$(SCE_LIBC_SIZE)
|
|
endif
|
|
|
|
CFLAGS += $(ARCHFLAGS) -mword-relocations -fno-optimize-sibling-calls
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
CFLAGS += -g -Og
|
|
else
|
|
CFLAGS += -O2
|
|
endif
|
|
|
|
ASFLAGS := $(CFLAGS)
|
|
LDFLAGS := -Wl,-q
|
|
|
|
CFLAGS += -Wall -ffast-math
|
|
CFLAGS += -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DRARCH_CONSOLE
|
|
CFLAGS += -DHAVE_DSP_FILTER
|
|
CFLAGS += -DHAVE_VIDEO_FILTER
|
|
CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES)
|
|
|
|
ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),)
|
|
CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"'
|
|
endif
|
|
|
|
ifneq ($(PC_DEVELOPMENT_UDP_PORT),)
|
|
CFLAGS += -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT)
|
|
endif
|
|
|
|
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
|
|
WHOLE_START := -Wl,--whole-archive
|
|
WHOLE_END := -Wl,--no-whole-archive
|
|
endif
|
|
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
|
|
|
|
VITA_LIBS := -lSceDisplay_stub -lSceGxm_stub -lSceNet_stub -lSceNetCtl_stub -lSceAppUtil_stub \
|
|
-lSceSysmodule_stub -lSceCtrl_stub -lSceHid_stub -lSceTouch_stub -lSceAudio_stub \
|
|
-lScePower_stub -lSceRtc_stub -lSceCommonDialog_stub -lScePgf_stub -lSceMotion_stub \
|
|
-lSceFiber_stub -lSceMotion_stub -lSceAppMgr_stub -lpthread -lpng -lz -lSceShaccCg_stub
|
|
|
|
ifeq ($(HAVE_VITAGLES), 1)
|
|
VITA_LIBS += -llibScePiglet_stub -ltaihen_stub
|
|
FSELF_FLAGS := -ss
|
|
else
|
|
VITA_LIBS += -lvitaGL -lvitashark
|
|
FSELF_FLAGS := -s
|
|
endif
|
|
|
|
LIBS := $(WHOLE_START)
|
|
|
|
ifeq ($(HAVE_STATIC_DUMMY),1)
|
|
DEFINES += -DHAVE_STATIC_DUMMY
|
|
else
|
|
LIBS += -lretro_vita
|
|
endif
|
|
|
|
LIBS += $(WHOLE_END) $(VITA_LIBS) -lm -lc
|
|
|
|
TARGETS := $(TARGET).vpk
|
|
|
|
DEPFLAGS = -MT $@ -MMD -MP -MF $*.Tdepend
|
|
POSTCOMPILE = mv -f $*.Tdepend $*.depend
|
|
|
|
all: $(TARGETS)
|
|
|
|
%.o: %.cpp
|
|
%.o: %.cpp %.depend
|
|
$(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) $(DEPFLAGS)
|
|
$(POSTCOMPILE)
|
|
|
|
%.o: %.c
|
|
%.o: %.c %.depend
|
|
$(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) $(DEPFLAGS)
|
|
$(POSTCOMPILE)
|
|
|
|
%.o: %.S
|
|
%.o: %.S %.depend
|
|
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
|
|
$(POSTCOMPILE)
|
|
|
|
%.o: %.s
|
|
%.o: %.s %.depend
|
|
$(CC) -c -o $@ $< $(ASFLAGS) $(INCDIRS) $(DEPFLAGS)
|
|
$(POSTCOMPILE)
|
|
|
|
%.depend: ;
|
|
|
|
liblibScePiglet_stub.a:
|
|
mkdir -p deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
|
|
vita-libs-gen deps/Pigs-In-A-Blanket/piglet_stub/nids.yml deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
|
|
make -C deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet ARCH=arm-vita-eabi
|
|
cp deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet/liblibScePiglet_stub.a .
|
|
|
|
$(TARGET).elf: $(OBJ) liblibScePiglet_stub.a
|
|
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
|
|
|
|
%.velf: %.elf
|
|
cp $< $<.unstripped.elf
|
|
$(PREFIX)strip -g $<
|
|
vita-elf-create $< $@
|
|
|
|
%.self: %.velf
|
|
vita-make-fself -c $(FSELF_FLAGS) $< $@
|
|
|
|
%.vpk: %.self
|
|
vita-mksfoex -s TITLE_ID=$(VITA_TITLE_ID) "$(VITA_TITLE_NAME)" -d ATTRIBUTE2=12 param.sfo
|
|
vita-pack-vpk -s param.sfo -b $< $@
|
|
|
|
clean:
|
|
rm -f $(OBJ) $(TARGET).elf $(TARGET).elf.unstripped.elf $(TARGET).velf $(TARGET).self param.sfo $(TARGET).vpk
|
|
rm -rf deps/Pigs-In-A-Blanket/piglet_stub/libScePiglet
|
|
rm -f $(OBJ:.o=.depend)
|
|
|
|
# Useful for developers
|
|
vpksend: $(TARGET).vpk
|
|
curl -T $< ftp://$(PSVITAIP):1337/ux0:/
|
|
|
|
send: $(TARGET).self
|
|
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
|
|
|
|
launch: $(TARGET).self
|
|
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
|
|
echo "launch $(VITA_TITLE_ID)" | nc ${PSVITAIP} 1338
|
|
|
|
.PHONY: clean all send vpksend
|
|
.PRECIOUS: %.depend
|
|
|
|
-include $(OBJ:.o=.depend)
|