#----------------------------------------------------------------------------
#       MAKEFILE
#
#	Controlling makefile for PSPoste
#
#	Copyright (C) 2005 David Cummings, Ben Biron, Sajeeth Cherian
#----------------------------------------------------------------------------

#----------------------------------------------------------------------------
#	Target to make
#	--------------

TARGET := PSPoste
PSP_EBOOT_ICON := icon0.png
PSP_EBOOT_PIC1 := pic1.png
PSP_EBOOT_TITLE := PSPoste

PSP_FW_VERSION=15

#----------------------------------------------------------------------------
#	PBP parameters
#	--------------

EXTRA_TARGETS := EBOOT.PBP
PSP_EBOOT_TITLE := $(TARGET)

#----------------------------------------------------------------------------
#	Project folders
#	---------------

PSPDEV = $(shell psp-config --psp-prefix)

SOURCE_DIR :=			.
INCLUDE_DIR :=			. $(PSPDEV)/include

TINY_XML_DIR :=			$(SOURCE_DIR)/TinyXML
TINY_XML_INCLUDE_DIR :=	$(TINY_XML_DIR)

KEYBOARDS_DIR := $(SOURCE_DIR)/keyboards
KEYBOARDS_INCLUDE_DIR := $(KEYBOARDS_DIR)/danzeff

FREETYPE_INCLUDE_DIR := $(PSPDEV)/include/freetype2

#----------------------------------------------------------------------------
MAIN_OBJS := main_fw15.o psp_irkeyb.o
#	Source to make
#	--------------

PSPOSTE_OBJS :=			$(SOURCE_DIR)/user_main.o \
						$(SOURCE_DIR)/CFrameWork.o \
						$(SOURCE_DIR)/CGfx.o \
						$(SOURCE_DIR)/CVector.o \
						$(SOURCE_DIR)/CUSBManager.o \
						$(SOURCE_DIR)/CInput.o \
						$(SOURCE_DIR)/CString.o \
						$(SOURCE_DIR)/CFileSystem.o \
						$(SOURCE_DIR)/CTextureManager.o \
						$(SOURCE_DIR)/PNGReader.o \
						$(SOURCE_DIR)/BMPReader.o \
						$(SOURCE_DIR)/TTFReader.o \
						$(SOURCE_DIR)/CFont.o \
						$(SOURCE_DIR)/CProcess.o \
						$(SOURCE_DIR)/CWindow.o \
						$(SOURCE_DIR)/CSkinManager.o \
						$(SOURCE_DIR)/CBackground.o \
						$(SOURCE_DIR)/CRenderable.o \
						$(SOURCE_DIR)/CFileHandler.o \
						$(SOURCE_DIR)/CExecutableFileHandler.o \
						$(SOURCE_DIR)/CConfigFile.o \
						$(SOURCE_DIR)/CAccountTemplatesFile.o \
						$(SOURCE_DIR)/CContacts.o \
						$(SOURCE_DIR)/CAssert.o \
						$(SOURCE_DIR)/CMainWindow.o \
						$(SOURCE_DIR)/CPSPoste.o \
						$(SOURCE_DIR)/CComposeWindow.o \
						$(SOURCE_DIR)/CContactsWindow.o \
						$(SOURCE_DIR)/CContactsEditWindow.o \
						$(SOURCE_DIR)/CSettingsWindow.o \
						$(SOURCE_DIR)/CMessagesWindow.o \
						$(SOURCE_DIR)/CMessageViewWindow.o \
						$(SOURCE_DIR)/CMailbox.o \
						$(SOURCE_DIR)/CContextMenu.o \
						$(SOURCE_DIR)/CContextMenuItem.o \
						$(SOURCE_DIR)/CControl.o \
						$(SOURCE_DIR)/CControlTextBox.o \
						$(SOURCE_DIR)/CControlSelect.o \
						$(SOURCE_DIR)/CControlButton.o \
						$(SOURCE_DIR)/CControlMsgBox.o \
						$(SOURCE_DIR)/CControlCheckBox.o \
						$(SOURCE_DIR)/CControlGroupBox.o \
						$(SOURCE_DIR)/CDialogBoxInput.o \
						$(SOURCE_DIR)/CConnectionManager.o \
						$(SOURCE_DIR)/CHUHelp.o \
						$(SOURCE_DIR)/CLog.o \
						$(SOURCE_DIR)/CSmtp.o \
						$(SOURCE_DIR)/CPop3.o \
						$(SOURCE_DIR)/CControlAddress.o \
						$(SOURCE_DIR)/CScrollingText.o \
						$(SOURCE_DIR)/CBenTestWindow.o \
						$(SOURCE_DIR)/CPSprintGame.o \
						$(SOURCE_DIR)/CMailRetriever.o \
						$(SOURCE_DIR)/CPOP3Retriever.o \
						$(SOURCE_DIR)/CControlLabel.o \
						$(SOURCE_DIR)/CControlManager.o \
						$(SOURCE_DIR)/CMaildirStore.o \
						$(SOURCE_DIR)/CControlProgressBar.o \
						$(SOURCE_DIR)/CControlHeader.o \
						$(SOURCE_DIR)/CControlScrollBar.o \
						$(SOURCE_DIR)/CTabbedWindow.o \
						$(SOURCE_DIR)/CScrollableText.o \
						$(SOURCE_DIR)/CContactsEditWindow.o \
						$(SOURCE_DIR)/CMailSender.o \
						$(SOURCE_DIR)/CSMTPSender.o \
						$(SOURCE_DIR)/CKeyboard.o \
						$(SOURCE_DIR)/CKeyboardNav.o \
						$(SOURCE_DIR)/CKeyboardNavWrapper.o \
						$(SOURCE_DIR)/CPspPadRepeat.o \
						$(SOURCE_DIR)/CPspAnalogRepeat.o \
						$(SOURCE_DIR)/CCertComm.o \
						$(SOURCE_DIR)/CCertRequest.o \
						$(SOURCE_DIR)/CCertRequestHandler.o \
						$(SOURCE_DIR)/CDialogModal.o \
						$(SOURCE_DIR)/CDialogCertRequest.o \
						$(SOURCE_DIR)/CCertificateManager.o \
						$(SOURCE_DIR)/CCertificateStore.o \
						$(SOURCE_DIR)/CCertificateStoreFlash.o \
						$(SOURCE_DIR)/CCertificateStoreMemstick.o \
						$(SOURCE_DIR)/CCertificateStoreTemp.o \
						$(SOURCE_DIR)/CCertHashSet.o \
						$(SOURCE_DIR)/CCachedBase.o \
						$(SOURCE_DIR)/CCachedTexture.o \
						$(SOURCE_DIR)/CCachedFont.o
						
