make(1): add test for the -dF option
This commit is contained in:
parent
cd39b7362f
commit
2090dc1c6a
@ -1,9 +1,37 @@
|
||||
# $NetBSD: opt-debug-file.mk,v 1.1 2020/09/05 06:20:51 rillig Exp $
|
||||
# $NetBSD: opt-debug-file.mk,v 1.2 2020/10/03 09:10:26 rillig Exp $
|
||||
#
|
||||
# Tests for the -dF command line option, which redirects the debug log
|
||||
# to a file instead of writing it to stderr.
|
||||
|
||||
# TODO: Implementation
|
||||
# Enable debug logging for variable assignments and evaluation (-dv)
|
||||
# and redirect the debug logging to the given file.
|
||||
.MAKEFLAGS: -dvFopt-debug-file.debuglog
|
||||
|
||||
# This output goes to the debug log file.
|
||||
VAR= value ${:Uexpanded}
|
||||
|
||||
# Hide the logging output for the remaining actions.
|
||||
# As of 2020-10-03, it is not possible to disable debug logging again.
|
||||
.MAKEFLAGS: -dF/dev/null
|
||||
|
||||
# Make sure that the debug logging file contains some logging.
|
||||
DEBUG_OUTPUT:= ${:!cat opt-debug-file.debuglog!}
|
||||
# Grmbl. Because of the := operator in the above line, the variable
|
||||
# value contains ${:Uexpanded}. This variable expression is expanded
|
||||
# upon further processing. Therefore, don't read from untrusted input.
|
||||
#.MAKEFLAGS: -dc -dFstderr
|
||||
.if !${DEBUG_OUTPUT:tW:M*VAR = value expanded*}
|
||||
. error ${DEBUG_OUTPUT}
|
||||
.endif
|
||||
|
||||
# To get the unexpanded text that was actually written to the debug log
|
||||
# file, the content of that log file must not be stored in a variable.
|
||||
# XXX: In the :M modifier, a dollar is escaped as '$$', not '\$'.
|
||||
.if !${:!cat opt-debug-file.debuglog!:tW:M*VAR = value $${:Uexpanded}*}
|
||||
. error
|
||||
.endif
|
||||
|
||||
_!= rm opt-debug-file.debuglog
|
||||
|
||||
all:
|
||||
@:;
|
||||
|
Loading…
Reference in New Issue
Block a user