[Aptitude-devel] Towards a better build system

Daniel Burrows dburrows at debian.org
Thu Apr 29 13:50:31 UTC 2010


On Thu, Apr 29, 2010 at 11:03:30AM +0000, Sune Vuorela <nospam at vuorela.dk> was heard to say:
> On 2010-04-29, Daniel Burrows <dburrows at debian.org> wrote:
> > complete "proof of concept" build system in the tree, but I wasn't
> > especially impressed.  The only thing I can say is that the result is
> > better than autotools, but only just.
> 
> What's the metric for better? :)

  Better support for parallel builds (without having to put everything
in one big nonrecursive definition file).

  Direct support for building with all the different combinations of
options that I usually want to produce, and doing so without stalling
parallel builds.

  Running distcheck *before* producing an archive, and running it in
all the compile variants (it's quite common that I build an archive
and then realize afterwards that it doesn't compile with optimizations
turned on).

  Defining aptitude-specific stuff in the main build files and breaking
the customization of the build system itself into separate modules.
e.g., the build rule for each documentation variant is now one
statement:

docs_env.AptitudeStandaloneDocs(
    'en',
    )

  I really like all the stuff scons can do for me -- unfortunately the
stuff it can't do, or does badly, or needs horrible hacks to do, nearly
outweighs the positives.

> >   That said: I looked at the CMake Web site a bit last weekend and
> > noticed that their FAQ says you can't build source distributions with
> > cmake.  Ew?  I'll reserve judgement until I see your proof-of-concept,
> > though.
> 
> what do you mean by 'source distributions' ?

  "make dist".

--- begin quote ---
  Where is "make dist"?

CMake doesn't create a "make dist" target. 
--- end quote ---

> I do have a couple of questions:
>  - is it correct that aptitude is designed to do a 'two pass' build,
>    first building aptitude and then creating a different config.h and
>    building aptitude-gtk ?

  Only because of limitations of autotools.  Run "scons --variant=all"
and you'll get both versions of the program (with all combinations of
compile flags).  Assuming you can get over your hatred of scons, that
is. :)

>  - is it correct that the boost_test tests doesn't build?

  It should build.

  Daniel



More information about the Aptitude-devel mailing list