mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-22 10:48:02 +00:00
302da1a3d3
Lots of new unit-tests increase code coverage. Lots of refactoring, cleanup and simlpification to reduce code size. Fixes for Bug 223564 and 245807 Updates to dirdeps.mk and meta2deps.py
38 lines
1.3 KiB
Makefile
38 lines
1.3 KiB
Makefile
# $NetBSD: opt-debug-file.mk,v 1.4 2020/10/05 19:27:48 rillig Exp $
|
|
#
|
|
# Tests for the -dF command line option, which redirects the debug log
|
|
# to a file instead of writing it to stderr.
|
|
|
|
# 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:
|
|
@:;
|