1# SCUMMVM-PSP MakeFile 2 3 4#Use only this section to modify how the makefile behaves ------------ 5 6# Scummvm engine config: choose which engines are enabled 7ENABLE_SCUMM = $(ENABLED) 8ENABLE_SCUMM_7_8 = $(ENABLED) 9ENABLE_HE = $(ENABLED) 10ENABLE_AGI = $(ENABLED) 11ENABLE_AGOS = $(ENABLED) 12ENABLE_AGOS2 = $(ENABLED) 13ENABLE_CINE = $(ENABLED) 14ENABLE_CRUISE = $(ENABLED) 15ENABLE_DRACI = $(ENABLED) 16ENABLE_DRASCULA = $(ENABLED) 17ENABLE_GOB = $(ENABLED) 18ENABLE_GROOVIE = $(ENABLED) 19ENABLE_GROOVIE2 = $(ENABLED) 20ENABLE_IHNM = $(ENABLED) 21ENABLE_KYRA = $(ENABLED) 22ENABLE_LOL = $(ENABLED) 23ENABLE_LURE = $(ENABLED) 24ENABLE_M4 = $(ENABLED) 25ENABLE_MADE = $(ENABLED) 26ENABLE_PARALLACTION = $(ENABLED) 27ENABLE_QUEEN = $(ENABLED) 28ENABLE_SAGA = $(ENABLED) 29ENABLE_SAGA2 = $(ENABLED) 30ENABLE_SCI = $(ENABLED) 31ENABLE_SCI32 = $(ENABLED) 32ENABLE_SKY = $(ENABLED) 33ENABLE_SWORD1 = $(ENABLED) 34ENABLE_SWORD2 = $(ENABLED) 35ENABLE_TEENAGENT = $(ENABLED) 36ENABLE_TINSEL = $(ENABLED) 37ENABLE_TOUCHE = $(ENABLED) 38ENABLE_TUCKER = $(ENABLED) 39 40# Set to 1 to enable seeing the commands to gcc 41VERBOSE_BUILD=1 42# Set to 1 to enable, 0 to disable dynamic modules 43DYNAMIC_MODULES = 1 44# Set to 1 to enable profiling 45ENABLE_PROFILING = 0 46# Set to 1 to enable, 0 to disable libmad and libogg 47USE_LIBMAD = 1 48USE_LIBOGG = 1 49# -------------------------------------------------------------------- 50 51 52# General variables 53srcdir = ../../.. 54VPATH = $(srcdir) 55TARGET = scummvm-psp 56# PSP SDK location variables 57PSPSDK := $(shell psp-config --pspsdk-path) 58PSPBIN = $(PSPSDK)/../bin 59 60#check PSPSDK presence 61ifeq ($(PSPSDK),) 62$(error $$(PSPSDK) cannot be obtained.) 63endif 64 65# Variables for common Scummvm makefile 66CXX = psp-g++ 67CXXFLAGS = -O3 -Wall -Wno-multichar -fno-exceptions -fno-rtti 68DEFINES = -D__PSP__ -DNONSTANDARD_PORT -DDISABLE_TEXT_CONSOLE -DDISABLE_COMMAND_LINE -DUSE_ZLIB -DDISABLE_DOSBOX_OPL -DUSE_RGB_COLOR -DUSE_ELF_LOADER -DMIPS_TARGET 69 70LDFLAGS := 71INCDIR := $(srcdir) . $(srcdir)/engines/ $(PSPSDK)/include 72INCLUDES := $(addprefix -I, $(INCDIR)) 73DEPDIR = .deps 74MODULE_DIRS += ./ 75MKDIR = mkdir -p 76RM = rm -f 77RM_REC = rm -rf 78AR = psp-ar cru 79RANLIB = psp-ranlib 80AS = psp-gcc 81LD = psp-gcc 82HAVE_GCC3 = true 83CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP 84 85# Variables for dynamic plugin building 86PLUGIN_PREFIX = 87PLUGIN_SUFFIX = .plg 88PLUGIN_EXTRA_DEPS = $(srcdir)/backends/plugins/elf/plugin.syms scummvm-psp.elf 89PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,--just-symbols=scummvm-psp.org.elf,-T$(srcdir)/backends/plugins/psp/plugin.ld,--retain-symbols-file,$(srcdir)/backends/plugins/elf/plugin.syms -lstdc++ -lc 90 91# PSP-specific variables 92STRIP = psp-strip 93MKSFO = mksfoex -d MEMSIZE=1 94PACK_PBP = pack-pbp 95FIXUP = psp-fixup-imports 96 97# Test for adding different libs 98ifeq ($(USE_LIBMAD),1) 99DEFINES += -DUSE_MAD 100LIBS += -lmad 101endif 102ifeq ($(USE_LIBOGG), 1) 103DEFINES += -DUSE_VORBIS -DUSE_TREMOR 104LIBS += -lvorbisidec 105endif 106 107# Test for dynamic plugins 108ifeq ($(DYNAMIC_MODULES),1) 109ENABLED = DYNAMIC_PLUGIN 110DEFINES += -DDYNAMIC_MODULES 111PRE_OBJS_FLAGS = -Wl,--whole-archive 112POST_OBJS_FLAGS = -Wl,--no-whole-archive 113else 114ENABLED = STATIC_PLUGIN 115endif 116 117# Test for profiling 118ifeq ($(ENABLE_PROFILING),1) 119DEFINES += -DENABLE_PROFILING 120CXXFLAGS += -pg -g 121LDFLAGS += -pg 122endif 123 124# PSP LIBS 125PSPLIBS = -lpspprof -lpspvfpu -lpspdebug -lpspgu -lpspge -lpspdisplay -lpspctrl -lpspsdk \ 126 -lpsputility -lpspuser -lpsppower -lpsphprm -lpspsdk -lpsprtc -lpspaudio -lpspaudiocodec \ 127 -lpspkernel -lpspnet_inet 128 129 130# Add in PSPSDK includes and libraries. 131LIBS += -lpng -lz -lstdc++ -lc -lm $(PSPLIBS) 132 133OBJS := powerman.o \ 134 psp_main.o \ 135 osys_psp.o \ 136 psppixelformat.o \ 137 memory.o \ 138 display_manager.o \ 139 display_client.o \ 140 default_display_client.o \ 141 input.o \ 142 cursor.o \ 143 trace.o \ 144 pspkeyboard.o \ 145 audio.o \ 146 thread.o \ 147 rtc.o \ 148 mp3.o \ 149 png_loader.o \ 150 image_viewer.o \ 151 tests.o \ 152 dummy.o 153 154 155BACKEND := psp 156 157# Include common Scummvm makefile 158include $(srcdir)/Makefile.common 159 160# Variables for PSP-specific rules 161PSP_EBOOT_SFO = param.sfo 162PSP_EBOOT_TITLE = ScummVM-PSP 163PSP_EBOOT = EBOOT.PBP 164PSP_EBOOT_ICON = icon0.png 165PSP_EBOOT_ICON1 = NULL 166PSP_EBOOT_PIC0 = pic0.png 167PSP_EBOOT_PIC1 = pic1.png 168PSP_EBOOT_SND0 = NULL 169PSP_EBOOT_PSAR = NULL 170 171LDFLAGS += -Wl,-T../../plugins/psp/main_prog.ld 172 173all: $(PSP_EBOOT) 174 175$(TARGET).elf: $(OBJS) 176 $(LD) $(PRE_OBJS_FLAGS) $(OBJS) $(POST_OBJS_FLAGS) $(LDFLAGS) $(LIBS) -o $@ 177 cp $(TARGET).elf $(TARGET).org.elf 178 $(FIXUP) $@ 179 180$(PSP_EBOOT_SFO): 181 $(MKSFO) '$(PSP_EBOOT_TITLE)' $@ 182 183$(PSP_EBOOT): $(TARGET).elf $(PSP_EBOOT_SFO) 184 $(STRIP) $(TARGET).elf 185 $(PACK_PBP) $@ $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) $(PSP_EBOOT_ICON1) \ 186 $(PSP_EBOOT_PIC0) $(PSP_EBOOT_PIC1) $(PSP_EBOOT_SND0) \ 187 $(TARGET).elf $(PSP_EBOOT_PSAR) 188 189kxploit: $(TARGET).elf $(PSP_EBOOT_SFO) 190 mkdir -p "$(TARGET)" 191 $(STRIP) $(TARGET).elf -o $(TARGET)/$(PSP_EBOOT) 192 mkdir -p "$(TARGET)%" 193 $(PACK_PBP) "$(TARGET)%/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ 194 $(PSP_EBOOT_ICON1) $(PSP_EBOOT_PIC0) $(PSP_EBOOT_PIC1) \ 195 $(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR) 196 197SCEkxploit: $(TARGET).elf $(PSP_EBOOT_SFO) 198 mkdir -p "__SCE__$(TARGET)" 199 $(STRIP) $(TARGET).elf -o __SCE__$(TARGET)/$(PSP_EBOOT) 200 mkdir -p "%__SCE__$(TARGET)" 201 $(PACK_PBP) "%__SCE__$(TARGET)/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \ 202 $(PSP_EBOOT_ICON1) $(PSP_EBOOT_PIC0) $(PSP_EBOOT_PIC1) \ 203 $(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR) 204