### ## # Makefile for RetroArch Wii. ## DEBUG = 0 HAVE_LOGGER = 0 HAVE_FILE_LOGGER = 0 EXTERNAL_LIBOGC ?= 0 GX_PTHREAD_LEGACY ?= 1 # 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 PC_DEVELOPMENT_IP_ADDRESS = 255.255.255.255 PC_DEVELOPMENT_UDP_PORT = 3490 CC = $(DEVKITPPC)/bin/powerpc-eabi-gcc$(EXE_EXT) CXX = $(DEVKITPPC)/bin/powerpc-eabi-g++$(EXE_EXT) LD = $(DEVKITPPC)/bin/powerpc-eabi-ld$(EXE_EXT) ELF2DOL = $(DEVKITPPC)/bin/elf2dol$(EXE_EXT) # Check whether ELF2DOL executable exists # (path has changed in more recent toolchains) ifeq ("$(wildcard $(ELF2DOL))","") ELF2DOL = $(DEVKITPRO)/tools/bin/elf2dol$(EXE_EXT) endif DOL_TARGET := retroarch-salamander_wii.dol ELF_TARGET := retroarch-salamander_wii.elf INCLUDE := -I. -Ilibretro-common/include -Ilibretro-common/include/compat/zlib ifeq ($(EXTERNAL_LIBOGC), 1) INCLUDE += -I$(DEVKITPRO)/libogc/include LIBDIRS := -L$(DEVKITPRO)/libogc/lib/wii -L. else INCLUDE += -Iwii/libogc/include LIBDIRS := -Lwii/libogc/libs/wii -L. endif ifeq ($(GX_PTHREAD_LEGACY), 1) CFLAGS += -DGX_PTHREAD_LEGACY CXXFLAGS += -DGX_PTHREAD_LEGACY endif MACHDEP := -DGEKKO -DHW_RVL -mrvl -mcpu=750 -meabi -mhard-float CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE) LDFLAGS := $(MACHDEP) -Wl,-Map,$(notdir $(ELF_TARGET)).map ifeq ($(EXTERNAL_LIBOGC), 1) LIBS := -lfat endif LIBS += -lwiiuse -logc -lbte APP_BOOTER_DIR = wii/app_booter OBJ = frontend/frontend_salamander.o \ frontend/frontend_driver.o \ frontend/drivers/platform_gx.o \ frontend/drivers/platform_wii.o \ libretro-common/file/file_path.o \ libretro-common/file/file_path_io.o \ libretro-common/hash/lrc_hash.o \ libretro-common/string/stdstring.o \ libretro-common/lists/string_list.o \ libretro-common/lists/dir_list.o \ libretro-common/streams/file_stream.o \ libretro-common/vfs/vfs_implementation.o \ libretro-common/file/retro_dirent.o \ libretro-common/encodings/encoding_utf.o \ libretro-common/compat/compat_strl.o \ libretro-common/compat/compat_strldup.o \ libretro-common/compat/compat_strcasestr.o \ libretro-common/compat/fopen_utf8.o \ libretro-common/file/config_file.o \ libretro-common/time/rtime.o \ verbosity.o \ $(APP_BOOTER_DIR)/app_booter.binobj ifeq ($(EXTERNAL_LIBOGC), 1) else OBJ += wii/libogc/libfat/cache.o \ wii/libogc/libfat/directory.o \ wii/libogc/libfat/disc.o \ wii/libogc/libfat/fatdir.o \ wii/libogc/libfat/fatfile.o \ wii/libogc/libfat/file_allocation_table.o \ wii/libogc/libfat/filetime.o \ wii/libogc/libfat/libfat.o \ wii/libogc/libfat/lock.o \ wii/libogc/libfat/partition.o endif ifeq ($(HAVE_LOGGER), 1) CFLAGS += -DHAVE_LOGGER CFLAGS += -DPC_DEVELOPMENT_IP_ADDRESS=\"$(PC_DEVELOPMENT_IP_ADDRESS)\" -DPC_DEVELOPMENT_UDP_PORT=$(PC_DEVELOPMENT_UDP_PORT) OBJ += network/net_logger.o \ libretro-common/net/net_compat.o \ libretro-common/net/net_socket.o endif ifeq ($(HAVE_FILE_LOGGER), 1) CFLAGS += -DHAVE_FILE_LOGGER endif CFLAGS += -std=gnu99 -DIS_SALAMANDER -DRARCH_CONSOLE -DHAVE_RARCH_EXEC -DGEKKO -Wno-char-subscripts ifeq ($(DEBUG), 1) CFLAGS += -O0 -g else CFLAGS += -O3 endif ifeq ($(USBGECKO), 1) LIBS += -ldb CFLAGS += -DUSBGECKO endif all: $(DOL_TARGET) %.dol: %.elf $(ELF2DOL) $< $@ $(ELF_TARGET): $(OBJ) $(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS) %.o: %.c $(CC) $(CFLAGS) -c -o $@ $< %.binobj: %.bin $(LD) -r -b binary -o $@ $< $(APP_BOOTER_DIR)/app_booter.bin: export EXTERNAL_LIBOGC $(MAKE) -C $(APP_BOOTER_DIR) pkg: all cp -r $(DOL_TARGET) pkg/wii/boot.dol clean: rm -f $(DOL_TARGET) rm -f $(ELF_TARGET) rm -f $(OBJ) $(MAKE) -C $(APP_BOOTER_DIR) clean .PHONY: clean