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... Just my .02, Nicolas
Attachment:
signature.asc
Description: This is a digitally signed message part