88050c9742
There is at least one known deficiency for mkimage-profiles: build.log will be truncated if verbose mode is enabled and hasher version is lower than 1.3.22. The check is done here since it's where the logging is arranged, and doing it in image.in/Makefile would result in the warning about log-truncating software being truncated by the said software. Thanks Max Kosmach for reporting this inobviousity.
47 lines
1.3 KiB
Makefile
47 lines
1.3 KiB
Makefile
# simple logging switch inspired by netch@'s advice:
|
|
# you can add plain $(LOG) to a rule recipe line to moderate it
|
|
# (logfile is automatically truncated during profile/init)
|
|
|
|
ifndef MKIMAGE_PROFILES
|
|
$(error this makefile is designed to be included in toplevel one)
|
|
endif
|
|
|
|
# 1.3.22 fixes http://bugzilla.altlinux.org/26217
|
|
HSH_VER_OPTIMAL = 1.3.22
|
|
HSH_VERSION := $(shell hsh -V | sed -n 's/^.* version \([0-9.]\+\).*$$/\1/p')
|
|
|
|
ifeq (-,$(shell rpmvercmp $(HSH_VERSION) $(HSH_VER_OPTIMAL) | tr -d [0-9]))
|
|
$(info warning: hasher-$(HSH_VERSION) is suboptimal, consider upgrading)
|
|
endif
|
|
|
|
BUILDLOG ?= $(BUILDDIR)/build.log
|
|
|
|
# LOG holds a redirecting postprocessor
|
|
ifdef DEBUG
|
|
# 1) makefile target; 2) also passed to script hooks
|
|
GLOBAL_DEBUG := debug
|
|
GLOBAL_VERBOSE ?= $(DEBUG)
|
|
ifeq (2,$(DEBUG))
|
|
SHELL += -x
|
|
endif
|
|
LOG = >>$(BUILDLOG) 2>&1
|
|
else
|
|
MAKE += -s
|
|
LOG = 2>>$(BUILDLOG) >/dev/null
|
|
endif
|
|
|
|
# in build.mk, naive TIME gets expanded a bit too early (no need to export btw)
|
|
DATE = $(shell date +%Y%m%d)
|
|
TIME = `date +%H:%M:%S`
|
|
|
|
export BUILDLOG DATE GLOBAL_DEBUG GLOBAL_VERBOSE LOG MAKE SHELL
|
|
|
|
# brevity postprocessor; not exported, for toplevel use only
|
|
SHORTEN = $(shell \
|
|
echo -n "| sed"; \
|
|
if [ -s "$(SYMLINK)" ]; then \
|
|
echo -n " -e 's,$(BUILDDIR),$(SYMLINK),'"; \
|
|
fi; \
|
|
echo -n " -e 's,$(TMP),\$$TMP,' -e 's,$(HOME),~,'"; \
|
|
)
|