TOPDIR = .
MAKEFILE = makefile
INCLUDE = $(TOPDIR)/include
DEBUG_OPTIONS = -g -DDEBUGALBERTO #-DDEBUG #-DDEBUGPO #-pg -DDEBUG
SPIN_FLAGS = -DVECTORSZ=4096 -DMEMLIM=512 -DGCC #-DNOREDUCE #-DREACH
HSFSPIN_FLAGS = -DVECTORSZ=4096 -DGCC -DHSFSPIN #-DSYMMETRY #-DSYMMOD=1 #-DBITSTATE #-DNOREDUCE
CXX = g++ #purify -cache-dir=$(TOPDIR) gcc

OBJS = check.o
TARGETS = check pan ipan
PAN = pan.?

all: check

clean:
	rm -f $(OBJS) $(TARGETS) $(PAN) scc.o scc

scc: scc.o $(INCLUDE)/*.h
	$(CXX) -I. -I$(INCLUDE) scc.o -o $@ $(HSFSPIN_FLAGS) $(DEBUG_OPTIONS)

scc.o: $(INCLUDE)/scc.cc $(PAN) $(INCLUDE)/*.h
	$(CXX) -I. -I$(INCLUDE) -c $(HSFSPIN_FLAGS) $(DEBUG_OPTIONS) $<

check: $(OBJS) $(INCLUDE)/*.h $(INCLUDE)/*.c $(MAKEFILE)
	$(CXX) -I. -I$(INCLUDE) $(OBJS) -o $@ $(HSFSPIN_FLAGS) $(DEBUG_OPTIONS)

check.o: $(INCLUDE)/check.cc $(PAN) $(INCLUDE)/*.h $(INCLUDE)/*.c $(MAKEFILE)
	$(CXX) -I. -I$(INCLUDE) -c $(HSFSPIN_FLAGS) $(DEBUG_OPTIONS) $<

pan: $(PAN) $(MAKEFILE)
	$(CXX) -o pan -I. -I$(INCLUDE) $(SPIN_FLAGS) pan.c

fpan: $(PAN) $(MAKEFILE)
	$(CXX) -o fpan -I. -I$(INCLUDE) $(SPIN_FLAGS) -DNOREDUCE pan.c

ipan: $(PAN) $(MAKEFILE)
	$(CXX) -o ipan -I. -I$(INCLUDE) $(SPIN_FLAGS) -DINDFS pan.c

