# STP (Simple Theorem Prover) top level makefile # # To make in debug mode, type 'make "CLFAGS=-ggdb" # To make in optimized mode, type 'make "CFLAGS=-O2" include Makefile.common BINARIES=bin/stp LIBS=AST/libast.a sat/libsatsolver.a simplifier/libsimplifier.a bitvec/libconsteval.a constantbv/libconstantbv.a c_interface/libcinterface.a DIRS=AST sat simplifier bitvec c_interface constantbv parser # NB: the TAGS target is a hack to get around this recursive make nonsense # we want all the source and header files generated before we make tags .PHONY: all all: lib/libstp.a bin/stp include/stp/c_interface.h AST/libast.a: @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` sat/libsatsolver.a: AST/libast.a @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` simplifier/libsimplifier.a: AST/libast.a @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` bitvec/libconsteval.a: AST/libast.a @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` constantbv/libconstantbv.a: AST/libast.a @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` c_interface/libcinterface.a: AST/libast.a @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` parser/parser: $(LIBS) @$(MAKE) -q -C `dirname $@` || $(MAKE) -C `dirname $@` lib/libstp.a: parser/parser $(LIBS) @mkdir -p lib rm -f $@ @for dir in $(DIRS); do \ $(AR) rc $@ $$dir/*.o; \ done $(RANLIB) $@ bin/stp: parser/parser $(LIBS) @mkdir -p bin @cp parser/parser $@ include/stp/c_interface.h: $(LIBS) @mkdir -p include/stp @cp c_interface/c_interface.h $@ .PHONY: clean clean: rm -rf *~ rm -rf *.a rm -rf lib/*.a rm -rf bin/*~ rm -rf bin/stp rm -rf *.log rm -f TAGS $(MAKE) clean -C AST $(MAKE) clean -C sat $(MAKE) clean -C simplifier $(MAKE) clean -C bitvec $(MAKE) clean -C parser $(MAKE) clean -C c_interface $(MAKE) clean -C constantbv