@@ -22,6 +22,21 @@ if [ -f "${OUTPUT_DIR}${INSTALL_PREFIX}/bin/tabbyadm" ]; then
2222 sed " s|___BRANDING___|${BRANDING} |g" -i ${OUTPUT_DIR}${INSTALL_PREFIX} /bin/tabbyadm
2323fi
2424
25+ resolve_bindir=$( cat << EOT
26+ # Find this script's location, resolving any symlinks along the way.
27+ # https://stackoverflow.com/a/246128
28+ source=\$ {BASH_SOURCE[0]}
29+ while [ -L "\$ source" ]; do # resolve \$ source until the file is no longer a symlink
30+ release_bindir=\$ ( cd -P "\$ ( dirname "\$ source" )" >/dev/null 2>&1 && pwd )
31+ source=\$ (readlink "\$ source")
32+ # if \$ source was a relative symlink, we need to resolve it relative to the path
33+ # where the symlink file was located
34+ [[ \$ source != /* ]] && source=\$ release_bindir/\$ source
35+ done
36+ release_bindir=\$ ( cd -P "\$ ( dirname "\$ source" )" >/dev/null 2>&1 && pwd )
37+ EOT
38+ )
39+
2540for bindir in bin py2bin py3bin super_prove/bin share/verilator/bin lib/ivl; do
2641 for binfile in $( file $bindir /* | grep ELF | grep dynamically | grep interpreter | cut -f1 -d:) ; do
2742 rel_path=$( realpath --relative-to=$bindir .)
@@ -32,7 +47,7 @@ for bindir in bin py2bin py3bin super_prove/bin share/verilator/bin lib/ivl; do
3247 is_using_fonts=false
3348 cat > $binfile << EOT
3449#!/usr/bin/env bash
35- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")"
50+ $resolve_bindir
3651release_bindir_abs="\$ (readlink -f "\$ release_bindir")"
3752release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")"
3853export PATH="\$ release_bindir_abs:\$ PATH"
@@ -165,7 +180,7 @@ for script in bin/* py3bin/*; do
165180 mv " ${script} " libexec
166181 cat > " ${script} " << EOT
167182#!/usr/bin/env bash
168- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")"
183+ $resolve_bindir
169184release_bindir_abs="\$ (readlink -f "\$ release_bindir/../bin")"
170185release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")"
171186export PATH="\$ release_bindir_abs:\$ PATH"
@@ -239,7 +254,7 @@ if [ -f "bin/yosys-config" ]; then
239254 mv bin/yosys-config bin/yosys-config.orig
240255 cat > bin/yosys-config << EOT
241256#!/usr/bin/env bash
242- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")"
257+ $resolve_bindir
243258release_bindir_abs="\$ (readlink -f "\$ release_bindir")"
244259release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")"
245260EOT
0 commit comments