-
Notifications
You must be signed in to change notification settings - Fork 149
/
install-build-deps
executable file
·86 lines (79 loc) · 2.24 KB
/
install-build-deps
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
#!/usr/bin/env bash
#
# Install OS packages containing dependencies required to build K.
#
set -Eeuo pipefail
die() { local ec="$1"; shift; echo "ERROR: $@"; exit $ec; }
inst_Debian() {
echo '===== Debian packages:'
sudo apt-get install -q \
bison \
build-essential \
clang-15 \
cmake \
curl \
flex \
g++ \
gcc \
libboost-test-dev \
libfmt-dev \
libgmp-dev \
libjemalloc-dev \
libmpfr-dev \
libsecp256k1-dev \
libunwind-dev \
libyaml-dev \
libz3-dev \
lld-15 \
llvm-15-tools \
m4 \
maven \
openjdk-17-jdk \
pkg-config \
python3 \
python3-dev \
xxd \
z3 \
zlib1g-dev
if stack --version >/dev/null 2>&1; then
echo 'Using existing Haskell Stack installation.'
else
echo '===== Haskell Stack:'
curl -sSL https://get.haskellstack.org/ | sh
fi
}
inst_MacOS() {
echo '===== Brew packages'
brew install \
bison \
boost \
cmake \
flex \
fmt \
gcc \
gmp \
openjdk \
jemalloc \
libyaml \
llvm \
make \
maven \
mpfr \
pkg-config \
python \
secp256k1 \
stack \
zlib \
z3
}
try() {
local command="$1"; shift
local platform="$1"; shift
echo "===== Checking for $command for platform $platform"
$command --version >/dev/null 2>&1 || return 1
echo "----- Found platform $platform"
inst_$platform
}
try apt-get Debian && exit 0
try brew MacOS && exit 0
die 1 'Cannot find known platform. Your system appears to be unsupported.'