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

MKFSELF_NPDRM = $(CELL_HOST_PATH)/bin/make_fself_npdrm
MKPKG_NPDRM = $(CELL_HOST_PATH)/bin/make_package_npdrm

PPU_SRCS		=	s9xhelpers.cpp cellgraphics.cpp cell.cpp cellpad.cpp bsx.cpp c4.cpp c4emu.cpp cheats.cpp cheats2.cpp clip.cpp conffile.cpp controls.cpp cpu.cpp cpuexec.cpp cpuops.cpp crosshairs.cpp debug.cpp dma.cpp dsp.cpp dsp1.cpp dsp2.cpp dsp3.cpp dsp4.cpp fxdbg.cpp fxemu.cpp fxinst.cpp gfx.cpp globals.cpp loadzip.cpp logger.cpp memmap.cpp movie.cpp netplay.cpp obc1.cpp ppu.cpp reader.cpp sa1.cpp sa1cpu.cpp screenshot.cpp sdd1.cpp sdd1emu.cpp server.cpp seta.cpp seta010.cpp seta011.cpp seta018.cpp snapshot.cpp snes9x.cpp spc7110.cpp srtc.cpp tile.cpp apu/apu.cpp apu/SNES_SPC.cpp apu/SNES_SPC_misc.cpp apu/SNES_SPC_state.cpp apu/SPC_DSP.cpp apu/SPC_Filter.cpp $(VPSHADER_PPU_OBJS) $(FPSHADER_PPU_OBJS)
PPU_TARGET		=	snes9x.ppu.elf

PPU_CXXFLAGS		+=	-I. -DPS3_SDK_3_41
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 $(CELL_TARGET_PATH)/ppu/lib/libl10n_stub.a
PPU_LDLIBS		+= 	-lio_stub -lm -lfs_stub -lsysutil_stub -ldbgfont_gcm -lsysmodule_stub  -laudio_stub

VPSHADER_SRCS	=	vpshader.cg
FPSHADER_SRCS	=	fpshader.cg

VPSHADER_PPU_OBJS = $(patsubst %.cg, $(OBJS_DIR)/%.ppu.o, $(VPSHADER_SRCS))
FPSHADER_PPU_OBJS = $(patsubst %.cg, $(OBJS_DIR)/%.ppu.o, $(FPSHADER_SRCS))

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 $< $@

.PHONY: pkg
pkg: $(PPU_TARGET) 
	$(MKFSELF_NPDRM) $(PPU_TARGET) pkg/USRDIR/EBOOT.BIN
	$(MKPKG_NPDRM) pkg/package.conf pkg

