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.

Cheers,
Simon



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: [email protected]
web: http://www.csse.unimelb.edu.au/~gabraham

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

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



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

Reply via email to