e89a0f1c62
$(SHORTEN) is better in the midst of the pipe so that greps are terminal and can sense the tty (or the lack thereof in case we're logging further).
63 lines
1.8 KiB
Makefile
63 lines
1.8 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
|
|
@if [ -n "$(CHECK)" ]; then \
|
|
echo "$(TIME) skipping actual image build (CHECK is set)"; \
|
|
exit; \
|
|
fi; \
|
|
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)" $(SHORTEN) \
|
|
| GREP_COLOR="$(ANSI_OK)" \
|
|
grep --color=auto '^\*\* image: .*' ||:; \
|
|
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=auto "^(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
|