в оперативу попадают только ссылки на сорсы, что и быстрей копирования и экономит место.
все временный файлы создаются в раме.
на винт после сборки падают только необходимые файлы, а весь треш пропадает в /dev/null.
В случае моего ядра это 6000+ файлов на овер 150 метров
#!/bin/bash
RAM_DIR="${PWD%/*}/RAM"
mkdir "${RAM_DIR}"
SOURCE_DIR="${PWD}"
mount -t tmpfs tmpfs ${RAM_DIR}
#####################################################
##### copy sources over symlinks into RAM_DIR #######
for i in $(ls -A);do
cp -Rs ${SOURCE_DIR}/${i} ${RAM_DIR}/${i}
done
cd "${RAM_DIR}"
#####################################################
##### config ########################################
[[ ! -f .config ]] && zcat /proc/config.gz > .config
if [[ -z "${1}" ]];then
make oldconfig
else
make ${1}
fi
#####################################################
##### compiling #####################################
threads="$(( $(awk '/^cpu cores/ {print $4}' /proc/cpuinfo | uniq) + 1 ))"
make -j${threads}
#####################################################
##### copy generated files back into SOURCE_DIR #####
rsync --checksum --recursive --links --safe-links \
--exclude='*.o' \
--exclude='*.cmd' \
--exclude='*.builtin' \
--exclude='*.order' \
--exclude='*.mod' \
${RAM_DIR}/ ${SOURCE_DIR}/
cd "${SOURCE_DIR}"
umount "${RAM_DIR}"
rm -rf "${RAM_DIR}"
Комментариев нет :
Отправить комментарий