On the other hand, if the site-specific makedefs file had redefined X11LIB then it would have to be amended to add the Xaw library. System and programmer oriented variables and rules mostly reside together in the makefiles without conflict. It is currently used to choose the default target and to circumvent certain time consuming system dependency analyses which are not required for programmer compilations. The default makedefs defines a collection of variables which are not permitted to be redefined in the site-specific makedefs . These are not permitted to be redefined even on the gmake command line.
Examples are all and allsys , docsys , docscan and docextr .
It should not be altered by an including makefile. These rules are usually meant to be completely defined within makedefs and not augmented by the including makefile. Some of this class of rules such as dependsys are defined in makedefs solely to establish their recursive nature. Such rules may be invoked in any directory and will recurse into every subdirectory but only actually do anything in the directories where the rule is augmented with a dependency list by the makefile which includes makedefs . These phony targets are also declared in makedefs to save having to do that in the including makefile if they're not required.