
include $(DEVKITARM)/ds_rules

# Compiler
CXX=$(PREFIX)g++
ARCH=-mthumb -mthumb-interwork
CXXFLAGS=-g -Wall -O2 -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer -ffast-math -Werror $(ARCH) -DARM9 -I$(LIBNDS)/include
ASFLAGS=-g $(ARCH)
LDFLAGS=-specs=ds_arm9.specs -g $(ARCH) -mno-fpu -Wl,-Map,$(notdir $*.map)


SOURCES=./src
OLIBDIR=./lib
OINCLUDE=./include

# Linker -- We don't link since this is static lib
#LD=$(PREFIX)g++
#LDFLAGS=-L.,$(LIBNDS)
#LDADD=-lnds

# Archiver
ARC=$(PREFIX)ar
ARCFLAGS=rcs

# Don't forget to add your objects
DSGUI=dsbutton.o\
      dscontainer.o\
      dsgui.o\
      dskeypress.o\
      dslistenerwidget.o\
      dswidget.o\
      dspainter.o

LIBDSGUI=libdsgui.a

all: $(LIBDSGUI)

# Compilation
%.o: $(SOURCES)/%.cc
	$(CXX) $(CXXFLAGS) -c $< -o $@
 
# Link any modules
$(LIBDSGUI): $(DSGUI)
	$(ARC) $(ARCFLAGS) $(OLIBDIR)/$(LIBDSGUI) $(DSGUI)
#	$(RAN) $(RANFLAGS) $(LIBDSGUI)

#Clean and copy headers
	rm -f *.o *.d
	cp $(SOURCES)/*.h $(OINCLUDE)/

# Clean up
clean:
	rm -f *.o *.d $(OLIBDIR)/$(LIBDSGUI)

# Dependency handling
%.d: %.cc
	$(CXX) -M $(CXXFLAGS) $< > $@.$$$$; \
		sed 's,\($*\)\.o[ :]*,\1.0 $@ : ,g' < $@.$$$$ > $@; \
		rm -f $@.$$$$

%.d: %.c
	$(CXX) -M $(CXXFLAGS) $< > $@.$$$$; \
		sed 's,\($*\)\.o[ :]*,\1.0 $@ : ,g' < $@.$$$$ > $@; \
		rm -f $@.$$$$

CSOURCES=$(wildcard *.c)
CXXSOURCES=$(wildcard *.cc)
DEPENDS=$(CSOURCES:.c=.d) $(CXXSOURCES:.cc=.d)

include $(DEPENDS)

