On Aug 9, 2011, at 9:41 PM, Dirk Eddelbuettel wrote: > > On 9 August 2011 at 21:24, Simon Urbanek wrote: > | > | On Aug 9, 2011, at 8:12 PM, Dirk Eddelbuettel wrote: > | > | > > | > Hi Vinh, > | > > | > On 9 August 2011 at 16:40, Vinh Nguyen wrote: > | > | Dear R-Devel, > | > | > | > | I'm using Ubuntu on an x86_64 machine and would like to have both the > | > | 32-bit and 64-bit versions of R built from source. By default, > | > | following the usual build procedures yields 64 bit R. Looking at > | > | > [these](http://cran.r-project.org/doc/manuals/R-admin.html#Sub_002darchitectures), > | > | I thought I could build 32-bit R by executing > | > | > | > | r_arch=32 ./configure > | > | > | > | and building R like usual (make). However, after seeing this error > message, > | > | > | > | /usr/bin/install: cannot create regular file > | > | `../../include/32/Rconfig.h': No such file or directory > | > | > | > | I realize I am misunderstanding the instructions. Could someone > | > | please clarify how I could go about compiling both 32-bit and 64-bit > | > | versions of R on my Linux machine? Thank you! > | > > | > I do not think that multiarch build (ie 32 and 64 at the same time) are > fully supported yet on Ubuntu or Debian. It is coming, but just like a number > of other things, not exactly overnight. It is a release goal. > | > > | > | It actually works ;) I'm using it for testing on my RForge.net machine and > yes, it's Debian - everything just works there :). > | > | But back to the original question. First a minor detail, don't set > environment variables use configure variables instead. Second, don't build in > the source directory, always create an object directory. Third, r_arch is > simply a name you set for the architecture, it has no meaning other than that > it's a label. > | > | So now to the real stuff. If you want 32-bit build, you'll need 32-bit > runtime of everything important in your system and the multilib compilers. In > Debian (and thus likely in Ubuntu too) that can be achieved by something like > | > | sudo apt-get install ia32-libs-dev lib32readline6-dev lib32ncurses5-dev > lib32icu-dev gcc-multilib gfortran-multilib > > Nice one :) > > I had these installed but was always under the impression that we'd lack > things like jpeg, png, ... libs. So it all works as R has 'enough batteries' > included? Good to know ...
Yes, it's enough to build, but obviously it's like having one AAA battery installed ;) > | > | Then you can build both 64-bit and 32-bit R, the difference will be in the > all compiler flags -- for 64-bit you'll use -m64 (or nothing since it's the > default) and for 32-bit you'll use -m32. > | > | So roughly something like > | > | tar fxz R-2.13.1.tar.gz > | mkdir obj-32 > | cd obj-32 > | ../R-2.13.1/configure r_arch=i386 CC='gcc -std=gnu99 -m32' CXX='g++ -m32' > FC='gfortran -m32' F77='gfortran -m32' > | make -j24 && sudo make install rhome=/usr/local/R/2.13 > | cd .. > | mkdir obj-64 > | cd obj-64 > | ../R-2.13.1/configure r_arch=amd64 > | make -j24 && sudo make install rhome=/usr/local/R/2.13 > | > | That will leave you with multi-arch R that you can run with > | R --arch=i386 # 32-bit > | R --arch=amd64 # 64-bit > | Packages will be also built as multi-libs. Good luck :) > | [BTW the rhome=... setting is entirely optional, I just like to keep my R > versions organized…] > > I shall keep that for the day I'll have to start supporting multiarch in all > the r-cran-* packages :) > Well, I did give it a shot for RForge.net but the list of ia32 libraries is a bit short compared to what's available in a full 32-bit system. Obviously you can get far with using native i386 packages, but then you won't be able to take advantage of all the magic of dpkg. So I don't think you'll need to worry about multiarch R r-cran* packages too soon ;). I'm keeping multiarch R around for testing of packages since it's a pretty good test of badly written package configuration, but I would not use it for production ... (it's bad enough that I need to worry about it on OS X ;)). Cheers, Simon > Thanks for waving the cluebat. > > Dirk > > | > | Cheers, > | Simon > | > | > | > | > In the meantime, you can always use virtualization. I have a Debian 32-bit > | > system and an Ubuntu 32-bit system in KVM virtualization on my Ubuntu > 64-bit > | > server. That works well. Kvm, or Xen, or Virtualbox, or Vmware, ... all > | > offer fairly decent virtualization. > | > > | > Debian/Ubuntu specific questions are even more welcome on r-sig-debian. > | > > | > Dirk > | > > | > -- > | > Two new Rcpp classes scheduled for New York and San Francisco, details at > | > > http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10 > | > > | > ______________________________________________ > | > R-devel@r-project.org mailing list > | > https://stat.ethz.ch/mailman/listinfo/r-devel > | > > | > > | > > -- > Two new Rcpp classes scheduled for New York and San Francisco, details at > http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10 > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel