The code ends up longer, but it's less confusing this way.
tool=${0##*/cross-}
xtool=$(printf %s "$tool" | tr -c a-zA-Z0-9 x)
eval flags=\$CROSS_${xtool}_FLAGS
-eval crosstool=\${CROSS_${xtool}_TOOL-\$CROSS_ARCH-\$tool}
case ${CROSS_NATIVE_P-nil} in
- t) exec $CROSS_COMPILER_PREFIX $tool $flags "$@" ;;
- nil) exec $CROSS_COMPILER_PREFIX $crosstool $flags "$@" ;;
+ t)
+ exec $CROSS_COMPILER_PREFIX$tool $flags "$@"
+ ;;
+ nil)
+ eval crosstool=\${CROSS_${xtool}_TOOL-\$CROSS_ARCH-\$tool}
+ exec $CROSS_COMPILER_PREFIX$crosstool $flags "$@"
+ ;;
esac