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 | ||
62d4726c | 11 | : ${CROSSDIR=@crossdir@}; export CROSSDIR |
02555fac MW |
12 | |
13 | if ! [ -f "$CROSSDIR/etc/$env-setup.sh" ]; then | |
14 | echo 2>&1 "${0##*/}: cross environment \`$env' unknown"; exit 2 | |
15 | fi | |
16 | ||
92717f55 | 17 | if type ccache >/dev/null 2>&1; then CROSS_COMPILER_PREFIX="ccache " |
01e51a7b MW |
18 | else CROSS_COMPILER_PREFIX= |
19 | fi | |
1a141be6 MW |
20 | export CROSS_COMPILER_PREFIX |
21 | ||
f96afdc7 | 22 | CROSS_BUILDENV=$env; export CROSS_BUILDENV |
1a141be6 MW |
23 | |
24 | if [ -f "$CROSSDIR/etc/$env-config.site" ] | |
25 | then CONFIG_SITE=$CROSSDIR/etc/$env-config.site | |
26 | else CONFIG_SITE=$CROSSDIR/etc/common-cross-config.site | |
02555fac | 27 | fi |
1a141be6 MW |
28 | export CONFIG_SITE |
29 | ||
02555fac MW |
30 | CROSS_PREFIX=$CROSSDIR/inst.$env; export CROSS_PREFIX |
31 | . "$CROSSDIR/etc/$env-setup.sh" | |
1a141be6 MW |
32 | |
33 | case ${CROSS_ARCH+t} in | |
34 | t) ;; | |
35 | *) echo 2>&1 "${0##*/}: setup script didn't set \`CROSS_ARCH'"; exit 2 ;; | |
36 | esac | |
37 | export CROSS_ARCH | |
38 | ||
39 | case :$PATH: in | |
40 | *:"$CROSSDIR/tools:"*) ;; | |
41 | *) PATH=$CROSSDIR/tools:$PATH ;; | |
42 | esac | |
43 | ||
e0ce8eeb MW |
44 | case ${CROSS_NATIVE_P-nil} in |
45 | t) gcc=gcc clang=clang ;; | |
46 | nil) gcc=$CROSS_ARCH-gcc clang=${CROSS_clang_TOOL-clang} ;; | |
47 | esac | |
48 | if type >/dev/null 2>&1 "$gcc"; then found_gcc=t; else found_gcc=nil; fi | |
49 | if type >/dev/null 2>&1 "$clang"; then found_clang=t; else found_clang=nil; fi | |
50 | case ${CROSS_COMPILER-guess},$found_gcc,$found_clang in | |
51 | guess,t,* | prefer-gcc,t,* | gcc,t,* | prefer-clang,t,nil) | |
52 | CROSS_COMPILER=gcc ;; | |
53 | guess,nil,t | prefer-clang,*,t | clang,*,t | prefer-gcc,nil,t) | |
54 | CROSS_COMPILER=clang ;; | |
55 | guess,* | prefer-gcc,* | prefer-clang,*) | |
56 | echo 2>&1 "${0##*/}: couldn't find C compiler \`$gcc' or \`$clang'" | |
57 | exit 2 | |
58 | ;; | |
59 | gcc,*) echo 2>&1 "${0##*/}: couldn't find C compiler \`$gcc'"; exit 2 ;; | |
60 | clang,*) echo 2>&1 "${0##*/}: couldn't find C compiler \`$clang'"; exit 2 ;; | |
61 | *) | |
62 | echo 2>&1 "${0##*/}: unrecognized preferred compiler \`$CROSS_COMPILER'" | |
63 | exit 2 | |
64 | ;; | |
65 | esac | |
66 | export CROSS_COMPILER | |
67 | ||
a5a10b25 MW |
68 | LD_LIBRARY_PATH="$CROSS_PREFIX/lib${LD_LIBRARY_PATH+:$LD_LIBRARY_PATH}" |
69 | export LD_LIBRARY_PATH | |
70 | ||
02555fac | 71 | exec "$@" |