Merely reprinting from http://email@example.com/msg07036.html
It’s not completely true that
-p shows “the rules as if they were there”. Recall that there are two types of implicit rules in GNU make: suffix
rules and pattern rules.
If you use
MAKEFLAGS+=-r then the pattern rules will not be present in the
MAKEFLAGS+=-r is not the same as
make -r because the latter ALSO prevents suffix rules from being defined, while the former does not.
The former only applies to pattern rules.
That’s why in the makefile you need BOTH the
.SUFFIXES: special target AND the
MAKEFLAGS+=-r. Having the
.SUFFIXES: special target set to empty
ensures that no suffix rules are searched but it does NOT remove all the suffix rules from the database. So they still show up with
-p, but they
don’t have any impact on the algorithms make uses to build targets.