#!/bin/bash MAKEDEPS=(cmake ) DEPS=(curl gcc libssh2) PKG_VER=1.58.1 SOURCE=https://static.rust-lang.org/dist/rustc-$PKG_VER-src.tar.gz DESC="Systems programming language focused on safety, speed and concurrency" prepare () { mkdir $PKG_DEST/opt/rustc-$PKG_VER && ln -svfin rustc-$PKG_VER $PKG_DEST/opt/rustc cat << EOF > config.toml # see config.toml.example for more possible options # See the 8.4 book for an example using shipped LLVM # e.g. if not installing clang, or using a version before 10.0 [llvm] # by default, rust will build for a myriad of architectures targets = "X86" # When using system llvm prefer shared libraries link-shared = true [build] # omit docs to save time and space (default is to build them) docs = false # install cargo as well as rust extended = true [install] prefix = "/opt/rustc-1.58.1" docdir = "share/doc/rustc-1.58.1" [rust] channel = "stable" rpath = false # BLFS does not install the FileCheck executable from llvm, # so disable codegen tests codegen-tests = false [target.x86_64-unknown-linux-gnu] # NB the output of llvm-config (i.e. help options) may be # dumped to the screen when config.toml is parsed. llvm-config = "/usr/bin/llvm-config" [target.i686-unknown-linux-gnu] # NB the output of llvm-config (i.e. help options) may be # dumped to the screen when config.toml is parsed. llvm-config = "/usr/bin/llvm-config" EOF } build () { export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi" && python3 ./x.py build --exclude src/tools/miri } package () { export LIBSSH2_SYS_USE_PKG_CONFIG=1 && DESTDIR=${PWD}/install python3 ./x.py install && unset LIBSSH2_SYS_USE_PKG_CONFIG chown -R root:root install && cp -a install/* $PKG_DEST mkdir -pv $PKG_DEST/etc/profile.d/ cat > $PKG_DEST/etc/profile.d/rustc.sh << "EOF" # Begin /etc/profile.d/rustc.sh pathprepend /opt/rustc/bin PATH # End /etc/profile.d/rustc.sh EOF } postinstall () { cat >> /etc/ld.so.conf << EOF # Begin rustc addition /opt/rustc/lib # End rustc addition EOF ldconfig }