b52ff4ef91
As was (quite reasonably) asked by someone and me too, why should a successful build yield a *red* line (a grep's default)? So now it's new and improved, 25% free and so forth: with a successful build you get a green line, while errors from a broke one result in red ones. Clinically tested in both b/w and w/b colour schemes; in case you're not satisfied, please return original ANSI_OK and ANSI_FAIL values to the colour dealer and pass your favourite ones instead.
59 lines
1.7 KiB
Makefile
59 lines
1.7 KiB
Makefile
# step 4 is kicked off here but actually done by image.in/Makefile
|
|
ANSI_OK ?= 1;32
|
|
ANSI_FAIL ?= 1;31
|
|
|
|
ifndef MKIMAGE_PROFILES
|
|
$(error this makefile is designed to be included in toplevel one)
|
|
endif
|
|
|
|
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
|
|
|
|
# in kilobytes (a kilometer is 1024 meters, you know)
|
|
LOWSPACE = 1024
|
|
|
|
# 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" \
|
|
|| echo "$(BUILDDIR)/out" )
|
|
|
|
# poehali
|
|
build: profile/populate
|
|
@echo -n "$(TIME) starting image build"
|
|
@if [ -n "$(DEBUG)" ]; then \
|
|
echo ": tail -f $(BUILDLOG)" $(SHORTEN); \
|
|
else \
|
|
if [ -n "$(ALL)" ]; then \
|
|
echo " [$(ALL)]"; \
|
|
else \
|
|
echo " (coffee time)"; \
|
|
fi; \
|
|
fi
|
|
@if $(START) $(MAKE) -C $(BUILDDIR)/ $(LOG); then \
|
|
echo "$(TIME) done (`tail -1 $(BUILDLOG) | cut -f1 -d.`)"; \
|
|
tail -200 "$(BUILDLOG)" \
|
|
| GREP_COLOR="$(ANSI_OK)" \
|
|
grep --color=always '^\*\* image: .*' $(SHORTEN) ||:; \
|
|
else \
|
|
echo "$(TIME) failed, see log: $(BUILDLOG)" $(SHORTEN); \
|
|
if [ -z "$(DEBUG)" ]; then \
|
|
echo "$(TIME) (you might want to re-run with DEBUG=1)"; \
|
|
fi; \
|
|
tail -200 "$(BUILDLOG)" \
|
|
| GREP_COLOR="$(ANSI_FAIL)" \
|
|
egrep --color=always "^(E:|[Ee]rror|[Ww]arning).*"; \
|
|
df -P $(BUILDDIR) | awk 'END { if ($$4 < $(LOWSPACE)) \
|
|
{ print "NB: low space on "$$6" ("$$5" used)"}}'; \
|
|
fi
|
|
@if [ -n "$(BELL)" ]; then echo -ne '\a' >&2; fi
|