### ## # Makefile for SSNES. Somewhat generic and avoids using the odd SDK examples. ## ### ## DEBUG=0 CELL_BUILD_TOOLS = GCC ## Platform detection from nall/Makefile. Only two applicable hosts for PS3 SDK. ifeq ($(platform),) uname := $(shell uname -a) ifeq ($(uname),) platform := win else platform := linux endif endif CELL_SDK := /usr/local/cell ifeq ($(platform),win) HOST_DIR := host-win32 else HOST_DIR := host-linux endif ifeq ($(CELL_BUILD_TOOLS),SNC) CC = $(CELL_SDK)/sn/ps3ppusnc CXX = $(CC) LD = $(CELL_SDK)/sn/ps3ppuld else CC = $(CELL_SDK)/$(HOST_DIR)/ppu/bin/ppu-lv2-gcc CXX = $(CELL_SDK)/$(HOST_DIR)/ppu/bin/ppu-lv2-g++ LD = $(CELL_SDK)/$(HOST_DIR)/ppu/bin/ppu-lv2-g++ endif STRIP = $(CELL_SDK)/$(HOST_DIR)/ppu/bin/ppu-lv2-strip PPU_TARGET := ssnes.elf LDDIRS = -L. -L$(CELL_SDK)/target/ppu/lib/PSGL/RSX/ultra-opt INCDIRS = -I. -Icommon MAKE_FSELF_NPDRM = $(CELL_SDK)/$(HOST_DIR)/bin/make_fself_npdrm MAKE_PACKAGE_NPDRM = $(CELL_SDK)/$(HOST_DIR)/bin/make_package_npdrm OBJ = ps3/buffer.o ps3/ps3_audio.o ps3/resampler.o ps3/ps3_input.o ps3/pad_input.o getopt.o ssnes.o driver.o file.o settings.o message.o rewind.o movie.o gfx/gfx_common.o ps3/ps3_video_psgl.o gfx/shader_cg.o gfx/snes_state.o ups.o bps.o strl.o screenshot.o audio/hermite.o dynamic.o ps3/main.o audio/utils.o LIBS = -ldbgfont -lPSGL -lgcm_cmd -lgcm_sys_stub -lsnes -lresc_stub -lm -lio_stub -lfs_stub -lsysutil_stub -lsysmodule_stub -laudio_stub -lnet_stub -lpthread DEFINES = -DHAVE_OPENGL=1 -DHAVE_CG=1 -DHAVE_FBO=1 -D__CELLOS_LV2__ -DPACKAGE_VERSION=\"0.9.2\" -Dmain=ssnes_main -mno-sn-ld # Wrap it up, son! #LIBS += -Wl,-wrap,fopen -Wl,-wrap,fclose -Wl,-wrap,fwrite -Wl,-wrap,fread -Wl,-wrap,fseek -Wl,-wrap,ftell -Wl,-wrap,fflush -Wl,-wrap,rewind -Wl,-wrap,fgetpos -Wl,-wrap,fsetpos -Wl,-wrap,setbuf -Wl,-wrap,setvbuf -Wl,-wrap,ungetc -Wl,-wrap,feof ifeq ($(DEBUG),1) PPU_OPTIMIZE_LV := -O0 -g else PPU_OPTIMIZE_LV := -O3 endif ## Use this for new SDK! CFLAGS = $(PPU_OPTIMIZE_LV) $(DEFINES) CXXFLAGS = $(PPU_OPTIMIZE_LV) $(DEFINES) #CFLAGS = -Wall $(PPU_OPTIMIZE_LV) -std=gnu99 -DPS3_SDK_3_41 -DSSNES_DEBUG #CFLAGS += -fprofile-generate --coverage -g #CXXFLAGS += -fprofile-generate --coverage -g #LDFLAGS += -fprofile-generate --coverage -g #CFLAGS += -pg -g #CXXFLAGS += -pg -g #LDFLAGS += -pg -g -lprof_stub #CFLAGS += -fprofile-use #CXXFLAGS += -fprofile-use #LDFLAGS += -fprofile-use #CFLAGS = -Wall $(PPU_OPTIMIZE_LV) -std=gnu99 all: pkg $(PPU_TARGET): $(OBJ) $(LD) -o $@ $(OBJ) $(LDFLAGS) $(LDDIRS) $(LIBS) $(STRIP) $(PPU_TARGET) %.o: %.c config.h $(CC) $(INCDIRS) $(CFLAGS) -c -o $@ $< %.o: %.cpp config.h $(CXX) $(INCDIRS) $(CXXFLAGS) -c -o $@ $< pkg: $(PPU_TARGET) $(MAKE_FSELF_NPDRM) $(PPU_TARGET) ps3/pkg/USRDIR/EBOOT.BIN $(MAKE_PACKAGE_NPDRM) ps3/pkg/package.conf ps3/pkg clean: rm -f *.o rm -f hqflt/*.o rm -f hqflt/snes_ntsc/*.o rm -f $(PPU_TARGET) rm -f *.pkg rm -rf ps3/*.o .PHONY: all clean pkg