DEVKITPRO := C:/Users/Usuario/Documents/softwares/devkitPro
DEVKITARM := $(DEVKITPRO)/devkitARM
LIBCTRU   := $(DEVKITPRO)/libctru

3DSXTOOL := $(DEVKITPRO)/tools/bin/3dsxtool.exe
CXX      := $(DEVKITARM)/bin/arm-none-eabi-g++.exe

include $(DEVKITARM)/3ds_rules

TARGET    := FennecApp
INCLUDES  := -Ilib -Igen -I$(LIBCTRU)/include \
             -I$(DEVKITPRO)/libcitro2d/include \
             -I$(DEVKITPRO)/libcitro3d/include

ARCH      := -march=armv6k -mtune=mpcore -mfloat-abi=hard -mfpu=vfp
CFLAGS    := -g -Wall -O2 -mword-relocations $(ARCH)
CXXFLAGS  := $(CFLAGS) -fno-exceptions -fno-rtti $(INCLUDES)

LDFLAGS   := $(ARCH) -specs=3dsx.specs -g
LIBS      := -lcitro2d -lcitro3d -lctru -lm

all: $(TARGET).3dsx

$(TARGET).3dsx: $(TARGET).elf
	"$(3DSXTOOL)" $< $@ \
		--smdh="../build/metadata.smdh"
	@echo "🦊 Fennec : Build terminé avec succès !"

$(TARGET).elf: lib/fennec_core.o gen/out.o
	$(CXX) $(LDFLAGS) -o $@ $^ -L$(LIBCTRU)/lib $(LIBS)

lib/fennec_core.o: lib/fennec_core.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

gen/out.o: gen/out.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f lib/*.o gen/*.o *.elf *.3dsx