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.