2014-12-15 04:43:38 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
2014-06-25 23:31:57 +00:00
|
|
|
set -x
|
2014-11-19 19:09:50 +00:00
|
|
|
set -e
|
2014-06-18 20:36:49 +00:00
|
|
|
|
2014-11-19 19:10:21 +00:00
|
|
|
if [ "${TRAVIS_OS_NAME}" = "osx" ] || [ "${PLATFORM}" = "mac" ] || [ "`uname`" = "Darwin" ]; then
|
2014-06-19 22:27:12 +00:00
|
|
|
target=apple-darwin
|
2014-06-25 23:31:57 +00:00
|
|
|
elif [ "${OS}" = "Windows_NT" ] || [ "${PLATFORM}" = "win" ]; then
|
|
|
|
windows=1
|
2014-11-06 17:17:34 +00:00
|
|
|
else
|
2014-08-21 16:24:34 +00:00
|
|
|
target=unknown-linux-gnu
|
2014-06-25 23:31:57 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "${TRAVIS}" = "true" ] && [ "${target}" = "unknown-linux-gnu" ]; then
|
2014-06-19 22:27:12 +00:00
|
|
|
# Install a 32-bit compiler for linux
|
|
|
|
sudo apt-get update
|
2014-09-02 18:51:39 +00:00
|
|
|
if [ "${BITS}" = "32" ]; then
|
|
|
|
sudo apt-get install libssl-dev:i386
|
|
|
|
fi
|
2014-07-22 15:08:55 +00:00
|
|
|
sudo apt-get install g++-multilib lib32stdc++6
|
2014-06-19 22:27:12 +00:00
|
|
|
fi
|
2014-06-18 20:36:49 +00:00
|
|
|
|
2014-11-13 00:05:33 +00:00
|
|
|
url=https://static-rust-lang-org.s3.amazonaws.com/dist/`cat src/rustversion.txt`
|
2014-09-12 03:06:39 +00:00
|
|
|
|
2014-06-18 20:36:49 +00:00
|
|
|
# Install both 64 and 32 bit libraries. Apparently travis barfs if you try to
|
|
|
|
# just install the right ones? This should enable cross compilation in the
|
|
|
|
# future anyway.
|
2014-06-25 23:31:57 +00:00
|
|
|
if [ -z "${windows}" ]; then
|
2014-09-21 17:22:46 +00:00
|
|
|
rm -rf rustc *.tar.gz
|
2015-02-24 19:14:38 +00:00
|
|
|
curl -O $url/rustc-nightly-i686-$target.tar.gz
|
|
|
|
curl -O $url/rustc-nightly-x86_64-$target.tar.gz
|
|
|
|
tar xfz rustc-nightly-i686-$target.tar.gz
|
|
|
|
tar xfz rustc-nightly-x86_64-$target.tar.gz
|
2014-06-18 20:36:49 +00:00
|
|
|
|
2014-06-25 23:31:57 +00:00
|
|
|
if [ "${BITS}" = "32" ]; then
|
|
|
|
src=x86_64
|
|
|
|
dst=i686
|
|
|
|
else
|
|
|
|
src=i686
|
|
|
|
dst=x86_64
|
|
|
|
fi
|
2015-02-24 19:14:38 +00:00
|
|
|
cp -r rustc-nightly-$src-$target/rustc/lib/rustlib/$src-$target \
|
|
|
|
rustc-nightly-$dst-$target/rustc/lib/rustlib
|
|
|
|
(cd rustc-nightly-$dst-$target && \
|
|
|
|
find rustc/lib/rustlib/$src-$target/lib -type f | \
|
|
|
|
sed 's/^rustc\//file:/' >> rustc/manifest.in)
|
2014-06-19 22:27:12 +00:00
|
|
|
|
2015-02-24 19:14:38 +00:00
|
|
|
./rustc-nightly-$dst-$target/install.sh --prefix=rustc
|
|
|
|
rm -rf rustc-nightly-$src-$target
|
|
|
|
rm -rf rustc-nightly-$dst-$target
|
|
|
|
rm -f rustc-nightly-i686-$target.tar.gz
|
|
|
|
rm -f rustc-nightly-x86_64-$target.tar.gz
|
2014-06-25 23:31:57 +00:00
|
|
|
else
|
2015-02-24 19:14:38 +00:00
|
|
|
rm -rf rustc *.exe *.tar.gz
|
2014-09-11 19:56:08 +00:00
|
|
|
if [ "${BITS}" = "64" ]; then
|
2014-11-03 01:54:06 +00:00
|
|
|
triple=x86_64-pc-windows-gnu
|
2014-09-11 19:56:08 +00:00
|
|
|
else
|
2014-11-03 01:54:06 +00:00
|
|
|
triple=i686-pc-windows-gnu
|
2014-09-11 19:56:08 +00:00
|
|
|
fi
|
2015-02-24 19:14:38 +00:00
|
|
|
curl -O $url/rustc-nightly-$triple.tar.gz
|
|
|
|
tar xfz rustc-nightly-$triple.tar.gz
|
|
|
|
./rustc-nightly-$triple/install.sh --prefix=rustc
|
|
|
|
rm -rf rustc-nightly-$triple
|
|
|
|
rm -f rustc-nightly-$triple.tar.gz
|
2014-06-25 23:31:57 +00:00
|
|
|
fi
|
2014-06-19 22:27:12 +00:00
|
|
|
|
2014-06-25 23:31:57 +00:00
|
|
|
set +x
|