Node Objects

Internally, SCons represents all of the files
and directories it knows about as Nodes.
These internal objects
(not object files)
can be used in a variety of ways
to make your SConscript
files portable and easy to read.

All builder methods return a list of
Node objects that identify the
target file or files that will be built.
These returned Nodes can be passed
as source files to other builder methods,

For example, suppose that we want to build
the two object files that make up a program with different options.
This would mean calling the Object
builder once for each object file,
specifying the desired options:

The problem with listing the names as strings
is that our SConstruct file is no longer portable
across operating systems.
It won't, for example, work on Windows
because the object files there would be
named hello.obj and goodbye.obj,
not hello.o and goodbye.o.

A better solution is to assign the lists of targets
returned by the calls to the Object builder to variables,
which we can then concatenate in our
call to the Program builder: