install.sh 987 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. set -ex
  2. . $(dirname $0)/env.sh
  3. install_binutils() {
  4. case $TRAVIS_OS_NAME in
  5. osx)
  6. brew install binutils
  7. ;;
  8. *)
  9. ;;
  10. esac
  11. }
  12. install_c_toolchain() {
  13. case $TARGET in
  14. aarch64-unknown-linux-gnu)
  15. sudo apt-get install -y --no-install-recommends \
  16. gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross
  17. ;;
  18. *)
  19. ;;
  20. esac
  21. }
  22. install_rust() {
  23. curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain=nightly
  24. rustc -V
  25. cargo -V
  26. }
  27. add_rustup_target() {
  28. if [[ $TARGET != $HOST ]]; then
  29. rustup target add $TARGET
  30. fi
  31. }
  32. configure_cargo() {
  33. if [[ $PREFIX ]]; then
  34. ${PREFIX}gcc -v
  35. mkdir -p .cargo
  36. cat >>.cargo/config <<EOF
  37. [target.$TARGET]
  38. linker = "${PREFIX}gcc"
  39. EOF
  40. fi
  41. }
  42. main() {
  43. install_binutils
  44. install_c_toolchain
  45. install_rust
  46. add_rustup_target
  47. configure_cargo
  48. }
  49. main