+1   having a build tool that supports multiple platforms is worth the
dependency. I've also had good experiences with cmake.


On Mon, May 21, 2012 at 6:00 PM, Colin McCabe <cmcc...@alumni.cmu.edu> wrote:
> Hi all,
>
> We'd like to use CMake instead of autotools to build native (C/C++) code in
> Hadoop.  There are a lot of reasons to want to do this.  For one thing, it is
> not feasible to use autotools on the Windows platform, because it depends on
> UNIX shell scripts, the m4 macro processor, and some other pieces of
> infrastructure which are not present on Windows.
>
> For another thing, CMake builds are substantially simpler and faster, because
> there is only one layer of generated code.  With autotools, you have automake
> generating m4 code which autoconf reads, which it uses to generate a UNIX 
> shell
> script, which then generates another UNIX shell script, which eventually
> generates Makefiles.  CMake simply generates Makefiles out of CMakeLists.txt
> files-- much simpler to understand and debug, and much faster.
> CMake is a lot easier to learn.
>
> automake error messages can be very, very confusing.  This is because you are
> essentially debugging a pile of shell scripts and macros, rather than a
> coherent whole.  So you see error messages like "autoreconf: cannot empty
> /tmp/ar0.4849: Is a directory" or "Can't locate object method "path" via
> package "Autom4te... and so forth.  CMake error messages come from the CMake
> application and they almost always immediately point you to the problem.
>
> From a build point of view, the net result of adopting CMake would be that you
> would no longer need automake and related programs installed to build the
> native parts of Hadoop.  Instead, you would need CMake installed.  CMake is
> packaged by Red Hat, even in RHEL5, so it shouldn't be difficult to install
> locally.  It's also available for Mac OS X and Windows, as I mentioned 
> earlier.
>
> The JIRA for this work is at https://issues.apache.org/jira/browse/HADOOP-8368
> Thanks for reading.
>
> sincerely,
> Colin

Reply via email to