[Rcpp-devel] GNU extension in makefile

Dirk Eddelbuettel edd at debian.org
Sat Jun 23 17:31:20 CEST 2018

On 24 June 2018 at 03:22, Murray Efford wrote:
| The RcppParallel introduction at https://rcppcore.github.io/RcppParallel/
| instructs package writers to include a Makevars file with
| PKG_LIBS += $(shell ${R_HOME}/bin/Rscript -e "RcppParallel::RcppParallelLibs()")
| However, R CMD check in R 3.5.0 generates a warning apparently because +=
| and $(shell are non-portable GNU extensions. As a Windows user I'm not
| familiar with makefiles and am not confident to work around this. Am I
| missing something, or is there a simple solution? An update to the
| introduction would be welcome.

Two things:

i)  _Every_ R package which needs a Makevars _on Windows_ uses
    src/Makevars.win -- see "Writing R Extensions"

ii) If one needs GNU make, one can declare the dependency in DESCRIPTION via
    SystemRequirements: -- again, see "Writing R Extensions"

And we have just that:

    SystemRequirements:	GNU make, Windows: cmd.exe and cscript.exe, Solaris: g++ is required

Does that answer your question?  If not, did you look at user reverse-depends
of RcppParallel and examine what they do?  One can often copy working
solution s from other packages...


http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org

More information about the Rcpp-devel mailing list