/
Makefile.common
76 lines (55 loc) · 2.11 KB
/
Makefile.common
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
export SHELL := /bin/bash
.SHELLFLAGS := -c
OBJFILES = $(patsubst %.cpp,%.o,$(wildcard *.cpp))
OBJFILES += $(patsubst %.c,%.o,$(wildcard *.c))
OBJFILES += $(patsubst %.cu,%.o,$(wildcard *.cu))
VERBOSE ?= 0
OPT ?= -O0
TARGET ?= test
GKP_FLAGS ?= --symbolic-config --log-level=999 --max-time=7200
#-log-level=999
GKS_FLAGS ?= --symbolic-config --race-prune --max-time=7200 --log-level=999
#SESA_TIMEOUT ?= -c -t 7200 -m 1000000
SESA_TIMEOUT ?= -t 7200 -v 4000000
#GN_FLAGS +=
SESA_FLAGS ?= -verbose=$(VERBOSE)
GRAPH_FORMAT ?= svg
.PHONY : all
#all : $(TARGET).$(GRAPH_FORMAT) $(TARGET).sesa.$(GRAPH_FORMAT)
all : $(TARGET).sesa.$(GRAPH_FORMAT)
$(TARGET).$(GRAPH_FORMAT) : flowsGraph.dot
$(which dot) -T$(GRAPH_FORMAT) -o $(TARGET).$(GRAPH_FORMAT) p-run/flowsGraph.dot
$(TARGET).sesa.$(GRAPH_FORMAT) : flowsGraph.dot
dot -T$(GRAPH_FORMAT) -o $(TARGET).sesa.$(GRAPH_FORMAT) s-run/flowsGraph.dot
# flowsGraph.dot : $(TARGET)
# if [ ! -e p-run ]; then mkdir p-run; fi
# -ln -f *.ExternAttribute.txt p-run/
# -ln -f *.kernelSet.txt $(TARGET) p-run/
# -ln -f ../input p-run/
# -cd p-run; ulimit $(SESA_TIMEOUT); gklee $(GKP_FLAGS) $(TARGET) > ../$(TARGET).out 2>&1
flowsGraph.dot : $(TARGET).sesa
if [ ! -e s-run ]; then mkdir s-run; fi
-ln -f *.kernelSet.txt $(TARGET).sesa s-run/
-ln -f *.ExternAttribute.txt s-run
-ln -f ../input s-run/
-cd s-run; ulimit $(SESA_TIMEOUT); gklee $(GKS_FLAGS) $(TARGET).sesa > ../$(TARGET).sesa.out 2>&1
$(TARGET).sesa : $(TARGET)
ulimit $(SESA_TIMEOUT); sesa $(SESA_FLAGS) < $(TARGET) > $(TARGET).sesa 2> $(TARGET).sesa.err
$(TARGET): $(OBJFILES)
llvm-link -o $(TARGET) $(OBJFILES)
%.o: %.cu
gklee-nvcc $(OPT) $(GN_FLAGS) -c -o $@ $<
mv $(patsubst %.cu,%.cpp,$<) $<.cpp.intermediate
%.o: %.cpp #$(CPPFILES)
klee-l++ $(OPT) $(GN_FLAGS) -o $@ $<
%.o: %.cc
klee-l++ $(OPT) $(GN_FLAGS) -o $@ $<
%.o: %.c
klee-lcc $(OPT) $(GN_FLAGS) -o $@ $<
.PHONY : clean
clean:
-rm -f $(OBJFILES) $(TARGET) $(patsubst %.cu,%.cpp,$(wildcard *.cu))
-rm -f *.intermediate *.sesa summary.txt *.ExternAttribute.txt *.kernelSet.txt
-rm -rf s-run p-run
-rm $(TARGET).out $(TARGET).sesa.out
-rm *.dot *.svg