1#-------------------------------------------------------------------------------
2# Clear the implicit built in rules
3#-------------------------------------------------------------------------------
4.SUFFIXES:
5#-------------------------------------------------------------------------------
6ifeq ($(strip $(PSL1GHT)),)
7$(error "Please set PSL1GHT in your environment. export PSL1GHT=<path>")
8endif
9
10include $(PSL1GHT)/ppu_rules
11
12include version.all
13
14DEBUG			= 0
15HAVE_LOGGER		= 0
16HAVE_FILE_LOGGER	= 1
17
18PC_DEVELOPMENT_IP_ADDRESS	= "192.168.1.7"
19PC_DEVELOPMENT_UDP_PORT		= 3490
20
21CONTENTID		= UP0001-SSNE10001_00-0000000000000001
22APPID                   = SSNE10001
23TITLE                   = Retroarch PSL1GHT
24PACKAGE_BASENAME := retroarch_psl1ght
25
26ELF_TARGET := retroarch_psl1ght_salamander.elf
27ELF_TARGET_NONSTRIPPED := retroarch_psl1ght_salamander_nonstripped.elf
28EBOOT_PATH		= pkg/psl1ght/pkg/USRDIR/EBOOT.BIN
29
30INCLUDE += -I. -Ips3/gcmgl/include/export -Ips3/include -Ideps -Ideps/stb -Ilibretro-common/include/compat/zlib \
31			-Ilibretro-common/include $(LIBPSL1GHT_INC) -Iinclude -Idefines
32LIBDIRS += -L.
33
34MACHDEP := -D__PS3__ -D__PSL1GHT__ -mcpu=cell -mhard-float -fmodulo-sched -ffunction-sections -fdata-sections
35CFLAGS += -Wall $(MACHDEP) $(INCLUDE)
36LDFLAGS := $(MACHDEP)
37LIBS :=  -lgcm_sys -lrsx -lsysutil -lio -lnet -lsysmodule -lrt -llv2 -lm -lsysfs
38
39# system platform
40system_platform = unix
41ifeq ($(shell uname -a),)
42EXE_EXT = .exe
43   system_platform = win
44else ifneq ($(findstring Darwin,$(shell uname -a)),)
45   system_platform = osx
46else ifneq ($(findstring MINGW,$(shell uname -a)),)
47   system_platform = win
48endif
49
50PKG_SCRIPT		= tools/ps3/ps3py/pkg.py
51ifeq ($(shell uname), Linux)
52GIT			= git
53else
54GIT			= git.exe
55endif
56
57OBJ		= frontend/frontend_salamander.o \
58				  frontend/frontend_driver.o \
59				  frontend/drivers/platform_ps3.o \
60				  libretro-common/file/file_path.o \
61				  libretro-common/file/file_path_io.o \
62				  libretro-common/lists/dir_list.o \
63				  libretro-common/lists/string_list.o \
64				  libretro-common/file/retro_dirent.o \
65				  libretro-common/hash/lrc_hash.o \
66				  libretro-common/string/stdstring.o \
67				  libretro-common/encodings/encoding_utf.o \
68				  libretro-common/compat/compat_strl.o \
69				  libretro-common/compat/compat_strcasestr.o \
70				  libretro-common/compat/fopen_utf8.o \
71				  libretro-common/streams/file_stream.o \
72				  libretro-common/vfs/vfs_implementation.o \
73				  libretro-common/file/config_file.o \
74				  libretro-common/time/rtime.o \
75				  verbosity.o
76
77ifeq ($(HAVE_LOGGER), 1)
78CFLAGS		+= -DHAVE_LOGGER
79endif
80
81ifeq ($(HAVE_FILE_LOGGER), 1)
82CFLAGS		+= -DHAVE_FILE_LOGGER
83endif
84
85SHARED_FLAGS :=
86
87SHARED_FLAGS += -DHAVE_VIDEO_LAYOUT
88SHARED_FLAGS += -DHAVE_MENU -DHAVE_CONFIGFILE -DRARCH_CONSOLE -DHAVE_OVERLAY -DHAVE_HEADSET -DHAVE_CG -DHAVE_CG_RUNTIME_COMPILER -DHAVE_GCMGL -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 -DHAVE_MULTIMAN -DHAVE_RGUI -DIS_SALAMANDER
89CFLAGS += -std=gnu99 $(SHARED_FLAGS)
90CXXFLAGS += $(SHARED_FLAGS)
91
92ifeq ($(DEBUG), 1)
93   CFLAGS += -O0 -g
94else
95   CFLAGS += -O3 -g
96   CXXFLAGS += -03 -g
97endif
98
99all: create-salamander
100
101$(ELF_TARGET_NONSTRIPPED): $(OBJ)
102	$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS)
103
104$(ELF_TARGET): $(ELF_TARGET_NONSTRIPPED)
105	$(STRIP) $< -o $@
106	$(SPRX) $@
107
108create-salamander: $(ELF_TARGET)
109	$(SELF_NPDRM) $(ELF_TARGET) $(EBOOT_PATH) $(CONTENTID)
110
111pkg: create-salamander
112	$(PKG) --contentid $(CONTENTID) pkg/psl1ght/pkg/ $(PACKAGE_BASENAME).pkg
113#	cp $(PACKAGE_BASENAME).pkg $(PACKAGE_BASENAME).gnpdrm.pkg
114#	$(PACKAGE_FINALIZE) $(PACKAGE_BASENAME).gnpdrm.pkg
115
116clean:
117	rm -f $(ELF_TARGET)
118	rm -f $(OBJ)
119
120.PHONY: clean
121