[LLVMdev] Deprecating autoconf/make?
cdavis5x at gmail.com
Wed May 22 22:16:12 PDT 2013
On May 22, 2013, at 9:04 PM, Reid Kleckner wrote:
> On Wed, May 22, 2013 at 8:33 PM, Charles Davis <cdavis5x at gmail.com> wrote:
> On May 22, 2013, at 5:14 PM, Eric Christopher wrote:
> > Hi All,
> > Can anyone see good a reason not to move to cmake as our only build
> > configuration system and drop future support for autoconf + makefiles
> > now that 3.3 has branched?
> - CMake is not available everywhere. Bourne shells are*.
> As I recall, this is the reason autoconf generates shell scripts: because nearly every operating system out there comes with a shell! Even the old-timey MPW development environment for the Mac came with one! (* Even Windows comes with a shell, though it's not a Bourne shell but something else entirely with a few constructs borrowed from the Bourne shell's predecessor, the Thompson shell. But I only care about Windows inasmuch as people still use it anyway.)
> I just want to point out that that's a huge asterisk.
It is--in more ways than one :). Besides being pretty long, I'm well aware that there's quite a few Windows users on this list. Many of them don't have a shell that can run configure installed. For them, ditching autoconf in favor of CMake is a no-brainer. Why put so much effort into maintaining a build system a sizable proportion of our users can't even use?
From the Unix point of view, Windows is very odd, isn't it? But I digress.
> In particular, CMake is not distributed with Xcode. This means that engineers at Apple--who may I remind you all still drives the bulk of LLVM, Clang, and especially LLDB development, though IBM, Intel, AMD, and especially Google have really stepped up their contributions recently--and for whom you yourself, Eric, once worked until somewhat recently--won't be able to build their own shiny new toolchain at all, unless they can somehow convince management to install CMake. In fact I seem to recall quite recently someone from Apple (Jim Ingham?) on one of the LLVM lists complaining that he wanted to use ninja, but couldn't because he couldn't get ninja and CMake installed on his workstation. Until this changes--and good luck with that--expect heavy resistance from anyone still at Apple (other than Doug Gregor, of course :).
> Do you mean Jim Grosbach here?
Yeah, that's who I meant.
> My take away was that switching to CMake is a large but superficial workflow change that takes time to get used to.
Huh. My memory must be a bit fuzzy.... I could swear I recall someone saying "My boss won't let me install CMake on my workstation" or something to that effect.
> w.r.t. the comments about ninja, LLVM doesn't need to push that as the preferred build system. 'make' works fine out of the box. ninja is just useful if you want faster builds and are willing to build your own binary.
> Here's an angle I haven't heard: CMake can generate XCode project files. I'm not sure that matters to anyone who works on LLVM, but it would make it easier for Apple to dogfood their own IDE.
> I also hear the generated project files are not so good, though.
This is (IIRC) one of the reasons Daniel Dunbar doesn't like CMake.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev