head	1.9;
access;
symbols
	netbsd-10-2-RELEASE:1.2
	netbsd-11-0-RELEASE:1.8
	netbsd-11-0-RC7:1.8
	netbsd-11-0-RC6:1.8
	netbsd-11-0-RC5:1.8
	netbsd-11-0-RC4:1.8
	netbsd-11-0-RC3:1.8
	netbsd-11-0-RC2:1.8
	netbsd-11-0-RC1:1.8
	perseant-exfatfs-base-20250801:1.8
	netbsd-11:1.8.0.2
	netbsd-11-base:1.8
	netbsd-10-1-RELEASE:1.2
	perseant-exfatfs-base-20240630:1.2
	perseant-exfatfs:1.2.0.8
	perseant-exfatfs-base:1.2
	netbsd-10-0-RELEASE:1.2
	netbsd-10-0-RC6:1.2
	netbsd-10-0-RC5:1.2
	netbsd-10-0-RC4:1.2
	netbsd-10-0-RC3:1.2
	netbsd-10-0-RC2:1.2
	netbsd-10-0-RC1:1.2
	netbsd-10:1.2.0.6
	netbsd-10-base:1.2
	cjep_sun2x-base1:1.2
	cjep_sun2x:1.2.0.4
	cjep_sun2x-base:1.2
	cjep_staticlib_x-base1:1.2
	cjep_staticlib_x:1.2.0.2
	cjep_staticlib_x-base:1.2;
locks; strict;
comment	@# @;


1.9
date	2026.03.03.18.30.30;	author sjg;	state Exp;
branches;
next	1.8;
commitid	ygEtGtBGk0qDIywG;

1.8
date	2025.06.13.20.23.16;	author rillig;	state Exp;
branches;
next	1.7;
commitid	1RKKrwO1tyhhNLYF;

1.7
date	2025.05.09.21.38.34;	author rillig;	state Exp;
branches;
next	1.6;
commitid	RwPBp3oWZZMLjhUF;

1.6
date	2025.05.09.17.58.23;	author rillig;	state Exp;
branches;
next	1.5;
commitid	p7XYVQzmmGoj7gUF;

1.5
date	2025.05.03.07.54.08;	author rillig;	state Exp;
branches;
next	1.4;
commitid	0lEOxubF0ys5YqTF;

1.4
date	2025.05.02.17.56.54;	author rillig;	state Exp;
branches;
next	1.3;
commitid	5C7kbSBQLHYJkmTF;

1.3
date	2025.04.22.17.50.34;	author rillig;	state Exp;
branches;
next	1.2;
commitid	Xf8oxHbQK2JrC4SF;

1.2
date	2020.12.13.05.13.38;	author sjg;	state Exp;
branches
	1.2.8.1;
next	1.1;
commitid	EQSN0IfF3HfUyxzC;

1.1
date	2020.12.12.15.06.11;	author rillig;	state Exp;
branches;
next	;
commitid	9UrI59E2GmhPSszC;

1.2.8.1
date	2025.08.02.05.58.37;	author perseant;	state Exp;
branches;
next	;
commitid	23j6GFaDws3O875G;


desc
@@


1.9
log
@MaybeSubMake: look for expansion of ${.MAKE}

Only looking for the equivalent of ${.MAKE:T}
and calling it a match if preceded by '/' is too aggressive.

Look for the expansion of ${.MAKE} and if that is a full path also
look for the basename, but in each case, only call it a match if at the
start of the command line or preceded by space.

Note: over enthusiastic setting of OP_SUBMAKE is harmless, though
it can impact meta mode, requiring an explicit .META on some targets.
@
text
@job_pipe -1 -1, maxjobs 1, tokens 1, compat 0
TokenPool_Take: pid <pid>, aborting NONE, running 0
TokenPool_Take: pid <pid> took a token
MaybeSubMake: Looking for "make"
# echo off
echo silent
# echo on
# echo off
# error checking off
set +e
# echo on
echo ignerr; false
# echo off
# error checking on
set -e
# echo on
echo always
Running all
	Command: <shell>
JobExec: target all, pid <pid> added to jobs table
job started, job table:
job 0, status running, flags ---, pid <pid>
silent
ignerr
always
TokenPool_Take: pid <pid>, aborting NONE, running 0
TokenPool_Take: pid <pid> took a token
exit status 0
@


1.8
log
@tests/make: fix race condition in debug output in parallel mode

Discovered in ATF run on evbearmv7hf.
@
text
@d4 1
@


1.7
log
@make: unify debug messages for parallel mode

Always print the process status in hex, with a leading "0x", to avoid
confusion for status 127f, which looks suspiciously decimal.

Prefix all process IDs with "pid", to be able to filter them easily.

Omit trailing whitespace when printing a command.
@
text
@a24 2
Process with pid <pid> exited/stopped with status 0.
JobFinish: target all, pid <pid>, status 0
@


1.6
log
@make: replace magic numbers in job debug log with descriptive names
@
text
@d19 2
a20 2
JobExec(all): pid <pid> added to jobs table
job table @@ job started
d25 2
@


1.5
log
@make: use uniform debug log messages for the token pool
@
text
@d21 1
a21 1
job 0, status 3, flags ---, pid <pid>
@


1.4
log
@make: in the debug log, replace magic numbers with identifiers
@
text
@d2 2
a3 2
TokenPool_Take(<pid>): aborting NONE, running 0
(<pid>) withdrew token
d25 2
a26 2
TokenPool_Take(<pid>): aborting NONE, running 0
(<pid>) withdrew token
@


1.3
log
@make: group the code for handling the job token pool
@
text
@d2 1
a2 1
TokenPool_Take(<pid>): aborting 0, running 0
d25 1
a25 1
TokenPool_Take(<pid>): aborting 0, running 0
@


1.2
log
@Prune job debug output that may appear out of order.

A race between child and parent means that we cannot
guarantee whether all child output is seen before we call
JobClosePipes, thus intervening debug output can appear
before or after the last child output.
@
text
@d2 1
a2 1
Job_TokenWithdraw(<pid>): aborting 0, running 0
d25 1
a25 1
Job_TokenWithdraw(<pid>): aborting 0, running 0
@


1.2.8.1
log
@Sync with HEAD
@
text
@d2 2
a3 2
TokenPool_Take: pid <pid>, aborting NONE, running 0
TokenPool_Take: pid <pid> took a token
d19 3
a21 3
JobExec: target all, pid <pid> added to jobs table
job started, job table:
job 0, status running, flags ---, pid <pid>
d25 2
a26 2
TokenPool_Take: pid <pid>, aborting NONE, running 0
TokenPool_Take: pid <pid> took a token
@


1.1
log
@make(1): add test for a shell with error control

None of the predefined shells has error control, and the corresponding
code had not been covered by the existing unit tests.
@
text
@a24 2
Process <pid> exited/stopped status 0.
JobFinish: <pid> [all], status 0
@

