build: relax kernel and base rebuild frequency

If a set is already there, use it.
This commit is contained in:
Franco Fichtner 2016-01-31 12:12:55 +01:00
parent 3503b89f8a
commit 92e80dedc9
2 changed files with 30 additions and 27 deletions

View File

@ -29,33 +29,35 @@ set -e
. ./common.sh && $(${SCRUB_ARGS})
git_describe ${SRCDIR}
BASE_SET=$(find ${SETSDIR} -name "base-*-${ARCH}.txz")
BASESET=${SETSDIR}/base-${REPO_VERSION}-${ARCH}
if [ -f ${BASESET}.txz ]; then
echo ">>> Base is up to date"
if [ -f ${BASE_SET} ]; then
echo ">>> Reusing base set: ${BASE_SET}"
exit 0
fi
git_describe ${SRCDIR}
BASE_SET=${SETSDIR}/base-${REPO_VERSION}-${ARCH}
sh ./clean.sh base
MAKEARGS="SRCCONF=${CONFIGDIR}/src.conf COMPILER_TYPE=clang __MAKE_CONF="
ENVFILTER="env -i USER=${USER} LOGNAME=${LOGNAME} HOME=${HOME} \
MAKE_ARGS="SRCCONF=${CONFIGDIR}/src.conf COMPILER_TYPE=clang __MAKE_CONF="
ENV_FILTER="env -i USER=${USER} LOGNAME=${LOGNAME} HOME=${HOME} \
SHELL=${SHELL} BLOCKSIZE=${BLOCKSIZE} MAIL=${MAIL} PATH=${PATH} \
TERM=${TERM} HOSTTYPE=${HOSTTYPE} VENDOR=${VENDOR} OSTYPE=${OSTYPE} \
MACHTYPE=${MACHTYPE} PWD=${PWD} GROUP=${GROUP} HOST=${HOST} \
EDITOR=${EDITOR} PAGER=${PAGER}"
${ENVFILTER} make -C${SRCDIR} -j${CPUS} buildworld ${MAKEARGS} NO_CLEAN=yes
${ENVFILTER} make -C${SRCDIR}/release obj ${MAKEARGS}
${ENVFILTER} make -C${SRCDIR}/release base.txz ${MAKEARGS}
${ENV_FILTER} make -C${SRCDIR} -j${CPUS} buildworld ${MAKE_ARGS} NO_CLEAN=yes
${ENV_FILTER} make -C${SRCDIR}/release obj ${MAKE_ARGS}
${ENV_FILTER} make -C${SRCDIR}/release base.txz ${MAKE_ARGS}
mv $(make -C${SRCDIR}/release -V .OBJDIR)/base.txz ${BASESET}.txz
mv $(make -C${SRCDIR}/release -V .OBJDIR)/base.txz ${BASE_SET}.txz
echo -n ">>> Generating obsolete file list... "
tar -tf ${BASESET}.txz | \
tar -tf ${BASE_SET}.txz | \
sed -e 's/^\.//g' -e '/\/$/d' | sort > /tmp/setdiff.new.${$}
: > /tmp/setdiff.old.${$}
@ -73,11 +75,11 @@ fi
(cat /tmp/setdiff.tmp.${$}; diff -u /tmp/setdiff.old.${$} \
/tmp/setdiff.new.${$} | grep '^-/' | cut -b 2-) | \
sort -u > ${BASESET}.obsolete
sort -u > ${BASE_SET}.obsolete
rm -f /tmp/setdiff.*
echo "done"
generate_signature ${BASESET}.txz
generate_signature ${BASESET}.obsolete
generate_signature ${BASE_SET}.txz
generate_signature ${BASE_SET}.obsolete

View File

@ -29,28 +29,29 @@ set -e
. ./common.sh && $(${SCRUB_ARGS})
git_describe ${SRCDIR}
KERNEL_SET=$(find ${SETSDIR} -name "kernel-*-${ARCH}.txz")
KERNELSET=${SETSDIR}/kernel-${REPO_VERSION}-${ARCH}
if [ -f ${KERNELSET}.txz ]; then
echo ">>> Kernel is up to date"
if [ -f ${KERNEL_SET} ]; then
echo ">>> Reusing kernel set: ${KERNEL_SET}"
exit 0
fi
git_describe ${SRCDIR}
KERNEL_SET=${SETSDIR}/kernel-${REPO_VERSION}-${ARCH}
sh ./clean.sh kernel
BUILD_KERNEL="SMP"
# XXX move config to src.git
cp ${CONFIGDIR}/${BUILD_KERNEL} ${SRCDIR}/sys/${ARCH}/conf/${BUILD_KERNEL}
MAKEARGS="TARGET_ARCH=${ARCH} KERNCONF=${BUILD_KERNEL}"
MAKE_ARGS="TARGET_ARCH=${ARCH} KERNCONF=${BUILD_KERNEL}"
make -C${SRCDIR} -j${CPUS} buildkernel ${MAKEARGS} NO_KERNELCLEAN=yes
make -C${SRCDIR}/release obj ${MAKEARGS}
make -C${SRCDIR}/release kernel.txz ${MAKEARGS}
make -C${SRCDIR} -j${CPUS} buildkernel ${MAKE_ARGS} NO_KERNELCLEAN=yes
make -C${SRCDIR}/release obj ${MAKE_ARGS}
make -C${SRCDIR}/release kernel.txz ${MAKE_ARGS}
mv $(make -C${SRCDIR}/release -V .OBJDIR)/kernel.txz ${KERNELSET}.txz
mv $(make -C${SRCDIR}/release -V .OBJDIR)/kernel.txz ${KERNEL_SET}.txz
generate_signature ${KERNELSET}.txz
generate_signature ${KERNEL_SET}.txz