CXX       = g++
SDIR     = .
IDIR     = $(HOME)/lib/libscl/gpp
LDIR     = $(HOME)/lib/libscl/gpp
CXXFLAGS   = -O -Wall -c -I$(SDIR) -I$(IDIR)
LDFLAGS   = -lm -L$(LDIR) -lscl             


PROGRAMS = particle particle_fast particle_slow

all : $(PROGRAMS)

particle : particle.o svmod.o
	$(CXX) -o particle particle.o svmod.o $(LDFLAGS) 

particle.o : $(SDIR)/particle.cpp $(SDIR)/svmod.h
	$(CXX) $(CXXFLAGS) $(SDIR)/particle.cpp

particle_slow : particle_slow.o svmod.o
	$(CXX) -o particle_slow particle_slow.o svmod.o $(LDFLAGS) 

particle_slow.o : $(SDIR)/particle_slow.cpp $(SDIR)/svmod.h
	$(CXX) $(CXXFLAGS) $(SDIR)/particle_slow.cpp

particle_fast : particle_fast.o svmod.o
	$(CXX) -o particle_fast particle_fast.o svmod.o $(LDFLAGS) 

particle_fast.o : $(SDIR)/particle_fast.cpp $(SDIR)/svmod.h
	$(CXX) $(CXXFLAGS) $(SDIR)/particle_fast.cpp

svmod.o : $(SDIR)/svmod.cpp $(SDIR)/svmod.h
	$(CXX) $(CXXFLAGS) $(SDIR)/svmod.cpp

clean :
	rm -f *.o
	rm -f core core.*

veryclean :
	rm -f *.o
	rm -f core core.*
	rm -f $(PROGRAMS)
