| 1 | #! /bin/sh -e |
| 2 | |
| 3 | case $# in |
| 4 | 0) echo 2>&1 "usage: ${0##*/} ENV [CMD [ARGS ...]]"; exit 2 ;; |
| 5 | esac |
| 6 | env=$1; shift |
| 7 | case $# in |
| 8 | 0) set -- "$SHELL" ;; |
| 9 | esac |
| 10 | |
| 11 | case ${CROSSDIR+t} in |
| 12 | t) ;; |
| 13 | *) |
| 14 | dir=$(pwd) |
| 15 | p=$0 |
| 16 | while :; do |
| 17 | case $p in */*) f=${p##*/} p=${p%/*};; *) f=$p p=. ;; esac |
| 18 | cd $p |
| 19 | if ! [ -L "$f" ]; then break; fi |
| 20 | p=$(readlink "$f") |
| 21 | done |
| 22 | p=$(pwd) |
| 23 | CROSSDIR=${p%/bin}; export CROSSDIR |
| 24 | cd "$dir" |
| 25 | ;; |
| 26 | esac |
| 27 | |
| 28 | if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then |
| 29 | echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2 |
| 30 | fi |
| 31 | |
| 32 | p=$PATH CROSS_COMPILER_PREFIX="" |
| 33 | while :; do |
| 34 | case $p in |
| 35 | "") break ;; |
| 36 | *:*) d=${p%%:*} p=${p#*:} ;; |
| 37 | *) d=$p p="" ;; |
| 38 | esac |
| 39 | if [ -e "$d/ccache" ]; then CROSS_COMPILER_PREFIX="ccache "; break; fi |
| 40 | done |
| 41 | export CROSS_COMPILER_PREFIX |
| 42 | |
| 43 | MDW_BUILDENV=$env; export MDW_BUILDENV |
| 44 | |
| 45 | if [ -f "$CROSSDIR/etc/$env-config.site" ] |
| 46 | then CONFIG_SITE=$CROSSDIR/etc/$env-config.site |
| 47 | else CONFIG_SITE=$CROSSDIR/etc/common-cross-config.site |
| 48 | fi |
| 49 | export CONFIG_SITE |
| 50 | |
| 51 | CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX |
| 52 | . "$CROSSDIR/etc/$env-setup.sh" |
| 53 | |
| 54 | case ${CROSS_ARCH+t} in |
| 55 | t) ;; |
| 56 | *) echo 2>&1 "${0##*/}: setup script didn't set \`CROSS_ARCH'"; exit 2 ;; |
| 57 | esac |
| 58 | export CROSS_ARCH |
| 59 | |
| 60 | case :$PATH: in |
| 61 | *:"$CROSSDIR/tools:"*) ;; |
| 62 | *) PATH=$CROSSDIR/tools:$PATH ;; |
| 63 | esac |
| 64 | |
| 65 | exec "$@" |