Re: build systems



On Sat, 2007-11-10 at 17:20 +0100, Nicolas Trangez wrote:
> On Fri, 2007-11-09 at 14:37 +0000, Richard Hughes wrote:
> > On Fri, 2007-11-09 at 13:52 +0100, Daniel Svensson wrote:
> > > waf runs in two steps, first configure,
> > > then build. And I cannot stress enough how fast it is. Zooom! Also
> > it
> > > has a very nice looks ;)
> > 
> > Yes, I evaluated waf a few months ago. It's a very nice internal
> > design,
> > and very pluggable. Unfortunatly it needs the same modules written as
> > what we use with autotools, e.g. a module to install a schema file, do
> > the translation stuff etc.
> 
> Not waf-specific, just didn't know too wel where to get into this
> thread.
> 
> First of all, I don't really dislike autofoo. It works fine for "normal"
> applications, maybe needs some work when writing a library, but it's not
> impossible. More documentation would be great though.
> 
> Anyway, some thoughts on a potential new build system:
> - It most certainly needs good "make distcheck"-style support (ie
> tarball creation and automated build/install/uninstall checking)
> - One extremely neat feature would be to be able to keep multiple
> builds, each with (eg) different configure options,
> PKG_CONFIG_PATH's,... Like this I could eg keep a build of my
> application with -O0 -ggdb3 -pg etc, and one "normal" build with
> standard compiler optimalisations etc. It should be possible to mark one
> build as default.
> 
> An example session using the "mmake" system (hypothetical):
> $ ls builds
> debug   no-special-flags   extreme-optimalisations
> $ mmake configure --enable-debug --build-name=debug
> ls builds
> debug
> $ mmake set-default-build debug
> $ mmake
> Building debug build... done
> $ ls builds/debug
> builds/debug/foo.o builds/debug/bar.o builds/debug/version.o
> builds/debug/app
> $ ./builds/debug/app --version
> 0.1
> $ mmake configure --build-name=normal
> $ ls builds
> debug normal
> $ mmake --build=normal
> Building normal build... done
> $ ls builds/normal
> builds/debug/foo.o builds/debug/bar.o builds/debug/version.o
> builds/debug/app
> $ ./builds/normal/app --version
> 0.1
> $ mmake
> Nothing to be done for debug build
> $ echo "#define VERSION 0.2" > version.c
> $ mmake
> Building debug build... done
> $ ./builds/debug/app --version
> 0.2
> $ ./builds/normal/app --version
> 0.1
> 
> You get the idea...


Isn't this what we have the version control system for? How does this
differ from multiple checkouts?

Kind regards,
   Ruben


--
Ruben Vermeersch (rubenv)
http://www.savanne.be

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]