TARGET = Daedalus

DAED_MAIN_FILES =	Source/SysPSP/main.o \
					Source/ConfigOptions.o \
					Source/StdAfx.o

DAED_DEBUG_FILES =	Source/SysPSP/Debug/DBGConsolePSP.o \
					Source/SysPSP/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/ROMImage.o \
					Source/Core/RSP.o \
					Source/Core/RSP_HLE.o \
					Source/Core/Savestate.o

DAED_INTERFACE_FILES =	Source/Interface/RomDB.o

DAED_INPUT_FILES =		Source/SysPSP/Input/InputManagerPSP.o

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

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

DAED_PSP_FILES =	Source/SysPSP/UI/UIContext.o \
					Source/SysPSP/UI/UIElement.o \
					Source/SysPSP/UI/UICommand.o \
					Source/SysPSP/UI/UIComponent.o \
					Source/SysPSP/UI/UISetting.o \
					Source/SysPSP/UI/UIScreen.o \
					Source/SysPSP/UI/AboutComponent.o \
					Source/SysPSP/UI/ColourPulser.o \
					Source/SysPSP/UI/GlobalSettingsComponent.o \
					Source/SysPSP/UI/RomPreferencesScreen.o \
					Source/SysPSP/UI/RomSelectorComponent.o \
					Source/SysPSP/UI/SavestateSelectorComponent.o \
					Source/SysPSP/UI/PauseOptionsComponent.o \
					Source/SysPSP/UI/SelectedRomComponent.o \
					Source/SysPSP/UI/AdjustDeadzoneScreen.o \
					Source/SysPSP/UI/MainMenuScreen.o \
					Source/SysPSP/UI/PauseScreen.o \
					Source/SysPSP/UI/SplashScreen.o \
					Source/SysPSP/DaedalusVFPU.o \
					Source/SysPSP/Memory.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/DaedMemoryHeap.o \
					../DaedCommon/Source/DaedStream.o \
					../DaedCommon/Source/DaedThreadPSP.o \
					../DaedCommon/Source/DaedTimingPSP.o \
					../DaedCommon/Source/DSPrintf.o

DAED_GFX_FILES =	Source/SysPSP/Plugins/GraphicsPluginPSP.o \
					Source/Plugins/GraphicsPlugin.o \
					Source/PSPGraphics/BlendModes.o \
					Source/PSPGraphics/ColourAdjuster.o \
					Source/PSPGraphics/ConvertImage.o \
					Source/PSPGraphics/DaedalusGraphics.o \
					Source/PSPGraphics/DLParser.o \
					Source/PSPGraphics/DrawText.o \
					Source/PSPGraphics/GraphicsContext.o \
					Source/PSPGraphics/RDP.o \
					Source/PSPGraphics/RDPStateManager.o \
					Source/PSPGraphics/Matrix4x4.o \
					Source/PSPGraphics/NativeTexture.o \
					Source/PSPGraphics/PngUtil.o \
					Source/PSPGraphics/PSPColour.o \
					Source/PSPGraphics/PSPRenderer.o \
					Source/PSPGraphics/Texture.o \
					Source/PSPGraphics/TextureCache.o \
					Source/PSPGraphics/TextureDescriptor.o \
					Source/PSPGraphics/VectorClipping.o \
					Source/PSPGraphics/VectorTnL.o \
					Source/PSPGraphics/VideoMemoryManager.o \
					Source/PSPGraphics/Combiner/CombinerExpression.o \
					Source/PSPGraphics/Combiner/CombinerTree.o \
					Source/PSPGraphics/Combiner/RenderSettings.o
					
					
					
DAED_AUDIO_FILES =  Source/PSPAudio/ABI1.o \
					Source/PSPAudio/ABI2.o \
					Source/PSPAudio/ABI3.o \
					Source/PSPAudio/ABI3mp3.o \
					Source/PSPAudio/AudioBuffer.o \
					Source/PSPAudio/AudioCode.o \
					Source/PSPAudio/HLEMain.o \
					Source/PSPAudio/AudioPluginPsp.o \
					Source/PSPAudio/SafeABI.o
					

ADDITIONAL_DEBUG_OBJS = $(DAED_UTILITY_FILES_DEBUG)
ADDITIONAL_SYNC_OBJS  = Source/Utility/Synchroniser.o Source/Utility/ZLibWrapper.o

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) $(DAED_AUDIO_FILES)

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

DEBUG_CFLAGS			= -g -O3 -G0 -Wall -DDAEDALUS_PSP -DDEBUG_TEXRECT -D_DEBUG
DEBUG_DLIST_CFLAGS		= -g $(DEBUG_CFLAGS) -DDAEDALUS_DEBUG_DISPLAYLIST
PROFILE_CFLAGS			= -g $(RELEASE_CFLAGS) -DDAEDALUS_ENABLE_PROFILING
RELEASE_CFLAGS			= -g -O3 -G0 -Wall -DDAEDALUS_PSP -DDAEDALUS_RELEASE_BUILD -DNDEBUG
PUBLIC_RELEASE_CFLAGS	= -g -O3 -G0 -Wall -DDAEDALUS_PSP -DDAEDALUS_RELEASE_BUILD -DNDEBUG -DDAEDALUS_PUBLIC_RELEASE

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

OBJS = $(PUBLIC_RELEASE_OBJS)
CFLAGS = $(PUBLIC_RELEASE_CFLAGS)
ASFLAGS =

INCDIR =
LIBDIR =
LDFLAGS = 
LIBS = -lsupc++ -lstdc++ -lpsppower -lpspgum -lpspgu -lpspaudiolib -lpspaudio -lpsprtc -lc -lpng -lz -lg -lm -lpspfpu -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 -f -v -r Data/PSP/* -t ../Builds/PSP/
	prxtool -y $(TARGET).elf > ../Builds/PSP/$(TARGET).sym


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