CXX = c++
CXXFLAGS = -g
DEPEND = c++ -MM
DEL = rm -rf

LD = $(CXX)
LDFLAGS =  -lm

SOURCES           := $(wildcard *.cc)
OBJECTS           := $(SOURCES:.cc=.o)
EXESRC            := $(wildcard *.cpp)
EXECUTABLES       := $(EXESRC:.cpp=.exe)
all: $(EXECUTABLES)

%.exe : %.cpp $(OBJECTS); ${LD} $(CXXFLAGS) $< $(OBJECTS) $(LDFLAGS) -o  $@

%.o : %.cc; $(CXX) $(CXXFLAGS) -c $< -o $@

%.d : %.cc; $(DEPEND) $(CXXFLAGS) $< | grep -v /usr/include > $@

clean: ; $(DEL) *.d; $(DEL) *.o; $(DEL) *.exe

clear: ; $(DEL) *~

include $(SOURCES:.cc=.d)