We could add the MSVS project files to the repository but I too would like to see a single mechanism for building on all platforms. Someone mentioned using the Boost build system a few weeks ago but I haven't heard anything more on how that effort is going. I also think we can customize our existing makefiles to use the underlying (command oriented) tools under MSVS. We'd still need cygwin for this solution but at least we could compile with an MS compiler. Reid. Chris Lattner wrote:> On Mon, 1 Nov 2004, Morten Ofstad wrote: > >>with the patches you accepted last week, everything now works with two >>one-line modifications. > > > Great! > > >>One is a missing include in a windows specific >>platform file and > > > Okay, as Jeff pointed out, this isn't needed, so not applied. > > >>the other is a definition of a symbol I need to trick the linker (as >>discussed before)... The attached file is the complete diff between my > > > Applied: > http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041101/020124.html > > >>If you want to put my visual studio project files into the CVS, please >>tell me where to send them as they're too big to attach to this mail. > > > I'm not sure what the right thing is to do with these, I will defer to > other people more involved with the build to decide. > > For me, coming up with a way to support both unix-like and windows-like > systems in one framework seems best from the maintenance standpoint, but I > don't know what the right way is to do this. > > -Chris >
While a single mechanism is best in principle, it *is* possible to come up with one so complicated or unfamiliar that it is harder to use on all platforms. The Windows and *nix development worlds seem different enough that there is a risk of ending up like this. I'm not objecting to trying to create a unified build system, but I think it's worth considering whether the result will actually be better than 2 separate systems (which we already now have, thanks to Morten's and others' efforts). Another alternative may be to unify the LLVM-side information (opt/debug options, tool names, directories, test scripts, etc.) so that most tasks only require you to make changes in one place, and then let the rest of the build system be separate for the two platforms. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.cs.uiuc.edu/ On Nov 1, 2004, at 2:33 PM, Reid Spencer wrote:> We could add the MSVS project files to the repository but I too would > like to see a single mechanism for building on all platforms. Someone > mentioned using the Boost build system a few weeks ago but I haven't > heard anything more on how that effort is going. I also think we can > customize our existing makefiles to use the underlying (command > oriented) tools under MSVS. We'd still need cygwin for this solution > but at least we could compile with an MS compiler. > > Reid. > > Chris Lattner wrote: >> On Mon, 1 Nov 2004, Morten Ofstad wrote: >>> with the patches you accepted last week, everything now works with >>> two >>> one-line modifications. >> Great! >>> One is a missing include in a windows specific >>> platform file and >> Okay, as Jeff pointed out, this isn't needed, so not applied. >>> the other is a definition of a symbol I need to trick the linker (as >>> discussed before)... The attached file is the complete diff between >>> my >> Applied: >> http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20041101/ >> 020124.html >>> If you want to put my visual studio project files into the CVS, >>> please >>> tell me where to send them as they're too big to attach to this mail. >> I'm not sure what the right thing is to do with these, I will defer to >> other people more involved with the build to decide. >> For me, coming up with a way to support both unix-like and >> windows-like >> systems in one framework seems best from the maintenance standpoint, >> but I >> don't know what the right way is to do this. >> -Chris > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev
Vikram S. Adve wrote:> Another alternative may be to unify the LLVM-side information > (opt/debug options, tool names, directories, test scripts, etc.) so > that most tasks only require you to make changes in one place, and then > let the rest of the build system be separate for the two platforms.I think it's OK to have a seperate limited (only the core libraries) native build for Visual Studio, and use the Unix build system for all the more advanced tasks. It should be possible to build under Cygwin but using the MS command line tools. Windows users are generally fond of binary distributions anyway, so it doesn't really matter much if it's a bit involved to build everything from the sources. My port only includes the core llvm libraries, tablegen and the fibonacci example. None of the tools or compiler front ends have been built, just enough to generate code dynamically. I still had to use the gnuwin32 ports of sed, flex and bison to get it working, so it requires some external tools but nothing as big as the full cygwin32 install... Anyway, if anyone wants the VS project files just contact me. It's really a separate thing from the main project so I can see why you're reluctant to put it in the CVS. And, as said before, I think most windows users would prefer a binary distribution anyway so the ease of building the windows version from source is largely irrelevant. m.