introduced NICE variable

This one regulates the build wrapper: if the value is non-empty
then nice(1) and ionice(1) will be attempted so that the build
behaves better in regard to other tasks running on the system.

A few doc/variables.txt updates along the way.
This commit is contained in:
Michael Shigorin 2011-11-04 15:53:06 +02:00
parent 102aa3851d
commit cd3e47c562
3 changed files with 25 additions and 10 deletions

View File

@ -9,5 +9,8 @@
# spares tmpfs, quite recommended unless you need raw workdir chroots # spares tmpfs, quite recommended unless you need raw workdir chroots
#CLEAN = 1 #CLEAN = 1
# run with lower CPU and I/O priorities
#NICE = 1
# try and draw attention when done (depends on readline/terminal settings) # try and draw attention when done (depends on readline/terminal settings)
#BELL = 1 #BELL = 1

View File

@ -9,16 +9,16 @@
+ см. ../image.in/Makefile, apt.conf.sample + см. ../image.in/Makefile, apt.conf.sample
- ARCH - ARCH
+ определяет целевую архитектуру образа + задаёт целевую архитектуру образа
+ значение: пусто (по умолчанию авто), i586 или x86_64 + значение: пусто (по умолчанию авто), i586 или x86_64
+ см. ../lib/build.mk + см. ../lib/build.mk
- BELL - BELL
+ требует подачу сигнала после завершения сборки + подаёт сигнал после завершения сборки
+ см. ../lib/build.mk + см. ../lib/build.mk
- BUILDDIR - BUILDDIR
+ определяет каталог генерируемого профиля и сборки + задаёт каталог генерируемого профиля и сборки
+ значение: пусто (по умолчанию авто) либо строка + значение: пусто (по умолчанию авто) либо строка
+ см. ../lib/profile.mk + см. ../lib/profile.mk
@ -30,10 +30,15 @@
+ см. ../lib/clean.mk + см. ../lib/clean.mk
- DEBUG - DEBUG
+ включение средств отладки + включает средства отладки
+ значение: пусто (по умолчанию), 1 или 2 + значение: пусто (по умолчанию), 1 или 2
+ см. ../lib/log.mk + см. ../lib/log.mk
- NICE
+ понижает нагрузку системы сборочной задачей
+ значение: пусто (по умолчанию) либо любая строка
+ см. ../lib/build.mk
пример пример
~~~~~~ ~~~~~~
make DEBUG=1 CLEAN=1 syslinux.iso make DEBUG=1 CLEAN=1 distro/syslinux.iso

View File

@ -4,10 +4,19 @@ ifndef MKIMAGE_PROFILES
$(error this makefile is designed to be included in toplevel one) $(error this makefile is designed to be included in toplevel one)
endif endif
# NB: /usr/bin/{i586,x86_64} are setarch(8) symlinks
export ARCH ?= $(shell arch | sed 's/i686/i586/') export ARCH ?= $(shell arch | sed 's/i686/i586/')
# try not to bog down the system, both CPU and I/O wise
ifdef NICE
START := nice $(shell ionice -c3 echo "ionice -c3" 2>/dev/null)
endif
# it's also nice to know how long and much it takes
START += time -f "%E %PCPU %Mk"
# /usr/bin/{i586,x86_64} are setarch(8) symlinks
START += $(ARCH)
# to be passed into distcfg.mk # to be passed into distcfg.mk
IMAGEDIR ?= $(shell [ -d "$$HOME/out" -a -w "$$HOME/out" ] \ IMAGEDIR ?= $(shell [ -d "$$HOME/out" -a -w "$$HOME/out" ] \
&& echo "$$HOME/out" \ && echo "$$HOME/out" \
@ -24,9 +33,7 @@ build: profile/populate
echo " (coffee time)"; \ echo " (coffee time)"; \
fi; \ fi; \
fi fi
@if time -f "%E %PCPU %Mk" $(ARCH) \ @if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
$(MAKE) -C $(BUILDDIR)/ $(LOG); \
then \
echo "$(TIME) build done (`tail -1 $(BUILDLOG) | cut -f1 -d. \ echo "$(TIME) build done (`tail -1 $(BUILDLOG) | cut -f1 -d. \
|| echo "no log"`)"; \ || echo "no log"`)"; \
else \ else \