Hmm, my 2 cents is that it's infinitely simpler to understand a build.xml file (or better yet a Maven pom.xml :) -- just my opinion people no tomatoes!) than it is to understand makefiles, or better yet, programs that generate makefiles on the fly, or that generate other build scripts on the fly etc etc.
Ant is available on nearly every Linux distribution that I've come across in recent years (installed into /usr/bin/ant or some variant). That said, these are just my preferences (as are Marvin's for Make/programs that generate makes and so forth :) ). What do others think? The key question to ask yourselves is: 1. will Marvin be the *only* RM that this project ever sees? 2. will Marvin be the *only* person building this project, ever? 3. of the 2-3 existing Lucy developers, what are the preferences? I know Marvin's: what about Peter/Nate? 4. of the 1 new Lucy committers as part of Apache Lucy in the Incubator (e.g., Simon?) 5. are the mentors ever going to build and use this system? Or scarier yet, maintain it? My answer on that is that at some point I'd like to build it myself and understand it, but sophisticated Makefiles are not my cup of tea. The community right now is small so it will be very driven by whomever picks up the shovel and starts to dig the hole, but it would be nice if the tool used to dig that hole is something that not only Marvin can wield... Cheers, Chris ________________________________________ From: Marvin Humphrey [[email protected]] Sent: Tuesday, November 16, 2010 12:16 PM To: [email protected] Subject: [lucy-dev] Slow migration to Makefiles On Tue, Nov 16, 2010 at 09:39:20AM -0800, Mattmann, Chris A (388J) wrote: > > Over time, we should expect to migrate a lot of the build structure to > > Makefiles. I hate make, but it's the lowest common denominator. > > Is that strictly true? I mean, the reality is whatever you could do in make, > could be done in e.g., Ant, right? Sure -- but we could also do everything in Perl/Ruby/Python/etc. The primary advantage that Make has over Ant and all of those is that it's already there on every system. The point of migrating to Makefiles would be to share build routines across host bindings. Building Lucy for C or Python shouldn't require Perl, or Java, or whatever. For now, we have to put up with a Perl dependency, but I would like to eliminate that, at least for simple building of the library as a user would. (Developers will continue to have to deal with the Perl dependency, but after I rewrite Clownfish::Parser to be based on the Lemon parser generator rather than Parse::RecDescent, they'll only need core Perl.) We don't want to depend on Make exclusively for the build IMO -- the contortions necessary for cross-platform compatibility when solving complex problems aren't worth it. Instead, I think we should keep the Makefiles simple, but use scripts to generate input for them. Probably such dev helper scripts will continue to be written in Perl, like the update_snowstem.pl I just added last week. I don't think it's reasonable to expect Simon or Robert to fully grok a sophisticated Module::Build subclass like trunk/perl/buildlib/Lucy/Build.pm. However, I do think that it's reasonable to expect Lucy committers to understand shared Makefiles, and I also think it's reasonable to expect them to understand simple Perl scripts like update_snowstem.pl. Marvin Humphrey
