compiling packages for 64 bit architecture
On Sep 22, 2009, at 1:36 AM, Christophe Dutang wrote:
Thanks for the tips, it works now. Since randtoolbox depends on rngWELL, which also has a configure file, I need to the following to compile randtoolbox for both architectures: - for i386, - rm *.o in rngWELL/src - R --arch=i386 CMD INSTALL --libs-only rngWELL - rm *.o in randtoolbox/src - R --arch=i386 CMD INSTALL --libs-only randtoolbox - for x86_64, - rm *.o in rngWELL/src - R --arch=x86_64 CMD INSTALL --libs-only rngWELL - rm *.o in randtoolbox/src - R --arch= x86_64 CMD INSTALL --libs-only randtoolbox If I want to avoid to manually remove object files in src directory, can I use a makefile in this directory?
I assume you mean for you personal debugging of the package - sure, but you could as well use just a shell script ... However, for real use you should not be installing from a directory in the first place - you should be using R CMD build to create the tar ball and then R CMD INSTALL for the archs - and you need no manual intervention for that. (The whole point of R not building all archs if you have configure or Makefile is exactly that it's hard to clean the unpacked tar ball after one arch has been built - in theory files could have been modified beyond repair so the only safe way to proceed is to remove everything and unpack it again.).
Do you advise me to install packages in a different directory than R_HOME/library using -l option?
The main two options are system-wide installation (R_HOME/library) for users with admin rights or user-local installation (~/R/library/x.y where x.y is the R version). Those two are supported by R out of the box. Generally I don't recommend the latter on single-user machines, because people often forget about packages in one or the other location so it's common that you get package version mismatches which lead to all sorts of problems. On admin-maintained systems (good planning) it's usually not an issue, but it often is on personal machines. Cheers, Simon
Everything is compiled correctly. In R64 GUI, the package is loaded successfully. How could I get rid of this warning?
The correct command is R --arch x86_64 CMD INSTALL ... (note that --arch is an argument of R *not* of INSTALL).
Furthermore, if I launch R GUI, the package could not better loaded any more on 32 bit architecture... I got Error: package 'randtoolbox' is not installed for 'arch=i386'
Yes, you replaced it.
How could I use both architecture at the same time (from different GUIs).
You have to use --libs-only (see R-admin: 2.5 Sub-architectures). First, do *not* use the directory of the package unless you cleaned it (important!!). Then you want something like R --arch=i386 CMD INSTALL --libs-only randtoolbox Cheers, Simon
I need to compare outputs of the halton function between the two architectures. Thanks in advance Christophe -- Christophe Dutang Ph.D. student at ISFA, Lyon, France website: http://dutangc.free.fr
_______________________________________________ R-SIG-Mac mailing list R-SIG-Mac at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-mac
-- Christophe Dutang Ph.D. student at ISFA, Lyon, France website: http://dutangc.free.fr