Re: libgtk-dev bug?
Raul Miller <rdm@test.legislate.com> writes:
> Make is pretty easy to work with as long as you work with it as a tool
> for managing many files in a directory. [For example, it's often
> better to put scripts in separate files.]
Well, I'd like to be able to do things like change variables at
different points during the build (in the makefile), and have the
results propagate, and its idea of a "macro" is nearly useless. It
should have functions with arguments. Further, for really big
projects that build multiple object files from a given source file for
different binaries, Make is a PITA.
Anyway, I've been annoyed with make for a while, and recently, when I
saw the Debian "cons" package, I checked it out. It seems (at first
glance, anyway) substantially superior to make. Among other things:
- showed %50 build time improvement on ~1500 file project converted
to cons. Partially because it doesn't have to rely on recursive
invocation to handle large multi-dir projects.
- the language of the Conscripts is perl, so you have *real*
variables, etc. rather than that inscrutable make expansion mess.
(Not that perl is my favorite language, but it's suited for this,
and it's far better than make's syntax.)
- No more tabs (visibly identical but semantically different
delimiters are *evil*)
- md5sums for computing build targets. The sums even include the
command used to build the relevant file, so they notice
*everything*. This would be like including a dependency on the
Makefile if you were using make, but it's much more accurate.
- Automatic handling of C code (and others) recursive "#includes".
You don't have to do the "depend" step, or use a complex gcc
command.
- Automatic handling of builds in directories other than the source.
I think it just builds a shadow tree with links and automatically
updates the shadow tree(s) when you modify the source tree.
- Supports build context objects so you can keep several around and
build different components under different defaults.
> That said, even using "evaluate once" won't cure a makefile which
> computes configuration information on the fly. Make wants to work
> with state information in files, not state information that it can't
> get a timestamp on.
Right cons's md5sums handle this.
FWIW.
--
Rob Browning <rlb@cs.utexas.edu> PGP=E80E0D04F521A094 532B97F5D64E3930
--
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: