-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathmake-release.sh
executable file
·147 lines (121 loc) · 3.95 KB
/
make-release.sh
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
#!/bin/sh
export LLVM_DIR_BASE=/llvm/release/llvm600
export LLVM_VERSION=6.0.0
export_svcomp=true
if [ ! -d "build" ]; then
mkdir build
fi
if [ ! -d "release" ]; then
mkdir release
fi
echo ""
echo "Building Map2Check release ... "
echo ""
cd build
export LLVM_DIR=$LLVM_DIR_BASE/lib/cmake/llvm
export CXX=$LLVM_DIR_BASE/bin/clang++
export CC=$LLVM_DIR_BASE/bin/clang
cmake .. -G Ninja -DLLVM_DIR=$LLVM_DIR -DSKIP_LIB_FUZZER=ON -DSKIP_KLEE=ON -DCMAKE_INSTALL_PREFIX=../release/
ninja
ninja install
if [ ! -d "/home/map2check/devel_tool/clang600" ]; then
CURRENT_DIR=`pwd`
cd /home/map2check/devel_tool/
wget http://releases.llvm.org/6.0.0/clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
tar xf clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
mv clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04 clang600
rm clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
cd $CURRENT_DIR
fi
cd ../release
mkdir -p ./include
cp -r /home/map2check/devel_tool/clang600/lib/clang/$LLVM_VERSION/include/* ./include
cp -r /home/map2check/devel_tool/clang600/lib/clang ./lib
# Copying external libraries and binaries
cp /usr/bin/ld ./bin
cp /usr/lib/x86_64-linux-gnu/libbfd-* ./lib
cp /usr/lib/gcc/x86_64-linux-gnu/5/libstdc++.a ./lib/
cp /lib/x86_64-linux-gnu/libpthread.so.0 ./lib/libpthread.so
cp /lib/x86_64-linux-gnu/libdl.so.2 ./lib/libdl.so
cp /usr/lib/x86_64-linux-gnu/libstdc++* ./lib/
cp /lib/x86_64-linux-gnu/libm.so.6 ./lib/libm.so
cp /lib/x86_64-linux-gnu/libgcc_s.so.1 ./lib/libgcc_s.so
cp /usr/lib/gcc/x86_64-linux-gnu/5/libgcc.a ./lib/
cp /lib/x86_64-linux-gnu/libc.so.6 ./lib/libc.so
cp /usr/lib/gcc/x86_64-linux-gnu/5/crt* ./lib/
cp /usr/lib/x86_64-linux-gnu/crt* ./lib
cp /lib/x86_64-linux-gnu/librt.so.1 ./lib/librt.so
cp /usr/lib/x86_64-linux-gnu/libgomp.so.1 ./lib/
echo ""
echo "Copying external tools"
# LibFuzzer
cp /deps/install/fuzzer/libFuzzer.a ./lib
# Z3
if [ ! -d "./z3" ]; then
cp -r /deps/install/z3 .
cp -r z3/lib/* lib/
fi
# Klee and klee_uclib
cp -r /deps/install/klee/* .
# metasmt
echo "> Copying metaSMT deps ..."
cp -r /deps/install/metasmt/lib/* lib/
cp -r /deps/install/metasmt/include/* include/
# library from metasmt
cp -r /deps/src/metaSMT/deps/boolector-2.2.0/lib/libboolector.so lib/
cp -r /deps/src/metaSMT/deps/lingeling-ayv-86bf266-140429/lib/liblingeling.so lib/
cp -r /deps/src/metaSMT/deps/yices-2.5.1/lib/libyices.so.2.5.1 lib/
cp -r /deps/src/metaSMT/deps/yices-2.5.1/lib/libyices.so.2.5 lib/
cp -r /deps/src/metaSMT/deps/yices-2.5.1/lib/libyices.so lib/
cp -r /deps/src/metaSMT/deps/minisat-git/lib/libminisat.a lib/
cp -r /deps/src/metaSMT/deps/minisat-git/lib/libminisat.so lib/
cp -r /deps/src/metaSMT/deps/minisat-git/lib/libminisat.so.2 lib/
cp -r /deps/src/metaSMT/deps/minisat-git/lib/libminisat.so.2.1.0 lib/
# minisat
# stp
# Crab
if [ ! -d "./bin/crabllvm" ]; then
cp -r /deps/install/crab ./bin
mv ./bin/crab ./bin/crabllvm
fi
echo "> Crab-LLVM replacing PATH"
sed -i '54s/\"PATH\"/\"CLANG_PATH\"/' ./bin/crabllvm/bin/crabllvm.py
cp /usr/lib/x86_64-linux-gnu/libbfd-* ./bin/crabllvm/lib/
cp /usr/lib/x86_64-linux-gnu/libgomp.so.1 ./bin/crabllvm/lib/
cp /usr/lib/x86_64-linux-gnu/libstdc++* ./bin/crabllvm/lib/
cp ./lib/libz3.so ./bin/crabllvm/lib/
../utils/cp_utils_file.sh
# #echo ""
if [ "$export_svcomp" = true ] ; then
echo ""
echo "Cleaning for SVCOMP"
rm -rf ./z3/include
rm -rf ./z3/lib/python2.7
rm -rf ./z3/lib
rm -rf ./lib/python2.7
rm -rf ./lib/clang/6.0.0/include
rm -rf ./moduleBenchExec
rm ./bin/kleaver
rm -rf ./bin/crabllvm/ldd
rm ./bin/crabllvm/lib/libz3.so
#ln -s ./z3/lib/libz3.so ./bin/crabllvm/lib/libz3.so
cd bin/crabllvm/lib/
ln -s ../../../lib/libz3.so .
cd ../../../ # go back to release
#rm ./lib/libz3.so
fi
#echo ""
#echo "Generating archive ..."
#if [ ! -d "map2check" ]; then
# mkdir map2check
#else
#rm -rf map2check
#mkdir map2check
#fi
#cp -r release/* map2check/
#7z a map2check.zip map2check
#rm -rf map2check
#echo ""
echo ""
echo "DONE"
echo ""