First, notice that SCons
added the -I. argument
from the $CPPPATH variable
so that the compilation would find the
hello.h file in the local directory.

Second, realize that SCons knows that the hello
program must be rebuilt
because it scans the contents of
the hello.c file
for the #include lines that indicate
another file is being included in the compilation.
SCons records these as
implicit dependencies
of the target file,
Consequently,
when the hello.h file changes,
SCons realizes that the hello.c file includes it,
and rebuilds the resulting hello program
that depends on both the hello.c and hello.h files.

Like the $LIBPATH variable,
the $CPPPATH variable
may be a list of directories,
or a string separated by
the system-specific path separation character
(':' on POSIX/Linux, ';' on Windows).
Either way, SCons creates the
right command-line options
so that the following example: