Project Proposal: Build Infrastructure Changes

Mario Torre neugens at
Mon Apr 25 20:19:23 UTC 2011

Il giorno lun, 25/04/2011 alle 13.07 -0700, Erik Trimble ha scritto:
> Cmake sounds very promising.
> I would certainly think it merits a discussion of usefulness.
> The major barrier I'd say is that it would require us to do a forklift
> replacement of the existing gmake Makefile build system. That is, it is
> unlikely that an incremental replacement of the gmake system could
> happen. However, I would love to be proved wrong. A proof-of-concept by
> someone on one of the major subsystems would likely be a first step
> here.
> Just to remind everyone, we currently would need something that can
> provide a reasonable build system to work on the following OS and
> compiler combinations:
> Linux 2.4 & 2.6 (both 32- and 64-bit) with GCC 3.2 and later
> Windows 2000 & Windows 2003 x64 with Visual Studio 2003
> Windows XP & Windows 2003 with Visual Studio 2010
> Solaris 8 with SunStudio 11
> Solaris 10 (32- and 64-bit, SPARC and x64) with SunStudio 11 and 12
> Plus, be adaptable to other platforms, such as MacOS 10.5 with its
> compiler (gcc 3.??), Linux on PPC & ARM, AIX on POWER, HPUX on PA-RISC
> or Itanium, Windows 2008 or Win7 with VisualStudio, etc.
> -Erik

I used CMake extensively in the last year, although I'm not an expert of
it. I think it's great for new/small projects, but it has its drawbacks.

I found out that it doesn't work reliably on Windows, for example, I
always had to use a very specific version of make and use cygwin.

On the other end, it works almost transparently with cross compilers (I
always only tried with gcc based toolchain). I could happily compile for
QNX and PS3 back then when Sony wasn't stupid and let us use the toy to
do some real code.

On the other end, CMake insist you to pollute all the code directories
with the CMake definition file, which is something I find a bit silly
(sub directories require this file as well, but there are tricks to
avoid that).

I would definitely investigate CMake as Erik suggest for one of the
small sub project and see how it fit, but I have some doubts it will
justify the change.

One thing is true, the new build machinery should allow easy cross

pgp key: PGP Key ID: 80F240CF
Fingerprint: BA39 9666 94EC 8B73 27FA  FC7C 4086 63E3 80F2 40CF

Proud GNU Classpath developer:
Read About us at:

Please, support open standards:

More information about the build-dev mailing list