The GNU R project provides a toolchain (gcc 4.9.3 / mingw-w64) with
utils in a bundle called Rtools [1] for Windows users to compile
contributed packages

The current Rtools includes make 3.79.1. We are trying to upgrade to a
newer version, however the behavior of 'make' seems to have changed in
a way that breaks our infrastructure.

The main issue is how 'make' parses quoted paths. R generates rules like this:

c:/Rtools/mingw_64/bin/gcc  -I"C:/PROGRA~1/R/R-33~1.1/include"
-DNDEBUG -Iyajl/api    -I"d:/Compiler/gcc-4.9.3/local330/include"  -O2
-Wall  -std=gnu99 -mtune=core2 -c base64.c -o base64.o

The line above works with the old 'make', however with make 4.2.1 this
gives an error that headers cannot be found. The problem seems to be
the quotation of paths. It looks like make does not parse the quotes
and assumes the path as is, with the quotes. If I take away the
quotes, the problem disappears. However given that there are over 10k
R packages with hardcoded windows make files, altering behavior at
this point is not an option.

I am already compiling 'make' with ac_cv_dos_paths=yes. Are there any
other configure options required to build a version that parses the
quotes as our old 'make' does it, so that we can upgrade 'make'
without massive disruptions?


Help-make mailing list

Reply via email to