TARGET = pspmaster
INCDIR = .

PSPSDK = $(shell psp-config --pspsdk-path)
PSPBIN = $(shell psp-config --psp-prefix)/bin

OBJS = z80.o system.o ym2413.o psg.o vdp.o render.o renderasm.o cart.o main.o script.o \
       util.o video.o audio.o text.o shot.o menu.o unzip.o language.o cheat.o config.o

DEFINES = -DHAVE_LIBZ=1 -DPSP=1

ADVFLAGS = -mfix-r4000 -mno-memcpy -mno-check-zero-division                       \
           -mno-fp-exceptions -ffast-math                                         \
           -mgp32 -mlong32 -fstrict-aliasing                                      \
           -frename-registers -fschedule-insns2 -fomit-frame-pointer -fforce-addr \
           -funroll-loops -fdelete-null-pointer-checks                            \
           -march=allegrex 

CFLAGS = -O3 -g -G0 -Wall $(ADVFLAGS)

CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS  = $(CFLAGS) -c

LIBDIR  =
LIBS    = -lpspaudiolib -lpspaudio -lpspgu -lm -lpsppower -lpng -lz # -lstdc++
LDFLAGS =

EXTRA_TARGETS   = EBOOT.PBP
EXTRA_CLEAN     = 
PSP_EBOOT_TITLE = PSPMaster
PSP_EBOOT_ICON  = ./data/icon.png
PSP_EBOOT_PIC1  = ./data/pic1.png

include $(PSPSDK)/lib/build.mak

install:
	@echo "Installing emulator..."
	@mkdir -p "F:/PSP/GAME/PSPM                              1" "F:/PSP/GAME/PSPM1~1%"
	@cp "./pspmaster/EBOOT.PBP" "F:/PSP/GAME/PSPM                              1"
	@cp "./pspmaster%/EBOOT.PBP" "F:/PSP/GAME/PSPM1~1%"
	@mkdir -p "F:/PSP/GAME/PSPM                              1/sram" "F:/PSP/GAME/PSPM                              1/state" "F:/PSP/GAME/PSPM                              1/tmp"
	@cp -r "./data/theme" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/language" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/cheat" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/image" "F:/PSP/GAME/PSPM                              1"
	@rm -r "./pspmaster" "./pspmaster%"
	@echo "Done!"

rebuild:
	@echo "Cleaning..."
	@make clean
	@echo "Compiling..."
	@make kxploit
	@echo "Installing emulator..."
	@mkdir -p "F:/PSP/GAME/PSPM                              1" "F:/PSP/GAME/PSPM1~1%"
	@cp "./pspmaster/EBOOT.PBP" "F:/PSP/GAME/PSPM                              1"
	@cp "./pspmaster%/EBOOT.PBP" "F:/PSP/GAME/PSPM1~1%"
	@mkdir -p "F:/PSP/GAME/PSPM                              1/sram" "F:/PSP/GAME/PSPM                              1/state" "F:/PSP/GAME/PSPM                              1/tmp"
	@cp -r "./data/theme" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/language" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/cheat" "F:/PSP/GAME/PSPM                              1"
	@cp -r "./data/image" "F:/PSP/GAME/PSPM                              1"
	@rm -r "./pspmaster" "./pspmaster%"
	@make clean
	@echo "Done!"

release:
	@echo "Cleaning..."
	@make clean
	@echo "Compiling..."
	@make kxploit
	@echo "Creating folders..."
	@mkdir -p "./PSP"
	@mkdir -p "./PSP/GAME"
	@mkdir -p "./PSP/GAME/PSPM                              1" "./PSP/GAME/PSPM1~1%"
	@cp "./pspmaster/EBOOT.PBP" "./PSP/GAME/PSPM                              1"
	@cp "./pspmaster%/EBOOT.PBP" "./PSP/GAME/PSPM1~1%"
	@mkdir -p "./PSP/GAME/PSPM                              1/sram" "./PSP/GAME/PSPM                              1/state"
	@mkdir -p "./PSP/GAME/PSPM                              1/tmp" "./PSP/GAME/PSPM                              1/cheat"
	@cp "./data/erase.me" "./PSP/GAME/PSPM                              1/sram"
	@cp "./data/erase.me" "./PSP/GAME/PSPM                              1/state"
	@cp "./data/erase.me" "./PSP/GAME/PSPM                              1/tmp"
	@cp "./data/erase.me" "./PSP/GAME/PSPM                              1/cheat"
	@cp -r "./data/theme" "./PSP/GAME/PSPM                              1"
	@cp -r "./data/language" "./PSP/GAME/PSPM                              1"
	@cp -r "./data/image" "./PSP/GAME/PSPM                              1"
	@rm -r "./pspmaster" "./pspmaster%"
	@mkdir -p "1.5"
	@cp -r "./PSP" "./1.5"
	@rm -r "./PSP/GAME/PSPM1~1%"
	@rm "./PSP/GAME/PSPM                              1/EBOOT.PBP"
	@make
	@cp "./EBOOT.PBP" "./PSP/GAME/PSPM                              1"
	@mkdir -p "1.0"
	@cp -r "./PSP" "./1.0"
	@rm -r "./PSP"
	@tar -cf "pspmaster_fw10.tar" "1.0" "version.txt"
	@bzip2 --best "pspmaster_fw10.tar"
	@tar -cf "pspmaster_fw15.tar" "1.5" "version.txt"
	@bzip2 --best "pspmaster_fw15.tar"
	@mkdir -p "./pspmaster"
	@mv "./1.0" "./pspmaster"
	@mv "./1.5" "./pspmaster"
	@cp "./version.txt" "./pspmaster/1.0"
	@cp "./version.txt" "./pspmaster/1.5"
	@make clean
	@echo "Done!"

finstall:
	@echo "Installing emulator..."
	@mkdir -p "F:/PSP/GAME/PSPM                              1" "F:/PSP/GAME/PSPM1~1%"
	@cp "./pspmaster/EBOOT.PBP" "F:/PSP/GAME/PSPM                              1"
	@cp "./pspmaster%/EBOOT.PBP" "F:/PSP/GAME/PSPM1~1%"
	@rm -r "./pspmaster" "./pspmaster%"
	@echo "Done!"

backup:
	@make clean
	@echo "Copying files..."
	@tar -cf "./pspmaster.tar" *.c *.h *.s "makefile" "version.txt"
	@bzip2 --best --force "./pspmaster.tar"
	@echo "Done!"


backup_full:
	@make clean
	@echo "Copying files..."
	@tar -cf "./pspmaster.tar" *.c *.h *.s "makefile" "version.txt" "data"
	@bzip2 --best --force "./pspmaster.tar"
	@echo "Done!"
