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.