-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.vars
More file actions
183 lines (153 loc) · 6.84 KB
/
Makefile.vars
File metadata and controls
183 lines (153 loc) · 6.84 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#- -*-Mode: Makefile;-*- ------------------------------------------------
#
# File : Makefile.vars
#
# Makefile-definitions common to all CLIB-Makefiles
#
# Author: Stephan Schulz`
#
# Changes
#
# <1> Sun Jul 6 22:55:11 MET DST 1997
# New
#
#------------------------------------------------------------------------
.PHONY: warn depend links tags remove_links tags rebuild install install_exec distrib fulldistrib top tools remake documentation
# EXECPATH is where make install-exec will move the more important
# executables. Edit it to point to wherever you want them to live.
# Note that ./configure takes care of this automatically.
EXECPATH = /Users/schulz/E/PROVER
MANPATH = /Users/schulz/E/DOC/man
# Makefile special variables
#
# If optional programs are missing on your system you can define the
# variables to "echo". Standard Installation and use should be
# unaffected, but certain services or non-essential parts will not be
# available.
SHELL = /bin/sh
MAKE = make # Should also work with GNU make
AR = ar -rcs
TAR = tar # Optional, for building distributions
GZIP = gzip
MCOPY = mcopy # Optional, for building floppy disks
LN = ln -s # You can use cp or hard links if your
# system does not support symbolic links
LATEX = latex # Optional if you don't want or need the
# documentation. This needs to be latex2e (or
# perhaps later), latex 2.09 wont work.
PDFLATEX = pdflatex # As above.
BIBTEX = bibtex # Optional, see above
MAKEINDEX = makeindex # Optional, see above
DVIPS = dvips # Optional, see above
# Compile time options
# ======================
# Remove the comment from the following to enable gprof-style
# profiling
# -> This will break some stuff on at least some Solaris 2.6
# machines, which seem to lack a profiling-enabled libm. I have a
# simple sqrt() imlementation to circumvent the problem...
PROFFLAGS = # -pg # -DNEED_MATH_EMULATION
DEBUGGER = # -g -ggdb
# System libraries:
LIBS = -lm
# BUILDFLAGS:
#
# PRINT_SOMEERRORS_STDOUT: Print various error messages (out of
# memory, empty input file) to stdout
# (otherwise only to stderr)
# USE_NEWMEM: Use a memory management system like everybody else,
# using free lists filled up by allocating large blocks
# and hacking them into suitabe pieces. Contrary to
# common expectations, this slows E down between 5 and 15%
# (depending on hardware architecture and problem)
# compared to its native memory management. It's
# left in as a warning reminder only.
# USE_SYSTEM_MEM: Use normal malloc()/free instead of the build-in
# memory management. Does not combine with USE_NEWMEM!
# CLAUSE_PERM_IDENT: Clauses have an extra unchanging identifier. Useful
# for testing some proerties
#
# MEASURE_EXPENSIVE: Compile counting operations and things into the
# code even in time-critical sections.
# PRINT_SHARING: Determine and print the sharing factor of the proof
# state for each clause activation.
# PRINT_RW_STATE: Dump R,E,NEW in each loop traversal.
#
# FULL_MEM_STATS: Print size of the most important data types and
# information about allocated memory.
# CONSTANT_MEM_ESTIMATE: Use normalized portable data type estimates
# instead of sizeof() to get actual machine data
# sizes. Necessary to make the prover behave _exactly_
# the same on different machines, but makes memory
# estimation worse on most machines!
# STACK_SIZE=VALUE: Increase the system stacksize to value and run a
# freshly exec()'ed copy of E. This seems to work
# well, but is not debug-friendly. Disable and use
# limit/ulimit for debuging.
# INSTRUMENT_PERF_CTR: Enable self-profiling with certain performance counters.
BUILDFLAGS = -DPRINT_SOMEERRORS_STDOUT \
-DMEMORY_RESERVE_PARANOID \
-DPRINT_TSTP_STATUS \
-DSTACK_SIZE=32768 \
-DCLAUSE_PERM_IDENT \
# -DPRINT_INDEX_STATS \
# -DINSTRUMENT_PERF_CTR\
# -DMEASURE_UNIFICATION\
# -DUSE_SYSTEM_MEM \
# -DFULL_MEM_STATS\
# -DPRINT_RW_STATE # -DMEASURE_EXPENSIVE
# The next two flags are dependend - you can only have CLB_MEMORY_DEBUG
# if you don't have NDEBUG!
MEMDEBUG = # -DCLB_MEMORY_DEBUG # -DCLB_MEMORY_DEBUG2
NODEBUG = -DNDEBUG -DFAST_EXIT
DEBUGFLAGS = $(PROFFLAGS) $(MEMDEBUG) $(DEBUGGER) $(NODEBUG)
ARCHFLAGS = # -mdynamic-no-pic # Helps a tiny bit on Mac
# -mcpu=v8 -mtune=ultrasparc # Somewhat better than
# without, v9 is
# worse (!), ultrasparc does
# not work at all (probably
# due to 64 bit include files
# or something...)
# ARCHFLAGS = -march=i686 # No detectable improvement
# CFLAGS for different setups:
#
# Solaris/Linux with gcc
#
# CFLAGS = -O6 -Wall -Wno-char-subscripts -Wshadow -ansi \
# -pedantic -I../include $(DEBUGFLAGS) \
# $(BUILDFLAGS) $(ARCHFLAGS)
WFLAGS =
CFLAGS = -O6 -fomit-frame-pointer -Wall -std=gnu99\
$(WFLAGS) \
-I../include $(DEBUGFLAGS) $(BUILDFLAGS) $(ARCHFLAGS)
# Version for profiling
# CFLAGS = -O6 -Wall -Wno-char-subscripts -ansi -std=gnu99 \
# -I../include $(DEBUGFLAGS) \
# $(BUILDFLAGS) $(ARCHFLAGS)
# Version for debugging
# CFLAGS = -Wall -Wno-char-subscripts -std=c99 \
# -I../include $(DEBUGFLAGS) \
# $(BUILDFLAGS) $(ARCHFLAGS)
# Workaround for broken Red Hat gcc 2.96 (hah!)
# CFLAGS = -O6 -fno-strength-reduce -Wall -Wno-char-subscripts -Wshadow -ansi \
# -pedantic -I../include $(DEBUGFLAGS) \
# $(BUILDFLAGS) $(ARCHFLAGS)
#
# Solaris with SUN's SUNPro cc
# CFLAGS = -fast -I../include $(BUILDFLAGS) $(DEBUGFLAGS) -D__inline__=""
#
# HPUX with gcc - someone please hurt an HP employee for me!
#
# CFLAGS = -O6 -Wall -Wno-char-subscripts -Wshadow \
# -I../include $(DEBUGFLAGS) \
# $(BUILDFLAGS) $(ARCHFLAGS) -DHP_UX
LDFLAGS = $(PROFFLAGS) $(DEBUGGER)
CC = gcc
# CC = cc
LD = $(CC) $(LDFLAGS)
# Both makedepend and a good C compiler can be used to generate
# dependencies. gcc does a better job than makedepend, so it is the
# default.
#
# MAKEDEPEND = echo "" > Makefile.dependencies; makedepend -- $(CFLAGS) -- -f Makefile.dependencies *.c
MAKEDEPEND = $(CC) -M $(CFLAGS) *.c > Makefile.dependencies