#-------------------------------------------------------------------------------
# Clear the implicit built in rules
#-------------------------------------------------------------------------------
.SUFFIXES:
#-------------------------------------------------------------------------------
ifeq ($(strip $(PSL1GHT)),)
$(error "Please set PSL1GHT in your environment. export PSL1GHT=<path>")
endif
 
include $(PSL1GHT)/ppu_rules

include version.all

DEBUG			= 0
HAVE_LOGGER		= 0
HAVE_FILE_LOGGER	= 1

PC_DEVELOPMENT_IP_ADDRESS	= "192.168.1.7"
PC_DEVELOPMENT_UDP_PORT		= 3490

CONTENTID		= UP0001-SSNE10001_00-0000000000000001
APPID                   = SSNE10001
TITLE                   = Retroarch PSL1GHT
PACKAGE_BASENAME := retroarch_psl1ght

ELF_TARGET := retroarch_psl1ght.elf
SELF_TARGET := $(ELF_TARGET:.elf=.self)
CORE_PATH		= pkg/psl1ght/pkg/USRDIR/cores/CORE.SELF

INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib -Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
LIBDIRS += -L.

MACHDEP := -D__PSL1GHT__ -D__PS3__ -mcpu=cell
CFLAGS += -Wall $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP)
LIBS := -lretro_psl1ght -laudio -lrsx -lgcm_sys -lnet -lio -lsysutil -lsysmodule -lm -ljpgdec -lpngdec -llv2 -lnet -lnetctl -lsysfs

# system platform
system_platform = unix
ifeq ($(shell uname -a),)
EXE_EXT = .exe
   system_platform = win
else ifneq ($(findstring Darwin,$(shell uname -a)),)
   system_platform = osx
else ifneq ($(findstring MINGW,$(shell uname -a)),)
   system_platform = win
endif

PKG_SCRIPT		= tools/ps3/ps3py/pkg.py
ifeq ($(shell uname), Linux)
GIT			= git
else
GIT			= git.exe
endif

OBJ = griffin/griffin.o

ifeq ($(HAVE_LOGGER), 1)
CFLAGS		+= -DHAVE_LOGGER
endif

ifeq ($(HAVE_FILE_LOGGER), 1)
CFLAGS		+= -DHAVE_FILE_LOGGER
endif

SHARED_FLAGS :=

SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
SHARED_FLAGS += -DHAVE_MENU \
		-DHAVE_CONFIGFILE \
		-DHAVE_PATCH \
		-DHAVE_CHEATS \
		-DRARCH_CONSOLE \
		-DHAVE_OVERLAY \
		-DHAVE_HEADSET \
		-DHAVE_CG \
		-DHAVE_CG_RUNTIME_COMPILER \
		-DHAVE_SYSMODULES \
		-DHAVE_SYSUTILS \
		-DHAVE_RARCH_EXEC \
		-DHAVE_MOUSE \
		-DHAVE_ZLIB \
		-DHAVE_RPNG \
		-DHAVE_GRIFFIN=1 \
		-DHAVE_NETWORKING=1 \
		-DHAVE_SOCKET_LEGACY=1 \
		-DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" \
		-DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) \
		-Wno-char-subscripts \
		-DHAVE_CC_RESAMPLER \
		-DRARCH_INTERNAL \
		-DHAVE_SCREENSHOTS \
		-DHAVE_REWIND \
		-DHAVE_MULTIMAN \
		-DHAVE_RGUI \
		-DHAVE_CORE_INFO_CACHE
CFLAGS += -std=gnu99 $(SHARED_FLAGS)
CXXFLAGS += $(SHARED_FLAGS)

ifeq ($(DEBUG), 1)
   CFLAGS += -O0 -g
else
   CFLAGS += -O3 -g
   CXXFLAGS += -03 -g
endif

all: $(SELF_TARGET)

$(ELF_TARGET): $(OBJ)
	$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS)

create-core: $(SELF_TARGET)
	cp $(SELF_TARGET) $(CORE_PATH) 

pkg: create-core
	$(PKG) --contentid $(CONTENTID) pkg/psl1ght/pkg/ $(PACKAGE_BASENAME).pkg
#	cp $(PACKAGE_BASENAME).pkg $(PACKAGE_BASENAME).gnpdrm.pkg
#	$(PACKAGE_FINALIZE) $(PACKAGE_BASENAME).gnpdrm.pkg

clean:
	rm -f $(ELF_TARGET)
	rm -f $(OBJ)

.PHONY: clean