Configuring makefiles to behave like make

By using special targets (called directives in omake), you can configure your clearmake or omake makefile so that clearmake or omake behaves as make does with regard to Java builds.

The following targets eliminate the extra rebuilding described in Allowing rebuilds:

.NOCMP_SCRIPT: %.class

.NO_CMP_SCRIPT: %.class

.DEPENDENCY_IGNORED_FOR_REUSE: %.class

(omake only)

(clearmake only)

.NOCMP_SCRIPT and .NO_CMP_SCRIPT disable build script checking. However, relevant build-script changes are ignored. In addition, .NOCMP_SCRIPT and .NO_CMP_SCRIPT have no effect during winkin, so even when they are in use, winkins are prevented because of build script differences. Therefore, you must use manual winkins (see the winkin reference page) or forego them entirely.

.DEPENDENCY_IGNORED_FOR_REUSE disables the version checking of implicit dependencies when clearmake or omake is looking for DOs to reuse. This can cause desired rebuilds to be missed, however. One benefit of using clearmake or omake is automatic dependency detection (for example, of .h files in a C build), so it is not desirable to give this up.

To improve the missed implicit dependency checking caused by .DEPENDENCY_IGNORED_FOR_REUSE, you can add the missing dependencies as explicit dependencies in the makefile. However, this is a manual process, and you still lose build script checking and winkin. The remaining benefit of using clearmake or omake is configuration records (though the catcr output for them might be confusing).