mirror of
https://github.com/libretro/RetroArch.git
synced 2024-12-17 22:29:27 +00:00
418787e6ca
+ static constructors support).
198 lines
4.9 KiB
Makefile
198 lines
4.9 KiB
Makefile
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=<path to>devkitPPC")
|
|
endif
|
|
ifeq ($(strip $(DEVKITPRO)),)
|
|
$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPRO")
|
|
endif
|
|
|
|
ifeq ($(strip $(WUT_ROOT)),)
|
|
$(error "Please set WUT_ROOT in your environment. export WUT_ROOT=<path to>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,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc
|
|
LDFLAGS += -Wl,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r
|
|
LDFLAGS += -Wl,-wrap,_malloc_usable_size_r,-wrap,valloc,-wrap,_valloc_r,-wrap,_pvalloc_r,--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
|