]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - tools/make-functions
Move toolchain from /tools to /tools_${arch}
[ipfire-2.x.git] / tools / make-functions
index 676b9710120c9bd94fb8972b187cbea3407f3c86..6ef1d115342a2340743fcae6950813e00062ae1d 100644 (file)
@@ -138,18 +138,33 @@ configure_build() {
        fi
 
        BUILD_ARCH="${build_arch}"
+       TOOLS_DIR="/tools_${BUILD_ARCH}"
 
        # Enables hardening
        HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -fstack-protector-strong --param=ssp-buffer-size=4"
 
-       CFLAGS="-O2 -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+       CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
+       CXXFLAGS="${CFLAGS}"
 
-       # Run compiler and assembler simultaneously on systems that have enough memory
-       if [ ${HOST_MEM} -ge 1024 ]; then
-               CFLAGS="${CFLAGS} -pipe"
-       fi
+       # 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 ))
 
-       CXXFLAGS="${CFLAGS}"
+               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() {
@@ -162,11 +177,7 @@ configure_build_guess() {
                        echo "aarch64"
                        ;;
 
-               armv7*)
-                       echo "armv7hl"
-                       ;;
-
-               armv6*|armv5*)
+               armv7*|armv6*|armv5*)
                        echo "armv5tel"
                        ;;
 
@@ -375,9 +386,9 @@ exiterror() {
 }
 
 fake_environ() {
-       [ -e "${BASEDIR}/build/tools/lib/libpakfire_preload.so" ] || return
+       [ -e "${BASEDIR}/build${TOOLS_DIR}/lib/libpakfire_preload.so" ] || return
 
-       local env="LD_PRELOAD=/tools/lib/libpakfire_preload.so"
+       local env="LD_PRELOAD=${TOOLS_DIR}/lib/libpakfire_preload.so"
 
        # Fake kernel version, because some of the packages do not compile
        # with kernel 3.0 and later.
@@ -518,7 +529,7 @@ enterchroot() {
        # Install QEMU helper, if needed
        qemu_install_helper
 
-       local PATH="/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin"
+       local PATH="${TOOLS_DIR}/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:${TOOLS_DIR}/bin"
 
        PATH="${PATH}" chroot ${LFS} env -i \
                HOME="/root" \
@@ -532,6 +543,7 @@ enterchroot() {
                VERSION="${VERSION}" \
                CORE="${CORE}" \
                SLOGAN="${SLOGAN}" \
+               TOOLS_DIR="${TOOLS_DIR}" \
                CONFIG_ROOT="${CONFIG_ROOT}" \
                CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
                CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
@@ -630,7 +642,7 @@ lfsmake1() {
        local PKG_TIME_START=`date +%s`
 
        cd $BASEDIR/lfs && env -i \
-               PATH="/tools/ccache/bin:/tools/bin:$PATH" \
+               PATH="${TOOLS_DIR}/ccache/bin:${TOOLS_DIR}/bin:$PATH" \
                CCACHE_DIR="${CCACHE_DIR}" \
                CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
                CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
@@ -639,6 +651,7 @@ lfsmake1() {
                MAKETUNING="${MAKETUNING}" \
                make -f $* \
                        TOOLCHAIN=1 \
+                       TOOLS_DIR="${TOOLS_DIR}" \
                        CROSSTARGET="${CROSSTARGET}" \
                        BUILDTARGET="${BUILDTARGET}" \
                        BUILD_ARCH="${BUILD_ARCH}" \