[R-SIG-Mac] compiling packages for 64 bit architecture

Simon Urbanek simon.urbanek at r-project.org
Tue Sep 22 17:14:53 CEST 2009


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
>
>
>
>
>
>
>



More information about the R-SIG-Mac mailing list