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.