On Fri, 20 Mar 2009, 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?
You use configure -- see 'Wrtiing R Extensions' -- to fill in a
Makevars.in. But beware that in general $(BLAS_LIBS does not contain
a cblas, even on MacOS X, so if portability is any sort of issue, you
need to set PKG_LIBS via configure too.
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
--
Brian D. Ripley, [email protected]
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
_______________________________________________
R-SIG-Mac mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-sig-mac