summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/man/scons-time.14
-rw-r--r--doc/man/scons.14
-rw-r--r--doc/man/sconsign.14
-rw-r--r--doc/user/build-install.in18
-rw-r--r--doc/user/build-install.xml18
-rw-r--r--doc/user/main.xml4
-rw-r--r--doc/user/tasks.in67
-rw-r--r--doc/user/tasks.xml58
8 files changed, 149 insertions, 28 deletions
diff --git a/doc/man/scons-time.1 b/doc/man/scons-time.1
index 81417c3..dda1c13 100644
--- a/doc/man/scons-time.1
+++ b/doc/man/scons-time.1
@@ -19,7 +19,7 @@
.\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
.\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.\"
-.\" doc/man/scons-time.1 5023 2010/06/14 22:05:46 scons
+.\" doc/man/scons-time.1 5134 2010/08/16 23:02:40 bdeegan
.\"
.\" ES - Example Start - indents and turns off line fill
.de ES
@@ -98,7 +98,7 @@
[\fB--which=\fIWHICH\fR]
[\fIARGUMENTS\fR]
..
-.TH SCONS-TIME 1 "June 2010"
+.TH SCONS-TIME 1 "August 2010"
.SH NAME
scons-time \- generate and display SCons timing information
'\"==========================================================================
diff --git a/doc/man/scons.1 b/doc/man/scons.1
index 9617fec..5d2b795 100644
--- a/doc/man/scons.1
+++ b/doc/man/scons.1
@@ -19,9 +19,9 @@
.\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
.\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.\"
-.\" doc/man/scons.1 5023 2010/06/14 22:05:46 scons
+.\" doc/man/scons.1 5134 2010/08/16 23:02:40 bdeegan
.\"
-.TH SCONS 1 "June 2010"
+.TH SCONS 1 "August 2010"
.\" ES - Example Start - indents and turns off line fill
.rm ES
.de ES
diff --git a/doc/man/sconsign.1 b/doc/man/sconsign.1
index eb3894c..d7f7ef9 100644
--- a/doc/man/sconsign.1
+++ b/doc/man/sconsign.1
@@ -19,7 +19,7 @@
.\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
.\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
.\"
-.\" doc/man/sconsign.1 5023 2010/06/14 22:05:46 scons
+.\" doc/man/sconsign.1 5134 2010/08/16 23:02:40 bdeegan
.\"
.\" ES - Example Start - indents and turns off line fill
.de ES
@@ -31,7 +31,7 @@
.RE
.fi
..
-.TH SCONSIGN 1 "June 2010"
+.TH SCONSIGN 1 "August 2010"
.SH NAME
sconsign \- print SCons .sconsign file information
.SH SYNOPSIS
diff --git a/doc/user/build-install.in b/doc/user/build-install.in
index 05ead9d..8d1c005 100644
--- a/doc/user/build-install.in
+++ b/doc/user/build-install.in
@@ -198,7 +198,7 @@
</para>
<screen>
- # <userinput>rpm -Uvh scons-2.0.0.final.0-1.noarch.rpm</userinput>
+ # <userinput>rpm -Uvh scons-2.0.1-1.noarch.rpm</userinput>
</screen>
<para>
@@ -260,7 +260,7 @@
&SCons; provides a Windows installer
that makes installation extremely easy.
- Download the <filename>scons-2.0.0.final.0.win32.exe</filename>
+ Download the <filename>scons-2.0.1.win32.exe</filename>
file from the &SCons; download page at
<ulink url="http://www.scons.org/download.php">http://www.scons.org/download.php</ulink>.
Then all you need to do is execute the file
@@ -370,8 +370,8 @@
<para>
The first step is to download either the
- <filename>scons-2.0.0.final.0.tar.gz</filename>
- or <filename>scons-2.0.0.final.0.zip</filename>,
+ <filename>scons-2.0.1.tar.gz</filename>
+ or <filename>scons-2.0.1.zip</filename>,
which are available from the SCons download page at
<ulink url="http://www.scons.org/download.html">http://www.scons.org/download.html</ulink>.
@@ -384,7 +384,7 @@
on Linux or UNIX,
or <application>WinZip</application> on Windows.
This will create a directory called
- <filename>scons-2.0.0.final.0</filename>,
+ <filename>scons-2.0.1</filename>,
usually in your local directory.
Then change your working directory to that directory
and install &SCons; by executing the following commands:
@@ -392,7 +392,7 @@
</para>
<screen>
- # <userinput>cd scons-2.0.0.final.0</userinput>
+ # <userinput>cd scons-2.0.1</userinput>
# <userinput>python setup.py install</userinput>
</screen>
@@ -460,9 +460,9 @@
This will install the &SCons; build engine
in the
- <filename>/usr/lib/scons-2.0.0.final.0</filename>
+ <filename>/usr/lib/scons-2.0.1</filename>
or
- <filename>C:\Python25\scons-2.0.0.final.0</filename>
+ <filename>C:\Python25\scons-2.0.1</filename>
directory, for example.
</para>
@@ -519,7 +519,7 @@
relative to the specified prefix.
Adding <option>--version-lib</option> to the
above example would install the build engine in
- <filename>/opt/scons/lib/scons-2.0.0.final.0</filename>.
+ <filename>/opt/scons/lib/scons-2.0.1</filename>.
</para>
diff --git a/doc/user/build-install.xml b/doc/user/build-install.xml
index 05ead9d..8d1c005 100644
--- a/doc/user/build-install.xml
+++ b/doc/user/build-install.xml
@@ -198,7 +198,7 @@
</para>
<screen>
- # <userinput>rpm -Uvh scons-2.0.0.final.0-1.noarch.rpm</userinput>
+ # <userinput>rpm -Uvh scons-2.0.1-1.noarch.rpm</userinput>
</screen>
<para>
@@ -260,7 +260,7 @@
&SCons; provides a Windows installer
that makes installation extremely easy.
- Download the <filename>scons-2.0.0.final.0.win32.exe</filename>
+ Download the <filename>scons-2.0.1.win32.exe</filename>
file from the &SCons; download page at
<ulink url="http://www.scons.org/download.php">http://www.scons.org/download.php</ulink>.
Then all you need to do is execute the file
@@ -370,8 +370,8 @@
<para>
The first step is to download either the
- <filename>scons-2.0.0.final.0.tar.gz</filename>
- or <filename>scons-2.0.0.final.0.zip</filename>,
+ <filename>scons-2.0.1.tar.gz</filename>
+ or <filename>scons-2.0.1.zip</filename>,
which are available from the SCons download page at
<ulink url="http://www.scons.org/download.html">http://www.scons.org/download.html</ulink>.
@@ -384,7 +384,7 @@
on Linux or UNIX,
or <application>WinZip</application> on Windows.
This will create a directory called
- <filename>scons-2.0.0.final.0</filename>,
+ <filename>scons-2.0.1</filename>,
usually in your local directory.
Then change your working directory to that directory
and install &SCons; by executing the following commands:
@@ -392,7 +392,7 @@
</para>
<screen>
- # <userinput>cd scons-2.0.0.final.0</userinput>
+ # <userinput>cd scons-2.0.1</userinput>
# <userinput>python setup.py install</userinput>
</screen>
@@ -460,9 +460,9 @@
This will install the &SCons; build engine
in the
- <filename>/usr/lib/scons-2.0.0.final.0</filename>
+ <filename>/usr/lib/scons-2.0.1</filename>
or
- <filename>C:\Python25\scons-2.0.0.final.0</filename>
+ <filename>C:\Python25\scons-2.0.1</filename>
directory, for example.
</para>
@@ -519,7 +519,7 @@
relative to the specified prefix.
Adding <option>--version-lib</option> to the
above example would install the build engine in
- <filename>/opt/scons/lib/scons-2.0.0.final.0</filename>.
+ <filename>/opt/scons/lib/scons-2.0.1</filename>.
</para>
diff --git a/doc/user/main.xml b/doc/user/main.xml
index 00b8268..fbc28df 100644
--- a/doc/user/main.xml
+++ b/doc/user/main.xml
@@ -122,10 +122,10 @@
<edition>Revision &buildrevision; (&builddate;)</edition>
- <pubdate>2004, 2005, 2006, 2007, 2008</pubdate>
+ <pubdate>2004, 2005, 2006, 2007, 2008, 2009, 2010</pubdate>
<copyright>
- <year>2004, 2005, 2006, 2007, 2008</year>
+ <year>2004, 2005, 2006, 2007, 2008, 2009, 2010</year>
<holder>Steven Knight</holder>
</copyright>
diff --git a/doc/user/tasks.in b/doc/user/tasks.in
index 2945d1c..8842dcd 100644
--- a/doc/user/tasks.in
+++ b/doc/user/tasks.in
@@ -29,7 +29,7 @@ on as they become more complex. Most build tools have special
purpose constructs for performing these tasks, but since &SConscript;
files are &Python; scripts, you can use more flexible built-in &Python;
services to perform these tasks. This appendix lists a number of these
-tasks and how to implement them in &Python;.
+tasks and how to implement them in &Python; and &SCons;.
</para>
<example>
@@ -79,3 +79,68 @@ output</title>
output = os.popen(command).read()
</programlisting>
</example>
+
+<example>
+<title>Generating source code: how code can be generated and used by SCons</title>
+
+<para>
+
+The Copy builders here could be any arbitrary shell or python function
+that produces one or more files. This example shows how to create
+those files and use them in &SCons;.
+
+</para>
+
+<scons_example name="ex1">
+<file name="SConstruct" printme="1">
+#### SConstruct
+env = Environment()
+env.Append(CPPPATH = "#")
+
+## Header example
+env.Append(BUILDERS =
+ {'Copy1' : Builder(action = 'cat < $SOURCE > $TARGET',
+ suffix='.h', src_suffix='.bar')})
+env.Copy1('test.bar') # produces test.h from test.bar.
+env.Program('app','main.cpp') # indirectly depends on test.bar
+
+## Source file example
+env.Append(BUILDERS =
+ {'Copy2' : Builder(action = 'cat < $SOURCE > $TARGET',
+ suffix='.cpp', src_suffix='.bar2')})
+foo = env.Copy2('foo.bar2') # produces foo.cpp from foo.bar2.
+env.Program('app2',['main2.cpp'] + foo) # compiles main2.cpp and foo.cpp into app2.
+</file>
+
+<file name="main.cpp">
+#include "test.h"
+</file>
+<file name="test.bar">
+// nothing here
+</file>
+<file name="main2.cpp">
+//// main2.cpp
+</file>
+<file name="foo.bar2">
+// nothing here
+</file>
+</scons_example>
+
+<para>
+
+Where main.cpp looks like this:
+
+</para>
+
+ <scons_example_file example="ex1" name="main.cpp">
+ </scons_example_file>
+
+<para>
+produces this:
+</para>
+
+ <scons_output example="ex1">
+ <scons_output_command>scons -Q</scons_output_command>
+ </scons_output>
+
+</example>
diff --git a/doc/user/tasks.xml b/doc/user/tasks.xml
index 2945d1c..2b2eb0b 100644
--- a/doc/user/tasks.xml
+++ b/doc/user/tasks.xml
@@ -29,7 +29,7 @@ on as they become more complex. Most build tools have special
purpose constructs for performing these tasks, but since &SConscript;
files are &Python; scripts, you can use more flexible built-in &Python;
services to perform these tasks. This appendix lists a number of these
-tasks and how to implement them in &Python;.
+tasks and how to implement them in &Python; and &SCons;.
</para>
<example>
@@ -79,3 +79,59 @@ output</title>
output = os.popen(command).read()
</programlisting>
</example>
+
+<example>
+<title>Generating source code: how code can be generated and used by SCons</title>
+
+<para>
+
+The Copy builders here could be any arbitrary shell or python function
+that produces one or more files. This example shows how to create
+those files and use them in &SCons;.
+
+</para>
+
+<programlisting>
+#### SConstruct
+env = Environment()
+env.Append(CPPPATH = "#")
+
+## Header example
+env.Append(BUILDERS =
+ {'Copy1' : Builder(action = 'cat &lt; $SOURCE &gt; $TARGET',
+ suffix='.h', src_suffix='.bar')})
+env.Copy1('test.bar') # produces test.h from test.bar.
+env.Program('app','main.cpp') # indirectly depends on test.bar
+
+## Source file example
+env.Append(BUILDERS =
+ {'Copy2' : Builder(action = 'cat &lt; $SOURCE &gt; $TARGET',
+ suffix='.cpp', src_suffix='.bar2')})
+foo = env.Copy2('foo.bar2') # produces foo.cpp from foo.bar2.
+env.Program('app2',['main2.cpp'] + foo) # compiles main2.cpp and foo.cpp into app2.
+</programlisting>
+
+<para>
+
+Where main.cpp looks like this:
+
+</para>
+
+
+ <programlisting>
+#include "test.h"
+</programlisting>
+
+<para>
+produces this:
+</para>
+
+ <screen>
+ % <userinput>scons -Q</userinput>
+ cc -o app main.cpp
+ cat &lt; foo.bar2 &gt; foo.cpp
+ cc -o app2 main2.cpp foo.cpp
+ cat &lt; test.bar &gt; test.h
+ </screen>
+
+</example>