###
##
# Makefile for SSNES Wii.
## Doesn't really work yet, beware :V
###
##

DEBUG = 0

CC = powerpc-eabi-gcc
CXX = powerpc-eabi-g++
LD = powerpc-eabi-ld

DOL_TARGET := ssnes.dol
ELF_TARGET := ssnes.elf

INCLUDE := -I. -I$(DEVKITPRO)/libogc/include
LIBDIRS := -L$(DEVKITPRO)/libogc/lib/wii -L.

MACHDEP := -DGEKKO -mrvl -mcpu=750 -meabi -mhard-float
CFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
CXXFLAGS += -Wall -std=gnu99 $(MACHDEP) $(INCLUDE)
LDFLAGS := $(MACHDEP)
LIBS := -lfat -lsnes -lwiiuse -logc -lbte -lfreetype

OBJ = wii/main.o fifo_buffer.o ssnes.o driver.o gfx/fonts.o file.o settings.o message.o rewind.o movie.o ups.o bps.o strl.o screenshot.o audio/hermite.o dynamic.o audio/utils.o conf/config_file.o wii/audio.o wii/input.o wii/video.o console/sgui.o console/list.o console/font.bmpobj

CFLAGS += -std=gnu99 -DSSNES_CONSOLE -DHAVE_CONFIGFILE=1 -DHAVE_GETOPT_LONG -DHAVE_FREETYPE -DPACKAGE_VERSION=\"0.9.4.1\" -Dmain=ssnes_main -Wno-char-subscripts

ifeq ($(DEBUG), 1)
   CFLAGS += -O0 -g
   CXXFLAGS += -O0 -g
else
   CLFAGS += -O3
   CXXFLAGS += -O3
endif

all: $(DOL_TARGET)

%.dol: %.elf
	elf2dol $< $@

$(ELF_TARGET): $(OBJ)
	$(CXX) -o $@ $(LDFLAGS) $(LIBDIRS) $(OBJ) $(LIBS)

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

%.bmpobj: %.bmp
	$(LD) -r -b binary -o $@ $<

clean:
	rm -f $(DOL_TARGET)
	rm -f $(ELF_TARGET)
	rm -f $(OBJ)

.PHONY: clean