| #!/bin/bash | |
| # Copyright 2026 The Go Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style | |
| # license that can be found in the LICENSE file. | |
| # This is based on the instructions at https://github.com/intelxed/xed | |
| set -e | |
| XEDTAG=v2025.03.02 | |
| MBUILDTAG=v2024.11.04 | |
| DATA=./extern | |
| trace() { | |
| set -x | |
| "$@" | |
| { local rc=$?; set +x; } 2>/dev/null | |
| return $rc | |
| } | |
| echo "This will download xed to $DATA/xed and $DATA/mbuild and compile it." | |
| echo "It requires Python, a C toolchain, and probably other things." | |
| read -p "Continue (y/n)? " -n 1 -r | |
| echo | |
| if [[ ! $REPLY =~ ^[Yy]$ ]]; then | |
| exit 1 | |
| fi | |
| if [[ -d "$DATA/xed" ]]; then | |
| echo 2>&1 "$DATA/xed already downloaded" | |
| else | |
| trace git clone -b $XEDTAG https://github.com/intelxed/xed.git $DATA/xed | |
| fi | |
| if [[ -d "$DATA/mbuild" ]]; then | |
| echo 2>&1 "$DATA/mbuild already downloaded" | |
| else | |
| trace git clone -b $MBUILDTAG https://github.com/intelxed/mbuild.git $DATA/mbuild | |
| fi | |
| if [[ -f $DATA/xed/obj/dgen/all-dec-instructions.txt ]]; then | |
| echo 2>&1 "XED data already compiled" | |
| else | |
| trace cd $DATA/xed | |
| trace ./mfile.py | |
| fi |