diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/man/scons-time.1 | 4 | ||||
-rw-r--r-- | doc/man/scons.1 | 4 | ||||
-rw-r--r-- | doc/man/sconsign.1 | 4 | ||||
-rw-r--r-- | doc/user/build-install.in | 18 | ||||
-rw-r--r-- | doc/user/build-install.xml | 18 | ||||
-rw-r--r-- | doc/user/main.xml | 4 | ||||
-rw-r--r-- | doc/user/tasks.in | 67 | ||||
-rw-r--r-- | doc/user/tasks.xml | 58 |
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 < $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. +</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 < foo.bar2 > foo.cpp + cc -o app2 main2.cpp foo.cpp + cat < test.bar > test.h + </screen> + +</example> |