chiark / gitweb /
Makefile: Use `SED' as the build-step label when hacking setup scripts.
[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 "$@"