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
)

Reply via email to