[Rd] R package compilation: files in src directory should be ignored if C library is not available
Cule, Erika
erika.cule05 at imperial.ac.uk
Fri Aug 17 11:11:44 CEST 2012
I have written an R package which contains C source code (in the directory pkg/src).
Only a subset of the functions in the pkg/R directory contain a .C() call to the functions in the pkg/src directory. The rest of the package will still work and be useful without the functions containing a .C() call.
To compile the code in pkg/src requires the GSL library. This is detailed in the SystemRequirements line of the DESCRIPTION file and the Makevars file directs the compiler to LIB_GSL.
At what stage will installation fail for the end user if they don't have GSL installed?
I have used Autoconf and configure, following the example in 1.2 of "Writing R Extensions" and the configure.ac file in the R package gsl, to detect whether the GSL library is installed on the computer and disable the R functions if the GSL library is not found (by using a TRUE/FALSE pattern substitution, as in the example in "Writing R Extensions"). If GSL is not available, will the package now install on another users machine with these functions disabled? Or upon installation will the installer try to install the code in pkg/src and fail because the libraries are not available?
Is there a practical way to test this? Both of the computers I have access to have GSL available, and installation works whether I set HAVE_GSL=TRUE or HAVE_GSL=FALSE (although in the latter case the corresponding R functions are disabled).
I hope that this is clear, and am happy to post my code if it would be useful.
Many thanks in advance.
Erika
---
Erika Cule
PhD student in Statistical Genetics
Imperial College London
Department of Epidemiology and Public Health
erika.cule05 at imperial.ac.uk
http://occamstypewriter.org/erikacule/
More information about the R-devel
mailing list