mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-16 09:34:18 +00:00

This change introduces a few helper variables for dealing with verbose and silent build modes: `silent`, `verbose`, `q` and `s`. The `silent` and `verbose` variables are boolean values determining whether the build system has been configured to run silently or verbosely respectively (i.e. with `--silent` or `V=1`). These two modes cannot be used together - if `silent` is truthy then `verbose` is always falsy. As such: make --silent V=1 ... results in a silent build. In addition to these boolean variables, we also introduce two new variables - `s` and `q` - for use in rule recipes to conditionally suppress the output of commands. When building silently, `s` expands to a value which disables the command that follows, and `q` expands to a value which supppresses echoing of the command: $(s)echo 'This command is neither echoed nor executed' $(q)echo 'This command is executed but not echoed' When building verbosely, `s` expands to a value which disables the command that follows, and `q` expands to nothing: $(s)echo 'This command is neither echoed nor executed' $(q)echo 'This command is executed and echoed' In all other cases, both `s` and `q` expand to a value which suppresses echoing of the command that follows: $(s)echo 'This command is executed but not echoed' $(q)echo 'This command is executed but not echoed' The `s` variable is predominantly useful for `echo` commands, where you always want to suppress echoing of the command itself, whilst `q` is more useful for all other commands. Change-Id: I8d8ff6ed714d3cb401946c52955887ed7dca602b Signed-off-by: Chris Kay <chris.kay@arm.com>
17 lines
451 B
Makefile
17 lines
451 B
Makefile
#
|
|
# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
ifndef common-mk
|
|
common-mk := $(lastword $(MAKEFILE_LIST))
|
|
|
|
include $(dir $(common-mk))utilities.mk
|
|
|
|
silent = $(call bool,$(findstring s,$(firstword ~$(MAKEFLAGS))))
|
|
verbose = $(if $(silent),,$(call bool,$(V)))
|
|
|
|
s = @$(if $(or $(verbose),$(silent)),: )
|
|
q = $(if $(verbose),,@)
|
|
endif
|