CXX      = g++
SDIR     = .
ISCL     = /usr/local/lib/libscl/gpp
LSCL     = /usr/local/lib/libscl/gpp
CXXFLAGS = -O2 -Wall -c -I$(SDIR) -I$(SDIR) -I$(ISCL) -DDEBUG_PLAY
LDFLAGS  = -lm -L$(LSCL) -lscl             

HEADERS = $(SDIR)/flagmap.h $(SDIR)/craps_base.h $(SDIR)/craps.h \
	  $(SDIR)/bets.h $(SDIR)/strategies.h $(SDIR)/simple.h

DEBUG = $(SDIR)/debug_play.h $(SDIR)/debug_play_0.inc \
	$(SDIR)/debug_play_1.inc $(SDIR)/debug_play_2.inc \
	$(SDIR)/debug_play_3.inc $(SDIR)/debug_play_4.inc

OBJECTS  = flagmap.o craps.o bets.o strategies.o

PROGRAMS = play extract

all: $(PROGRAMS)

play : play.o $(OBJECTS) $(HEADERS)
	$(CXX) -o play play.o $(OBJECTS) $(LDFLAGS) 

play.o : $(SDIR)/play.cpp $(HEADERS) $(DEBUG)
	$(CXX) $(CXXFLAGS) $(SDIR)/play.cpp

extract : extract.o $(OBJECTS) $(HEADERS)
	$(CXX) -o extract extract.o $(OBJECTS) $(LDFLAGS) 

extract.o : $(SDIR)/extract.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(SDIR)/extract.cpp

flagmap.o : $(SDIR)/flagmap.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(SDIR)/flagmap.cpp

craps.o : $(SDIR)/craps.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(SDIR)/craps.cpp

bets.o : $(SDIR)/bets.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(SDIR)/bets.cpp

strategies.o : $(SDIR)/strategies.cpp $(HEADERS)
	$(CXX) $(CXXFLAGS) $(SDIR)/strategies.cpp

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

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