Rearrange everything.
[mdw-cross] / bin / mdw-cross
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 "$@"