[R-SIG-Mac] cblas on Mac and Linux

Simon Urbanek simon.urbanek at r-project.org
Fri Mar 20 19:23:44 CET 2009

On Mar 20, 2009, at 13:14 , Kasper Daniel Hansen wrote:

> There are Apple specific defines in GCC. As far as I know
> __APPLE__
> means compiling on Apple hardware, whereas
> __APPLE_CC__
> means compiling using an Apple supplied compiler.
> However, the first one seems sometimes to be used when the last one  
> is intended.

Note, however, that as Brian suggested neither of the above helps with  
the case under consideration if it is to be portable. Although  
Accelerate can be assumed on (recent) OS X, it doesn't mean that it's  
what R uses or the user wants. In fact BLAS headers are not always  
available, so in most cases the problem listed here is not an issue at  
all since the functions used can be simply declared. The real issue is  
linking against the correct library and R provides no way to do that  
automatically since it doesn't use cblas, so the only reliable way is  
what Brian described.


> On Mar 19, 2009, at 21:50 , Gad Abraham wrote:
>> Hi,
>> I've got a package with some C code calling cblas functions (e.g.,  
>> cblas_dgemm). The code is called using .C() . In order to compile  
>> correctly either cblas.h on Linux or Accelerate.h on a Mac:
>> #include <R.h>
>> #ifdef MACOSX
>> #include <Accelerate/Accelerate.h>
>> #else
>> #include <cblas.h>
>> #endif
>> Of course, this doesn't work well with the standard Makevars  
>> PKG_LIBS=$(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) since I need to set  
>> the -DMACOSX flag for each platform.
>> Do I need to create another makefile to decide which OS the code is  
>> running on, or is there an easier way of doing this?
>> Thanks,
>> Gad
>> -- 
>> Gad Abraham
>> MEng Student, Dept. CSSE and NICTA
>> The University of Melbourne
>> Parkville 3010, Victoria, Australia
>> email: gabraham at csse.unimelb.edu.au
>> web: http://www.csse.unimelb.edu.au/~gabraham
>> _______________________________________________
>> R-SIG-Mac mailing list
>> R-SIG-Mac at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac
> _______________________________________________
> R-SIG-Mac mailing list
> R-SIG-Mac at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-mac

More information about the R-SIG-Mac mailing list