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