diff options
Diffstat (limited to 'doc/user/depends.in')
-rw-r--r-- | doc/user/depends.in | 53 |
1 files changed, 27 insertions, 26 deletions
diff --git a/doc/user/depends.in b/doc/user/depends.in index 5066973..8ba0504 100644 --- a/doc/user/depends.in +++ b/doc/user/depends.in @@ -1613,7 +1613,7 @@ <para> If we list <filename>version.c</filename> as an actual source file, - though, then <filename>version.o</filename> + though, then the <filename>version.o</filename> file will get rebuilt every time we run &SCons; (because the &SConstruct; file itself changes the contents of <filename>version.c</filename>) @@ -1623,27 +1623,23 @@ </para> - <!-- - <scons_output example="no-Requires"> - <scons_output_command>scons -Q</scons_output_command> - <scons_output_command>scons -Q</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> + <scons_output_command>sleep 1</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> + <scons_output_command>sleep 1</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> </scons_output> - --> + <para> - <screen> - % <userinput>scons -Q</userinput> - gcc -o hello.o -c hello.c - gcc -o version.o -c version.c - gcc -o hello hello.o version.o - % <userinput>scons -Q</userinput> - gcc -o version.o -c version.c - gcc -o hello hello.o version.o - % <userinput>scons -Q</userinput> - gcc -o version.o -c version.c - gcc -o hello hello.o version.o - </screen> + (Note that for the above example to work, + we &sleep; for one second in between each run, + so that the &SConstruct; file will create a + <filename>version.c</filename> file with a time string + that's one second later than the previous run.) + + </para> <para> @@ -1695,19 +1691,24 @@ <para> With these changes, - we get the desired behavior of - re-building the <filename>version.o</filename> file, - and therefore re-linking the <filename>hello</filename> executable, - only when the <filename>hello.c</filename> has changed: + we get the desired behavior of only + re-linking the <filename>hello</filename> executable + when the <filename>hello.c</filename> has changed, + even though the <filename>version.o</filename> is rebuilt + (because the &SConstruct; file still changes the + <filename>version.c</filename> contents directly each run): </para> <scons_output example="Requires"> - <scons_output_command>scons -Q</scons_output_command> - <scons_output_command>scons -Q</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> + <scons_output_command>sleep 1</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> + <scons_output_command>sleep 1</scons_output_command> <scons_output_command output=" [CHANGE THE CONTENTS OF hello.c]">edit hello.c</scons_output_command> - <scons_output_command>scons -Q</scons_output_command> - <scons_output_command>scons -Q</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> + <scons_output_command>sleep 1</scons_output_command> + <scons_output_command>scons -Q hello</scons_output_command> </scons_output> </section> |