| Line | |
|---|
| 1 |
#!/bin/bash |
|---|
| 2 |
# |
|---|
| 3 |
# Wrapper around toolchain |
|---|
| 4 |
# The place where the fakebox magic takes place |
|---|
| 5 |
# |
|---|
| 6 |
|
|---|
| 7 |
# original tool name |
|---|
| 8 |
ME="`basename $0`" |
|---|
| 9 |
|
|---|
| 10 |
[ -n "$FB_DEBUG" ] || FB_DEBUG=0 |
|---|
| 11 |
[ $FB_DEBUG -ge 1 ] && echo " [FB] called: $ME $@" >&2 |
|---|
| 12 |
|
|---|
| 13 |
# hacks |
|---|
| 14 |
[ "$FB_OFF" = "1" ] && exec "/usr/bin/$ME" "$@" |
|---|
| 15 |
[ "$ME" = "strip" ] && exec "$FB_WRAP-$ME" "$@" |
|---|
| 16 |
[ "$ME" = "cc" ] && ME=gcc |
|---|
| 17 |
|
|---|
| 18 |
# prefix absolute /usr paths with $FB_TOP |
|---|
| 19 |
for i in "$@"; do |
|---|
| 20 |
i="${i//I\/usr/I$FB_TOP/usr}" |
|---|
| 21 |
i="${i//L\/usr/L$FB_TOP/usr}" |
|---|
| 22 |
args[${#args[@]}]="${i// \/usr/$FB_TOP/usr}" |
|---|
| 23 |
done |
|---|
| 24 |
|
|---|
| 25 |
# handle special cases |
|---|
| 26 |
[ "$1" = "-V" ] || case "$ME" in |
|---|
| 27 |
gcc|g++|ld|cpp|cc) |
|---|
| 28 |
if [ "$FB_USE_SYSROOT_OPT" = "1" ]; then |
|---|
| 29 |
args[${#args[@]}]="--sysroot=$FB_ROOTDIR" |
|---|
| 30 |
else |
|---|
| 31 |
args[${#args[@]}]="-I$FB_ROOTDIR/usr/include" |
|---|
| 32 |
args[${#args[@]}]="-L$FB_ROOTDIR/lib" |
|---|
| 33 |
args[${#args[@]}]="-L$FB_ROOTDIR/usr/lib" |
|---|
| 34 |
FB_WRAP_ADD="$FB_WRAP_ADD_GCC_LD" |
|---|
| 35 |
fi |
|---|
| 36 |
;; |
|---|
| 37 |
esac |
|---|
| 38 |
|
|---|
| 39 |
# exec proper tool |
|---|
| 40 |
[ $FB_DEBUG -ge 2 ] && echo " [FB] result: $FB_WRAP-$ME" "${args[@]}" $FB_WRAP_ADD >&2 |
|---|
| 41 |
exec "$FB_WRAP-$ME" "${args[@]}" $FB_WRAP_ADD |
|---|