forked from VeriFIT/MEDUSA
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
79 lines (59 loc) · 1.76 KB
/
Makefile
File metadata and controls
79 lines (59 loc) · 1.76 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
SRC_DIR:=src
OBJ_DIR:=obj
BIN_DIR:=.
LIB_DIR:=lib
LACE_DIR:=$(LIB_DIR)/sylvan/build/_deps
SRCS:=$(wildcard $(SRC_DIR)/*.c)
EXEC:=$(BIN_DIR)/MEDUSA
OBJS:=$(patsubst $(SRC_DIR)/%.c, $(OBJ_DIR)/%.o, $(SRCS))
CC:=gcc
CFLAGS:=-g -O2
CLIBS=-lgmp -lpthread -lm
INC_DIRS:=-I $(LIB_DIR)/sylvan/src/ -I $(LACE_DIR)/lace-src/src/ -I $(LACE_DIR)/lace-build/
N_JOBS=4
OF_TYPE=pdf
F_OUT_NAME=res
LONG_NUMS_OUT_FILE=res-vars.txt
BSCRIPT_PATH=benchmark-utils/scripts
.DEFAULT : all
.PHONY : clean clean-all clean-artifacts clean-deps clean-benchmark plot benchmarks \
init make-sylvan download-sylvan make-sliqsim
all: $(OBJS) $(LIB_DIR)/sylvan/build/src/lib/libsylvan.a $(LACE_DIR)/lace-build/lib/liblace.a | $(BIN_DIR)
$(CC) $(INC_DIRS) $(CFLAGS) -o $(EXEC) $^ $(CLIBS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c | $(OBJ_DIR)
$(CC) $(INC_DIRS) $(CFLAGS) -c $< -o $@
$(BIN_DIR) $(OBJ_DIR):
mkdir -p $@
-include $(OBJ:.o=.d)
plot:
@dot -T$(OF_TYPE) $(F_OUT_NAME).dot -o $(F_OUT_NAME).$(OF_TYPE)
benchmarks:
@bash ./$(BSCRIPT_PATH)/run-benchmarks.sh
# BENCHMARK INIT:
make-sliqsim:
cd .. &&\
git clone https://github.com/NTU-ALComLab/SliQSim.git || true &&\
cd SliQSim/cudd &&\
./configure --enable-dddmp --enable-obj --enable-shared --enable-static &&\
cd .. &&\
make
# INIT:
init: make-sylvan
mkdir $(LIB_DIR) && mv sylvan $(LIB_DIR)
make-sylvan: download-sylvan
cd sylvan; \
mkdir build; \
cd build; \
cmake ..; \
make -j $(N_JOBS);
download-sylvan:
@git clone https://github.com/trolando/sylvan.git || true
# CLEAN:
clean: clean-artifacts
clean-all: clean-artifacts clean-deps clean-benchmark
clean-artifacts:
rm -rf $(EXEC) $(F_OUT_NAME).dot $(F_OUT_NAME).$(OF_TYPE) $(LONG_NUMS_OUT_FILE) $(OBJ_DIR)
clean-deps:
rm -rf $(LIB_DIR)
clean-benchmark:
cd .. && rm -rf SliQSim