Desarrollo de videojuegos para PSP con C++ y SDL/El makefile

El makefile para compilar proyectos para PSP tiene ciertas particularidades dignas de mención en esta humilde guía.



Jerarquía de directoriosEditar

Vamos a suponer que tenemos la siguiente jerarquía de directorios:

  • Proyecto
    • makefile
    • main.cpp
    • engine
      • ficheros.cpp
      • ficheros.h


El makefileEditar

Nuestro makefile sería algo similar a lo siguiente:


#Proyecto
TARGET = Nombre del proyecto
SDL_CONFIG = $(PSPBIN)/sdl-config

# Rutas
MOTOR_DIR := engine

# Ficheros fuente del juego
SRC := main.cpp

# Ficheros fuente del motor.
SRC_MOTOR := ficheros.o del motor

# motor_dir + fuentes
SRC_DIR_MOTOR := $(foreach src, $(SRC_MOTOR),$(MOTOR_DIR)/$(src) )

# Objetos
OBJS := $(SRC:%.cpp=%.o) $(SRC_DIR_MOTOR:%.cpp=%.o)

INCDIR =
CFLAGS = $(shell $(SDL_CONFIG) --cflags) -G0 -Wall -O2 -DPSP
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti -D"TIXML_USE_STL"
ASFLAGS = $(CFLAGS)

LIBDIR =
LDFLAGS =
LIBS = -lstdc++ -lsupc++ -lSDL_gfx -lSDL_image -lSDL_mixer -lSDL_ttf -lfreetype \
	-lpng -ljpeg -lvorbisidec -lz -lm $(shell $(SDL_CONFIG) --libs)


EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Nombre del proyecto
PSP_EBOOT_ICON= "icono.png"
PSP_EBOOT_PIC1= "fondo.png"
PSP_EBOOT_SND0= "sonido.at3"


PSPSDK = $(shell psp-config --pspsdk-path)
PSPBIN = $(shell psp-config --psp-prefix)/bin
USE_PSPSDK_LIBC=1
include $(PSPSDK)/lib/build.mak


PersonalizaciónEditar

Podemos personalizar la apariencia de nuestro homebrew en el menú de PSP mediante las siguientes variables:

  • PSP_EBOOT_ICON: icono de 144x80 que identificara al juego en la sección $Juegos$ del menú.
  • PSP_EBOOT_PIC1: fondo que aparecerá en la consola cuando el juego esté seleccionado, debe tener 480x272.
  • PSP_EBOOT_SND0: fichero de sonido en formato at3 que se escuchará cuando nuestro juego esté seleccionado en el menú.


← Instalación El makefile La pantalla →