make.sh: Calculate MAKETUNING depending on available memory

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
This commit is contained in:
Michael Tremer
2017-11-07 15:43:14 +01:00
parent 4f1cce84fb
commit a98ab1d7fd
2 changed files with 25 additions and 9 deletions

14
make.sh
View File

@@ -62,16 +62,17 @@ export BASEDIR LOGFILE
DIR_CHK=$BASEDIR/cache/check
mkdir $BASEDIR/log/ 2>/dev/null
# Load configuration file
if [ -f .config ]; then
. .config
fi
# Include funtions
. tools/make-functions
# Get the amount of memory in this build system
HOST_MEM=$(system_memory)
if [ -f .config ]; then
. .config
fi
if [ -n "${BUILD_ARCH}" ]; then
configure_build "${BUILD_ARCH}"
elif [ -n "${TARGET_ARCH}" ]; then
@@ -176,11 +177,6 @@ prepareenv() {
# Setup environment
set +h
LC_ALL=POSIX
if [ -z $MAKETUNING ]; then
CPU_COUNT="$(system_processors)"
MAKETUNING="-j$(( ${CPU_COUNT} * 2 + 1 ))"
fi
export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD

View File

@@ -150,6 +150,26 @@ configure_build() {
fi
CXXFLAGS="${CFLAGS}"
# Determine parallelism
if [ -z "${MAKETUNING}" ]; then
# We assume that each process consumes about
# 192MB of memory. Therefore we find out how
# many processes fit into memory.
local mem_max=$(( ${HOST_MEM} / 192 ))
local processors="$(system_processors)"
local cpu_max=$(( ${processors} * 2 ))
local parallelism
if [ ${mem_max} -lt ${cpu_max} ]; then
parallelism=${mem_max}
else
parallelism=${cpu_max}
fi
MAKETUNING="-j${parallelism}"
fi
}
configure_build_guess() {