]> git.lizzy.rs Git - rust.git/blob - src/etc/local_stage0.sh
Auto merge of #29498 - wthrowe:replace-pattern, r=alexcrichton
[rust.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")
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 cp ${PREFIX}/bin/rustc${BIN_SUF} ${TARG_DIR}/stage0/bin/
53 cp ${PREFIX}/${LIB_DIR}/${RUSTLIBDIR}/${TARG_DIR}/${LIB_DIR}/* ${TARG_DIR}/stage0/${LIB_DIR}/
54 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}extra*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
55 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}rust*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
56 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}std*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
57 cp ${PREFIX}/${LIB_DIR}/${LIB_PREFIX}syntax*${LIB_SUF} ${TARG_DIR}/stage0/${LIB_DIR}/
58
59 # do not fail if one of the above fails, as all we need is a working rustc!
60 exit 0