[LLVMdev] Arm port

Chuck Robey chuckr at telenix.org
Sat May 23 12:30:45 PDT 2009

Óscar Fuentes wrote:
> Chuck Robey <chuckr at telenix.org> writes:
>> I've never asked for (and wouldn't personally contribute to) any project to
>> generate BSD Makefiles from CMake input.  My feelings are, you generate BSD
>> Makefiles directly, they are NOT that complicated, and making them be generated
>> like that reduces the simplicity, make troubleshooting more difficult.
> Fair enough, but BSD Make is no solution for the Visual Studio or XCode
> users. Those users fall within the intended audience of LLVM.
>>> Maybe there is a common misunderstanding here. CMake is not a build
>>> tool, it is a build generator tool. That means that it competes with the
>>> GNU autotools, for instance, but not with make, or gmake. CMake
>>> generates makefiles (or project files for XCode, Visual Studio, etc) so
>>> it actually requires some other tool (`make' in your case) for the
>>> actual build. This is why I'm suggesting that you should check if CMake
>>> generates makefiles compatible with BSD make, instead of writing (and
>>> maintaining) them yourself. LLVM is a fast moving target: adding, moving
>>> and removing source files and library requirements is common.
>>> Ah, and as you may prefer to avoid the autotools, you need a
>>> BSD-specific config.h file, don't you? In principle, CMake can provide
>>> this too.
>> This last sentence is quite confusing.  Further above, you said the build system
>> isn't CMake, but in this last sentence,  you're defending CMake.  I can't tell
>> what you're trying to say  here.
> I guess we are on different wavelengths. I'm trying to save you some
> time, but failing miserably, so I'll stop here.
> [snip]
>> I got told, at first, that all patches were welcome, but since then
>> I've seen some folks don't want patches. Far be it from me to give
>> patches where they're not wanted.
> Those folks (specially me) are not the people who decide which patches
> are accepted. So please go ahead if you wish.
>> I CAN say that the Makefiles that CMake is generating for you are
>> incompatible with BSD Make,
> Just to clarify things: have you *tried* to build LLVM with the
> makefiles generated by cmake on your BSD system? I repeat again that the
> makefiles you get with the LLVM sources are not related to cmake. For
> generating the makefiles follow the instructions here:
> http://www.llvm.org/docs/CMake.html#quickstart
> Extra thanks if you report the cmake version and the error messages
> displayed on the console.
> I think it is great news that clang/LLVM is adopted by the BSD community.
> If my humble area of expertise within LLVM (the cmake build spec) is
> potentially useful for them, certainly I would contribute some time.

Actually, after I sent my last, I was worried that maybe I'd gotten too extreme,
because I really, truly dislike systems like autoconf, they make troubleshooting
easy things like builds extremely complicated.  As far as BSD goes, when it gets
adopted (and I think it's a pretty fair bet that it's going to be, at this
point), the BSD folks will certainly retofit it with BSD makefiles.  You don't
have to give it to them, because if you don't, they will make their own (it's
not all that difficult, our BSD template makefile system does all the heavy
lifting without terribly overcomplicating the build from a troubleshooting
perspective.  When this started, someone stated they'd be willing to look at
contributed BSD Makefiles, but please understand this, it means just exactly
what it says: look at them, NOT accept them.  You have to look at something to
decide if it meets your idea of what the project is supposed to do, and anyone
who expects that anything they write is going to be accepted is acting unreal.
Also, I wouldn't expect you to toss away your present build system, and adding
BSD makefiles wouldn't require anything like that.

With what's occurred in the last few days, I don't think I'm going to contribute
Makefiles after all, it seems to be pretty much universally misinterpreted as
"anything contributed has to be accepted", and I won't get involved in anything
so insane.  Like I said, any BSD who accepts the llvm system is going to
implement BSD Makefiles on their own, whether you have them or not.  Look at our
(FreeBSD)'s present implementation of BSD makefiles for gcc.  It doesn't
interfere with gcc any, but we don't ever run that abhorrent configuration
script.  Not that everyone in BSD necessarily feels as I do about configuration
scripts, but they DO expect to use their own BSD Makefiles, that's universally
true.  Looking back in history, I *think* the only system that didn't use BSD
Makefiles was way back when we had Perl in the base system.  I *think* that we
had some compromise system, back then, for Perl, but that's the last time such a
thing has happened.

Lets just let this topic die, before I do accidentally say something I will
regret, because those confiuration script do happen to be a hot-button topic for
me, and I would really rather not embarrass myself here.  I *like* the llvm project.

> [snip]

More information about the llvm-dev mailing list