CXX = g++
CXXFLAGS = -O3 -Wall -Ismodels
LFLAGS =
SRCS = main.cc bitarr.cc ulhash.cc shash.cc ptnet.cc\
unroll.cc scanner.cc tree.cc y_tab.cc tree2smo.cc\
ulhsort.cc set.cc
OBJS = $(SRCS:.cc=.o)
SMODELS_OBJS = smodels/api.o smodels/atomrule.o smodels/dcl.o\
smodels/denant.o smodels/improve.o smodels/list.o smodels/program.o\
smodels/queue.o smodels/smodels.o smodels/stack.o smodels/timer.o\
smodels/tree.o

boundsmodels: $(OBJS) smodels
	$(CXX) $(LFLAGS) -o boundsmodels $(OBJS) $(SMODELS_OBJS)

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

.PHONY: all smodels clean

smodels:
	cd smodels; $(MAKE)

all:
	cd smodels; $(MAKE)
	rm -f $(OBJS); $(MAKE) boundsmodels

clean:
	cd smodels; $(MAKE) clean
	rm -f core $(OBJS)
