#   SCE CONFIDENTIAL                                      
#   PLAYSTATION(R)3 Programmer Tool Runtime Library 192.001
#   Copyright (C) 2006 Sony Computer Entertainment Inc.   
#   All Rights Reserved.                                  

# CELL_GPU_TYPE (currently RSX is only one option)  
CELL_GPU_TYPE = RSX    
#CELL_PSGL_VERSION is debug, dpm or opt  
CELL_PSGL_VERSION = opt  

CELL_SDK ?= /usr/local/cell
CELL_MK_DIR ?= $(CELL_SDK)/samples/mk
include $(CELL_MK_DIR)/sdk.makedef.mk

MKFSELF_NPDRM = $(CELL_SDK)/host-win32/bin/make_fself_npdrm
MKPKG_NPDRM = $(CELL_SDK)/host-win32/bin/make_package_npdrm

PPU_OPTIMIZE_LV = -O2

PPU_SRCS		:= ./ps3/GenesisPlus.cpp ./ps3/ps3audio.cpp ./ps3/ps3video.cpp ./ps3/rom_list.cpp \
	./ps3/input/cellInput.cpp ./ps3/graphics/PSGLGraphics.cpp ./ps3/fileio/FileBrowser.cpp\
	./ps3/buffer.c ./ps3/resampler.c ./ps3/ini/ini.c ./ps3/ini/iniFile.cpp \
	genesis.c \
	vdp.c \
	state.c \
	render.c \
	system.c \
	unzip.c \
	fileio.c \
	gen_io.c \
	gen_input.c \
	loadrom.c \
	mem68k.c \
	memz80.c \
	membnk.c \
	./cart_hw/datel.c \
	./cart_hw/cart_hw.c \
	./cart_hw/eeprom.c \
	./cart_hw/ggenie.c \
	./cart_hw/sram.c \
	./cart_hw/svp/ssp16.c \
	./cart_hw/svp/svp.c \
	./ntsc/md_ntsc.c \
	./ntsc/sms_ntsc.c \
	./sound/Fir_Resampler.c \
	./sound/eq.c \
	./sound/sound.c \
	./sound/ym2612.c \
	./sound/sn76489.c \
	./z80/z80.c \
	./m68k/m68kcpu.c \
	./m68k/m68kops.c \
	./zlib/adler32.c \
	./zlib/compress.c \
	./zlib/crc32.c \
	./zlib/deflate.c \
	./zlib/gzio.c \
	./zlib/infblock.c \
	./zlib/infcodes.c \
	./zlib/inffast.c \
	./zlib/inflate.c \
	./zlib/inftrees.c \
	./zlib/infutil.c \
	./zlib/trees.c \
	./zlib/uncompr.c \
	./zlib/zutil.c 

PPU_TARGET		=	Genesisplus.elf

PPU_CPPFLAGS		+= -DWORDS_BIGENDIAN  -D'VERSION="Genesis Plus PS3"' -DPS3_SDK_3_41 -DPSGL

PPU_ASFLAGS		+=

PPU_LDFLAGS		= -Wl -finline-limit=5000

PPU_CXXFLAGS		+=	-I. -Isound -Icart_hw -Icart_hw/svp -Intsc -Iz80 -Im68k -I./ps3 -Izlib -Ips3/threads -Ips3/input -Ips3/ini
PPU_LIBS		    += $(CELL_TARGET_PATH)/ppu/lib/libgcm_cmd.a \
					$(CELL_TARGET_PATH)/ppu/lib/libgcm_sys_stub.a $(CELL_TARGET_PATH)/ppu/lib/libfs_stub.a
PPU_LDLIBS		+= 	-L. -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/opt -lPSGL -lPSGLcgc -lcgc -lgcm_cmd -lsysmodule_stub -lcgc -lresc_stub -lm -ldbgfont -lsysutil_stub -lio_stub -laudio_stub -lpthread

include $(CELL_MK_DIR)/sdk.target.mk

PPU_OBJS += $(VPSHADER_PPU_OBJS) $(FPSHADER_PPU_OBJS)

$(VPSHADER_PPU_OBJS): $(OBJS_DIR)/%.ppu.o : %.vpo
	@mkdir -p $(dir $(@))
	$(PPU_OBJCOPY)  -I binary -O elf64-powerpc-celloslv2 -B powerpc $< $@

$(FPSHADER_PPU_OBJS): $(OBJS_DIR)/%.ppu.o : %.fpo
	@mkdir -p $(dir $(@))
	$(PPU_OBJCOPY)  -I binary -O elf64-powerpc-celloslv2 -B powerpc $< $@
