blob: f66644a5a13120ba1359370369e8afcf28180264 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# 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
|