----- Original Message ----> From: Chuck Robey <chuckr at telenix.org> > To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> > Sent: Friday, May 22, 2009 9:22:53 AM > Subject: Re: [LLVMdev] Arm port > > OK, I've got enough to go on with, and I'm getting ready right now to begin > reading the dragon book, but one question bothers me regarding the present setup > of llvm: the use of the present Makefile tools (dmake & gmake). I was rather > surprised to find that a project that is bent toward supporting the BSD Unixes > doesn't have a set of BSD Makefiles. I'm not saying you have to toss away your > dmake/gmake files, you could keep them for those who feel more at ease in using > them, but shouldn't you have a set of BSD makefiles also? It happens that I > have experience using those makefiles, and adding in a set of Makefiles designed > to allow use of the BSD Make and the BSD Make template files (all those files in > /usr/share/mk on any *BSD system wouldn't be all that difficult to accomplish, > Would that be something you might wish to add?Doesn't CMake support the BSD toolchain? The autotools dependencies of LLVM are slowly being replaced by the cross-platform CMake utility that will generate the makefiles or IDE build solutions for whatever toolchain you're using.
Samuel Crow wrote:> > > > > ----- Original Message ---- >> From: Chuck Robey <chuckr at telenix.org> >> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >> Sent: Friday, May 22, 2009 9:22:53 AM >> Subject: Re: [LLVMdev] Arm port >> >> OK, I've got enough to go on with, and I'm getting ready right now to begin >> reading the dragon book, but one question bothers me regarding the present setup >> of llvm: the use of the present Makefile tools (dmake & gmake). I was rather >> surprised to find that a project that is bent toward supporting the BSD Unixes >> doesn't have a set of BSD Makefiles. I'm not saying you have to toss away your >> dmake/gmake files, you could keep them for those who feel more at ease in using >> them, but shouldn't you have a set of BSD makefiles also? It happens that I >> have experience using those makefiles, and adding in a set of Makefiles designed >> to allow use of the BSD Make and the BSD Make template files (all those files in >> /usr/share/mk on any *BSD system wouldn't be all that difficult to accomplish, >> Would that be something you might wish to add? > > Doesn't CMake support the BSD toolchain? The autotools dependencies of LLVM are slowly being replaced by the cross-platform CMake utility that will generate the makefiles or IDE build solutions for whatever toolchain you're using.The build I saw was using Cmake to drive Gmake, but let me get hold of the latest release and see if that's still the way of things. Gmake makefiles will generally not run in bsd make, and certainly no Gmake Makefile can make any use whatever of the bsd.*.mk template makefiles that are commonly used in all bsd builds. But let me verify this, I'll get back to you.> > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Samuel Crow wrote:> > > > > ----- Original Message ---- >> From: Chuck Robey <chuckr at telenix.org> >> To: LLVM Developers Mailing List <llvmdev at cs.uiuc.edu> >> Sent: Friday, May 22, 2009 9:22:53 AM >> Subject: Re: [LLVMdev] Arm port >> >> OK, I've got enough to go on with, and I'm getting ready right now to begin >> reading the dragon book, but one question bothers me regarding the present setup >> of llvm: the use of the present Makefile tools (dmake & gmake). I was rather >> surprised to find that a project that is bent toward supporting the BSD Unixes >> doesn't have a set of BSD Makefiles. I'm not saying you have to toss away your >> dmake/gmake files, you could keep them for those who feel more at ease in using >> them, but shouldn't you have a set of BSD makefiles also? It happens that I >> have experience using those makefiles, and adding in a set of Makefiles designed >> to allow use of the BSD Make and the BSD Make template files (all those files in >> /usr/share/mk on any *BSD system wouldn't be all that difficult to accomplish, >> Would that be something you might wish to add? > > Doesn't CMake support the BSD toolchain? The autotools dependencies of LLVM are slowly being replaced by the cross-platform CMake utility that will generate the makefiles or IDE build solutions for whatever toolchain you're using. >OK, I checked the llvm-2.5 Makefiles. They have constructs in them which cannot be used in any BSD Makefile (such as the form of conditionals: ifndef is a GNU Makeism), and won't run on any BSD Make. I know BSD Make and GNU Make well enough, but I doon't know much about Cmake, I can say that all of the makefiles I saw in llvm would (1) refuse to run on BSD make and (2) make no use whatever of the large set of BSD Make template files that always reside in /usr/share/mk. What I could offer, would be to capture a llvm build as done with the current Makefile setup, and create a set of BSD Makefiles which would work with BSD Makefiles and cooperate with the BSD template Makefiles (such as bsd.prog.mk, bsd.lib.mk, etc). I think that the only thing that CMake is offering you is that snazzy buildtime clock, but I think that's all. If you folks felt this would be desireable. If llvm gets brought into any BSD, it's going to have to be created by the BSD involved, anyhow ... well nearly all, I've seen recently that OpenBSD seems to be making use of outside makefiles in outside sourced things like Perl. But it would surely need BSD Makefiles for FreeBSD, and I'm pretty sure for NetBSD also. They're not all that difficult to add in, I could do that for you if you wanted.
Chuck Robey <chuckr at telenix.org> writes:>> Doesn't CMake support the BSD toolchain? > > OK, I checked the llvm-2.5 Makefiles. They have constructs in them > which cannot be used in any BSD Makefile (such as the form of > conditionals: ifndef is a GNU Makeism), and won't run on any BSD Make. > I know BSD Make and GNU Make well enough, but I doon't know much about > Cmake, I can say that all of the makefiles I saw in llvm would (1) > refuse to run on BSD make and (2) make no use whatever of the large > set of BSD Make template files that always reside in /usr/share/mk.The makefiles distributed with LLVM have nothing to do with cmake. Before devoting your time to implement yet-another-build-specification for LLVM, it is worth checking that the makefiles generated by cmake are indeed incompatible with BSD make. There are mixed reports on the 'Net. This is a simple guide for using cmake with LLVM: http://www.llvm.org/docs/CMake.html> What I could offer, would be to capture a llvm build as done with the current > Makefile setup,The current LLVM makefile setup is far from trivial. Plus this would generate yer another maintenance point.> and create a set of BSD Makefiles which would work with BSD > Makefiles and cooperate with the BSD template Makefiles (such as bsd.prog.mk, > bsd.lib.mk, etc). I think that the only thing that CMake is offering you is > that snazzy buildtime clock, but I think that's all.Speaking as the original implementator of the LLVM cmake build spec, I couldn't care less about the build time progress indicator. What cmake provides is a single, fairly simple specification that covers lots of platforms and build tools.> If you folks felt this would be desireable. If llvm gets brought into > any BSD, it's going to have to be created by the BSD involved, anyhow > ... well nearly all, I've seen recently that OpenBSD seems to be > making use of outside makefiles in outside sourced things like Perl. > But it would surely need BSD Makefiles for FreeBSD, and I'm pretty > sure for NetBSD also. They're not all that difficult to add in, I > could do that for you if you wanted.If incompatibilities of cmake and BSD make are found, maybe the cmake people can fix them once is made clear that those issues are blocking widespread usage on the BSD community. I can provide some help addressing specific issues with the LLVM cmake specification (not with cmake itself). -- Óscar