Chuck Robey <chuckr at telenix.org> writes: [snip]> Someone said that maybe CMake is already compatible with BSD make, so > I quicly went into one of your Makefiles and took out the first > incompatibility I found. Means ONLY that CMake != BSD Make, that's > all. Looks to me to be a great deal more like GNU Make, isn't that > so?As said on my previous reply to you, the makefiles distributed with LLVM are not related to CMake. [snip]> My own feeling is that adding in the ability to generate BSD Makefiles > from Cmake files is going to tremendously compllicate the ability to > fix build problems,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. Please note that I'm just trying to avoid some possibly unnecesary work, in the case that the current stuff we have does what you need. [snip] -- Óscar
Óscar Fuentes wrote:> Chuck Robey <chuckr at telenix.org> writes: > > [snip] > >> Someone said that maybe CMake is already compatible with BSD make, so >> I quicly went into one of your Makefiles and took out the first >> incompatibility I found. Means ONLY that CMake != BSD Make, that's >> all. Looks to me to be a great deal more like GNU Make, isn't that >> so? > > As said on my previous reply to you, the makefiles distributed with LLVM > are not related to CMake. > > [snip] > >> My own feeling is that adding in the ability to generate BSD Makefiles >> from Cmake files is going to tremendously compllicate the ability to >> fix build problems,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.> > 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. Is it only that you're saying you are 100% dedicated to using CMake to generate makefiles? Well, In my own opinion, that would be like requiring folks to use a code generator tool to create all of your C++ code. I think that C++ files should be generated directly, and the same goes for BSD Makefiles. They are very simple things, and adding in levels of indirection just vastly complicates what should be a simple operation. The idea that BSD Make is complicated by folks who were too busy to read the manual which isn't all that hard to understand. Folks who then went out, wrote their own builds systems which were universally more complex, but since they were NEW, they had to be better. Even if you needed to have some testing of the environment inside the makefiles, that's simple to accomplish right inside the BSD Makefiles, FAR more simple than any autoconf script ever was. 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. I CAN say that the Makefiles that CMake is generating for you are incompatible with BSD Make, and the BSD Makefiles would be hugely more simple than CMake files, probably needing only the maintenance forced by moving source file locations around. I don't really want to continue this anyhow, I wanted to spend more time learning compilers in general (and llvm in specific), and this is (for me) offtopic. I ofered this only because I often know more about makefiles that others. Not always true, of course.
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