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:
parent
102aa3851d
commit
cd3e47c562
@ -9,5 +9,8 @@
|
||||
# spares tmpfs, quite recommended unless you need raw workdir chroots
|
||||
#CLEAN = 1
|
||||
|
||||
# run with lower CPU and I/O priorities
|
||||
#NICE = 1
|
||||
|
||||
# try and draw attention when done (depends on readline/terminal settings)
|
||||
#BELL = 1
|
||||
|
@ -9,16 +9,16 @@
|
||||
+ см. ../image.in/Makefile, apt.conf.sample
|
||||
|
||||
- ARCH
|
||||
+ определяет целевую архитектуру образа
|
||||
+ задаёт целевую архитектуру образа
|
||||
+ значение: пусто (по умолчанию авто), i586 или x86_64
|
||||
+ см. ../lib/build.mk
|
||||
|
||||
- BELL
|
||||
+ требует подачу сигнала после завершения сборки
|
||||
+ подаёт сигнал после завершения сборки
|
||||
+ см. ../lib/build.mk
|
||||
|
||||
- BUILDDIR
|
||||
+ определяет каталог генерируемого профиля и сборки
|
||||
+ задаёт каталог генерируемого профиля и сборки
|
||||
+ значение: пусто (по умолчанию авто) либо строка
|
||||
+ см. ../lib/profile.mk
|
||||
|
||||
@ -30,10 +30,15 @@
|
||||
+ см. ../lib/clean.mk
|
||||
|
||||
- DEBUG
|
||||
+ включение средств отладки
|
||||
+ включает средства отладки
|
||||
+ значение: пусто (по умолчанию), 1 или 2
|
||||
+ см. ../lib/log.mk
|
||||
|
||||
- NICE
|
||||
+ понижает нагрузку системы сборочной задачей
|
||||
+ значение: пусто (по умолчанию) либо любая строка
|
||||
+ см. ../lib/build.mk
|
||||
|
||||
пример
|
||||
~~~~~~
|
||||
make DEBUG=1 CLEAN=1 syslinux.iso
|
||||
make DEBUG=1 CLEAN=1 distro/syslinux.iso
|
||||
|
17
lib/build.mk
17
lib/build.mk
@ -4,10 +4,19 @@ ifndef MKIMAGE_PROFILES
|
||||
$(error this makefile is designed to be included in toplevel one)
|
||||
endif
|
||||
|
||||
# NB: /usr/bin/{i586,x86_64} are setarch(8) symlinks
|
||||
|
||||
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
|
||||
IMAGEDIR ?= $(shell [ -d "$$HOME/out" -a -w "$$HOME/out" ] \
|
||||
&& echo "$$HOME/out" \
|
||||
@ -24,9 +33,7 @@ build: profile/populate
|
||||
echo " (coffee time)"; \
|
||||
fi; \
|
||||
fi
|
||||
@if time -f "%E %PCPU %Mk" $(ARCH) \
|
||||
$(MAKE) -C $(BUILDDIR)/ $(LOG); \
|
||||
then \
|
||||
@if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
||||
echo "$(TIME) build done (`tail -1 $(BUILDLOG) | cut -f1 -d. \
|
||||
|| echo "no log"`)"; \
|
||||
else \
|
||||
|
Loading…
Reference in New Issue
Block a user