|
1 | | -#!/bin/bash |
2 | | - |
3 | | -set -euo pipefail |
4 | | - |
5 | | -# Defaults |
6 | | -SKIP_RISCV=${SKIP_RISCV-0} |
7 | | -SKIP_OPENOCD=${SKIP_OPENOCD-0} |
8 | | - |
9 | | -# Install prerequisites |
10 | | -sudo apt install -y jq cmake libtool automake libusb-1.0-0-dev libhidapi-dev libftdi1-dev |
11 | | -# RISC-V prerequisites |
12 | | -sudo apt install -y autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev ninja-build git cmake libglib2.0-dev libslirp-dev |
13 | | -# RPi Only prerequisites |
14 | | -if [[ $(uname -m) == 'aarch64' ]]; then |
15 | | - sudo apt install -y libgpiod-dev |
16 | | -fi |
17 | | - |
18 | | -repos=$(cat config/repositories.json | jq -c '.repositories[]') |
19 | | -export version=$(cat ./version.txt) |
20 | | -suffix="$(uname -m)-lin" |
21 | | -builddir="build" |
22 | | - |
23 | | -mkdir -p $builddir |
24 | | -mkdir -p "bin" |
25 | | - |
26 | | -while read -r repo |
27 | | -do |
28 | | - tree=$(echo "$repo" | jq -r .tree) |
29 | | - href=$(echo "$repo" | jq -r .href) |
30 | | - filename=$(basename -- "$href") |
31 | | - extension="${filename##*.}" |
32 | | - filename="${filename%.*}" |
33 | | - filename=${filename%"-rp2350"} |
34 | | - repodir="$builddir/${filename}" |
35 | | - |
36 | | - echo "${href} ${tree} ${filename} ${extension} ${repodir}" |
37 | | - rm -rf "${repodir}" |
38 | | - git clone -b "${tree}" --depth=1 -c advice.detachedHead=false "${href}" "${repodir}" |
39 | | -done < <(echo "$repos") |
40 | | - |
41 | | - |
42 | | -cd $builddir |
43 | | -if [[ "$SKIP_OPENOCD" != 1 ]]; then |
44 | | - if ! ../packages/linux/openocd/build-openocd.sh; then |
45 | | - echo "OpenOCD Build failed" |
46 | | - SKIP_OPENOCD=1 |
47 | | - fi |
48 | | -fi |
49 | | -if [[ "$SKIP_RISCV" != 1 ]]; then |
50 | | - # Takes ages to build |
51 | | - ../packages/linux/riscv/build-riscv-gcc.sh |
52 | | -fi |
53 | | -../packages/linux/picotool/build-picotool.sh |
54 | | -cd .. |
55 | | - |
56 | | -topd=$PWD |
57 | | - |
58 | | -if [ ${version:0:1} -ge 2 ]; then |
59 | | - # Package pico-sdk-tools separately as well |
60 | | - |
61 | | - filename="pico-sdk-tools-${version}-${suffix}.tar.gz" |
62 | | - |
63 | | - echo "Saving pico-sdk-tools package to $filename" |
64 | | - pushd "$builddir/pico-sdk-tools/" |
65 | | - tar -a -cf "$topd/bin/$filename" * .keep |
66 | | - popd |
67 | | -fi |
68 | | - |
69 | | -# Package picotool separately as well |
70 | | -version=$("./$builddir/picotool-install/picotool/picotool" version -s) |
71 | | -echo "Picotool version $version" |
72 | | - |
73 | | -filename="picotool-${version}-${suffix}.tar.gz" |
74 | | - |
75 | | -echo "Saving picotool package to $filename" |
76 | | -pushd "$builddir/picotool-install/" |
77 | | -tar -a -cf "$topd/bin/$filename" * .keep |
78 | | -popd |
79 | | - |
80 | | -if [[ "$SKIP_OPENOCD" != 1 ]]; then |
81 | | - # Package OpenOCD separately as well |
82 | | - |
83 | | - version=($("./$builddir/openocd-install/usr/local/bin/openocd" --version 2>&1)) |
84 | | - version=${version[0]} |
85 | | - version=${version[3]} |
86 | | - version=$(echo $version | cut -d "-" -f 1) |
87 | | - |
88 | | - echo "OpenOCD version $version" |
89 | | - |
90 | | - filename="openocd-${version}-${suffix}.tar.gz" |
91 | | - |
92 | | - echo "Saving OpenOCD package to $filename" |
93 | | - pushd "$builddir/openocd-install/usr/local/bin" |
94 | | - tar -a -cf "$topd/bin/$filename" * -C "../share/openocd" "scripts" |
95 | | - popd |
96 | | -fi |
97 | | - |
98 | | -if [[ "$SKIP_RISCV" != 1 ]]; then |
99 | | - # Package riscv toolchain separately as well |
100 | | - version="14" |
101 | | - echo "RISC-V Toolchain version $version" |
102 | | - |
103 | | - filename="riscv-toolchain-${version}-${suffix}.tar.gz" |
104 | | - |
105 | | - echo "Saving RISC-V Toolchain package to $filename" |
106 | | - pushd "$builddir/riscv-install/" |
107 | | - tar -a -cf "$topd/bin/$filename" * |
108 | | - popd |
109 | | -fi |
| 1 | +#!/bin/bash |
| 2 | + |
| 3 | +set -euo pipefail |
| 4 | + |
| 5 | +# Defaults |
| 6 | +SKIP_RISCV=${SKIP_RISCV-0} |
| 7 | +SKIP_OPENOCD=${SKIP_OPENOCD-0} |
| 8 | + |
| 9 | +# Install prerequisites |
| 10 | +sudo apt install -y jq cmake libtool automake libusb-1.0-0-dev libhidapi-dev libftdi1-dev |
| 11 | +# RISC-V prerequisites |
| 12 | +sudo apt install -y autoconf automake autotools-dev curl python3 python3-pip libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev ninja-build git cmake libglib2.0-dev libslirp-dev |
| 13 | +# RPi Only prerequisites |
| 14 | +if [[ $(uname -m) == 'aarch64' ]]; then |
| 15 | + sudo apt install -y libgpiod-dev |
| 16 | +fi |
| 17 | + |
| 18 | +repos=$(cat config/repositories.json | jq -c '.repositories[]') |
| 19 | +export version=$(cat ./version.txt) |
| 20 | +suffix="$(uname -m)-lin" |
| 21 | +builddir="build" |
| 22 | + |
| 23 | +mkdir -p $builddir |
| 24 | +mkdir -p "bin" |
| 25 | + |
| 26 | +while read -r repo |
| 27 | +do |
| 28 | + tree=$(echo "$repo" | jq -r .tree) |
| 29 | + href=$(echo "$repo" | jq -r .href) |
| 30 | + filename=$(basename -- "$href") |
| 31 | + extension="${filename##*.}" |
| 32 | + filename="${filename%.*}" |
| 33 | + filename=${filename%"-rp2350"} |
| 34 | + repodir="$builddir/${filename}" |
| 35 | + |
| 36 | + echo "${href} ${tree} ${filename} ${extension} ${repodir}" |
| 37 | + rm -rf "${repodir}" |
| 38 | + git clone -b "${tree}" --depth=1 -c advice.detachedHead=false "${href}" "${repodir}" |
| 39 | + submodules=$(echo "$repo" | jq -r .submodules) |
| 40 | + if [[ "$submodules" == "true" ]]; then |
| 41 | + git -C "${repodir}" submodule update --init --depth=1 |
| 42 | + fi |
| 43 | +done < <(echo "$repos") |
| 44 | + |
| 45 | + |
| 46 | +cd $builddir |
| 47 | +if [[ "$SKIP_OPENOCD" != 1 ]]; then |
| 48 | + if ! ../packages/linux/openocd/build-openocd.sh; then |
| 49 | + echo "OpenOCD Build failed" |
| 50 | + SKIP_OPENOCD=1 |
| 51 | + fi |
| 52 | +fi |
| 53 | +if [[ "$SKIP_RISCV" != 1 ]]; then |
| 54 | + # Takes ages to build |
| 55 | + ../packages/linux/riscv/build-riscv-gcc.sh |
| 56 | +fi |
| 57 | +../packages/linux/picotool/build-picotool.sh |
| 58 | +cd .. |
| 59 | + |
| 60 | +topd=$PWD |
| 61 | + |
| 62 | +if [ ${version:0:1} -ge 2 ]; then |
| 63 | + # Package pico-sdk-tools separately as well |
| 64 | + |
| 65 | + filename="pico-sdk-tools-${version}-${suffix}.tar.gz" |
| 66 | + |
| 67 | + echo "Saving pico-sdk-tools package to $filename" |
| 68 | + pushd "$builddir/pico-sdk-tools/" |
| 69 | + tar -a -cf "$topd/bin/$filename" * .keep |
| 70 | + popd |
| 71 | +fi |
| 72 | + |
| 73 | +# Package picotool separately as well |
| 74 | +version=$("./$builddir/picotool-install/picotool/picotool" version -s) |
| 75 | +echo "Picotool version $version" |
| 76 | + |
| 77 | +filename="picotool-${version}-${suffix}.tar.gz" |
| 78 | + |
| 79 | +echo "Saving picotool package to $filename" |
| 80 | +pushd "$builddir/picotool-install/" |
| 81 | +tar -a -cf "$topd/bin/$filename" * .keep |
| 82 | +popd |
| 83 | + |
| 84 | +if [[ "$SKIP_OPENOCD" != 1 ]]; then |
| 85 | + # Package OpenOCD separately as well |
| 86 | + |
| 87 | + version=($("./$builddir/openocd-install/usr/local/bin/openocd" --version 2>&1)) |
| 88 | + version=${version[0]} |
| 89 | + version=${version[3]} |
| 90 | + version=$(echo $version | cut -d "-" -f 1) |
| 91 | + |
| 92 | + echo "OpenOCD version $version" |
| 93 | + |
| 94 | + filename="openocd-${version}-${suffix}.tar.gz" |
| 95 | + |
| 96 | + echo "Saving OpenOCD package to $filename" |
| 97 | + pushd "$builddir/openocd-install/usr/local/bin" |
| 98 | + tar -a -cf "$topd/bin/$filename" * -C "../share/openocd" "scripts" |
| 99 | + popd |
| 100 | +fi |
| 101 | + |
| 102 | +if [[ "$SKIP_RISCV" != 1 ]]; then |
| 103 | + # Package riscv toolchain separately as well |
| 104 | + version="14" |
| 105 | + echo "RISC-V Toolchain version $version" |
| 106 | + |
| 107 | + filename="riscv-toolchain-${version}-${suffix}.tar.gz" |
| 108 | + |
| 109 | + echo "Saving RISC-V Toolchain package to $filename" |
| 110 | + pushd "$builddir/riscv-install/" |
| 111 | + tar -a -cf "$topd/bin/$filename" * |
| 112 | + popd |
| 113 | +fi |
0 commit comments