Skip to content

Commit ca64847

Browse files
committed
Checkout OpenOCD submodules
1 parent 7063654 commit ca64847

File tree

3 files changed

+270
-261
lines changed

3 files changed

+270
-261
lines changed

build_linux.sh

Lines changed: 113 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -1,109 +1,113 @@
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

Comments
 (0)