Mentioned script.
#!/bin/sh #URL=http://ftp.gnu.org/gnu/make/make-4.4.1.tar.gz # 34 .o files #URL=https://mirrors.dotsrc.org/gnu/make/make-4.4.1.tar.gz URL=https://mirrors.dotsrc.org/gnu/bash/bash-5.2.tar.gz # 193 #URL=https://mirrors.dotsrc.org/gnu/coreutils/coreutils-9.5.tar.gz # ~1859 .c #URL=https://mirrors.dotsrc.org/gnu/binutils/binutils-2.43.1.tar.gz # ~2180 .c
FILE=$(basename $URL) [ -f "$FILE" ] || wget $URL DIR=${FILE/.tar.gz/} [ -d "$DIR" ] || tar -xzf $FILE ( nproc=$(nproc) SUDO=$(command -v sudo) cd $DIR [ -f "config.status" ] || sh configure > configure.log 2>&1 uname -a echo nproc: $nproc echo echo "# $DIR" echo ## s1=$(seq $((nproc)) $((nproc+3)) ) istep=$((nproc/4)) if [ $istep -gt 0 ]; then s2=$(seq $((nproc+4)) $istep $((nproc*2)) ) fi ## for j in $s1 $s2 " " ; do #$SUDO echo 3 > /proc/sys/vm/drop_caches && sleep 1 # flush disk buffers if needed make clean > /dev/null 2>&1 CMD="make -j$j V=0" echo "make -j$j" time eval $CMD > make.log 2>&1 echo sleep $((j)) done )