TARGET = Daedalus

DAED_MAIN_FILES =	Source/pspmain.o \
					Source/ConfigOptions.o \
					Source/StdAfx.o

DAED_DEBUG_FILES =	Source/Debug/DBGConsolePSP.o \
					Source/Debug/DaedalusAssertPSP.o \
					Source/Debug/Dump.o

DAED_CORE_FILES =	Source/Core/CPU.o \
					Source/Core/DMA.o \
					Source/Core/Interrupts.o \
					Source/Core/Memory.o \
					Source/Core/PIF.o \
					Source/Core/R4300.o \
					Source/Core/R4300_Regs.o \
					Source/Core/Registers.o \
					Source/Core/ROM.o \
					Source/Core/RomSettings.o \
					Source/Core/ROMBuffer.o \
					Source/Core/RSP.o \
					Source/Core/RSP_HLE.o

DAED_INTERFACE_FILES =	Source/Interface/RomDB.o

DAED_INPUT_FILES =		Source/Input/InputManagerPSP.o

DAED_DYNREC_FILES =		Source/DynaRec/AssemblyUtilsPSP.o \
						Source/DynaRec/AssemblyWriterPSP.o \
						Source/DynaRec/BranchType.o \
						Source/DynaRec/CodeBufferManagerPSP.o \
						Source/DynaRec/CodeGeneratorPSP.o \
						Source/DynaRec/DynarecTargetPSP.o \
						Source/Dynarec/Fragment.o \
						Source/Dynarec/FragmentCache.o \
						Source/Dynarec/IndirectExitMap.o \
						Source/Dynarec/N64RegisterCachePSP.o \
						Source/Dynarec/StaticAnalysis.o \
						Source/Dynarec/TraceRecorder.o

DAED_UTILITY_FILES_DEBUG = Source/Utility/PrintOpCode.o 
						
DAED_UTILITY_FILES =	Source/Utility/Profiler.o \
						Source/Utility/ROMFile.o \
						Source/Utility/ROMFileCache.o \
						Source/Utility/ROMFileCompressed.o \
						Source/Utility/ROMFileUncompressed.o \
						Source/Utility/IniFile.o \
						Source/Utility/unzip.o

DAED_PSP_FILES =	Source/SysPSP/UI/UIContext.o \
					Source/SysPSP/UI/UIScreen.o \
					Source/SysPSP/UI/AboutScreen.o \
					Source/SysPSP/UI/ColourPulser.o \
					Source/SysPSP/UI/GlobalSettingsScreen.o \
					Source/SysPSP/UI/PspRomSelector.o \
					Source/SysPSP/UI/PspRomSettings.o \
					Source/SysPSP/UI/MainMenuScreen.o \
					Source/SysPSP/DaedalusVFPU.o \
					Source/SysPSP/DisableFPUExceptions.o \
					Source/SysPSP/DynaRecStubs.o \

DAEDCOMMON_FILES =	../DaedCommon/Source/daedalus_crc32.o \
					../DaedCommon/Source/DaedHash.o \
					../DaedCommon/Source/DaedIOPSP.o \
					../DaedCommon/Source/DaedStream.o \
					../DaedCommon/Source/DaedThreadPSP.o \
					../DaedCommon/Source/DaedTimingPSP.o \
					../DaedCommon/Source/DSPrintf.o

DAED_GFX_FILES =	Source/PSPGraphics/BlendModes.o \
					Source/PSPGraphics/ConvertImage.o \
					Source/PSPGraphics/ConvertImageTmem.o \
					Source/PSPGraphics/DaedalusGraphics.o \
					Source/PSPGraphics/DLParser.o \
					Source/PSPGraphics/DrawText.o \
					Source/PSPGraphics/GraphicsContext.o \
					Source/PSPGraphics/RDP.o \
					Source/PSPGraphics/Matrix4x4.o \
					Source/PSPGraphics/NativeTexture.o \
					Source/PSPGraphics/PSPColour.o \
					Source/PSPGraphics/PSPRenderer.o \
					Source/PSPGraphics/Texture.o \
					Source/PSPGraphics/TextureCache.o \
					Source/PSPGraphics/VectorClipping.o \
					Source/PSPGraphics/VectorTnL.o \
					Source/PSPGraphics/VideoMemoryManager.o

ADDITIONAL_DEBUG_OBJS = $(DAED_UTILITY_FILES_DEBUG)
CORE_OBJS = $(DAED_MAIN_FILES) $(DAED_DEBUG_FILES) $(DAED_CORE_FILES) $(DAED_INTERFACE_FILES) $(DAED_INPUT_FILES) $(DAED_DYNREC_FILES) $(DAED_UTILITY_FILES) $(DAED_PSP_FILES) $(DAEDCOMMON_FILES) $(DAED_GFX_FILES)

RELEASE_OBJS		= $(CORE_OBJS)
DEBUG_DLIST_OBJS	= $(CORE_OBJS) Source/PSPGraphics/DisplayListDebugger.o
DEBUG_OBJS			= $(CORE_OBJS) $(ADDITIONAL_DEBUG_OBJS)

DEBUG_CFLAGS		= -O1 -G0 -Wall -DDAEDALUS_PSP -DDEBUG_TEXRECT -D_DEBUG
PROFILE_CFLAGS		= -O1 -G0 -Wall -DDAEDALUS_PSP -DDAEDALUS_RELEASE_BUILD -DNDEBUG -DDAEDALUS_ENABLE_PROFILING
RELEASE_CFLAGS		= -O1 -G0 -Wall -DDAEDALUS_PSP -DDAEDALUS_RELEASE_BUILD -DNDEBUG
DEBUG_DLIST_CFLAGS	= $(RELEASE_CFLAGS) -DDAEDALUS_DEBUG_DISPLAYLIST

CXXFLAGS			= -fno-exceptions -fno-rtti -iquote../DaedCommon/Include -iquote./Source -iquote../DaedCommon

OBJS = $(RELEASE_OBJS)
CFLAGS = $(RELEASE_CFLAGS)
ASFLAGS =

INCDIR =
LIBDIR =
LDFLAGS = 
LIBS = -lsupc++ -lstdc++ -lpsppower -lpspgum -lpspgu -lpsprtc -lc -lpng -lz -lg -lm -lpspvfpu

EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = Daedalus

PSPSDK=$(shell psp-config --pspsdk-path)
USE_PSPSDK_LIBC=1

include $(PSPSDK)/lib/build.mak

psplink: $(PSP_EBOOT) $(TARGET).elf
	mkdir -p "../Builds"
	mkdir -p "../Builds/PSP"
	cp $(PSP_EBOOT) "../Builds/PSP"
	cp -u -r Data/PSP/* ../Builds/PSP/
	prxtool -y $(TARGET).elf > ../Builds/PSP/$(TARGET).sym


CC       = vs-psp-gcc 
CXX      = vs-psp-g++ 
