.SUFFIXES:

ifeq ($(strip $(DEVKITPPC)),)
$(error Set DEVKITPPC to your devkitPPC installation)
endif

include $(DEVKITPPC)/wii_rules

TARGET := wii-conformance
BUILD := build
SOURCES := source

CFLAGS := -O2 -g -Wall -Wextra $(MACHDEP) $(INCLUDE)
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(OUTPUT).map
LIBS := -lwiiuse -lbte -lfat -logc -lm

ifneq ($(BUILD),$(notdir $(CURDIR)))
export OUTPUT := $(CURDIR)/$(TARGET)
export VPATH := $(CURDIR)/source
export DEPSDIR := $(CURDIR)/$(BUILD)
export OFILES := main.o
export INCLUDE := -I$(LIBOGC_INC)
export LIBPATHS := -L$(LIBOGC_LIB)
export LD := $(CC)

.PHONY: all clean
all: | $(BUILD)
	@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
	@mkdir -p apps/wii-conformance
	@cp $(TARGET).dol apps/wii-conformance/boot.dol
	@cp meta.xml apps/wii-conformance/meta.xml

$(BUILD):
	@mkdir -p $@

clean:
	@rm -rf $(BUILD) $(OUTPUT).elf $(OUTPUT).dol $(OUTPUT).elf.map
else
DEPENDS := $(OFILES:.o=.d)

$(OUTPUT).dol: $(OUTPUT).elf
$(OUTPUT).elf: $(OFILES)

-include $(DEPENDS)
endif
