RetroArch/Makefile.vita

232 lines
5.9 KiB
Makefile
Raw Normal View History

2017-01-17 17:19:36 +00:00
TARGET := retroarch_vita
DEBUG ?= 0
2020-05-31 15:10:26 +00:00
HAVE_FILE_LOGGER = 1
2017-01-17 17:19:36 +00:00
GRIFFIN_BUILD = 0
WHOLE_ARCHIVE_LINK = 0
VITA_TITLE_ID := RETROARCH
VITA_TITLE_NAME := RetroArch
PC_DEVELOPMENT_IP_ADDRESS =
PC_DEVELOPMENT_UDP_PORT =
2017-01-17 17:19:36 +00:00
OBJ :=
SCE_LIBC_SIZE := 4194304
2021-05-29 18:22:37 +00:00
DEFINES := -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_ASSETS -DHAVE_STB_VORBIS
2019-07-25 12:31:01 +00:00
INCDIRS :=
2017-01-17 17:19:36 +00:00
ifeq ($(GRIFFIN_BUILD), 1)
OBJ += griffin/griffin.o
DEFINES += -DHAVE_GRIFFIN=1
2020-07-01 19:04:05 +00:00
DEFINES += -DHAVE_REWIND
2020-06-30 17:35:41 +00:00
DEFINES += -DHAVE_NEON -DHAVE_MENU -DHAVE_CONFIGFILE -DHAVE_PATCH -DHAVE_CHEATS -DHAVE_XMB -DHAVE_MATERIALUI -DHAVE_LIBRETRODB DEFINES -DHAVE_KEYMAPPER
2019-12-29 13:24:17 +00:00
DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DHAVE_CC_RESAMPLER
ifeq ($(DEBUG), 1)
DEFINES += -DHAVE_NETLOGGER
endif
INCDIRS += -I. -Ideps/7zip -Ilibretro-common/include -Ilibretro-common/include/compat/zlib -Ideps/stb
2017-01-17 17:19:36 +00:00
else
2020-07-01 19:04:05 +00:00
HAVE_REWIND := 1
2019-12-29 13:24:17 +00:00
HAVE_UPDATE_ASSETS := 1
HAVE_ONLINE_UPDATER := 1
2017-01-17 17:19:36 +00:00
HAVE_NEON := 1
HAVE_MATH_NEON := 1
2020-07-02 00:13:04 +00:00
HAVE_DSP_FILTER := 1
2020-07-02 04:28:14 +00:00
HAVE_VIDEO_FILTER := 1
2020-07-02 14:58:26 +00:00
HAVE_SCREENSHOTS := 1
2017-01-17 17:19:36 +00:00
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
2021-02-04 11:29:06 +00:00
HAVE_VITAGL := 0
endif
2017-01-17 17:19:36 +00:00
HAVE_NETWORKING := 1
HAVE_SOCKET_LEGACY := 1
HAVE_MENU := 1
HAVE_MENU_COMMON := 1
HAVE_GFX_WIDGETS := 1
HAVE_CONFIGFILE := 1
HAVE_PATCH := 1
2020-06-30 17:35:41 +00:00
HAVE_CHEATS := 1
HAVE_OVERLAY := 1
HAVE_VIDEO_LAYOUT := 0
2017-01-17 17:19:36 +00:00
HAVE_MATERIALUI := 1
HAVE_XMB := 1
HAVE_RGUI := 1
2017-01-17 17:19:36 +00:00
HAVE_STB_FONT := 1
HAVE_THREADS := 1
HAVE_LIBRETRODB := 1
HAVE_CC_RESAMPLER := 1
HAVE_CHEEVOS := 1
2019-07-13 00:11:07 +00:00
HAVE_RUNAHEAD := 1
2017-01-17 17:19:36 +00:00
RARCH_CONSOLE := 1
2017-12-07 04:54:54 +00:00
HAVE_STATIC_VIDEO_FILTERS = 1
HAVE_STATIC_AUDIO_FILTERS = 1
2020-03-15 10:26:29 +00:00
HAVE_AUDIOMIXER := 1
2020-06-30 15:36:03 +00:00
HAVE_RWAV := 1
2017-01-17 17:19:36 +00:00
ifeq ($(DEBUG), 1)
HAVE_NETLOGGER = 1
endif
2017-01-17 17:19:36 +00:00
include Makefile.common
CFLAGS += $(DEF_FLAGS)
2017-01-17 17:19:36 +00:00
BLACKLIST :=
OBJ := $(filter-out $(BLACKLIST),$(OBJ))
2019-07-25 12:31:01 +00:00
INCDIRS += $(INCLUDE_DIRS)
2017-01-17 17:19:36 +00:00
endif
ifeq ($(strip $(VITASDK)),)
$(error "Please set VITASDK in your environment. export VITASDK=<path to>vitasdk")
endif
export PATH := $(PATH):$(VITASDK)/bin
2017-01-17 17:19:36 +00:00
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
2020-11-15 09:23:58 +00:00
LD := $(CXX)
2017-01-17 17:19:36 +00:00
LIBDIRS := -L.
ARCHFLAGS := -march=armv7-a -mfpu=neon -mfloat-abi=hard -DVITA -DSCE_LIBC_SIZE=$(SCE_LIBC_SIZE)
2021-05-22 15:27:46 +00:00
CFLAGS += $(ARCHFLAGS) -mword-relocations -fno-optimize-sibling-calls
2017-01-17 17:19:36 +00:00
ifeq ($(DEBUG), 1)
2021-05-22 15:27:46 +00:00
CFLAGS += -g -Og
else
CFLAGS += -O2
2017-01-17 17:19:36 +00:00
endif
ASFLAGS := $(CFLAGS)
LDFLAGS := -Wl,-q
2017-01-17 17:19:36 +00:00
2021-05-22 15:27:46 +00:00
CFLAGS += -Wall -ffast-math
CFLAGS += -DRARCH_INTERNAL -DHAVE_SCREENSHOTS -DRARCH_CONSOLE
2020-07-02 00:13:04 +00:00
CFLAGS += -DHAVE_DSP_FILTER
2020-07-02 04:28:14 +00:00
CFLAGS += -DHAVE_VIDEO_FILTER
2017-01-17 17:19:36 +00:00
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)
2017-01-17 17:19:36 +00:00
endif
ifeq ($(WHOLE_ARCHIVE_LINK), 1)
WHOLE_START := -Wl,--whole-archive
WHOLE_END := -Wl,--no-whole-archive
endif
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions
2019-10-01 17:46:49 +00:00
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
2017-01-17 17:19:36 +00:00
LIBS := $(WHOLE_START) -lretro_vita $(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) libretro_vita.a liblibScePiglet_stub.a
2017-01-17 17:19:36 +00:00
$(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@
%.velf: %.elf
2019-10-04 13:21:37 +00:00
cp $< $<.unstripped.elf
$(PREFIX)strip -g $<
2017-01-17 17:19:36 +00:00
vita-elf-create $< $@
%.self: %.velf
vita-make-fself -c $(FSELF_FLAGS) $< $@
2017-01-17 17:19:36 +00:00
%.vpk: %.self
vita-mksfoex -s TITLE_ID=$(VITA_TITLE_ID) "$(VITA_TITLE_NAME)" -d ATTRIBUTE2=12 param.sfo
2017-01-17 17:19:36 +00:00
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
2017-01-17 17:19:36 +00:00
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
2020-05-31 15:10:26 +00:00
launch: $(TARGET).self
curl -T $< ftp://$(PSVITAIP):1337/ux0:/app/$(VITA_TITLE_ID)/eboot.bin
echo "launch $(VITA_TITLE_ID)" | nc ${PSVITAIP} 1338
2017-01-17 17:19:36 +00:00
.PHONY: clean all send vpksend
.PRECIOUS: %.depend
-include $(OBJ:.o=.depend)