#
# Atari 2600 / Stella port on PSP 
#
#
TARGET = gp2x2600.gpe
SDL_CONFIG = $(GP2XDEV)/bin/sdl-config
OBJS = gp2x_psp.o cpulcd.o \
psp_main.o \
psp_sdl.o \
psp_font.o \
psp_kbd.o \
psp_menu.o \
psp_danzeff.o \
Atari.o  \
psp_menu_set.o \
psp_menu_help.o \
psp_menu_kbd.o \
psp_fmgr.o \
emucore/Joystick.o \
emucore/TIA.o \
emucore/Settings.o \
emucore/CartE0.o \
emucore/Paddles.o \
emucore/CartF8.o \
emucore/Props.o \
emucore/Switches.o \
emucore/Event.o \
emucore/Random.o \
emucore/Device.o \
emucore/Driving.o \
emucore/Cart2K.o \
emucore/Keyboard.o \
emucore/Console.o \
emucore/CartF6.o \
emucore/M6532.o \
emucore/PropsSet.o \
emucore/CartUA.o \
emucore/CartMC.o \
emucore/CartFE.o \
emucore/CartMB.o \
emucore/CartF8SC.o \
emucore/CartF6SC.o \
emucore/Cart.o \
emucore/CartF4SC.o \
emucore/CartF4.o \
emucore/CartE7.o \
emucore/CartCV.o \
emucore/FSNode.o \
emucore/FrameBuffer.o \
emucore/MD5.o \
emucore/MediaSrc.o \
emucore/MediaFactory.o \
emucore/CartAR.o \
emucore/CartFASC.o \
emucore/Cart4K.o \
emucore/Control.o \
emucore/Cart3F.o \
emucore/Cart3E.o \
emucore/Booster.o \
emucore/CartDPC.o \
emucore/Deserializer.o \
emucore/EventHandler.o \
emucore/EventStreamer.o \
emucore/Serializer.o \
emucore/M6502.o \
emucore/M6502Hi.o \
emucore/M6502Low.o \
emucore/NullDev.o \
emucore/System.o \
emucore/OSystem.o \
\
emucore/unzip.o \
emucore/TIASnd.o \
\
common/FrameBufferSoft.o \
common/mainSDL.o \
common/SoundSDL.o \
\
psp/OSystemPSP.o \
psp/SettingsPSP.o \
psp/FSNodePSP.o \


DEFAULT_CFLAGS = $(shell $(SDL_CONFIG) --cflags)

MORE_CFLAGS = -I. -Ilibzip -DGP2X_MODE -static -I$(GP2XDEV)/include -I$(GP2XDEV)/include/SDL \
 -Iemucore -Icommon -Ipsp -DPSP -DBSPF_PSP -DSOUND_SUPPORT -DGP2X_MMU_HACK -DNO_STDIO_REDIRECT

CFLAGS = $(DEFAULT_CFLAGS) $(MORE_CFLAGS) -O3 -Wall -fsigned-char \
    -funroll-loops -ffast-math -fomit-frame-pointer -fno-strength-reduce -finline-functions
CXXFLAGS = $(DEFAULT_CFLAGS) $(MORE_CFLAGS) -fno-exceptions -fno-rtti

LIBS += -L$(GP2XDEV)/lib -lSDL_image -lSDL_fast -lpng -ljpeg -lz -lm -lpthread -lstdc++

.c.o:
	open2x-gcc $(CFLAGS) -c $< -o $@

.cpp.o:
	open2x-g++ $(CFLAGS) -c $< -o $@

$(TARGET): $(OBJS)
	open2x-gcc $(CFLAGS) $(OBJS) $(LIBS) -o $(TARGET)

install: $(TARGET)
	cp $< /media/usbdisk/game/2600/

clean:
	rm -f $(OBJS) $(TARGET)

ctags: 
	ctags *[ch] emucore/*[chp] common/*[chp]
