Prototype buildsystem "Drake"

Russel Winder russel at russel.org.uk
Tue Jul 19 07:46:59 PDT 2011


On Tue, 2011-07-19 at 14:55 +0200, Jacob Carlborg wrote:
> On 2011-07-19 11:28, Nick Sabalausky wrote:
> > Granted, I've never used this sort of feature from any buildsystem, but I
> > thought we were talking about something like the "configure" command in Waf.
> > My understanding is that it's like the "./configure" from autotool's
> > "./configure&&  make&&  make install", (except hopefully without needing to
> > check quite so much stuff or needing the user to manually run the configure
> > command).
> 
> I would hope D never had to use something like "./configure". It checks 
> for C language features and similar (probably other things as well). I 
> don't think that that belongs in a build system for D.

Well Autoconf, Waf and SCons check for a whole lot more than C features,
there are C++, Fortran, Python, . . . but yes one part of configuration
is (not unreasonably) which version of which languages are available in
order to build from source.

> > Apperently some projects need to have their buildsystem check for the
> > existance of, locations of, and details about certain things on the local
> > system before building. So...that stuff.
> 
> Isn't that to check what libraries, and so on, are present? That is the 
> whole point of a package manager. A package specifies what dependencies 
> it has, then the package manager makes sure the dependencies are met, or 
> else it can't be installed.

There is clearly a string coupling between configuration and package
management.   Autoconf, Waf and SCons have to be portable across package
management since they are not dedicated to one scheme -- springing up as
they did from before package management as standard.

> Don't know what locations it would check for. The package as no saying 
> in where it should be installed, the package manger decides that.
> 
> Oh, now I mixing package manager and build tool and assume the build 
> tool will be used with the package manager.

There are some potentially tricky issues here.  Ruby gets round it by
having a language specific package and build system which therefore
causes Debian, Fedora, FreeBSD, Macports, Fink, etc. packagers massive
headaches.  Haskell/Cabal, Python/Eggs, etc.  The conflict between
language packaging and platform packaging is central.  Having a D
language packaging system that was in some way harmonious with Apt/Deb,
Yum/RPM, Ports, etc. would make a lot of people very happy.  Indirectly
it would make traction a whole lot easier.  As evidence I present Java,
Ruby, Python, Haskell, etc.

> When I was talking about "config file" I was thinking something more 
> like Rebuild's config files, example: http://pastebin.com/rYc47wXQ
> 

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110719/5a655cba/attachment-0001.pgp>


More information about the Digitalmars-d mailing list