[R] src/Makevars ignored ?
Eric Deveaud
edeveaud at pasteur.fr
Mon Sep 26 13:46:06 CEST 2016
Hello,
as far as I understood the R library generic compilation mechanism,
compilation of C//C++ sources is controlde
1) at system level by the ocntentos RHOME/etc/Makeconf
2) at user level by the content of ~/.R/Makevars
3) at package level by the content of src/Makevars
Problem I have is that src/Makevars is ignored
see following example:
R is compiled and use the following CC and CFLAGS definition
bigmess:epactsR/src > R CMD config CC
gcc -std=gnu99
bigmess:epactsR/src > R CMD config CFLAGS
-Wall -g
so building C sources lead to the following
bigmess:epactsR/src > R CMD SHLIB index.c
gcc -std=gnu99 -I/local/gensoft2/adm/lib64/R/include -DNDEBUG
-I/usr/local/include -fpic -Wall -g -c index.c -o index.o
normal, it uses defintion from RHOME/etc/Makeconf
when I set upp a ~/.R/Makevars that overwrite CC and CFLAGS definition.
bigmess:epactsR/src > cat ~/.R/Makevars
CC=gcc
CFLAGS=-O3
bigmess:epactsR/src > R CMD SHLIB index.c
gcc -I/local/gensoft2/adm/lib64/R/include -DNDEBUG -I/usr/local/include
-fpic -O3 -c index.c -o index.o
gcc -std=gnu99 -shared -L/usr/local/lib64 -o index.so index.o
OK CC and CFLAGS are honored and set accordingly to ~/.R/Makevars
but when I try to use src/Makevars, it is ignored
bigmess:epactsR/src > cat ~/.R/Makevars
cat: /home/edeveaud/.R/Makevars: No such file or directory
bigmess:epactsR/src > cat ./Makevars
CC = gcc
CFLAGS=-O3
bigmess:epactsR/src > R CMD SHLIB index.c
gcc -std=gnu99 -I/local/gensoft2/adm/lib64/R/include -DNDEBUG
-I/usr/local/include -fpic -Wall -g -c index.c -o index.o
what I have missed or is there something wrong ?
PS I tested the ssame behaviour with various version of R from R/2.15 to
R/3.3
best regards
Eric
More information about the R-help
mailing list