The 2024 POSIX standard adds the following features to the 2017 revision.
The standard allows different implementations of some features: these
notes reference the choices made in
pdpmake.
-j maxjobs command line option allows
targets to be updated concurrently. It is accepted by pdpmake
but doesn't cause jobs to be run in parallel, as is permitted by the standard.
.NOTPARALLEL and .WAIT
special targets control the execution of parallel jobs. They are permitted
in pdpmake (but have no effect, see above).
.PHONY special target
are always treated as being out-of-date.
include
line.
-include variant of include. This can be handy
when using the automatic dependency tracking feature of compilers.
pdpmake this is done using
the "immediate remaking" method from SunPro make rather than
the "delayed remaking" used by GNU make.
$^ and $+ internal macros
evaluate to all prerequisites of the current target (not just out-of-date
ones, as with $?). $^ removes duplicated
prerequisites from the list, $+ doesn't.
MAKE environment variable is provided the
MAKE macro is initialised from argv[0], with a
relative path converted to absolute.
::=, :::=,
+=, ?= and != are permitted.
SRC = src/util.c src/main.c OBJ = $(SRC:src/%.c=obj/%.o)
CURDIR macro is set to the current directory
during program start up.