RARCH_VERSION		= "0.9.9.3"

DEBUG = 0

CC = xenon-gcc
CXX = xenon-g++
OBJCOPY = xenon-objcopy
STRIP = xenon-strip

PPU_TARGET := retroarch-libxenon.elf
PPU_TARGET_ADJUSTED := retroarch-libxenon.elf32

LDDIRS = -L. -L$(DEVKITXENON)/usr/lib -L$(DEVKITXENON)/xenon/lib/32
INCDIRS = -I. -I$(DEVKITXENON)/usr/include

OBJ = griffin/griffin.o

LIBS = -lretro_xenon360 -lxenon -lm -lc
DEFINES = -std=gnu99 -DRARCH_CONSOLE -DHAVE_THREADS -DHAVE_GETOPT_LONG=1 -DHAVE_GRIFFIN -DRARCH_INTERNAL
DEFINES += -maltivec -mhard-float -m32 -mpowerpc64 -mcpu=cell -mtune=cell -fno-pic -g -Wall -DXENON $(INCDIRS) -Wno-char-subscripts
DEFINES += -u read -u _start -u exc_base

ifeq ($(DEBUG), 1)
   OPTIMIZE_LV	:= -O0 -g
else
   OPTIMIZE_LV	:= -O3
endif

all: $(PPU_TARGET_ADJUSTED)

CFLAGS := $(OPTIMIZE_LV) $(DEFINES)

LDFLAGS := -m32 -n -T $(DEVKITXENON)/app.lds

$(PPU_TARGET_ADJUSTED): $(PPU_TARGET)
	$(OBJCOPY) -O elf32-powerpc --adjust-vma 0x80000000 $< $@
	$(STRIP) $@

$(PPU_TARGET): $(OBJ)
	$(CXX) -o $@ $(OBJ) $(LDFLAGS) $(LDDIRS) $(LIBS)

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

clean:
	rm -f $(PPU_TARGET)
	rm -f $(OBJ)

.PHONY: clean
