freebsd-src/unit-tests/make-exported.mk
Simon J. Gerraty 8e11a9b425 Import bmake-20210110
Quite a lot of churn on style, but lots of
good work refactoring complicated functions
and lots more unit-tests.
Thanks mostly to rillig at NetBSD

Some interesting entries from ChangeLog

o .MAKE.{UID,GID} represent uid and gid running make.

o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
  checks in InitObjdir.  Explicit .OBJDIR target always allows
  read-only directory.

o add more unit tests for META MODE

Change-Id: I4d3bcf08b4c864d98b343f602efe5a75dbfa7a94
2021-01-13 17:24:34 -08:00

26 lines
1,004 B
Makefile
Executable file

# $NetBSD: make-exported.mk,v 1.6 2020/10/05 19:27:48 rillig Exp $
#
# As of 2020-08-09, the code in Var_Export is shared between the .export
# directive and the .MAKE.EXPORTED variable. This leads to non-obvious
# behavior for certain variable assignments.
-env= make-exported-value-env
-literal= make-exported-value-literal
UT_VAR= ${UNEXPANDED}
# Before 2020-10-03, the following line took the code path of .export-env,
# which was surprising behavior. Since 2020-10-03 this line tries to
# export the variable named "-env", but that is rejected because the
# variable name starts with a hyphen.
.MAKE.EXPORTED= -env
# Before 2020-10-03, if the value of .MAKE.EXPORTED started with "-literal",
# make behaved like a mixture of .export-literal and a regular .export.
#
# Since 2020-10-03, the "variable" named "-literal" is not exported anymore,
# it is just ignored since its name starts with '-'.
.MAKE.EXPORTED= -literal UT_VAR
all:
@env | sort | egrep '^UT_|make-exported-value' || true