BIN_PREFIX=/opt/baremetalmipsel/bin/
CXX=${BIN_PREFIX}mipsel-none-elf-g++
NATIVE_CXX=g++
OBJCOPY=${BIN_PREFIX}mipsel-none-elf-objcopy
CXXFLAGS=-std=c++20 -march=r3000 -fno-exceptions -fno-rtti -nostartfiles -nodefaultlibs -G 0
LDXXFLAGS=-std=c++20 -march=r3000 -fno-exceptions -fno-rtti -nostartfiles -nodefaultlibs -G 0
SOURCES=memcpy.cpp main.cpp startup.cpp controller.cpp gpu.cpp font.cpp random.cpp menu_screen.cpp board_screen.cpp bcd.cpp game_over_screen.cpp you_win_screen.cpp levels.cpp adjust_screen.cpp
OBJECTS=${SOURCES:.cpp=.o}
PSXBUILD=../psximager/src/psxbuild -c MYGAME

MYGAME.bin: main.elf
	@echo
	@echo Generating PS1 disk
	@echo
	$(OBJCOPY) -O binary main.elf psx.exe
	./round_up_size.sh psx.exe
	mkdir MYGAME
	cp psx.exe MYGAME/PSX.EXE
	$(PSXBUILD) -c MYGAME

main.elf: ${OBJECTS}
	@echo
	@echo Linking PS1 code
	@echo
	$(CXX) $(LDXXFLAGS) -T ps1.ld -o main.elf ${OBJECTS}

%.o: %.cpp
	$(CXX) $(CXXFLAGS) -c -o $@ $<

clean:
	rm -fR *.elf *.o psx.exe MYGAME.bin MYGAME.cue MYGAME
