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. [snip] -- Óscar
Óscar Fuentes
2009-May-23 02:17 UTC
[LLVMdev] Building LLVM with cmake on FreeBSD (was: Re: Arm port)
[snip]> Just to clarify things: have you *tried* to build LLVM with the > makefiles generated by cmake on your BSD system?Just checked that the makefiles generated by cmake work with `make' on FreeBSD 7.2 x86. The build fails while building `opt' because libdl is missing. -- Óscar
Ó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] >
Óscar Fuentes wrote:> [snip] > >> Just to clarify things: have you *tried* to build LLVM with the >> makefiles generated by cmake on your BSD system? > > Just checked that the makefiles generated by cmake work with `make' on > FreeBSD 7.2 x86. The build fails while building `opt' because libdl is > missing. >They absolutely do work, even on FreeBSD-current( I run that here), but not using the native make (the one built as part of "make world" which is a direct descendant of "pmake". You have to use the GNU make, which is easily enough added to any FreeBSD system via the FreeBSD ports system. However, when llvm is brought into our base system (as is intended, I'm certain) BSD Makefiles will be added, rather easily. If you're curious how such a thing can be done, in a perfectly non-interfecring way, without your even being aware of it, I could tell you, just let me know if you're curious. I know our make and the GNU make, both, pretty well. I did give you one example of a statement I found in your makefiles, which I'm absolutely certain can't be understood by our make. Among several other things, the "gmake" and "bmake" makefile conditionals don't look very much alike. You CAN'T write one makefile which will automatically work in either system, I tried that some years ago. I could explain that, too, but I won't bore you, unless you tell me you're interested. I've been wanting to recode our bame, to produce one make system that would allow makefiles to operate automatically in either environment. I haven't started on that task, yet.