@@ -28,6 +28,21 @@ preload_tools=(
2828    " bin/sby-gui" 
2929)
3030
31+ resolve_bindir=$( cat <<  EOT 
32+ # Find this script's location, resolving any symlinks along the way. 
33+ # https://stackoverflow.com/a/246128 
34+ source=\$ {BASH_SOURCE[0]} 
35+ while [ -L "\$ source" ]; do  # resolve \$ source until the file is no longer a symlink 
36+     release_bindir=\$ ( cd -P "\$ ( dirname "\$ source" )" >/dev/null 2>&1 && pwd ) 
37+     source=\$ (readlink "\$ source") 
38+     # if \$ source was a relative symlink, we need to resolve it relative to the path 
39+     # where the symlink file was located 
40+     [[ \$ source != /* ]] && source=\$ release_bindir/\$ source 
41+ done 
42+ release_bindir=\$ ( cd -P "\$ ( dirname "\$ source" )" >/dev/null 2>&1 && pwd ) 
43+ EOT 
44+ ) 
45+ 
3146for  bindir  in  bin py2bin py3bin super_prove/bin share/verilator/bin lib/ivl;  do 
3247    for  binfile  in  $( file $bindir /*  |  grep ELF |  grep dynamically |  grep interpreter |  cut -f1 -d:) ;  do 
3348        rel_path=$( realpath --relative-to=$bindir  .) 
@@ -38,7 +53,7 @@ for bindir in bin py2bin py3bin super_prove/bin share/verilator/bin lib/ivl; do
3853        is_using_fonts=false
3954        cat >  $binfile  <<  EOT 
4055#!/usr/bin/env bash 
41- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")" 
56+ $resolve_bindir 
4257release_bindir_abs="\$ (readlink -f "\$ release_bindir")" 
4358release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")" 
4459export PATH="\$ release_bindir_abs:\$ PATH" 
@@ -190,7 +205,7 @@ for script in bin/* py3bin/*; do
190205        mv " ${script} " 
191206        cat >  " ${script} " << EOT 
192207#!/usr/bin/env bash 
193- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")" 
208+ $resolve_bindir 
194209release_bindir_abs="\$ (readlink -f "\$ release_bindir/../bin")" 
195210release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")" 
196211export PATH="\$ release_bindir_abs:\$ PATH" 
@@ -264,7 +279,7 @@ if [ -f "bin/yosys-config" ]; then
264279    mv bin/yosys-config bin/yosys-config.orig
265280    cat >  bin/yosys-config <<  EOT 
266281#!/usr/bin/env bash 
267- release_bindir=" \$ (dirname " \$ {BASH_SOURCE[0]}")" 
282+ $resolve_bindir 
268283release_bindir_abs="\$ (readlink -f "\$ release_bindir")" 
269284release_topdir_abs="\$ (readlink -f "\$ release_bindir/$rel_path ")" 
270285EOT 
0 commit comments