SRCDIR=.
INCDIR=include
CFLAGS=$(FLAGS) -I$(INCDIR) -I$(SRCDIR) -Wall
CC=gcc
CPP=g++
TEMP=/tmp
.SUFFIXES: .o .h .c .hpp .cpp

$(TEMP)/%.o : $(SRCDIR)/%.cpp
	$(CPP) $(CFLAGS) -o $@ -c $< 
$(TEMP)/%.o : $(SRCDIR)/%.c
	$(CC) $(CFLAGS) -o $@ -c $< 
$(TEMP)/hmtool/%.o : $(SRCDIR)/src/hmtool/%.cpp
	$(CPP) $(CFLAGS) -o $@ -c $< 
$(TEMP)/hmtool/gui/%.o : $(SRCDIR)/src/hmtool/gui/%.cpp
	$(CPP) $(CFLAGS) -o $@ -c $< 

C_OBJS=$(TEMP)/samples_c.o
CPP_OBJS=$(TEMP)/samples_cpp.o

HMTOOLOBJS=$(TEMP)/hmtool/hmtool.o \
	$(TEMP)/hmtool/operation.o \
	$(TEMP)/hmtool/gui/button.o \
	$(TEMP)/hmtool/gui/container.o \
	$(TEMP)/hmtool/gui/hbox.o \
	$(TEMP)/hmtool/gui/image.o \
	$(TEMP)/hmtool/gui/label.o \
	$(TEMP)/hmtool/gui/radiobutton.o \
	$(TEMP)/hmtool/gui/slider.o \
	$(TEMP)/hmtool/gui/statusbar.o \
	$(TEMP)/hmtool/gui/textbox.o \
	$(TEMP)/hmtool/gui/togglebutton.o \
	$(TEMP)/hmtool/gui/toolbar.o \
	$(TEMP)/hmtool/gui/vbox.o \
	$(TEMP)/hmtool/gui/widget.o

all : samples_c samples_cpp $(TEMP)/hmtool $(TEMP)/hmtool/gui hmtool

$(TEMP)/hmtool :
	\mkdir -p $@

$(TEMP)/hmtool/gui :
	\mkdir -p $@

samples_c : $(C_OBJS) libtcod.so
	$(CC) $(C_OBJS) $(CFLAGS) -o $@ -L. -ltcod $(CFLAGS)

samples_cpp : $(CPP_OBJS) libtcod++.so
	$(CPP) $(CPP_OBJS) -o $@ -L. -ltcod -ltcod++ $(CFLAGS)

hmtool : $(HMTOOLOBJS)
	$(CPP) -o $@ $(HMTOOLOBJS) -L. -ltcod -ltcod++ $(CFLAGS)

clean :
	\rm -f $(C_OBJS) $(CPP_OBJS) $(HMTOOLOBJS) samples_c samples_cpp hmtool
