chiark / gitweb /
61c245655e88a01753a2e6f06fe7a3ea6035dd0c
[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 MDW_BUILDENV=$env; export MDW_BUILDENV
33 if [ -f "$CROSSDIR/etc/$env-config.site" ]; then
34   CONFIG_SITE=$CROSSDIR/etc/$env-config.site; export CONFIG_SITE
35 fi
36 CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX
37 . "$CROSSDIR/etc/$env-setup.sh"
38 exec "$@"