[LLVMdev] Is there room for another build system?

Samuel Crow samuraileumas at yahoo.com
Wed Jul 30 12:18:41 PDT 2008


@Duncan Sands

I've worked with CMake for creating plugins for ParaView on MacOSX 10.4, 10.5, and Windows XP under Visual Studio 2005.  I've also built other utilities on MacOSX 10.4, Cygwin and MSYS on WinXP, 32-bit and 64-bit Linux, and AmigaOS 4.0 using the traditional autotools.

CMake has an intuitive GUI for all of the user-defined functions so that, if a library cannot be found, a double-click on the entry and a click on a button pops up a file-requester so that the user can locate the library or directory and CMake also adjusts accordingly.  If you only have a text-based terminal, a character-mapped GUI will be used instead.

The Autotools approach are specific to Posix-related operating systems and are not very portable to systems like Windows and the Amiga (which does not support fork() and other Posix-related functions) and I must say that I do not think that Autotools are ready for a cross-platform environment and certainly not an asset to LLVM.

In my not-so-humble opinion, Autotools should be packaged only with GCC and not tied to any other compilers such as LLVM's Clang project.  Autotools are only designed to work with the GNU environment.  CMake is designed to be cross-platform and even works within cross-development environments as of verision 2.6 .

My only complaint about CMake is that the XCode project generator support was buggy in version 2.6.0 but this should be fixed in 2.6.1 and so I may soon be able to put the Make utility to rest on the Mac in favor of a more native build environment.

I look forward to being able to use LLVM on many operating systems and not just Posix ones.  I was even contemplating trying to port LLVM to AROS and, if the environment is right, I should be able to do it.

I'll be watching the list to see what develops.  Maybe I'll even get more involved later on.

Sincerely,

Sam Crow

--- On Wed, 7/30/08, Óscar Fuentes <ofv at wanadoo.es> wrote:

> From: Óscar Fuentes <ofv at wanadoo.es>
> Subject: Re: [LLVMdev] Is there room for another build system?
> To: llvmdev at cs.uiuc.edu
> Date: Wednesday, July 30, 2008, 1:39 PM
> Duncan Sands <baldrick at free.fr> writes:
> 
> > Hi,
> >
> >> CMake just requires one plain text file named
> CMakeLists.txt on every
> >> source directory, and the only maintenance is to
> keep up to date the
> >> list of source files of the directory.
> >
> > can it be kept up-to-date automagically?  After all,
> you can query
> > subversion to get the list of all files in a
> directory.
> 
> Yes, it can, but CMake would do this at configure time,
> which means that
> you'll need to explicitly invoke CMake. If you alter
> the CMakeLists.txt
> file to reflect your change, next time you invoke your
> build (gmake,
> nmake, Visual Studio...) it automatically notices this and
> does the
> right thing.
> 
> Please note that CMake (unlike SCons) is not a replacement
> for `make',
> it is a makefile generator, so the amount of intelligence
> it can inject
> on its output (makefiles, Visual Studio projects, etc) is
> limited.
> 
> > Do ordinary users need to have cmake if they want to
> build llvm?
> 
> Yes.
> 
> > If so, that's bad because they'll have to
> install it (unlike the
> > current setup, where only very standard tools are
> needed).
> 
> That's something to count on the `against' side,
> yes.
> 
> -- 
> Oscar
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


      




More information about the llvm-dev mailing list