[Rd] src/Makevars ignored ?
Dirk Eddelbuettel
edd at debian.org
Tue Sep 27 13:31:24 CEST 2016
On 27 September 2016 at 09:37, Eric Deveaud wrote:
| Hello,
|
| I'm tring to install a Rpackage that holds some C//C++ code
|
| as far as I understood the R library generic compilation mechanism,
| compilation of C//C++ sources is controled
|
| 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
|
|
| is there something I have missed, misunderstood or is there something
| wrong ?
You have not demonstrated that src/Makevars is ignored -- as it clearly
isn't, given how thousands of CRAN packages use it.
What you have done is demonstrate that you _cannot change CC and CXX_ in
src/Makevars. And I think that was known, though maybe not as widely.
Dirk
| PS I tested the ssame behaviour with various version of R from R/2.15 to
| R/3.3
|
| best regards
|
| Eric
|
| ______________________________________________
| R-devel at r-project.org mailing list
| https://stat.ethz.ch/mailman/listinfo/r-devel
--
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
More information about the R-devel
mailing list