GIT_TAG=$(git tag | tail -1) # Git Tag
GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=20180606
+TOOLCHAINVER=20181024
###############################################################################
#
# This is the directory where make.sh is in
export BASEDIR=$(echo $FULLPATH | sed "s/\/$BASENAME//g")
-LOGFILE=$BASEDIR/log/_build.preparation.log
-export LOGFILE
DIR_CHK=$BASEDIR/cache/check
-mkdir $BASEDIR/log/ 2>/dev/null
system_processors() {
getconf _NPROCESSORS_ONLN 2>/dev/null || echo "1"
BUILD_ARCH="${build_arch}"
TOOLS_DIR="/tools_${BUILD_ARCH}"
+ LOG_DIR="log_${BUILD_ARCH}"
# Enables hardening
HARDENING_CFLAGS="-Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong"
umount $BASEDIR/build/usr/src/html 2>/dev/null;
umount $BASEDIR/build/usr/src/langs 2>/dev/null;
umount $BASEDIR/build/usr/src/lfs 2>/dev/null;
- umount $BASEDIR/build/usr/src/log 2>/dev/null;
+ umount $BASEDIR/build/usr/src/${LOG_DIR} 2>/dev/null;
umount $BASEDIR/build/usr/src/src 2>/dev/null;
}
}
prepareenv() {
+ # Create log directory if it doesn't exist, yet
+ mkdir -p "${BASEDIR}/${LOG_DIR}"
+
# Are we running the right shell?
if [ -z "${BASH}" ]; then
exiterror "BASH environment variable is not set. You're probably running the wrong shell."
mkdir -p $BASEDIR/build/{etc,usr/src} 2>/dev/null
mkdir -p $BASEDIR/build/{dev/{shm,pts},proc,sys}
mkdir -p $BASEDIR/{cache,ccache} 2>/dev/null
- mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,log,src,ccache}
+ mkdir -p $BASEDIR/build/usr/src/{cache,config,doc,html,langs,lfs,${LOG_DIR},src,ccache}
mknod -m 600 $BASEDIR/build/dev/console c 5 1 2>/dev/null
mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
mount --bind $BASEDIR/html $BASEDIR/build/usr/src/html
mount --bind $BASEDIR/langs $BASEDIR/build/usr/src/langs
mount --bind $BASEDIR/lfs $BASEDIR/build/usr/src/lfs
- mount --bind $BASEDIR/log $BASEDIR/build/usr/src/log
+ mount --bind $BASEDIR/${LOG_DIR} $BASEDIR/build/usr/src/${LOG_DIR}
mount --bind $BASEDIR/src $BASEDIR/build/usr/src/src
# Run LFS static binary creation scripts one by one
CORE="${CORE}" \
SLOGAN="${SLOGAN}" \
TOOLS_DIR="${TOOLS_DIR}" \
+ LOG_DIR="${LOG_DIR}" \
CONFIG_ROOT="${CONFIG_ROOT}" \
CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
exiterror "Could not create ${TOOLS_DIR} symbolic link"
fi
- LOGFILE="$BASEDIR/log/_build.toolchain.log"
+ LOGFILE="$BASEDIR/${LOG_DIR}/_build.toolchain.log"
export LOGFILE
lfsmake1 stage1
}
buildbase() {
- LOGFILE="$BASEDIR/log/_build.base.log"
+ LOGFILE="$BASEDIR/${LOG_DIR}/_build.base.log"
export LOGFILE
lfsmake2 stage2
lfsmake2 linux KCFG="-headers"
lfsmake2 readline
lfsmake2 readline-compat
lfsmake2 bzip2
+ lfsmake2 xz
lfsmake2 pcre
lfsmake2 pcre-compat
lfsmake2 bash
lfsmake2 util-linux
lfsmake2 udev
lfsmake2 vim
- lfsmake2 xz
- lfsmake2 paxctl
}
buildipfire() {
- LOGFILE="$BASEDIR/log/_build.ipfire.log"
+ LOGFILE="$BASEDIR/${LOG_DIR}/_build.ipfire.log"
export LOGFILE
lfsmake2 configroot
lfsmake2 initscripts
lfsmake2 rsync
lfsmake2 libtirpc
lfsmake2 rpcbind
+ lfsmake2 keyutils
lfsmake2 nfs
lfsmake2 gnu-netcat
lfsmake2 ncat
buildinstaller() {
# Run installer scripts one by one
- LOGFILE="$BASEDIR/log/_build.installer.log"
+ LOGFILE="$BASEDIR/${LOG_DIR}/_build.installer.log"
export LOGFILE
lfsmake2 memtest
lfsmake2 installer
}
buildpackages() {
- LOGFILE="$BASEDIR/log/_build.packages.log"
+ LOGFILE="$BASEDIR/${LOG_DIR}/_build.packages.log"
export LOGFILE
echo "... see detailed log in _build.*.log files" >> $LOGFILE
# Generating list of packages used
print_line "Generating packages list from logs"
rm -f $BASEDIR/doc/packages-list
- for i in `ls -1tr $BASEDIR/log/[^_]*`; do
- if [ "$i" != "$BASEDIR/log/FILES" -a -n $i ]; then
+ for i in `ls -1tr $BASEDIR/${LOG_DIR}/[^_]*`; do
+ if [ "$i" != "$BASEDIR/${LOG_DIR}/FILES" -a -n $i ]; then
echo "* `basename $i`" >>$BASEDIR/doc/packages-list
fi
done
rm -rf $BASEDIR/build
rm -rf $BASEDIR/cdrom
rm -rf $BASEDIR/packages
- rm -rf $BASEDIR/log
+ rm -rf $BASEDIR/${LOG_DIR}
if [ -h "${TOOLS_DIR}" ]; then
rm -f "${TOOLS_DIR}"
fi
if [ ! -d $BASEDIR/cache ]; then
mkdir $BASEDIR/cache
fi
- mkdir -p $BASEDIR/log
+ mkdir -p $BASEDIR/${LOG_DIR}
echo -e "${BOLD}Preload all source files${NORMAL}" | tee -a $LOGFILE
FINISHED=0
cd $BASEDIR/lfs
buildtoolchain
echo "`date -u '+%b %e %T'`: Create toolchain image for ${BUILD_ARCH}" | tee -a $LOGFILE
test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
- cd $BASEDIR && tar -cf- --exclude='log/_build.*.log' build/${TOOLS_DIR} build/bin/sh log | xz ${XZ_OPT} \
+ cd $BASEDIR && tar -cf- --exclude='${LOG_DIR}/_build.*.log' build/${TOOLS_DIR} build/bin/sh ${LOG_DIR} | xz ${XZ_OPT} \
> cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.xz
md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.tar.xz \
> cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-${BUILD_ARCH}.md5