#!/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 -pv $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 [llvm] # use ninja ninja = true targets = "X86" # When compiling LLVM, the experimental targets (WebAssembly # and RISCV) are built by default - omit them experimental-targets = "" [build] # omit HTML docs to save time and space (comment this to build them) docs = false # install cargo as well as rust extended = true [install] # Adjust the prefix for the desired destination #prefix = "/usr" prefix = "/opt/rustc-$PKG_VER" # docdir is used even if the full awesome docs are not installed docdir = "share/doc/rustc-$PKG_VER" [rust] channel = "stable" rpath = false codegen-tests = false # get a trace if there is an Internal Compiler Exception backtrace-on-ice = true EOF } build () { export RUSTFLAGS="$RUSTFLAGS -C link-arg=-lffi -C link-arg=-liconv" && 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 mkdir -pv $PKG_DEST/etc/ld.so.conf.d cat >> $PKG_DEST/etc/ld.so.conf.d/rustc.conf << EOF # Begin rustc addition /opt/rustc/lib # End rustc addition EOF }