Accommodating the different names of build tool

The fact that the HCL VersionVault build utility has a unique name, clearmake, might conflict with existing build procedures that implement recursive builds.

Most make variants automatically define the make macro $(MAKE) as the name of the build program, as it was typed on the command line:

% make hello.o
(sets MAKE to make)
% clearmake hello.o
(sets MAKE to clearmake)
% my_make hello.o
(sets MAKE to my_make)

This definition enables recursive builds to use $(MAKE) to invoke the same build program at each level. The section Optimizing winkin by avoiding pseudotargets includes one such example; here is another one:SUBDIRS = lib util src

all:

for DIR in $(SUBDIRS) ; do ( cd $$DIR ; $(MAKE) all ) ; done

Executing this build script with clearmake invokes clearmake all recursively in each subdirectory.