Il giorno ven, 09/11/2007 alle 15.51 +0100, Emmanuel Fleury ha scritto: > 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. > > > > It's written in python, and is really a nice project. If I was more l33t > > at python I would be pushing it much harder than I am for use inside > > GNOME. > > Did someone tried out Scons (http://www.scons.org/) ? I did try to use it for some projects of mine that I shared with about six-seven people each. Ugly as they are, autotools where easier to write and adapt than SCons, and everybody understood them after I spent half an hour explaining the principles. At the end, we reverted back to autotools, and it costed us less time in maintenance and configuration. Also, what didn't compile in exotic systems before, started working without doing anything else (MacOSX comes to mind). I may be biased, though, since I don't like Python much (I prefer Ruby). However, moving away from a well established and - above all - working infrastructure which is so widespread like the autoblah thing, requires compelling reasons. For me, the cruft of updating Makefiles and configures doesn't even remotely compares to maintaining SConstruct files or whatever else is the fashion of the week. Anyway, I also admit that I know autotools passably well. For example, I always use a unique Makefile.am for the whole module I'm building (recursive make is considered harmful!), which is something that not a lot of people do, and I must say I've seen a lot of "strange" practices in using autotools around, and that may explain why most people hate them so badly (simply disliking them is healthy, anyway). At least for me, SCons meant: * learning a new language (Python) to do simple things autotools did in a friendly - yet ugly - fashion; * having to write complex code to get simple things done in a portable way (at the time I tried it, I had to write by hand functions to check for packages using pkg-config and then start setting variables all around; more recently, compiling Mono binaries was a pain... see the now-dead Diva project SCons build scripts). Certainly not a win, if I can do the same thing in three lines within my configure.ac; * having to understand what an Evironment is and how is used, and reading through all that darn SCons man page (heck, can't we have GNU Info support? Never mind) searching for a function which is named in a way you'd never guess off-hand. I don't care having more granularity and control over what I do, if in 99% of cases autotools do what I want in a simplier way; * people say that SCons errors are more understandable. To me, quite a lot of times, scons failed silently and even more misteriously than autotools (without even printing it failed, I had to echo $?) However, I agree that autotools are just a huge kluge went widespread, and I'd like to see them replaced. But, I still didn't find a build system with low requirements, that's easy to learn, and with enough momentum to ensure me that I won't be forced to hop from one system to another several times across a few years of maintenance. I also don't like GNOME resisting to C++/Python/C#/Java in the platform, and opening to python for the build system. I don't want to have python installed just to compile glib, old fashioned as you may consider me. Yeah, I know that nowadays Python is installed for everyone, and all that things. I just don't like shooting to flies with a cannon. However, it's not that I hate python: I don't use deskbar applet because it's too slow and demanding, but I use exaile as my player and bazaar as my vcs, so go figure. If I was less lazy, I'd write a configuration system, and I'd make it in Ruby (if people want to use a damn cannon for killing mosquitos, at least let's make sure it's a _freakin'_ cannon) or auto-bootstrapping in C/C++ (yeah, I'm crazy). Software configuration should be something collateral to your work, not the most time-consuming thing in the process. My 2c. -- Matteo Settenvini FSF Associated Member Email : matteo member fsf org -----BEGIN GEEK CODE BLOCK----- Version: 3.12 GCS d--(-) s+:- a-- C++ UL+++ P?>++ L+++>$ E+>+++ W+++ N++ o? w--- O- M++ PS++ PE- Y+>++ PGP+++ t+ 5 X- R tv-- b+++ DI+ D++ G++ e h+ r-- y? ------END GEEK CODE BLOCK------
Attachment:
signature.asc
Description: Questa =?ISO-8859-1?Q?=E8?= una parte del messaggio firmata digitalmente