KEYBOARD_OBJS :=		$(SOURCE_DIR)/keyboards/danzeff/CKeyboardDanzeff.o

TINY_XML_OBJS :=		$(TINY_XML_DIR)/tinystr.o \
						$(TINY_XML_DIR)/tinyxml.o \
						$(TINY_XML_DIR)/tinyxmlerror.o \
						$(TINY_XML_DIR)/tinyxmlparser.o

#----------------------------------------------------------------------------
#	All objects to make
#	-------------------

OBJS :=					$(MAIN_OBJS) $(PSPOSTE_OBJS) $(ASM_OBJS) $(TINY_XML_OBJS) $(KEYBOARD_OBJS)

#----------------------------------------------------------------------------
#	Additional includes
#	-------------------

INCDIR   :=				$(INCDIR) $(INCLUDE_DIR) $(TINY_XML_INCLUDE_DIR) $(KEYBOARDS_INCLUDE_DIR) $(FREETYPE_INCLUDE_DIR)

#----------------------------------------------------------------------------
#	Addditional libraries
#	---------------------

SDK_LIBS :=	 -lpspirkeyb -lpsprtc -lpspusb -lpspusbstor -lpsppower -lpspumd -lpspgu -lpspgum -lpspwlan -ldanzeffgu

EXTERN_LIBS := -ljpeg -lpng -lfreetype -lz -lvmime -liconv -lCText -lgnutls -lgcrypt -lgpg-error -lintl \
                -lpspgu -lgsasl 

LIBS :=					$(SDK_LIBS) $(EXTERN_LIBS) -lm -lstdc++

#----------------------------------------------------------------------------
#	Preprocesser defines
#	--------------------

DEFINES :=-D_DEBUG -DRELEASE

#----------------------------------------------------------------------------
#	Compiler settings
#	-----------------

CFLAGS :=				$(DEFINES) -G0 -Wall -g  -DUSE_PSP_IRKEYB -DDANZEFF_SCEGU
CXXFLAGS :=				-fexceptions -fno-rtti
ASFLAGS :=				-c

LIBDIR :=	
LDFLAGS :=				-g

#----------------------------------------------------------------------------
#	Default build settings
#	----------------------

PSPSDK :=			$(shell psp-config --pspsdk-path)
include				$(PSPSDK)/lib/build.mak

#----------------------------------------------------------------------------
#	Copy to PSP
#	-----------

ifneq ($VS_PATH),)
CC       = psp-gcc
CXX      = psp-g++
endif

#----------------------------------------------------------------------------
#	Firmware Build Targets
#	----------------------

fw15: SCEkxploit all fwcommon

fwcommon:
		mkdir -p PSPoste
		cp -r Data ./PSPoste
		rm -rf `find ./PSPoste/Data -type d -name CVS | xargs`

