FAIL="\\033[1;31m"
NORMAL="\\033[0;39m"
+system_processors() {
+ getconf _NPROCESSORS_ONLN 2>/dev/null || echo "1"
+}
+
+system_memory() {
+ local key val unit
+
+ while read -r key val unit; do
+ case "${key}" in
+ MemTotal:*)
+ # Convert to MB
+ echo "$(( ${val} / 1024 ))"
+ break
+ ;;
+ esac
+ done < /proc/meminfo
+}
+
configure_build() {
local build_arch="${1}"
CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
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() {
echo "aarch64"
;;
- armv7*)
- echo "armv7hl"
- ;;
-
- armv6*|armv5*)
+ armv7*|armv6*|armv5*)
echo "armv5tel"
;;
STAGE_TIME_START=`date +%s`
echo -ne "${BOLD}*** (${BUILD_ARCH}) ${MESSAGE}${NORMAL}"
if [ "$LAST_STAGE_TIME" ]; then
- echo -ne "${DONE} (Last stage took $LAST_STAGE_TIME secs)${NORMAL}"
+ echo -ne "${DONE} (Last stage took $LAST_STAGE_TIME secs)${NORMAL}\n"
fi
echo -ne "${BOLD}${SET_VER_COL} version${SET_OPT_COL} options${SET_TIME_COL} time (sec)${SET_RESULT_COL} status${NORMAL}\n"
;;
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
+ MAKETUNING="${MAKETUNING}" \
make -f $* \
TOOLCHAIN=1 \
CROSSTARGET="${CROSSTARGET}" \
LFS_BASEDIR="${BASEDIR}" \
ROOT="${LFS}" \
KVER="${KVER}" \
- MAKETUNING="${MAKETUNING}" \
install >> $LOGFILE 2>&1
local COMPILE_SUCCESS=$?
local PS1='\u:\w$ '
enterchroot \
- bash -x -c "cd /usr/src/lfs && make -f $* \
+ bash -x -c "cd /usr/src/lfs && \
MAKETUNING=${MAKETUNING} \
+ make -f $* \
LFS_BASEDIR=/usr/src install" \
>> ${LOGFILE} 2>&1