[Rd] src/Makevars ignored ?
Eric Deveaud
edeveaud at pasteur.fr
Tue Sep 27 16:52:21 CEST 2016
Le 27/09/16 à 16:17, Kasper Daniel Hansen a écrit :
> As a package author, it is in my opinion irresponsible to override these
> system settings (which is why it is also impossible). You have no idea
> what system it is being deployed on,
as the it guy dedicated to install and maintain softs on our cluster I
have a reasonable knowledge of the systems I work on.
I don't want to distribute any of the piece of code I was asked to made
available on the cluster.
I just need (and succeded plus functional test succeded) to build the
Rpackage requested by a specific software.
> I mean, you don't even know if the
> compiler is gcc.If a user wants (say) heavy optimization they will
> compile R with optimization. (For this reason I also don't think users
> should modify their ~/.R/Makevars, unless for testing purposes).
my question was not in a R package developer context, but in the R user
that grabs some piece of code and is not abble to compile it because of
1) a developper that mixed C and C++ code which is legit.
2) a silly interaction beetween C and C++ symbol generation because of
the use, in our case, of CC = gcc -std=gnu99
3) a dev that answwer: "I have no clue, in debian it works" ;-(
anyway I still convinced that if R provides a mechanisn hierachical way
of variable overwrite pkg / user/ system it _SHOULD_ be consistent at
all levels
my question was raised because of our install mechanism that (hopefully)
does not allow
modification of files like ~/.R/Makevars.
I can only "play" with the sources of the software it is working on
and//or environment variables. so I wanted to have a temporary way of
setting CC to be plain gcc without ISO C99 language standard support
just for this specific R library.
> The exception is (in my opinion) if you need to decrease the level of
> optimization because you know or suspect the compiler to generate wrong
> code.
>
> What you should do, is use
> PKG_CFLAGS
> as documented in R-exts, 1.2.1 under "Using Makevars".
in the documentation you pointed (and trust me I read it), keyword is
_set additional_ preprocessor options and//or compiler flags
only way to _remove_ is to overwrite
back to logic.
either Makevars, whatever level, allow to overwrite CC definition
either Makevars, whatever level, disable CC redefinition
but not a mix
Eric
More information about the R-devel
mailing list