As mentioned previously,
&SCons; will build every target
in or below the current directory
by default--that is, when you don't
explicitly specify one or more targets
on the command line.
Sometimes, however, you may want
to specify explicitly that only
certain programs should be built by default.
You do this with the &Default; function:
env = Environment()
hello = env.Program('hello.c')
env.Program('goodbye.c')
Default(hello)
hello.c
goodbye.c
This &SConstruct; file knows how to build two programs,
&hello; and &goodbye;,
but only builds the
&hello; program by default:
scons
scons
scons goodbye
Note that, even when you use the &Default;
function in your &SConstruct; file,
you can still explicitly specify the current directory
(.) on the command line
to tell &SCons; to build
everything in (or below) the current directory:
scons .
You can also call the &Default;
function more than once,
in which case each call
adds to the list of targets to be built by default:
env = Environment()
prog1 = env.Program('prog1.c')
Default(prog1)
prog2 = env.Program('prog2.c')
prog3 = env.Program('prog3.c')
Default(prog3)
prog1.c
prog2.c
prog3.c
Or you can specify more than one target
in a single call to the &Default; function:
env = Environment()
prog1 = env.Program('prog1.c')
prog2 = env.Program('prog2.c')
prog3 = env.Program('prog3.c')
Default(prog1, prog3)
Either of these last two examples
will build only the
prog1
and
prog3
programs by default:
scons
scons .
Lastly, if for some reason you don't want
any targets built by default,
you can use the Python None
variable:
env = Environment()
prog1 = env.Program('prog1.c')
prog2 = env.Program('prog2.c')
Default(None)
prog1.c
prog2.c
Which would produce build output like:
scons
scons .