Hi all, 

I'm developing a package that needs to be compiled on installation but am 
unsure how to ensure that the proper C++ compiler is invoked when installing 
this package from source. Is there anyway to, at build time, auto-detect and 
set the available compiler using configure / Makevars? 

More specifically, I'm using the CRAN-provided  binary of R 3.02 running on Mac 
OS 10.8.5 with XCode 5 installed. By default, the Makeconf included with the R 
installation ($RHOME/Resources/Makeconf) has CXX set as:

CXX = llvm-g++-4.2 -arch x86_64

However, as llvm-g++-4.2 is no longer distributed with XCode5, package 
installation fails when I attempt to install from source with an expected 
"llvm-g++-4.2: command not found" message. 

I see that one solution is to manually set CXX in the ~/.R/Makevars file. 
However,  I'm wondering if it's possible to have the combination of a configure 
script / Makevars.in automatically detect and set the CXX variable upon 
installation. 

As I have it specified currently, my configure.ac script use the AC_PROG_CXX 
macro to detect and set CXX. 
https://github.com/nolanlab/Rclusterpp/blob/dev/configure.ac

Then, in my Makevars.in, I attempt to specify the value of CXX detected by the 
configure script
https://github.com/nolanlab/Rclusterpp/blob/dev/src/Makevars.in

I can then run the configure script manually and, in the produced Makevars 
file, it appears to detect and set CXX to the proper complier, i.e.:

CXX=g++ -arch x86_64

However, when I then try and install the package, it seems to default back to 
the using llvm-g++-4.2 as the compiler and thus, installation fails. 

I of course could be approaching this in completely the wrong way. Any 
suggestions on how I might be able to auto-detect and set the appropriate 
compiler at build time? 

-Rob

_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac

Reply via email to