For example, when testing
a makefile, you might not care if the source files contain real data, only
that they exist. Then you might do the following.
This causes all the source files needed (as dependencies) to be created automatically.
You can instead define commands to be used for targets for which there are no rules at all, even ones which don’t specify commands. You do this by writing a rule for the target, .DEFAULT. Such a rule’s commands are used for all dependencies which do not appear as targets in any explicit rule, and for which no implicit rule applies. Naturally, there is no .DEFAULT rule unless you write one.
If you use .DEFAULT with no commands or dependencies like: .DEFAULT:, the commands previously stored for .DEFAULT are cleared. Then make acts as if you had never defined .DEFAULT at all.
If you do not want a target to get the commands from a match-anything pattern rule or .DEFAULT, but you also do not want any commands to be run for the target, you can give it empty commands (see Using empty commands).
You can use a last-resort rule to override part of another makefile (see Overriding part of another makefile).