[Rd] Detecting compilation under R

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu Dec 14 18:23:01 CET 2006

On Thu, 14 Dec 2006, Barry Rowlingson wrote:

[Silently discarding the answer to his question, and breaching 'fair use' 
copyright provisions.]

>> So the problem is that you needed rather
>> #include <R.h>
>> #ifdef USING_R
>> x = rand_unif(0.0,1.0);
>> #else
>> #include <gsl_random.h>
>> x = gsl_runif(0.0,1.0);
>> #endif
>> since if R.h is not around, the include will not include it.

> If R.h is not around, the preprocessor will throw a tantrum:

If *no* R.h is around: easy to solve.

> cc    -c -o simple.o simple.c
> simple.c:2:15: error: R.h: No such file or directory
> - all of which would be solved if SHLIB and BUILD set a preprocessor flag to 
> indicate compilation by R.

What is BUILD?

> I dont see what use USING_R is. If you #include <R.h> you get it, but then 
> you know you're USING_R because you included R.h, hence USING_R is going to 
> always be defined in that code (unless the inclusion of R.h is conditional on 
> something else...).
> Oh but of course I've missed something... Just tell me what...

You've clipped it from my previous mail, with no indication.  As the 
posting guide points out, this is reprehensible.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
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

More information about the R-devel mailing list