[Scons-users] scons checking targets actually built?

robert zeigler robert.zeigler at gmail.com
Thu Apr 18 19:13:18 EDT 2013


Hi,

Fairly new to scons. I have been playing with it the last few days and like
what I see. However, I stumbled on behavior today that has me troubled.

Consider a very simple build script:

Command(['a.txt'],[],"echo hi > $TARGET")
Command(['b.txt'],['a.txt'],"cat $SOURCE > $TARGET && echo foo >> $TARGET")

This runs fine:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
echo hi > a.txt
cat a.txt > b.txt && echo foo >> b.txt
scons: done building targets.

Now consider an alternative command for building a:

Command(['a.txt'],[],"echo hi > $TARGET && rm $TARGET")

Then you get:

scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
echo hi > a.txt && rm a.txt
cat a.txt > b.txt && echo humbug >> b.txt
cat: a.txt: No such file or directory
scons: *** [b.txt] Error 1
scons: building terminated because of errors.

The build fails, of course, but what troubles me is that it doesn't fail
until we attempt to build b.txt. I would have expected scons to verify that
the target was actually build by the command; failing that, I'm surprised
that it attempted to build b.txt when a.txt was clearly not present for
b.txt to be built?

Clarification on this is greatly appreciated. Although the case above is
trivial, I ran into this issue in a non-trivial case, as well.

Robert
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130418/366b375f/attachment.html>


More information about the Scons-users mailing list