[CMake] Mozilla and automatic Autoconf + GMake translation

Brandon Van Every bvanevery at gmail.com
Tue Feb 12 23:05:12 EST 2008


On Feb 12, 2008 12:34 PM, Alexander Neundorf <a.neundorf-work at gmx.net> wrote:
> On Tuesday 12 February 2008, Brandon Van Every wrote:
> > Mozilla has made public the code I worked on for them.
> > https://bugzilla.mozilla.org/show_bug.cgi?id=416982  It is an
> > incomplete Autoconf + GMake --> CMake translator.  It was designed to
> > translate the stuff that appears in Mozilla's 400MB source code tree.
> > It hasn't been tested against their entire tree, only the against the
> > largest, worst files in their tree.  It is possible that the
> > translator may work on non-Mozilla code.  I'm willing to advise anyone
> > who wants to try to get the code working for their own purposes.  Bear
>
> Can you give a short advice how to get this working, so interested people
> don't have to dig around on webpages to collect the required information ?
> I.e. something like:
> -use "svn co <someurl>" to get the mozilla sources
> -how to build it with the original buildsystem

Figuring out how to acquire and correctly build Mozilla using its
current build is a pain.  I used the CVS based "make -f client.mk"
method for awhile, and it was reliable.  When I started the project,
the Mercurial method wasn't reliable.  It seems to have become
reliable lately.  Looks like some docs have appeared on how to do it
since I last looked: http://developer.mozilla.org/en/docs/Mercurial

You do not need a Mozilla build tree to run the translator.  The
moz.zip file contains the massive, monolithic configure.in that
Mozilla uses for nearly everything, and also the longest, worst
Makefile.in.  The translators operate on files in the same directory.
You could substitute any configure.in or Makefile.in you like and see
what you get.  Doesn't have to be Mozilla code.  I have no idea if the
translators will work on non-Mozilla code, they've never been tested
in that capacity.  If they don't work, they certainly could be made to
work.  I suspect that the configure.in translator is more likely to be
robust in the face of arbitrary code, as it was written later in the
project.

Remember this translator doesn't produce a CMakeLists.txt that will
build the Mozilla suite.  The translator is incomplete for that
purpose.  There are semantic differences yet to be overcome.  I
estimate it would take 1 person who is either intimate with CMake, or
intimate with the Mozilla build system (doesn't have to be intimate
with both) from 2..4 man-months to deliver a fully working build.

> -you need this and that required library

You need CMake 2.4.8.

> -how to run the cmake translator script on it

The README.txt says:
configure.in translator is invoked with
cmake -P c2c.cmake

Makefile.in translator is invoked with
cmake -P m2c.cmake


Cheers,
Brandon Van Every


More information about the CMake mailing list