EE_CC = ee-gcc
EE_CPP = ee-gcc
CC = ee-gcc
EE_CXX = ee-gcc

TARBALL = InfoNES08J
ZLIB = ../../../testz/zlib
UNZLIB = ../../../testz/unzip


INCLUDES2 = -include ../K6502.h \
		-include ../K6502_rw.h \
		-include ../InfoNES.h \
		-include ../InfoNES_Types.h \
		-include ../InfoNES_System.h \
		-include ../InfoNES_pAPU.h

 INCLUDES = -include ../K6502.h \
		-include ../InfoNES_System.h \
		-include ../InfoNES_Types.h \
		-include ../K6502_rw.h \
		-include ../InfoNES.h \
		-include ../InfoNES_pAPU.h

INCLUDES3 = -include ../InfoNES.h \
		-include ../InfoNES_Types.h \
		-include ../InfoNES_System.h \
		-include ../InfoNES_Mapper.h \
		-include ../InfoNES_pAPU.h \
		-include ../K6502.h

INCLUDES4 = -include ../InfoNES.h \
		-include ../InfoNES_Types.h \
		-include ../InfoNES_System.h \
		-include ../InfoNES_Mapper.h \
		-include ../K6502.h

INCLUDES5 = -include ../InfoNES.h \
		-include ../InfoNES_System.h \
		-include ../InfoNES_pAPU.h


# InfoNES

EE_CXXFLAGS = -O3 -I$(NEWLIB)/include -I$(PS2SDK)/sbv/include -I./gfxpipe -I./ -I../
EE_CFLAGS =  -O3 -I$(NEWLIB)/include -I$(PS2SDK)/sbv/include -I./gfxpipe -I./ -I../
EE_CXXFLAGS +=   -finline-functions -fstrict-aliasing  -funsigned-char  -DLSB_FIRST -fomit-frame-pointer 
EE_CFLAGS += -finline-functions -fstrict-aliasing  -funsigned-char  -DLSB_FIRST -fomit-frame-pointer 


EE_LIBS += $(EE_PROBJS) ../../../libcdvd/lib/libcdvd2.a -lgcc -lm -lc -lmc -lpad  -I. -lc -lstdc++ -lfileXio -lpatches
EE_OBJS  = $(ZLIB)/adler32.o $(ZLIB)/compress.o  $(ZLIB)/crc32.o  $(ZLIB)/gzio.o $(ZLIB)/uncompr.o $(ZLIB)/infcodes.o  $(ZLIB)/trees.o $(ZLIB)/deflate.o $(ZLIB)/inflate.o $(ZLIB)/infblock.o $(ZLIB)/inftrees.o $(ZLIB)/infutil.o $(ZLIB)/inffast.o $(ZLIB)/zutil.o  aio-fio.o $(UNZLIB)/explode.o $(UNZLIB)/unreduce.o $(UNZLIB)/unshrink.o $(UNZLIB)/unzip.o   
EE_OBJS += ./../InfoNES.o ./../K6502.o ./../InfoNES_Mapper.o ./../InfoNES_pAPU.o ./sjpcm.o ./libcdvd.o  ./hw.o  ./gs.o ./sjpcm_rpc.o ./fontmsx.o  ./gfxpipe/gfxpipe.o ./ps2print.o ./ps2input.o ./ps2init.o ./ps2gui.o ./ps2romselect.o ./InfoNES_System_ps2.o ./Reboot_ELF.o 
EE_BIN = InfoNES.elf


all: $(EE_BIN)
	ee-strip InfoNES.elf

./InfoNES_System_ps2.o: ./InfoNES_System_ps2.cpp
	$(CC) $(INCLUDES5) -I$(NEWLIB)/include -I./gfxpipe -I./ -I$(PS2SDK)/ee/include -I$(PS2SDK)/common/include -c -O6 ./InfoNES_System_ps2.cpp -o ./InfoNES_System_ps2.o 

./../InfoNES_pAPU.o: ./../InfoNES_pAPU.cpp
	$(CC) $(INCLUDES2) -c -O0 ./../InfoNES_pAPU.cpp -o ./../InfoNES_pAPU.o 

./../InfoNES_Mapper.o: ./../InfoNES_Mapper.cpp
	$(CC) -I../mapper $(INCLUDES4)  -c -O6 ./../InfoNES_Mapper.cpp -o ./../InfoNES_Mapper.o 

./../K6502.o: ./../K6502.cpp
	$(CC) $(INCLUDES) -c -O6 ./../K6502.cpp -o ./../K6502.o 

./../InfoNES.o: ./../InfoNES.cpp
	$(CC) $(INCLUDES3) -c -O6 ./../InfoNES.cpp -o ./../InfoNES.o 

sjpcm.s:
	bin2s sjpcm.irx sjpcm.s sjpcm_irx

libcdvd.s:
	bin2s cdvd.irx libcdvd.s libcdvd_irx

clean:
	rm -f $(.EE_OBJS ) ../*~ ../*/*~ core

cleanall:
	rm -f $(.OFILES) ../*~ ../*/*~ core InfoNES

release: clean all

tar:
	( cd ..; \
	tar cvf $(TARBALL).tar ./*; \
	gzip $(TARBALL).tar \
	)

install:
	install ./InfoNES /usr/local/bin


include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal
