]> git.proxmox.com Git - rustc.git/blob - src/etc/local_stage0.sh
New upstream version 1.14.0+dfsg1
[rustc.git] / src / etc / local_stage0.sh
1 #!/bin/sh
2 # Copyright 2014-2015 The Rust Project Developers. See the COPYRIGHT
3 # file at the top-level directory of this distribution and at
4 # http://rust-lang.org/COPYRIGHT.
5 #
6 # Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
7 # http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
8 # <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
9 # option. This file may not be copied, modified, or distributed
10 # except according to those terms.
11
12 TARG_DIR=$1
13 PREFIX=$2
14 RUSTLIBDIR=$3
15
16 LIB_DIR=lib
17 LIB_PREFIX=lib
18
19 OS=`uname -s`
20 case $OS in
21 ("Linux"|"FreeBSD"|"DragonFly"|"Bitrig"|"OpenBSD"|"SunOS"|"Haiku")
22 BIN_SUF=
23 LIB_SUF=.so
24 ;;
25 ("Darwin")
26 BIN_SUF=
27 LIB_SUF=.dylib
28 ;;
29 (*)
30 BIN_SUF=.exe
31 LIB_SUF=.dll
32 LIB_DIR=bin
33 LIB_PREFIX=
34 ;;
35 esac
36
37 if [ -z $PREFIX ]; then
38 echo "No local rust specified."
39 exit 1
40 fi
41
42 if [ ! -e ${PREFIX}/bin/rustc${BIN_SUF} ]; then
43 echo "No local rust installed at ${PREFIX}"
44 exit 1
45 fi
46
47 if [ -z $TARG_DIR ]; then
48 echo "No target directory specified."
49 exit 1
50 fi
51
52 case "$TARG_DIR" in
53 --print-rustc-release)
54 # not actually copying to TARG_DIR, just print the local rustc version and exit
55 ${PREFIX}/bin/rustc${BIN_SUF} --version --verbose | sed -ne 's/^release: //p'
56 ;;
57 *)
58
59 cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
60 cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/
61 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}arena*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
62 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
63 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
64 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
65 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
66 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}flate*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
67 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}fmt_macros*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
68 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}getopts*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
69 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}graphviz*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
70 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}log*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
71 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rbml*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
72 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}serialize*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
73 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}term*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
74 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}proc_macro*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
75
76 # do not fail if one of the above fails, as all we need is a working rustc!
77 exit 0
78
79 esac