mirror of
https://github.com/opnsense/src.git
synced 2026-06-08 00:02:14 -04:00
Interesting/relevant changes since bmake-20230909 * VERSION (_MAKE_VERSION): 20240106 Merge with NetBSD make, pick up o fix duplicate progname when reporting an unknown target o unit tests for Cmd_Exec using temp file * VERSION (_MAKE_VERSION): 20240105 Merge with NetBSD make, pick up o main.c: Cmd_Exec write cmd to a file if too big avoid blowing commandline/env limits * VERSION (_MAKE_VERSION): 20240101 o util.c: flesh out more of strftime * configure.in: add --with-bmake-strftime it is not a full implementation but enough to pass all the unit-tests. * parse.c: LoadFile do not append \n to empty buffer. * VERSION (_MAKE_VERSION): 20231230 Merge with NetBSD make, pick up o simplify memory allocation for string buffers o fix declared types of list nodes o suff.c: clean up freeing of suffixes o var.c: simplify debug message for the ':@var@...@' modifier clean up variable handling * VERSION (_MAKE_VERSION): 20231226 Merge with NetBSD make, pick up o compat.c: ensure make's output is correctly ordered with that of the target when not going to a tty o main.c: check for shellPath whether to call Shell_Init() * VERSION (_MAKE_VERSION): 20231224 Merge with NetBSD make, pick up o compat.c: check for shellPath whether to call Shell_Init() tweak the unit test to detect the bug thus fixed. o make.1: do not claim .SHELL is only used by jobs mode. * VERSION (_MAKE_VERSION): 20231220 Merge with NetBSD make, pick up o str.c: speed up pattern matching in the ':M' modifier o var.c: fix confusing debug logging when deleting a variable use consistent debug messages style when ignoring variables * VERSION (_MAKE_VERSION): 20231210 Merge with NetBSD make, pick up o var.c: avoid segfault on empty :C match expression explain in debug log why variable assignment is ignored. * VERSION (_MAKE_VERSION): 20231208 Merge with NetBSD make, pick up o var.c: ensure fromCmd is set correctly for variables set on command line. * VERSION (_MAKE_VERSION): 20231124 Merge with NetBSD make, pick up o main.c: cleanup processing of -j fix lint warning about strchr o var.c: more accurate error message for invalid ':mtime' argument cleanup :[...] modifier avoid reading beyond substring when comparing o unit-tests cover all cases of :mtime, test and explain exporting of variables o cleanup comments * bsd.after-import.mk (ECHO_TAG): FreeBSD no longer uses $FreeBSD$ tag, so avoid adding it. mk/ChangeLog since bmake-20230909 * dirdeps.mk: for MAKE_VERSION 20240105 we do not have the same limits on command line length, so skip export of lists to env. * jobs.mk: avoid C suffix in JOB_MAX_C if factor is floating point. This keeps JOB_MAX numeric incase another makefile does comparisons. * gendirdeps.mk: if META_XTRAS is passed to us, add to META_FILES
74 lines
2.6 KiB
Makefile
74 lines
2.6 KiB
Makefile
# $NetBSD: opt-debug-file.mk,v 1.10 2023/11/19 21:47:52 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.
|
|
# Before main.c 1.362 from 2020-10-03, it was not possible to disable debug
|
|
# logging again. Since then, an easier way is the undocumented option '-d0'.
|
|
.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 expression is expanded
|
|
# when it is used in the condition below. Therefore, be careful when storing
|
|
# untrusted input in variables.
|
|
#.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 using '$$', not '\$'. This
|
|
# escaping scheme unnecessarily differs from all other modifiers.
|
|
.if !${:!cat opt-debug-file.debuglog!:tW:M*VAR = value $${:Uexpanded}*}
|
|
. error
|
|
.endif
|
|
|
|
.MAKEFLAGS: -d0
|
|
|
|
|
|
# See Parse_Error.
|
|
.MAKEFLAGS: -dFstdout
|
|
# expect+1: This goes to stderr only, once.
|
|
. info This goes to stderr only, once.
|
|
.MAKEFLAGS: -dFstderr
|
|
# expect+1: This goes to stderr only, once.
|
|
. info This goes to stderr only, once.
|
|
.MAKEFLAGS: -dFopt-debug-file.debuglog
|
|
# expect+1: This goes to stderr, and in addition to the debug log.
|
|
. info This goes to stderr, and in addition to the debug log.
|
|
.MAKEFLAGS: -dFstderr -d0c
|
|
.if ${:!cat opt-debug-file.debuglog!:Maddition:[#]} != 1
|
|
. error
|
|
.endif
|
|
|
|
|
|
# See ApplyModifier_Subst, which calls Error.
|
|
.MAKEFLAGS: -dFstdout
|
|
: This goes to stderr only, once. ${:U:S
|
|
.MAKEFLAGS: -dFstderr
|
|
: This goes to stderr only, once. ${:U:S
|
|
.MAKEFLAGS: -dFopt-debug-file.debuglog
|
|
: This goes to stderr, and in addition to the debug log. ${:U:S
|
|
.MAKEFLAGS: -dFstderr -d0c
|
|
.if ${:!cat opt-debug-file.debuglog!:Mdelimiter:[#]} != 1
|
|
. error
|
|
.endif
|
|
|
|
|
|
# If the debug log file cannot be opened, make prints an error message and
|
|
# exits immediately since the debug log file is usually selected from the
|
|
# command line.
|
|
_:= ${:!rm opt-debug-file.debuglog!}
|
|
.MAKEFLAGS: -dF/nonexistent-6f21c672-a22d-4ef7/opt-debug-file.debuglog
|