TARGET := retroarch_wiiu RPX_BUILD = 0 DEBUG = 0 GRIFFIN_BUILD = 0 WHOLE_ARCHIVE_LINK = 0 PC_DEVELOPMENT_IP_ADDRESS = PC_DEVELOPMENT_TCP_PORT = OBJ := OBJ += wiiu/system/memory.o OBJ += wiiu/system/exception_handler.o OBJ += wiiu/fs/sd_fat_devoptab.o OBJ += wiiu/fs/fs_utils.o OBJ += wiiu/tex_shader.o ifneq ($(RPX_BUILD), 1) OBJ += wiiu/system/dynamic.o OBJ += wiiu/system/dyn_stubs.o endif DEFINES := ifeq ($(GRIFFIN_BUILD), 1) OBJ += griffin/griffin.o DEFINES += -DHAVE_GRIFFIN=1 -DHAVE_MENU -DHAVE_RGUI -DHAVE_LIBRETRODB DEFINES += -DHAVE_ZLIB -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_RTGA -DWANT_ZLIB # DEFINES += -DHAVE_XMB -DHAVE_MATERIALUI else HAVE_MENU_COMMON = 1 HAVE_RTGA = 1 HAVE_RPNG = 1 HAVE_RJPEG = 1 HAVE_RBMP = 1 HAVE_RGUI = 1 HAVE_ZLIB = 1 HAVE_7ZIP = 1 HAVE_BUILTINZLIB = 1 HAVE_LIBRETRODB = 1 HAVE_ZARCH = 0 HAVE_MATERIALUI = 0 HAVE_XMB = 0 include Makefile.common BLACKLIST := BLACKLIST += input/input_overlay.o BLACKLIST += tasks/task_overlay.o OBJ := $(filter-out $(BLACKLIST),$(OBJ)) OBJ += gfx/drivers/wiiu_gfx.o # OBJ += gfx/drivers_font/wiiu_font.o # OBJ += menu/drivers_display/menu_display_wiiu.o OBJ += input/drivers/wiiu_input.o OBJ += input/drivers_joypad/wiiu_joypad.o OBJ += audio/drivers/wiiu_audio.o OBJ += frontend/drivers/platform_wiiu.o OBJ += gfx/video_filters/2xsai.o OBJ += gfx/video_filters/super2xsai.o OBJ += gfx/video_filters/supereagle.o OBJ += gfx/video_filters/2xbr.o OBJ += gfx/video_filters/darken.o OBJ += gfx/video_filters/epx.o OBJ += gfx/video_filters/scale2x.o OBJ += gfx/video_filters/blargg_ntsc_snes.o OBJ += gfx/video_filters/lq2x.o OBJ += gfx/video_filters/phosphor2x.o OBJ += audio/audio_filters/echo.o OBJ += audio/audio_filters/eq.o OBJ += audio/audio_filters/chorus.o OBJ += audio/audio_filters/iir.o OBJ += audio/audio_filters/panning.o OBJ += audio/audio_filters/phaser.o OBJ += audio/audio_filters/reverb.o OBJ += audio/audio_filters/wahwah.o endif ifeq ($(strip $(DEVKITPPC)),) $(error "Please set DEVKITPPC in your environment. export DEVKITPPC=devkitPPC") endif ifeq ($(strip $(DEVKITPRO)),) $(error "Please set DEVKITPRO in your environment. export DEVKITPRO=devkitPRO") endif ifeq ($(strip $(WUT_ROOT)),) $(error "Please set WUT_ROOT in your environment. export WUT_ROOT=WUT") endif export PATH := $(PATH):$(DEVKITPPC)/bin PREFIX := powerpc-eabi- CC := $(PREFIX)gcc CXX := $(PREFIX)g++ AS := $(PREFIX)as AR := $(PREFIX)ar OBJCOPY := $(PREFIX)objcopy STRIP := $(PREFIX)strip NM := $(PREFIX)nm LD := $(CXX) ELF2RPL := $(WUT_ROOT)/tools/bin/elf2rpl INCDIRS := -I. -Ideps/zlib -Ideps/7zip -Ilibretro-common/include -Iwiiu -I$(WUT_ROOT)/include LIBDIRS := -L. CFLAGS := -mrvl -mcpu=750 -meabi -mhard-float LDFLAGS := ifeq ($(DEBUG), 1) CFLAGS += -O0 -g else CFLAGS += -O3 endif LDFLAGS := $(CFLAGS) ASFLAGS := $(CFLAGS) -mregnames $(INCDIRS) CFLAGS += -ffast-math -Werror=implicit-function-declaration #CFLAGS += -fomit-frame-pointer -mword-relocations #CFLAGS += -Wall CFLAGS += -Dstatic_assert=_Static_assert CFLAGS += -DWIIU -DMSB_FIRST CFLAGS += -DHAVE_MAIN CFLAGS += -DRARCH_INTERNAL -DRARCH_CONSOLE -DSINC_LOWEST_QUALITY CFLAGS += -DHAVE_FILTERS_BUILTIN $(DEFINES) ifneq ($(PC_DEVELOPMENT_IP_ADDRESS),) CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS='"$(PC_DEVELOPMENT_IP_ADDRESS)"' endif ifneq ($(PC_DEVELOPMENT_TCP_PORT),) CFLAGS += -DPC_DEVELOPMENT_TCP_PORT=$(PC_DEVELOPMENT_TCP_PORT) endif ifeq ($(WHOLE_ARCHIVE_LINK), 1) WHOLE_START := -Wl,--whole-archive WHOLE_END := -Wl,--no-whole-archive endif CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions ifeq ($(RPX_BUILD), 1) CFLAGS += -fno-builtin -ffreestanding -DRPX_BUILD LIBDIRS += -L$(WUT_ROOT)/lib -L$(DEVKITPPC)/lib LDFLAGS += -pie -fPIE LDFLAGS += -z common-page-size=64 -z max-page-size=64 LDFLAGS += -lcoreinit -lgx2 -lnsysnet -lproc_ui -lsndcore2 -lsysapp -lvpad LDFLAGS += -T $(WUT_ROOT)/rules/rpl.ld # LDFLAGS += -T wiiu/link_rpl.ld LDFLAGS += -nostartfiles else LDFLAGS += -T wiiu/link_elf.ld endif LDFLAGS += -Wl,--gc-sections LIBS := $(WHOLE_START) -lretro_wiiu $(WHOLE_END) -lm ifeq ($(RPX_BUILD), 1) all: $(TARGET).elf $(TARGET).rpx else all: $(TARGET).elf endif %.o: %.cpp $(CXX) -c -o $@ $< $(CXXFLAGS) $(INCDIRS) %.o: %.c $(CC) -c -o $@ $< $(CFLAGS) $(INCDIRS) %.o: %.s $(CC) -c -o $@ $< $(ASFLAGS) %.o: %.S $(CC) -c -o $@ $< $(ASFLAGS) %.a: $(AR) -rc $@ $^ $(TARGET).elf: $(OBJ) libretro_wiiu.a wiiu/link_elf.ld wiiu/link_rpl.ld $(LD) $(OBJ) $(LDFLAGS) $(LIBDIRS) $(LIBS) -o $@ %.rpx: %.elf $(ELF2RPL) $(notdir $<) $@ clean: rm -f $(OBJ) rm -f $(TARGET).elf rm -f $(TARGET).rpx .PHONY: clean all