- .SUFFIXES:
- ifeq ($(strip $(PSL1GHT)),)
- $(error "PSL1GHT must be set in the environment.")
- endif
- include $(PSL1GHT)/Makefile.base
- PS3PUBLICTOOLS := /path/to/ps3publictools
- TARGET := $(notdir $(CURDIR))
- BUILD := build
- SOURCE := source
- INCLUDE := include
- DATA := data
- LIBS := -lzip -lz -lnet -lsysmodule
- APPID := PSL145310
- CONTENTID := UP0001-$(APPID)_00-0000000000000000
- SFOXML := package.xml
- CFLAGS += -g -O2 -Wall --std=gnu99
- CXXFLAGS += -g -O2 -Wall
- ifneq ($(BUILD),$(notdir $(CURDIR)))
- export OUTPUT := $(CURDIR)/$(TARGET)
- export VPATH := $(foreach dir,$(SOURCE),$(CURDIR)/$(dir)) \
- $(foreach dir,$(DATA),$(CURDIR)/$(dir))
- export BUILDDIR := $(CURDIR)/$(BUILD)
- export DEPSDIR := $(BUILDDIR)
- CFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.c)))
- CXXFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.cpp)))
- SFILES := $(foreach dir,$(SOURCE),$(notdir $(wildcard $(dir)/*.S)))
- BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bin)))
- export OFILES := $(CFILES:.c=.o) \
- $(CXXFILES:.cpp=.o) \
- $(SFILES:.S=.o) \
- $(BINFILES:.bin=.bin.o)
- export BINFILES := $(BINFILES:.bin=.bin.h)
- export INCLUDES := $(foreach dir,$(INCLUDE),-I$(CURDIR)/$(dir)) \
- -I$(CURDIR)/$(BUILD)
- export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(CURDIR)/$(dir))
- .PHONY: $(BUILD) clean pkg run
- $(BUILD):
- @[ -d $@ ] || mkdir -p $@
- @make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
- clean:
- @echo Clean...
- @rm -rf $(BUILD) $(OUTPUT).elf $(OUTPUT).self $(OUTPUT).a $(OUTPUT).pkg
- pkg: $(BUILD)
- @echo Creating PKG...
- @mkdir -p $(BUILD)/spkg
- @mkdir -p $(BUILD)/spkg/USRDIR
- @cp $(ICON0) $(BUILD)/spkg/
- @$(PS3PUBLICTOOLS)make_self_npdrm/make_self_npdrm $(BUILD)/$(TARGET).elf $(BUILD)/pkg/USRDIR/EBOOT.BIN ps3load
- @$(SFO) -f $(SFOXML) $(BUILD)/pkg/PARAM.SFO
- @$(PKG) --contentid $(CONTENTID) $(BUILD)/pkg/ $(OUTPUT).pkg
- @$(PS3PUBLICTOOLS)package_finalize/package_finalize $(OUTPUT).pkg
- run: $(BUILD)
- @$(PS3LOADAPP) $(OUTPUT).self
- else
- DEPENDS := $(OFILES:.o=.d)
- $(OUTPUT).self: $(OUTPUT).elf
- $(OUTPUT).elf: $(OFILES)
- $(OFILES): $(BINFILES)
- -include $(DEPENDS)
- endif