Commit | Line | Data |
---|---|---|
02555fac MW |
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 | ||
1a141be6 MW |
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 | ||
02555fac | 43 | MDW_BUILDENV=$env; export MDW_BUILDENV |
1a141be6 MW |
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 | |
02555fac | 48 | fi |
1a141be6 MW |
49 | export CONFIG_SITE |
50 | ||
02555fac MW |
51 | CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX |
52 | . "$CROSSDIR/etc/$env-setup.sh" | |
1a141be6 MW |
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 | ||
02555fac | 65 | exec "$@" |