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}"
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"
;;
file ${file} 2>/dev/null | grep -q "statically linked"
}
-entershell() {
- if [ ! -e $BASEDIR/build/usr/src/lfs/ ]; then
- exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/"
- fi
-
+enterchroot() {
# Install QEMU helper, if needed
qemu_install_helper
- echo "Entering to a shell inside LFS chroot, go out with exit"
- chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='ipfire build chroot ($(uname -m)) \u:\w\$ ' \
- PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
- VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \
- NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
+ local PATH="/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin"
+
+ PATH="${PATH}" chroot ${LFS} env -i \
+ HOME="/root" \
+ TERM="${TERM}" \
+ PS1="${PS1}" \
+ PATH="${PATH}" \
+ SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
+ PAKFIRE_CORE="${PAKFIRE_CORE}" \
+ NAME="${NAME}" \
+ SNAME="${SNAME}" \
+ VERSION="${VERSION}" \
+ CORE="${CORE}" \
+ SLOGAN="${SLOGAN}" \
+ CONFIG_ROOT="${CONFIG_ROOT}" \
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
+ BUILDTARGET="${BUILDTARGET}" \
+ CROSSTARGET="${CROSSTARGET}" \
+ BUILD_ARCH="${BUILD_ARCH}" \
+ BUILD_PLATFORM="${BUILD_PLATFORM}" \
CCACHE_DIR=/usr/src/ccache \
CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
- KVER=$KVER \
- BUILDTARGET="$BUILDTARGET" \
- CROSSTARGET="${CROSSTARGET}" \
- BUILD_ARCH="${BUILD_ARCH}" \
+ KVER="${KVER}" \
$(fake_environ) \
$(qemu_environ) \
- /tools/bin/bash -i
- if [ $? -ne 0 ]; then
- beautify message FAIL
- exiterror "chroot error"
- else
+ "$@"
+}
+
+entershell() {
+ if [ ! -e $BASEDIR/build/usr/src/lfs/ ]; then
+ exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/"
+ fi
+
+ echo "Entering to a shell inside LFS chroot, go out with exit"
+ local PS1="ipfire build chroot ($(uname -m)) \u:\w\$ "
+
+ if enterchroot bash -i; then
stdumount
+ else
+ beautify message FAIL
+ exiterror "chroot error"
fi
}
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=$?
lfsmakecommoncheck $*
[ $? == 1 ] && return 0
- # Install QEMU helper, if needed
- qemu_install_helper
-
local PKG_TIME_START=`date +%s`
- chroot $LFS /tools/bin/env -i HOME=/root \
- TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
- VERSION=$VERSION PAKFIRE_CORE="${PAKFIRE_CORE}" \
- SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
- CONFIG_ROOT=$CONFIG_ROOT \
- NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
- CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
- CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
- CCACHE_DIR=/usr/src/ccache \
- CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
- CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
- KVER=$KVER MAKETUNING=$MAKETUNING \
- BUILDTARGET="$BUILDTARGET" \
- CROSSTARGET="${CROSSTARGET}" \
- BUILD_ARCH="${BUILD_ARCH}" \
- $(qemu_environ) \
- $(fake_environ) \
- /tools/bin/bash -x -c "cd /usr/src/lfs && \
- make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
- local COMPILE_SUCCESS=$?
- local PKG_TIME_END=`date +%s`
+ local PS1='\u:\w$ '
- if [ $COMPILE_SUCCESS -ne 0 ]; then
- beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
- exiterror "Building $*";
- else
- beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
- fi
-
- return 0
-}
-
-ipfiremake() {
- lfsmakecommoncheck $*
- [ $? == 1 ] && return 0
-
- # Install QEMU helper, if needed
- qemu_install_helper
-
- local PKG_TIME_START=`date +%s`
- chroot $LFS /tools/bin/env -i HOME=/root \
- TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
- VERSION=$VERSION \
- CORE=$CORE \
- CONFIG_ROOT=$CONFIG_ROOT \
- NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
- SYSTEM_RELEASE="$SYSTEM_RELEASE" \
- CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
- CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
- CCACHE_DIR=/usr/src/ccache \
- CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
- CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
- KVER=$KVER MAKETUNING=$MAKETUNING \
- BUILDTARGET="$BUILDTARGET" \
- CROSSTARGET="${CROSSTARGET}" \
- BUILD_ARCH="${BUILD_ARCH}" \
- $(qemu_environ) \
- $(fake_environ) \
- /bin/bash -x -c "cd /usr/src/lfs && \
- make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+ enterchroot \
+ bash -x -c "cd /usr/src/lfs && \
+ MAKETUNING=${MAKETUNING} \
+ make -f $* \
+ LFS_BASEDIR=/usr/src install" \
+ >> ${LOGFILE} 2>&1
local COMPILE_SUCCESS=$?
local PKG_TIME_END=`date +%s`
else
beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
fi
+
return 0
}
ipfiredist() {
lfsmakecommoncheck $*
[ $? == 1 ] && return 0
-
- # Install QEMU helper, if needed
- qemu_install_helper
local PKG_TIME_START=`date +%s`
- chroot $LFS /tools/bin/env -i HOME=/root \
- TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
- VERSION=$VERSION \
- CONFIG_ROOT=$CONFIG_ROOT \
- NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
- CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
- CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
- CCACHE_DIR=/usr/src/ccache \
- CCACHE_COMPRESS="${CCACHE_COMPRESS}" \
- CCACHE_COMPILERCHECK="${CCACHE_COMPILERCHECK}" \
- KVER=$KVER \
- BUILDTARGET="$BUILDTARGET" \
- CROSSTARGET="${CROSSTARGET}" \
- BUILD_ARCH="${BUILD_ARCH}" \
- $(qemu_environ) \
- $(fake_environ) \
- /bin/bash -x -c "cd /usr/src/lfs && \
- make -f $1 LFS_BASEDIR=/usr/src dist" >>$LOGFILE 2>&1
-
- local COMPILE_SUCCESS=$?
- local PKG_TIME_END=`date +%s`
+ local PS1='\u:\w$ '
- if [ $COMPILE_SUCCESS -ne 0 ]; then
- beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
- exiterror "Packaging $*";
- else
- beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
- fi
- return 0
-}
-
-installmake() {
- lfsmakecommoncheck $*
- [ $? == 1 ] && return 0
-
- # Install QEMU helper, if needed
- qemu_install_helper
-
- local PKG_TIME_START=`date +%s`
- chroot $LFS /tools/bin/env -i HOME=/root \
- TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
- VERSION=$VERSION \
- SYSTEM_RELEASE="${SYSTEM_RELEASE}" \
- CONFIG_ROOT=$CONFIG_ROOT \
- NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
- CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
- CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
- CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
- KVER=$KVER \
- BUILDTARGET="$BUILDTARGET" \
- CROSSTARGET="${CROSSTARGET}" \
- BUILD_ARCH="${BUILD_ARCH}" \
- LD_LIBRARY_PATH=/tools/lib \
- /tools/bin/bash -x -c "cd /usr/src/lfs && \
- /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+ enterchroot \
+ bash -x -c "cd /usr/src/lfs && make -f $* LFS_BASEDIR=/usr/src dist" \
+ >> ${LOGFILE} 2>&1
local COMPILE_SUCCESS=$?
local PKG_TIME_END=`date +%s`
if [ $COMPILE_SUCCESS -ne 0 ]; then
beautify result FAIL $[ $PKG_TIME_END - $PKG_TIME_START ]
- exiterror "Building $*";
+ exiterror "Packaging $*";
else
beautify result DONE $[ $PKG_TIME_END - $PKG_TIME_START ]
fi