mirror of
https://github.com/joel16/PSP-Everest.git
synced 2024-11-26 21:10:39 +00:00
191 lines
5.0 KiB
Makefile
191 lines
5.0 KiB
Makefile
# PSP Software Development Kit - http://www.pspdev.org
|
|
# -----------------------------------------------------------------------
|
|
# Licensed under the BSD license, see LICENSE in PSPSDK root for details.
|
|
#
|
|
# build.mak - Base makefile for projects using PSPSDK.
|
|
#
|
|
# Copyright (c) 2005 Marcus R. Brown <mrbrown@ocgnet.org>
|
|
# Copyright (c) 2005 James Forshaw <tyranid@gmail.com>
|
|
# Copyright (c) 2005 John Kelley <ps2dev@kelley.ca>
|
|
#
|
|
# $Id: build.mak 2333 2007-10-31 19:37:40Z tyranid $
|
|
|
|
# Note: The PSPSDK make variable must be defined before this file is included.
|
|
ifeq ($(PSPSDK),)
|
|
$(error $$(PSPSDK) is undefined. Use "PSPSDK := $$(shell psp-config --pspsdk-path)" in your Makefile)
|
|
endif
|
|
|
|
CC = psp-gcc
|
|
CXX = psp-g++
|
|
AS = psp-gcc
|
|
LD = psp-gcc
|
|
AR = psp-ar
|
|
RANLIB = psp-ranlib
|
|
STRIP = psp-strip
|
|
MKSFO = mksfo
|
|
PACK_PBP = pack-pbp
|
|
FIXUP = psp-fixup-imports
|
|
|
|
# Add in PSPSDK includes and libraries.
|
|
INCDIR := $(INCDIR) . $(PSPSDK)/include
|
|
LIBDIR := $(LIBDIR) . $(PSPSDK)/lib
|
|
|
|
CFLAGS := $(addprefix -I,$(INCDIR)) $(CFLAGS)
|
|
CXXFLAGS := $(CFLAGS) $(CXXFLAGS)
|
|
ASFLAGS := $(CFLAGS) $(ASFLAGS)
|
|
|
|
ifeq ($(PSP_LARGE_MEMORY),1)
|
|
MKSFO = mksfoex -d MEMSIZE=1
|
|
endif
|
|
|
|
ifeq ($(PSP_FW_VERSION),)
|
|
PSP_FW_VERSION=150
|
|
endif
|
|
|
|
CFLAGS += -D_PSP_FW_VERSION=$(PSP_FW_VERSION)
|
|
CXXFLAGS += -D_PSP_FW_VERSION=$(PSP_FW_VERSION)
|
|
|
|
ifeq ($(BUILD_PRX),1)
|
|
LDFLAGS := $(addprefix -L,$(LIBDIR)) -specs=$(PSPSDK)/lib/prxspecs -Wl,-q,-T$(PSPSDK)/lib/linkfile.prx $(LDFLAGS)
|
|
EXTRA_CLEAN += $(TARGET).elf
|
|
# Setup default exports if needed
|
|
ifdef PRX_EXPORTS
|
|
EXPORT_OBJ=$(patsubst %.exp,%.o,$(PRX_EXPORTS))
|
|
EXTRA_CLEAN += $(EXPORT_OBJ)
|
|
else
|
|
EXPORT_OBJ=$(PSPSDK)/lib/prxexports.o
|
|
endif
|
|
else
|
|
LDFLAGS := $(addprefix -L,$(LIBDIR)) $(LDFLAGS)
|
|
endif
|
|
|
|
# Library selection. By default we link with Newlib's libc. Allow the
|
|
# user to link with PSPSDK's libc if USE_PSPSDK_LIBC is set to 1.
|
|
|
|
PSPSDK_LIBC_LIB =
|
|
|
|
# Link with following default libraries. Other libraries should be specified in the $(LIBS) variable.
|
|
# TODO: This library list needs to be generated at configure time.
|
|
#
|
|
ifeq ($(USE_KERNEL_LIBS),1)
|
|
PSPSDK_LIBS = -lpspdebug -lpspdisplay_driver -lpspctrl_driver -lpspsdk
|
|
LIBS := $(LIBS) $(PSPSDK_LIBS) $(PSPSDK_LIBC_LIB) -lpspkernel
|
|
else
|
|
ifeq ($(USE_USER_LIBS),1)
|
|
PSPSDK_LIBS = -lpspdebug -lpspdisplay -lpspge -lpspctrl -lpspsdk
|
|
LIBS := $(LIBS) $(PSPSDK_LIBS) $(PSPSDK_LIBC_LIB) -lpspnet \
|
|
-lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility \
|
|
-lpspuser
|
|
else
|
|
PSPSDK_LIBS = -lpspdisplay -lpspge -lpspctrl -lpspsdk
|
|
LIBS := $(LIBS) $(PSPSDK_LIBS) $(PSPSDK_LIBC_LIB) -lpspnet \
|
|
-lpspnet_inet -lpspnet_apctl -lpspnet_resolver -lpsputility \
|
|
-lpspuser -lpspkernel
|
|
endif
|
|
endif
|
|
|
|
# Define the overridable parameters for EBOOT.PBP
|
|
ifndef PSP_EBOOT_TITLE
|
|
PSP_EBOOT_TITLE = $(TARGET)
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_SFO
|
|
PSP_EBOOT_SFO = PARAM.SFO
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_ICON
|
|
PSP_EBOOT_ICON = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_ICON1
|
|
PSP_EBOOT_ICON1 = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_UNKPNG
|
|
PSP_EBOOT_UNKPNG = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_PIC1
|
|
PSP_EBOOT_PIC1 = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_SND0
|
|
PSP_EBOOT_SND0 = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT_PSAR
|
|
PSP_EBOOT_PSAR = NULL
|
|
endif
|
|
|
|
ifndef PSP_EBOOT
|
|
PSP_EBOOT = EBOOT.PBP
|
|
endif
|
|
|
|
ifeq ($(BUILD_PRX),1)
|
|
ifneq ($(TARGET_LIB),)
|
|
$(error TARGET_LIB should not be defined when building a prx)
|
|
else
|
|
FINAL_TARGET = $(TARGET).prx
|
|
endif
|
|
else
|
|
ifneq ($(TARGET_LIB),)
|
|
FINAL_TARGET = $(TARGET_LIB)
|
|
else
|
|
FINAL_TARGET = $(TARGET).elf
|
|
endif
|
|
endif
|
|
|
|
all: $(EXTRA_TARGETS) $(FINAL_TARGET)
|
|
|
|
kxploit: $(TARGET).elf $(PSP_EBOOT_SFO)
|
|
mkdir -p "$(TARGET)"
|
|
$(STRIP) $(TARGET).elf -o $(TARGET)/$(PSP_EBOOT)
|
|
mkdir -p "$(TARGET)%"
|
|
$(PACK_PBP) "$(TARGET)%/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \
|
|
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \
|
|
$(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR)
|
|
|
|
SCEkxploit: $(TARGET).elf $(PSP_EBOOT_SFO)
|
|
mkdir -p "__SCE__$(TARGET)"
|
|
$(STRIP) $(TARGET).elf -o __SCE__$(TARGET)/$(PSP_EBOOT)
|
|
mkdir -p "%__SCE__$(TARGET)"
|
|
$(PACK_PBP) "%__SCE__$(TARGET)/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \
|
|
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \
|
|
$(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR)
|
|
|
|
$(TARGET).elf: $(OBJS) $(EXPORT_OBJ)
|
|
$(LINK.c) $^ $(LIBS) -o $@
|
|
$(FIXUP) $@
|
|
|
|
$(TARGET_LIB): $(OBJS)
|
|
$(AR) cru $@ $(OBJS)
|
|
$(RANLIB) $@
|
|
|
|
$(PSP_EBOOT_SFO):
|
|
$(MKSFO) '$(PSP_EBOOT_TITLE)' $@
|
|
|
|
ifeq ($(BUILD_PRX),1)
|
|
$(PSP_EBOOT): $(TARGET).prx $(PSP_EBOOT_SFO)
|
|
$(PACK_PBP) $(PSP_EBOOT) $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \
|
|
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \
|
|
$(PSP_EBOOT_SND0) $(TARGET).prx $(PSP_EBOOT_PSAR)
|
|
else
|
|
$(PSP_EBOOT): $(TARGET).elf $(PSP_EBOOT_SFO)
|
|
$(STRIP) $(TARGET).elf -o $(TARGET)_strip.elf
|
|
$(PACK_PBP) $(PSP_EBOOT) $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \
|
|
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_UNKPNG) $(PSP_EBOOT_PIC1) \
|
|
$(PSP_EBOOT_SND0) $(TARGET)_strip.elf $(PSP_EBOOT_PSAR)
|
|
-rm -f $(TARGET)_strip.elf
|
|
endif
|
|
|
|
%.prx: %.elf
|
|
psp-prxgen $< $@
|
|
|
|
%.c: %.exp
|
|
psp-build-exports -b $< > $@
|
|
|
|
clean:
|
|
-rm -f $(FINAL_TARGET) $(EXTRA_CLEAN) $(OBJS) $(PSP_EBOOT_SFO) $(PSP_EBOOT) $(EXTRA_TARGETS)
|
|
|
|
rebuild: clean all
|