[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Devel] Relevance of FTjam wrt new Jam 2.4 ?
From: |
David Turner |
Subject: |
Re: [Devel] Relevance of FTjam wrt new Jam 2.4 ? |
Date: |
Thu, 18 Apr 2002 13:53:40 +0200 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.9) Gecko/20020311 |
Mark Leisher wrote:
David> Note that I'd like to ditch the "old" Make-based build system
David> entirely. This won't happen until the official Jam has all features
David> required to compile the library...
Not that I've looked extensively, but Freetype is the only project I've
encountered that uses Jam.
Most probably because most projects you're dealing do not try to run
on as many platforms, or with as many compilers, as FreeType do.
As far as I know, the only comparable project I know is XFree86,
which also uses its own build tool "imake", for about the same
reasons. I also believe that IMake isn't a good solution for
FreeType, but for different reasons..
If you're not interested in porting your code to anything else than
Unix, you can easily stick to Make + AutoConf + AutoMake. Very often,
people also maintain compiler-specific Makefiles to build their
project on Win32. Unfortunately, these are very rarely updated
as the original one as it's a very painful thing.. (*couch*
GLib *cough* GTK)
The "current" FreeType build system is built on top GNU Make but
uses oodles of voodoo to ensure that a single set of Makefiles
(or more precisely "rules.mk" files) can be used to compile the
sources with several compilers on several platforms..
Unfortunately, it is also very complex in design, and difficult
to adapt to different projects. Not something I'm willing to
maintain for ages anyway. It doesn't work on VMS by the way..
which is why you'll find "descrip.mms" files all over the
place, which need to be maintained in parallel to the "rules.mk"
On the opposite, using Jam (or FTJam) results in _much_ shorter
and simpler Jamfiles that are definitely easier to understand
and maintain. They are portable by design, even if they can
include platform-specific code paths when you need them.
They also work on VMS. I use them extensively to recompile
the library with several compilers in a snap.
They're also excellent for experimentation..
Jam is not perfect, but it's definitely a much better tool than
make, for only 1/5th of the price (i.e. jam.exe is 80Kb, and
GNU Make is 400 Kb). And you can still use it with Autoconf
and any bunch of Perl/Shell/Python scripts you'd like for the
really difficult configuration issues..
And very frankly, it's a lot easier to learn how to use Jam
than to learn how to use Autoconf properly, or even how the
current FreeType build system works..
Are any other high profile projects using Jam?
The MacOS X App.Builder uses Jam. From discussions
on the Jam mailing lists, many companies use it to compile
_huge_ codebases that need to be run on several platforms
(e.g. projects with more than 10,000 files or 10 million LOCs)
I believe it is used at Oracle, Cisco and quite a few other
"big" vendors..
Best Regards,
- David Turner
- The FreeType Project (www.freetype.org)