-include ../interface/Makefile.in

export CVCL_LIB_DIR

SOURCES = ../../global_id.ml \
          ../../global.ml \
          ../global_theory.ml \
          ../../counter.ml \
          ../../state.mli ../../state.ml \
          theory_w.c \
          satbox_in.c \
          ../../satbox.mli \
          ../../satbox.ml \
          ../../escjava_label.mli ../../escjava_label.ml \
          ../../pred.mli ../../pred.ml \
          ../../pred_db.mli ../../pred_db.ml \
          ../../iset.mli ../../iset.ml \
          ../../pqueue.mli ../../pqueue.ml \
          ../theory.mli ../theory.ml \
          ../cstore.mli ../cstore.ml \
          ../../sys_state.mli ../../sys_state.ml \
          ../formula.mli ../formula.ml \
          ../convert.mli ../convert.ml \
          ../term_db.mli ../term_db.ml \
          ../skolemizer.mli ../skolemizer.ml \
          ../../dpllt.mli ../../dpllt.ml \
          basic_expression.mli basic_expression.ml \
          theory_db.mli theory_db.ml \
          theories.ml \
          expressions.mli expressions.ml \
          parser_helper.mli parser_helper.ml \
          ../api_native.mli ../api_native.ml \
          smt_parser.mly \
          smt_lexer.mll \
          main.ml

RESULT  = sammy

LIBS = nums str unix

TRASH = *.d *.di ../*.d ../*.di $(SATBOX_TARGET_DIR)/libsatbox.*

CREATE_LIB = no

all: theory_w.o satbox_in.o native-code

debug: theory_debug_w.o satbox_debug_in.o debug-code

pnc: theory_profile_w.o satbox_profile_in.o profiling-native-code


theory_w.o: ../theory_w.cpp ../interface/theory_w.h
	cd ../interface && $(MAKE)
	mv ../interface/theory_w.o .

theory_debug_w.o: ../theory_w.cpp ../interface/theory_w.h
	cd ../interface && $(MAKE) debug
	mv ../interface/theory_w.o .

theory_profile_w.o: ../theory_w.cpp ../interface/theory_w.h
	cd ../interface && $(MAKE) profile
	mv ../interface/theory_w.o .

satbox_in.o: ../satbox_in.cpp ../interface/theory_w.h
	cd ../../satbox && $(MAKE) library
	cp ../../satbox/libsatbox.* $(SATBOX_TARGET_DIR)
	cd ../interface && $(MAKE) satbox_in.o
	mv ../interface/satbox_in.o ./

satbox_debug_in.o: ../satbox_in.cpp ../interface/theory_w.h
	cd ../../satbox && $(MAKE) library
	cp ../../satbox/libsatbox.* $(SATBOX_TARGET_DIR)
	cd ../interface && $(MAKE) satbox_debug
	mv ../interface/satbox_in.o ./

satbox_profile_in.o: ../satbox_in.cpp ../interface/theory_w.h
	cd ../../satbox && $(MAKE) library
	cp ../../satbox/libsatbox.* $(SATBOX_TARGET_DIR)
	cd ../interface && $(MAKE) satbox_profile
	mv ../interface/satbox_in.o ./


CC = g++
CXX = g++
LDFLAGS = -Xlinker -rpath $(SATBOX_TARGET_DIR) -L$(SATBOX_TARGET_DIR) -L$(CVCL_LIB_DIR)# -static
CLIBS = cvclite gmpxx gmp stdc++ satbox

## DOCUMENTATION ##

# remove parser, lexer, & theory_w
DOC_FILES = $(filter-out smt_lexer.mll smt_parser.mly theory_w.c satbox_in.c,$(SOURCES))

OCAMLDOCFLAGS = -I src -sort -v -keep-code -colorize-code



-include $(OCAMLMAKEFILE)
