freebsd-src/unit-tests/varname-dot-make-ppid.mk
Simon J. Gerraty cdde9e894d Import bmake-20220204
Features of interest:

Allow setting target local variables (similar to gmake)

In META_MODE .MAKE.META.CMP_FILTER can be used for filtering commands
before comparion.

contrib/bmake/mk/cc-wrap.mk is an example of using these

See ChangeLog for the gory details.
2022-02-05 12:03:50 -08:00

24 lines
654 B
Makefile

# $NetBSD: varname-dot-make-ppid.mk,v 1.3 2022/01/23 21:48:59 rillig Exp $
#
# Tests for the special .MAKE.PPID variable, which contains the process ID of
# make's parent process.
# The parent process ID must be a positive integer.
.if ${.MAKE.PPID:C,[0-9],,g} != ""
. error
.elif !(${.MAKE.PPID} > 0)
. error
.endif
# Ensure that the process exists.
_!= kill -0 ${.MAKE.PPID}
# The parent process ID must be different from the process ID. If they were
# the same, make would run as process 1, which is not a good idea because make
# is not prepared to clean up after other processes.
.if ${.MAKE.PPID} == ${.MAKE.PID}
. error
.endif
all: .PHONY