]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - tools/make-functions
make.sh: Use -pipe in CFLAGS when host has >1GB of memory
[ipfire-2.x.git] / tools / make-functions
index ebe157a477c09c2ad736bf36cb8f7c9abba26343..1ff4613f3ea5c435c3a856cb6a2f6bc6dce85f3c 100644 (file)
@@ -60,6 +60,20 @@ WARN="\\033[1;35m"
 FAIL="\\033[1;31m"
 NORMAL="\\033[0;39m"
 
+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}"
 
@@ -124,7 +138,13 @@ configure_build() {
        # Enables hardening
        HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4"
 
-       CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+       CFLAGS="-O2 -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+
+       # Run compiler and assembler simultaneously on systems that have enough memory
+       if [ ${HOST_MEM} -ge 1024 ]; then
+               CFLAGS="${CFLAGS} -pipe"
+       fi
+
        CXXFLAGS="${CFLAGS}"
 }
 
@@ -223,9 +243,9 @@ beautify()
                                LAST_STAGE_TIME=$[ `date +%s` - $STAGE_TIME_START ]
                        fi
                        STAGE_TIME_START=`date +%s`
-                       echo -ne "${BOLD}*** ${MESSAGE}${NORMAL}"
+                       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"
                        ;;
@@ -607,21 +627,21 @@ lfsmake1() {
 
        cd $BASEDIR/lfs && env -i \
                PATH="/tools/ccache/bin:/tools/bin:$PATH" \
+               CCACHE_DIR="${CCACHE_DIR}" \
+               CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
+               CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
+               CFLAGS="${CFLAGS}" \
+               CXXFLAGS="${CXXFLAGS}" \
+               MAKETUNING="${MAKETUNING}" \
                make -f $* \
                        TOOLCHAIN=1 \
                        CROSSTARGET="${CROSSTARGET}" \
                        BUILDTARGET="${BUILDTARGET}" \
                        BUILD_ARCH="${BUILD_ARCH}" \
                        BUILD_PLATFORM="${BUILD_PLATFORM}" \
-                       CFLAGS="${CFLAGS}" \
-                       CXXFLAGS="${CXXFLAGS}" \
                        LFS_BASEDIR="${BASEDIR}" \
                        ROOT="${LFS}" \
                        KVER="${KVER}" \
-                       MAKETUNING="${MAKETUNING}" \
-                       CCACHE_DIR="${CCACHE_DIR}" \
-                       CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
-                       CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
                        install >> $LOGFILE 2>&1
 
        local COMPILE_SUCCESS=$?
@@ -645,7 +665,10 @@ lfsmake2() {
        local PS1='\u:\w$ '
 
        enterchroot \
-               bash -x -c "cd /usr/src/lfs && make -f $* LFS_BASEDIR=/usr/src install" \
+               bash -x -c "cd /usr/src/lfs && \
+                       MAKETUNING=${MAKETUNING} \
+                       make -f $* \
+                       LFS_BASEDIR=/usr/src install" \
                >> ${LOGFILE} 2>&1
 
        local COMPILE_SUCCESS=$?