The final category of makefile is the one where every command
requires input, the dependencies are incompletely specified, or
you simply cannot create more than one target at a time, as
mentioned earlier. In addition, you may not have the time or
desire to upgrade the makefile to run smoothly with
PMake. If you are the conservative
sort, this is the compatibility mode for you. It is entered
either by giving PMake the
-M
flag (for Make),
or by executing PMake as
make.
In either case,
PMake performs things exactly like
Make (while still supporting most
of the nice new features PMake
provides). This includes:
No parallel execution.
Targets are made in the exact order specified by the makefile. The sources for each target are made in strict left-to-right order, etc.
A single Bourne shell is used to execute each command,
thus the shell's $$
variable is
useless, changing directories does not work across command
lines, etc.
If no special characters exist in a command line,
PMake will break the command
into words itself and execute the command directly,
without executing a shell first. The characters that
cause PMake to execute a shell
are: #
, =
,
|
, ^
,
(
, )
,
{
, }
,
;
, &
,
>
, <
,
*
, ?
,
[
, ]
,
:
, $
,
`
, and \
. You should
notice that these are all the characters that are given
special meaning by the shell (except '
and ,
which
PMake deals with all by its
lonesome).
The use of the null suffix is turned off.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.