siliconcompiler 0.28.1__py3-none-any.whl → 0.28.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- siliconcompiler/_metadata.py +1 -1
- siliconcompiler/apps/sc_install.py +192 -0
- siliconcompiler/core.py +15 -0
- siliconcompiler/tools/_common/tcl/sc_pin_constraints.tcl +6 -5
- siliconcompiler/tools/openroad/scripts/sc_metrics.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_procs.tcl +16 -16
- siliconcompiler/tools/openroad/scripts/sc_route.tcl +1 -1
- siliconcompiler/tools/openroad/scripts/sc_write_images.tcl +10 -10
- siliconcompiler/tools/opensta/scripts/sc_procs.tcl +3 -3
- siliconcompiler/tools/yosys/syn_asic.tcl +1 -1
- siliconcompiler/toolscripts/_tools.json +131 -0
- siliconcompiler/toolscripts/_tools.py +222 -0
- siliconcompiler/toolscripts/ubuntu20/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu20/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu20/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu20/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu20/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu20/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu20/install-klayout.sh +29 -0
- siliconcompiler/toolscripts/ubuntu20/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu20/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu20/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu20/install-slang.sh +38 -0
- siliconcompiler/toolscripts/ubuntu20/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu20/install-surelog.sh +30 -0
- siliconcompiler/toolscripts/ubuntu20/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu20/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu20/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu20/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu20/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu20/install-yosys.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu22/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu22/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu22/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu22/install-klayout.sh +29 -0
- siliconcompiler/toolscripts/ubuntu22/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu22/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu22/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu22/install-slang.sh +28 -0
- siliconcompiler/toolscripts/ubuntu22/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu22/install-surelog.sh +25 -0
- siliconcompiler/toolscripts/ubuntu22/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu22/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu22/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu22/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu22/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu22/install-yosys.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-bambu.sh +49 -0
- siliconcompiler/toolscripts/ubuntu24/install-bluespec.sh +35 -0
- siliconcompiler/toolscripts/ubuntu24/install-chisel.sh +26 -0
- siliconcompiler/toolscripts/ubuntu24/install-ghdl.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-icarus.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-icepack.sh +22 -0
- siliconcompiler/toolscripts/ubuntu24/install-klayout.sh +29 -0
- siliconcompiler/toolscripts/ubuntu24/install-magic.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-montage.sh +5 -0
- siliconcompiler/toolscripts/ubuntu24/install-netgen.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-nextpnr.sh +32 -0
- siliconcompiler/toolscripts/ubuntu24/install-openroad.sh +31 -0
- siliconcompiler/toolscripts/ubuntu24/install-slang.sh +28 -0
- siliconcompiler/toolscripts/ubuntu24/install-slurm.sh +32 -0
- siliconcompiler/toolscripts/ubuntu24/install-surelog.sh +25 -0
- siliconcompiler/toolscripts/ubuntu24/install-sv2v.sh +26 -0
- siliconcompiler/toolscripts/ubuntu24/install-verible.sh +24 -0
- siliconcompiler/toolscripts/ubuntu24/install-verilator.sh +34 -0
- siliconcompiler/toolscripts/ubuntu24/install-vpr.sh +27 -0
- siliconcompiler/toolscripts/ubuntu24/install-xyce.sh +65 -0
- siliconcompiler/toolscripts/ubuntu24/install-yosys.sh +24 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/METADATA +3 -3
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/RECORD +81 -15
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/entry_points.txt +1 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/LICENSE +0 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/WHEEL +0 -0
- {siliconcompiler-0.28.1.dist-info → siliconcompiler-0.28.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# Copyright 2023 Silicon Compiler Authors. All Rights Reserved.
|
|
3
|
+
|
|
4
|
+
import argparse
|
|
5
|
+
import json
|
|
6
|
+
import os
|
|
7
|
+
import tempfile
|
|
8
|
+
import subprocess
|
|
9
|
+
import re
|
|
10
|
+
|
|
11
|
+
tools = None
|
|
12
|
+
data_file = os.path.join(os.path.dirname(__file__), "_tools.json")
|
|
13
|
+
with open(data_file, "r") as f:
|
|
14
|
+
tools = json.load(f)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __make_github_url(url, old_version, new_version):
|
|
18
|
+
if 'github' not in url:
|
|
19
|
+
return None
|
|
20
|
+
|
|
21
|
+
if url.endswith('.git'):
|
|
22
|
+
url = url[0:-4]
|
|
23
|
+
|
|
24
|
+
return f'{url}/compare/{old_version}...{new_version}'
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def bump_commit(tools, tool):
|
|
28
|
+
if "git-url" not in tools[tool]:
|
|
29
|
+
return (None, None)
|
|
30
|
+
|
|
31
|
+
if not re.fullmatch(r"[a-f0-9]{40}", tools[tool]["git-commit"]):
|
|
32
|
+
return bump_commit_tag(tools, tool)
|
|
33
|
+
|
|
34
|
+
import git
|
|
35
|
+
|
|
36
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
37
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
38
|
+
|
|
39
|
+
return (repo.head.commit.hexsha,
|
|
40
|
+
__make_github_url(tools[tool]["git-url"],
|
|
41
|
+
tools[tool]["git-commit"],
|
|
42
|
+
repo.head.commit.hexsha))
|
|
43
|
+
|
|
44
|
+
return (None, None)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def bump_commit_tag(tools, tool):
|
|
48
|
+
if "git-url" not in tools[tool]:
|
|
49
|
+
return (None, None)
|
|
50
|
+
|
|
51
|
+
import git
|
|
52
|
+
|
|
53
|
+
version_prefix = 'v'
|
|
54
|
+
if "version-prefix" in tools[tool]:
|
|
55
|
+
version_prefix = tools[tool]["version-prefix"]
|
|
56
|
+
|
|
57
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
58
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
59
|
+
|
|
60
|
+
newest = None
|
|
61
|
+
for tag in repo.tags:
|
|
62
|
+
if not tag.name.startswith(version_prefix):
|
|
63
|
+
continue
|
|
64
|
+
|
|
65
|
+
if not newest or tag.commit.committed_datetime > newest.commit.committed_datetime:
|
|
66
|
+
newest = tag
|
|
67
|
+
if newest:
|
|
68
|
+
newest = newest.name
|
|
69
|
+
return (newest,
|
|
70
|
+
__make_github_url(tools[tool]["git-url"],
|
|
71
|
+
tools[tool]["git-commit"],
|
|
72
|
+
newest))
|
|
73
|
+
|
|
74
|
+
return (None, None)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def bump_version(tools, tool):
|
|
78
|
+
if "git-url" not in tools[tool]:
|
|
79
|
+
return (None, None)
|
|
80
|
+
|
|
81
|
+
import git
|
|
82
|
+
|
|
83
|
+
with tempfile.TemporaryDirectory(prefix=tool) as repo_work_dir:
|
|
84
|
+
repo = git.Repo.clone_from(tools[tool]["git-url"], repo_work_dir)
|
|
85
|
+
|
|
86
|
+
if "run-version" in tools[tool]:
|
|
87
|
+
script = os.path.join(repo_work_dir, 'sc_get_version.sh')
|
|
88
|
+
with open(script, 'w') as f:
|
|
89
|
+
f.write(tools[tool]["run-version"])
|
|
90
|
+
os.chmod(script, 0o700)
|
|
91
|
+
proc = subprocess.run(['bash', script],
|
|
92
|
+
stdout=subprocess.PIPE,
|
|
93
|
+
stderr=subprocess.STDOUT,
|
|
94
|
+
universal_newlines=True,
|
|
95
|
+
cwd=repo_work_dir)
|
|
96
|
+
version = proc.stdout.strip()
|
|
97
|
+
if not version:
|
|
98
|
+
return (None, None)
|
|
99
|
+
|
|
100
|
+
releasenotes = None
|
|
101
|
+
if "release-notes" in tools[tool]:
|
|
102
|
+
releasenotes = tools[tool]["release-notes"]
|
|
103
|
+
return (version, releasenotes)
|
|
104
|
+
|
|
105
|
+
newest = None
|
|
106
|
+
for tag in repo.tags:
|
|
107
|
+
if not newest:
|
|
108
|
+
newest = tag
|
|
109
|
+
else:
|
|
110
|
+
if tag.commit.committed_datetime > newest.commit.committed_datetime:
|
|
111
|
+
newest = tag
|
|
112
|
+
if newest:
|
|
113
|
+
newest = newest.name
|
|
114
|
+
has_v = False
|
|
115
|
+
if newest[0] == 'v':
|
|
116
|
+
newest = newest[1:]
|
|
117
|
+
has_v = True
|
|
118
|
+
|
|
119
|
+
new_version = newest
|
|
120
|
+
old_version = tools[tool]["version"]
|
|
121
|
+
if has_v:
|
|
122
|
+
new_version = f'v{new_version}'
|
|
123
|
+
old_version = f'v{old_version}'
|
|
124
|
+
|
|
125
|
+
return (newest,
|
|
126
|
+
__make_github_url(tools[tool]["git-url"],
|
|
127
|
+
old_version,
|
|
128
|
+
new_version))
|
|
129
|
+
|
|
130
|
+
return (None, None)
|
|
131
|
+
|
|
132
|
+
return (None, None)
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def has_tool(tool):
|
|
136
|
+
return tool in tools
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
def get_field(tool, field):
|
|
140
|
+
if field not in tools[tool]:
|
|
141
|
+
return None
|
|
142
|
+
return tools[tool][field]
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
def get_tools():
|
|
146
|
+
return list(tools.keys())
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
if __name__ == "__main__":
|
|
150
|
+
supported_tools = ", ".join(get_tools())
|
|
151
|
+
supported_fields = set()
|
|
152
|
+
for tool, fields in tools.items():
|
|
153
|
+
for field in fields:
|
|
154
|
+
supported_fields.add(field)
|
|
155
|
+
supported_fields = ", ".join(supported_fields)
|
|
156
|
+
|
|
157
|
+
parser = argparse.ArgumentParser(
|
|
158
|
+
prog="SiliconCompiler Tool Helper",
|
|
159
|
+
description="Maintains current known good versions for all install scripts to use")
|
|
160
|
+
parser.add_argument("--tool", type=str,
|
|
161
|
+
help=f"Tool name, supported tools: {supported_tools}")
|
|
162
|
+
parser.add_argument("--json_tools", action="store_true",
|
|
163
|
+
help="Flag to get json matrix used by github to update tools")
|
|
164
|
+
|
|
165
|
+
parser.add_argument("--field", type=str,
|
|
166
|
+
help=f"Field to get information from, supported fields: {supported_fields}")
|
|
167
|
+
parser.add_argument("--bump_commit", action="store_true",
|
|
168
|
+
help="Flag to indicate that the specified tool should be updated.")
|
|
169
|
+
|
|
170
|
+
args = parser.parse_args()
|
|
171
|
+
|
|
172
|
+
if args.json_tools:
|
|
173
|
+
json_tools = {'include': []}
|
|
174
|
+
for tool in get_tools():
|
|
175
|
+
field = get_field(tool, "git-url")
|
|
176
|
+
update = get_field(tool, "auto-update")
|
|
177
|
+
if field and update:
|
|
178
|
+
json_tools['include'].append({"tool": tool})
|
|
179
|
+
if len(json_tools['include']) == 0:
|
|
180
|
+
print(json.dumps({}))
|
|
181
|
+
else:
|
|
182
|
+
print(json.dumps(json_tools))
|
|
183
|
+
exit(0)
|
|
184
|
+
|
|
185
|
+
if not has_tool(args.tool):
|
|
186
|
+
print(f"{args.tool} is not a supported tool.")
|
|
187
|
+
print(f"Supported tools are: {supported_tools}")
|
|
188
|
+
exit(1)
|
|
189
|
+
|
|
190
|
+
if not args.bump_commit:
|
|
191
|
+
tool_fields = tools[args.tool]
|
|
192
|
+
if args.field not in tool_fields:
|
|
193
|
+
print(f"{args.field} is not a supported field for {args.tool}.")
|
|
194
|
+
tool_supported_fields = ", ".join(tool_fields.keys())
|
|
195
|
+
print(f"Supported fields are: {tool_supported_fields}")
|
|
196
|
+
exit(1)
|
|
197
|
+
|
|
198
|
+
print(tool_fields[args.field])
|
|
199
|
+
exit(0)
|
|
200
|
+
|
|
201
|
+
if "git-commit" in tools[args.tool]:
|
|
202
|
+
new_value, url = bump_commit(tools, args.tool)
|
|
203
|
+
if new_value and tools[args.tool]["git-commit"] != new_value:
|
|
204
|
+
print(f"Updating {args.tool} from {tools[args.tool]['git-commit']} to {new_value}")
|
|
205
|
+
if url:
|
|
206
|
+
print(f'Check {url} for changes')
|
|
207
|
+
tools[args.tool]["git-commit"] = new_value
|
|
208
|
+
elif "version" in tools[args.tool]:
|
|
209
|
+
new_value, url = bump_version(tools, args.tool)
|
|
210
|
+
if new_value and tools[args.tool]["version"] != new_value:
|
|
211
|
+
print(f"Updating {args.tool} from {tools[args.tool]['version']} to {new_value}")
|
|
212
|
+
if url:
|
|
213
|
+
print(f'Check {url} for changes')
|
|
214
|
+
tools[args.tool]["version"] = new_value
|
|
215
|
+
else:
|
|
216
|
+
print('Unsupported update tool')
|
|
217
|
+
exit(1)
|
|
218
|
+
|
|
219
|
+
with open(data_file, "w") as f:
|
|
220
|
+
f.write(json.dumps(tools, indent=2))
|
|
221
|
+
|
|
222
|
+
exit(0)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y autoconf autoconf-archive automake libtool \
|
|
9
|
+
libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev \
|
|
10
|
+
libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex \
|
|
11
|
+
graphviz iverilog verilator make libsuitesparse-dev libglpk-dev libgmp-dev \
|
|
12
|
+
libfl-dev
|
|
13
|
+
sudo apt-get install -y \
|
|
14
|
+
gcc-8 gcc-8-multilib g++-8 g++-8-multilib \
|
|
15
|
+
llvm-8 llvm-8-dev libllvm8 \
|
|
16
|
+
gfortran-8 gfortran-8-multilib \
|
|
17
|
+
clang-8 libclang-8-dev
|
|
18
|
+
|
|
19
|
+
mkdir -p deps
|
|
20
|
+
cd deps
|
|
21
|
+
|
|
22
|
+
git clone $(python3 ${src_path}/_tools.py --tool bambu --field git-url) bambu
|
|
23
|
+
cd bambu
|
|
24
|
+
git checkout $(python3 ${src_path}/_tools.py --tool bambu --field git-commit)
|
|
25
|
+
git submodule update --init --recursive
|
|
26
|
+
|
|
27
|
+
if [ ! -z ${PREFIX} ]; then
|
|
28
|
+
args=--prefix="$PREFIX"
|
|
29
|
+
else
|
|
30
|
+
args=--prefix=/opt/panda
|
|
31
|
+
|
|
32
|
+
sudo mkdir -p /opt/panda
|
|
33
|
+
sudo chown $USER:$USER /opt/panda
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
make -f Makefile.init
|
|
37
|
+
|
|
38
|
+
mkdir obj
|
|
39
|
+
cd obj
|
|
40
|
+
|
|
41
|
+
../configure --enable-release --disable-flopoco --with-opt-level=2 $args
|
|
42
|
+
make -j$(nproc)
|
|
43
|
+
make install
|
|
44
|
+
|
|
45
|
+
cd -
|
|
46
|
+
|
|
47
|
+
if [ -z ${PREFIX} ]; then
|
|
48
|
+
echo "Please add \"export PATH="/opt/panda/bin:\$PATH"\" to your .bashrc"
|
|
49
|
+
fi
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y ghc libghc-regex-compat-dev libghc-syb-dev \
|
|
9
|
+
libghc-old-time-dev libghc-split-dev tcl-dev build-essential pkg-config \
|
|
10
|
+
autoconf gperf flex bison
|
|
11
|
+
|
|
12
|
+
mkdir -p deps
|
|
13
|
+
cd deps
|
|
14
|
+
|
|
15
|
+
git clone $(python3 ${src_path}/_tools.py --tool bluespec --field git-url) bluespec
|
|
16
|
+
cd bluespec
|
|
17
|
+
git checkout $(python3 ${src_path}/_tools.py --tool bluespec --field git-commit)
|
|
18
|
+
git submodule update --init --recursive
|
|
19
|
+
|
|
20
|
+
make -j$(nproc) install-src
|
|
21
|
+
|
|
22
|
+
if [ -z ${PREFIX} ]; then
|
|
23
|
+
# install
|
|
24
|
+
sudo mkdir -p /opt/tools/bsc
|
|
25
|
+
sudo chown $USER:$USER /opt/tools/bsc
|
|
26
|
+
|
|
27
|
+
BSC_VERSION=$(echo 'puts [lindex [Bluetcl::version] 0]' | inst/bin/bluetcl)
|
|
28
|
+
mv inst /opt/tools/bsc/bsc-${BSC_VERSION}
|
|
29
|
+
ln -s /opt/tools/bsc/bsc-${BSC_VERSION} /opt/tools/bsc/latest
|
|
30
|
+
|
|
31
|
+
echo "Please add \"export PATH=/opt/tools/bsc/latest/bin:\$PATH to your .bashrc"
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
cd -
|
|
35
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
version=$(python3 ${src_path}/_tools.py --tool chisel --field version)
|
|
12
|
+
|
|
13
|
+
wget -O sbt.tgz https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz
|
|
14
|
+
|
|
15
|
+
args=
|
|
16
|
+
if [ ! -z ${PREFIX} ]; then
|
|
17
|
+
args="-C $PREFIX --strip-components 1"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
tar xvf sbt.tgz $args
|
|
21
|
+
|
|
22
|
+
cd -
|
|
23
|
+
|
|
24
|
+
if [ -z ${PREFIX} ]; then
|
|
25
|
+
echo "Please add \"export PATH="${src_path}/deps/sbt/bin:\$PATH"\" to your .bashrc"
|
|
26
|
+
fi
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y gnat libgnat-9 libz-dev
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
git clone $(python3 ${src_path}/_tools.py --tool ghdl --field git-url) ghdl
|
|
14
|
+
cd ghdl
|
|
15
|
+
git checkout $(python3 ${src_path}/_tools.py --tool ghdl --field git-commit)
|
|
16
|
+
|
|
17
|
+
args=
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
args=--prefix="$PREFIX"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
./configure $args
|
|
23
|
+
make -j$(nproc)
|
|
24
|
+
sudo make install
|
|
25
|
+
cd -
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y build-essential bison flex gperf libreadline-dev libncurses-dev
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
git clone $(python3 ${src_path}/_tools.py --tool icarus --field git-url) icarus
|
|
14
|
+
cd icarus
|
|
15
|
+
git checkout $(python3 ${src_path}/_tools.py --tool icarus --field git-commit)
|
|
16
|
+
|
|
17
|
+
args=
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
args=--prefix="$PREFIX"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
sh autoconf.sh
|
|
23
|
+
./configure $args
|
|
24
|
+
make -j$(nproc)
|
|
25
|
+
sudo make install
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y build-essential clang bison flex libreadline-dev \
|
|
9
|
+
gawk tcl-dev libffi-dev git mercurial graphviz \
|
|
10
|
+
xdot pkg-config python python3 libftdi-dev \
|
|
11
|
+
qt5-default python3-dev libboost-all-dev cmake libeigen3-dev
|
|
12
|
+
|
|
13
|
+
mkdir -p deps
|
|
14
|
+
cd deps
|
|
15
|
+
|
|
16
|
+
git clone $(python3 ${src_path}/_tools.py --tool icepack --field git-url) icepack
|
|
17
|
+
cd icepack
|
|
18
|
+
git checkout $(python3 ${src_path}/_tools.py --tool icepack --field git-commit)
|
|
19
|
+
|
|
20
|
+
make -j$(nproc)
|
|
21
|
+
sudo make install
|
|
22
|
+
cd -
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
pkg_version=$(python3 ${src_path}/_tools.py --tool klayout --field version)
|
|
12
|
+
version=$(lsb_release -sr)
|
|
13
|
+
|
|
14
|
+
if [ "$version" = "18.04" ]; then
|
|
15
|
+
url="https://www.klayout.org/downloads/Ubuntu-18/klayout_${pkg_version}-1_amd64.deb"
|
|
16
|
+
elif [ "$version" = "20.04" ]; then
|
|
17
|
+
url="https://www.klayout.org/downloads/Ubuntu-20/klayout_${pkg_version}-1_amd64.deb"
|
|
18
|
+
elif [ "$version" = "22.04" ]; then
|
|
19
|
+
url="https://www.klayout.org/downloads/Ubuntu-22/klayout_${pkg_version}-1_amd64.deb"
|
|
20
|
+
else
|
|
21
|
+
echo "Script doesn't support Ubuntu version $version."
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Fetch package
|
|
25
|
+
wget -O klayout.deb $url
|
|
26
|
+
# Install package
|
|
27
|
+
sudo apt-get install -y ./klayout.deb
|
|
28
|
+
|
|
29
|
+
cd -
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y build-essential m4 tcsh csh libx11-dev tcl-dev tk-dev
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
git clone $(python3 ${src_path}/_tools.py --tool magic --field git-url) magic
|
|
14
|
+
cd magic
|
|
15
|
+
git checkout $(python3 ${src_path}/_tools.py --tool magic --field git-commit)
|
|
16
|
+
|
|
17
|
+
args=
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
args=--prefix="$PREFIX"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
LD_FLAGS=-shared ./configure $args
|
|
23
|
+
make -j$(nproc)
|
|
24
|
+
sudo make install
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
sudo apt-get install -y build-essential tcl-dev tk-dev
|
|
9
|
+
|
|
10
|
+
mkdir -p deps
|
|
11
|
+
cd deps
|
|
12
|
+
|
|
13
|
+
git clone $(python3 ${src_path}/_tools.py --tool netgen --field git-url) netgen
|
|
14
|
+
cd netgen
|
|
15
|
+
git checkout $(python3 ${src_path}/_tools.py --tool netgen --field git-commit)
|
|
16
|
+
|
|
17
|
+
args=
|
|
18
|
+
if [ ! -z ${PREFIX} ]; then
|
|
19
|
+
args=--prefix="$PREFIX"
|
|
20
|
+
fi
|
|
21
|
+
|
|
22
|
+
./configure $args
|
|
23
|
+
make -j$(nproc)
|
|
24
|
+
sudo make install
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
sudo apt-get install -y build-essential clang bison flex libreadline-dev \
|
|
6
|
+
gawk tcl-dev libffi-dev git mercurial graphviz \
|
|
7
|
+
xdot pkg-config python python3 libftdi-dev \
|
|
8
|
+
qt5-default python3-dev libboost-all-dev cmake libeigen3-dev
|
|
9
|
+
|
|
10
|
+
#!/bin/sh
|
|
11
|
+
|
|
12
|
+
set -e
|
|
13
|
+
|
|
14
|
+
# Get directory of script
|
|
15
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
16
|
+
|
|
17
|
+
mkdir -p deps
|
|
18
|
+
cd deps
|
|
19
|
+
|
|
20
|
+
git clone $(python3 ${src_path}/_tools.py --tool nextpnr --field git-url) nextpnr
|
|
21
|
+
cd nextpnr
|
|
22
|
+
git checkout $(python3 ${src_path}/_tools.py --tool nextpnr --field git-commit)
|
|
23
|
+
|
|
24
|
+
args=
|
|
25
|
+
if [ ! -z ${PREFIX} ]; then
|
|
26
|
+
args=-DCMAKE_INSTALL_PREFIX="$PREFIX"
|
|
27
|
+
fi
|
|
28
|
+
|
|
29
|
+
cmake -DARCH=ice40 $args .
|
|
30
|
+
make -j$(nproc)
|
|
31
|
+
sudo make install
|
|
32
|
+
cd -
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
6
|
+
|
|
7
|
+
mkdir -p deps
|
|
8
|
+
cd deps
|
|
9
|
+
|
|
10
|
+
git clone $(python3 ${src_path}/_tools.py --tool openroad --field git-url) openroad
|
|
11
|
+
cd openroad
|
|
12
|
+
git checkout $(python3 ${src_path}/_tools.py --tool openroad --field git-commit)
|
|
13
|
+
git submodule update --init --recursive
|
|
14
|
+
|
|
15
|
+
deps_args=""
|
|
16
|
+
if [ ! -z ${PREFIX} ]; then
|
|
17
|
+
deps_args="-prefix=$PREFIX"
|
|
18
|
+
fi
|
|
19
|
+
sudo ./etc/DependencyInstaller.sh $deps_args
|
|
20
|
+
|
|
21
|
+
cmake_args="-DENABLE_TESTS=OFF"
|
|
22
|
+
if [ ! -z ${PREFIX} ]; then
|
|
23
|
+
cmake_args="$cmake_args -DCMAKE_INSTALL_PREFIX=$PREFIX"
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
./etc/Build.sh -cmake="$cmake_args"
|
|
27
|
+
|
|
28
|
+
cd build
|
|
29
|
+
sudo make install
|
|
30
|
+
|
|
31
|
+
cd -
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
python3 -m venv .slang --clear
|
|
12
|
+
. .slang/bin/activate
|
|
13
|
+
python3 -m pip install cmake
|
|
14
|
+
|
|
15
|
+
if [ ! -z ${SC_BUILD} ]; then
|
|
16
|
+
# Limit this to CI builds
|
|
17
|
+
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
|
18
|
+
sudo apt-get update
|
|
19
|
+
sudo apt install -y gcc-11 g++-11
|
|
20
|
+
|
|
21
|
+
export CXX=/usr/bin/g++-11
|
|
22
|
+
export CC=/usr/bin/gcc-11
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
git clone $(python3 ${src_path}/_tools.py --tool slang --field git-url) slang
|
|
26
|
+
cd slang
|
|
27
|
+
git checkout $(python3 ${src_path}/_tools.py --tool slang --field git-commit)
|
|
28
|
+
|
|
29
|
+
cfg_args=""
|
|
30
|
+
if [ ! -z ${PREFIX} ]; then
|
|
31
|
+
cfg_args="--prefix=$PREFIX"
|
|
32
|
+
fi
|
|
33
|
+
|
|
34
|
+
cmake -B build
|
|
35
|
+
cmake --build build -j$(nproc)
|
|
36
|
+
cmake --install build --strip $cfg_args
|
|
37
|
+
|
|
38
|
+
cd -
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
sudo apt-get install -y munge libmunge-dev build-essential libmariadb-dev lbzip2 libjson-c-dev
|
|
6
|
+
sudo apt-get install -y libdbus-1-dev
|
|
7
|
+
|
|
8
|
+
# Get directory of script
|
|
9
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
10
|
+
|
|
11
|
+
mkdir -p deps
|
|
12
|
+
cd deps
|
|
13
|
+
|
|
14
|
+
pkg_version=$(python3 ${src_path}/_tools.py --tool slurm --field version)
|
|
15
|
+
|
|
16
|
+
# Build and install Slurm
|
|
17
|
+
wget -O slurm.tar.bz2 https://download.schedmd.com/slurm/slurm-${pkg_version}.tar.bz2
|
|
18
|
+
mkdir -p slurm
|
|
19
|
+
tar xvf slurm.tar.bz2 --strip-components=1 -C slurm
|
|
20
|
+
|
|
21
|
+
cd slurm
|
|
22
|
+
|
|
23
|
+
cfg_args=""
|
|
24
|
+
if [ ! -z ${PREFIX} ]; then
|
|
25
|
+
cfg_args="--prefix=$PREFIX"
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
./configure $cfg_args
|
|
29
|
+
|
|
30
|
+
make -j$(nproc)
|
|
31
|
+
|
|
32
|
+
sudo make install
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
# These dependencies are up-to-date with instructions from the INSTALL.md from the commit we are pinned to below
|
|
9
|
+
sudo apt-get install -y build-essential cmake git pkg-config \
|
|
10
|
+
tclsh swig uuid-dev libgoogle-perftools-dev python3 \
|
|
11
|
+
python3-orderedmultidict python3-psutil python3-dev \
|
|
12
|
+
default-jre lcov zlib1g-dev python3-venv
|
|
13
|
+
|
|
14
|
+
mkdir -p deps
|
|
15
|
+
cd deps
|
|
16
|
+
|
|
17
|
+
python3 -m venv .surelog --clear
|
|
18
|
+
. .surelog/bin/activate
|
|
19
|
+
python3 -m pip install cmake
|
|
20
|
+
python3 -m pip install orderedmultidict
|
|
21
|
+
|
|
22
|
+
git clone $(python3 ${src_path}/_tools.py --tool surelog --field git-url) surelog
|
|
23
|
+
cd surelog
|
|
24
|
+
git checkout $(python3 ${src_path}/_tools.py --tool surelog --field git-commit)
|
|
25
|
+
git submodule update --init --recursive
|
|
26
|
+
|
|
27
|
+
make -j$(nproc)
|
|
28
|
+
sudo -E PATH="$PATH" make install
|
|
29
|
+
|
|
30
|
+
cd -
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
set -e
|
|
4
|
+
|
|
5
|
+
# Get directory of script
|
|
6
|
+
src_path=$(cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P)/..
|
|
7
|
+
|
|
8
|
+
mkdir -p deps
|
|
9
|
+
cd deps
|
|
10
|
+
|
|
11
|
+
sudo apt-get install -y curl
|
|
12
|
+
|
|
13
|
+
curl -sSL https://get.haskellstack.org/ | sh
|
|
14
|
+
|
|
15
|
+
git clone $(python3 ${src_path}/_tools.py --tool sv2v --field git-url) sv2v
|
|
16
|
+
cd sv2v
|
|
17
|
+
git checkout $(python3 ${src_path}/_tools.py --tool sv2v --field git-commit)
|
|
18
|
+
|
|
19
|
+
make -j$(nproc)
|
|
20
|
+
|
|
21
|
+
if [ ! -z ${PREFIX} ]; then
|
|
22
|
+
sudo mkdir -p ${PREFIX}/bin/
|
|
23
|
+
sudo cp bin/* ${PREFIX}/bin/
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
cd -
|