summaryrefslogtreecommitdiffstats
path: root/doc/man
diff options
context:
space:
mode:
Diffstat (limited to 'doc/man')
-rw-r--r--doc/man/scons.142
1 files changed, 40 insertions, 2 deletions
diff --git a/doc/man/scons.1 b/doc/man/scons.1
index 1332020..8df46cf 100644
--- a/doc/man/scons.1
+++ b/doc/man/scons.1
@@ -98,7 +98,7 @@ so you may use normal Python scripting capabilities
(such as flow control, data manipulation, and imported Python libraries)
to handle complicated build situations.
.BR scons ,
-however, reads all of the SConscript files
+however, reads and executes all of the SConscript files
.I before
it begins building any targets.
To make this obvious,
@@ -122,6 +122,34 @@ may be suppressed using the
option.
.B scons
+does not automatically propagate
+the external environment used to execute
+.B scons
+to the commands used to build target files.
+This is so that builds will be guaranteed
+repeatable regardless of the environment
+variables set at the time
+.B scons
+is invoked.
+This also means that if the compiler or other commands
+that you want to use to build your target files
+are not in standard system locations,
+.B scons
+will not find them unless
+you explicitly set the PATH
+to include those locations.
+Whenever you create an
+.B scons
+construction environment,
+you can propagate the value of PATH
+from your external environment as follows:
+
+.ES
+import os
+env = Environment(ENV = {'PATH' : os.environ['PATH']})
+.EE
+
+.B scons
can scan known input files automatically for dependency
information (for example, #include statements
in C or C++ files) and will rebuild dependent files appropriately
@@ -1939,7 +1967,17 @@ USERNAME.
.RI AlwaysBuild( target ", ...)"
Marks each given
.I target
-so that it will always be rebuilt.
+so that it is always assumed to be out of date,
+and will always be rebuilt if needed.
+Note, however, that
+.BR AlwaysBuild ()
+does not add its target(s) to the default target list,
+so the targets will only be built
+if they are specified on the command line,
+or are a dependent of a target specified on the command line--but
+they will
+.I always
+be built if so specified.
Multiple targets can be passed in to a single call to
.BR AlwaysBuild ().