Re: cleaning and surprises

Bill Deegan <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAEyG4CF1XiqzjHsgkP-6zyxJeWzcqgWoELLYJb54jMSoFbejow@mail.gmail.com>
Mats,

If your SConscripts are doing a lot of miscellaneous python logic which
create those files and/or use Execute(), then that an issue with your build
setup.
If SCons is doing that, I'd be quite surprised with the exception of any
configure context files.

-Bill

On Fri, Sep 21, 2018 at 1:41 PM Mats Wichmann <[email protected]> wrote:

>
> In general, software tools should not "surprise" you.
>
> In the big project I've been working on, one of the surprises is how
> much work happens when you really didn't ask to do much work.  Like the
> "clean" operation... yes it's easy to agree, after you think about it,
> that you have to do enough work to figure out what targets have been (or
> could be) built so you know what to remove.  In many build systems
> that's quite explicit - the information is in the scripts and the tool
> just removes that and doesn't do a lot of calculation.  But as I say, I
> get surprised by how much does happen in our build.  I know that this is
> the result of errors (rather, bad assumptions) by the authors of the
> various bits of this setup, but these are smart developers and somehow
> it doesn't come clear how to set things up.  To be a little less obtuse:
>
> - configure checks get run
>   Checking for C++ header file arpa/inet.h... yes
>   Checking for C++ header file fcntl.h... yes
>   ...
>
> - external-library stuff gets run, sometimes many times:
>   Checking for C++ library boost_thread... yes
>   Checking for C++ library boost_system... yes
>
> and in the end, there's been a flood of output, and some files in the
> variant directory - which for the sake of amusement is completely
> removed before running the clean operation - has ended up with some
> /built/ files!!! So it's not that they were missed by the clean, they
> were actually built during the clean process (remember, started
> completely empty).
>
> out/linux/x86_64/release/liblogger.a
> out/linux/x86_64/release/libc_common.a
> out/linux/x86_64/release/resource/csdk/logger/liblogger.a
> out/linux/x86_64/release/resource/csdk/logger/src/logger.o
> out/linux/x86_64/release/resource/csdk/logger/src/trace.o
> ... 13 more in current setup
>
> It's not that this makes builds not work, but it tells me something just
> isn't right in the script setup.
>
> In fact the same thing happens in an even less work-expected situation,
> asking for help.  We also had a bit of this discussion recently on list
> over dry-run invocations, another "surprise".
>
>
> Do we have documentation in scons of "things not to do" that could be
> helpful in avoiding falling into these kinds of traps?
>
>
> Note:
>
> Even scons itself has a bit of this:
>
> $ scons -c
> scons: Reading SConscript files ...
> Mkdir("/home/mats/Work/scons/build/doc/design")
> Mkdir("/home/mats/Work/scons/build/doc/design/titlepage")
> Mkdir("/home/mats/Work/scons/build/doc/user")
> Mkdir("/home/mats/Work/scons/build/doc/user/titlepage")
> Mkdir("/home/mats/Work/scons/build/doc/reference")
> Mkdir("/home/mats/Work/scons/build/doc/reference/titlepage")
> Mkdir("/home/mats/Work/scons/build/doc/man")
> Mkdir("/home/mats/Work/scons/build/doc/man/titlepage")
> scons: done reading SConscript files.
> scons: Cleaning targets ...
> scons: done cleaning targets.
>
> and, not in the messages, those directories were populated, so after
> starting with a clean git checkout - no "build" directory at all -
> "scons -c" leaves me with a build directory with 113 files (.xml, .xsl,
> SConstruct, and a few others). did cleaning really need to create
> directories and populate them?
>
>
> any thoughts on how to make this less surprising?  or should I just suck
> it up and treat this as normal?
> _______________________________________________
> Scons-users mailing list
> [email protected]
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.