Handling targets built in multiple ways

Learn how to handle targets built in multiple ways.

Because clearmake compares build scripts, undesirable results might occur if your build environment includes more than one way to build a particular target. For example, suppose that the target test_prog_3 appears in two makefiles in two directories. The first is in its source directory, util_src:

test_prog_3: ...
   cc -o test_prog_3 ...

The second is in another directory, app_src:

../util_src/test_prog_3: ...
   cd ../util_src ; cc -o  test_prog_3

Derived objects built with these scripts might be equivalent, because they are built as the same file name (test_prog_3) in the same VOB directory (util_src). But by default, a build in the app_src directory never reuses or winks in a DO built in the util_src directory, because build-script comparison fails.

You can suppress build-script comparison for this target by using a clearmake special build target, .NO_CMP_SCRIPT in the makefile or in an associated BOS file:

.NO_CMP_SCRIPT: ../util_src/test_prog_3

To suspend build-script comparison once, you can use clearmake -O.