baseDir=../../
nesPath=$(baseDir)nes/
blarggPath=$(nesPath)blargg/
emuPath=$(baseDir)emu/
sdlPath=$(baseDir)api_specific/sdl/
ps2sdlPath=$(baseDir)api_specific/ps2/
mapPath=$(baseDir)mapperSrc/

PreProcessor = -DnoSoundPlz -DPS2dev -DbinaryApuReflector -DstaticMapper -DBLARGG_COMPILER_HAS_BOOL -Dno__Int

#fix these
devPath= C:/msys/1.0/home/Administrator/ps2sdk-ports/sdl/
INCDIRS= -I$(devPath)include/ -I. -I$(PS2SDK)/ee/include/ -I$(PS2SDK)/iop/include/ -I$(PS2SDK)/common/include/
LIBDIRS= -L$(devPath)lib/ -L$(PS2SDK)/ee/lib
LIBFILES= -lSDL -lSDLmain  -ldebug -lpad -lm -lc -lsyscall -lkernel  -lc 
ASFLAGS += -G0
CXXFLAGS += -D_EE -O2 -G0 -Wall
CFLAGS += -D_EE -O2 -G0 -Wall
OWNER=bin
GROUP=bin
CTAGS= ctags -x >tags
CFLAGS= $(PreProcessor) $(INCDIRS) -w
LDFLAGS= -s -w $(LIBDIRS) $(LIBFILES)
CC = ee-g++
CC2 = ee-gcc
GET=co

nesFiles = apu.cpp cpu.cpp cpu2.cpp nes.cpp ppu.cpp ppuRegs.cpp ppuRender.cpp registers.cpp runNes.cpp
blarggFiles = Blip_Buffer.cpp Nes_Apu.cpp Nes_Apu_Reflector.cpp Nes_Oscs.cpp
emuFiles = emuFileHandling.cpp emuPalette.cpp emuMapper.cpp nestenMappers.cpp emuQuickStates.cpp
#sdlFiles =	gui.cpp input.cpp main.cpp sdlFileHandling.cpp sdlFrames.cpp \
#		sdlMapper.cpp sdlQuickStates.cpp sound.cpp video.cpp

#ps2
sdlFiles =	gui.cpp input.cpp main.cpp sdlFrames.cpp \
		sdlMapper.cpp  sound.cpp video.cpp
ps2sdlFiles = ps2FileHandling.cpp ps2QuickStates.cpp

SRCS1 = $(addprefix $(nesPath), $(nesFiles))
#SRCS2 = $(addprefix $(blarggPath),$(blarggFiles))
SRCS3 = $(addprefix $(emuPath),$(emuFiles))
SRCS4 = $(addprefix $(sdlPath),$(sdlFiles))
SRCS5 = $(addprefix $(ps2sdlPath),$(ps2sdlFiles))

#mappers
include ines.in
mapFiles = $(OBJS_Map)
SRCSmap = $(addprefix $(mapPath), $(mapFiles))

SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(SRCS5)  $(SRCS4) 
SRCS_2= $(SRCSmap) 
#$(SRCSmap:.c=.cpp) 

#OBJS= $(SRCS)
OBJS= $(SRCS:.cpp=.o) $(SRCS_2:.c=.o)

SHAR=shar
MANDIR=/usr/man/manl/main.l
BINDIR=/usr/local/bin
DEPEND= makedepend $(CFLAGS)
all:    main
 
# To get things out of the revision control system
$(SRCS):
%.o : %.cpp
	$(CC) -c $(CFLAGS) $< -o $@
"%.o : %.c"
	$(CC2) -c $(CFLAGS) $< -o $@"

# To make an executable
main: $(OBJS)
	$(CC) $(LDFLAGS) -o $@ $(OBJS)
 
# To install things in the right place
install: main main.man
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 755 main $(BINDIR)
	$(INSTALL) -c -o $(OWNER) -g $(GROUP) -m 644 main.man $(MANDIR)
 
# where are functions/procedures?
tags: $(SRCS)
	$(CTAGS) $(SRCS)
 
# what have I done wrong?
lint: $(SRCS)
	lint $(CFLAGS) $(SRCS)
 
# what are the source dependencies
depend: $(SRCS)
	$(DEPEND) $(SRCS)
 
# to make a shar distribution
shar:   clean
	$(SHAR) README Makefile main.man $(SRCS) >shar
 
all: $(EE_BIN)

# clean out the dross
clean:
	-rm main *~ *.o *.bak core tags shar
	
include $(PS2SDK)/samples/Makefile.pref
include $(PS2SDK)/samples/Makefile.eeglobal