From edd at debian.org  Tue Sep 27 13:31:24 2016
From: edd at debian.org (Dirk Eddelbuettel)
Date: Tue, 27 Sep 2016 06:31:24 -0500
Subject: [Rd] src/Makevars ignored ?
In-Reply-To: <5abedec3-552a-b141-a9e2-ef74e212b893@pasteur.fr>
References: <5abedec3-552a-b141-a9e2-ef74e212b893@pasteur.fr>
Message-ID: <22506.22668.727653.313373@max.nulle.part>


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



[Rd] src/Makevars ignored ?
Dirk Eddelbuettel