Ó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.
Chuck Robey <chuckr at telenix.org> writes:>> 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,Uh? My FreeBSD installment has `make' and no `gmake'. `make' is indeed BSD make. So, to recap, right now LLVM svn builds fine on FreeBSD 7.2 using BSD `make' with the makefiles generated by cmake. [snip]> 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.It is obvious that you are not reading what I write. [snip] -- Óscar
Hi, Óscar Fuentes wrote:> Chuck Robey <chuckr at telenix.org> writes: > > >>> 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, >> > > Uh? My FreeBSD installment has `make' and no `gmake'. `make' is indeed > BSD make. > > So, to recap, right now LLVM svn builds fine on FreeBSD 7.2 using BSD > `make' with the makefiles generated by cmake. >I quickly browsed the CMake 2.6.2 source and their does not seem to be a special case for BSD in the makefile generator code. It seems that the makefiles generated by cmake use the subset of features that is shared by BSD make and GNU make (http://www.cmake.org/pipermail/cmake/2004-March/004881.html), so building with either BSD make or GNU make should work. However, I also noticed that KDE4 uses CMake these days and on a page (http://techbase.kde.org/Getting_Started/Build/KDE4/FreeBSD) that describes building on FreeBSD it says "Sometimes, building with *make* can fail on some modules. You should try using *gmake* instead." So perhaps YMMV... Regards, Paul
Óscar Fuentes wrote:> Chuck Robey <chuckr at telenix.org> writes: > >>> 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, > > Uh? My FreeBSD installment has `make' and no `gmake'. `make' is indeed > BSD make. > > So, to recap, right now LLVM svn builds fine on FreeBSD 7.2 using BSD > `make' with the makefiles generated by cmake. > > [snip] > >> 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. > > It is obvious that you are not reading what I write.Not completely, because (at least to me) it's not making sense against what I find. I'd been lookiing at the llvm version 2.3, so I just got a copy of 2.5, and I looked at the Makefile that came right out of the tarball, then I regenerated the Makefile via the supplied configure script. Right at the top of both Makefiles is the GNU-style conditional "ifeq", and that's a GNU conditional, one which just CAN'T work from any BSD Make (would you mind if I abbreviated GNU Make with "gmake" and the BSD Make with "bmake" ?) Anyhow, this is the evidence I have that shows me that it's just not possible that you ran this Makefile via bmake. OK, the -f argument can be used to make either bmake or gmake use files other than the default ones (first default "makefile", 2nd default "Makefile", and there are others), so if you want to tell me that I need to look at some other file, what's it's name? I mean, you have to admit, I think, that I have some evidence here which at first glance seems to prove to me that it's not possible to run your build scripts via bmake. However, I can think of a set of unlikely scenarios where I could be wrong, so lets talk about it, ok? Honestly, I detest arguing about this, because I *like* your project, and don't want to be in this position, disagreeing with you. On top of this, I don't much like arguing to begin with, and finally, I have this bias against the horde of folks who can't be bothered to learn either gmake or bmake, and need to write up one of the now large horde of {b|g}make wannabees. These all make troubleshooting more difficult, and that's truly my hot button. To me, it's more imporatnt to be able to figure out what's wrong than any other possible goal. You might not agree with me, but I'm being honest in admitting that's my true #1 goal, more important than anything else.> > [snip] >