By default, &SCons; removes targets before building them.
Sometimes, however, this is not what you want.
For example, you may want to update a library incrementally,
not by having it deleted and then rebuilt from all
of the constituent object files.
In such cases, you can use the
&Precious; method to prevent
&SCons; from removing the target before it is built:
env = Environment()
lib = env.Library('foo', ['f1.c', 'f2.c', 'f3.c'])
env.Precious(lib)
Although the output doesn't look any different,
&SCons; does not, in fact,
delete the target library before rebuilding it:
% scons -Q
cc -c -o f1.o f1.c
cc -c -o f2.o f2.c
cc -c -o f3.o f3.c
ar r libfoo.a f1.o f2.o f3.o
ranlib libfoo.a
&SCons; will, however, still delete files marked as &Precious;
when the -c option is used.