Wang Jiefei
2020-Mar-10 09:15 UTC
[Rd] R CMD INSTALL cannot recognize full path on Windows
Oops, I think both of us forget to cite the r-devel channel. Best, Jiefei On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <szwjf08 at gmail.com> wrote:> Thanks for your quick response, Tomas. > > Yes, this is a path issue, I think the problem is related to R, not the > Rtools make. I built an example package for reproducing the problem: > https://github.com/Jiefei-Wang/example > > Here is the version of my R and Rtools: > The release R version: > R version 3.6.2 (2019-12-12) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 18362) > > The devel R version: > R Under development (unstable) (2020-03-09 r77919) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 18362) > > Rtools version 3.5.0.4 > > Things become interesting after I did more tests. I originally thought > this might be only related to the devel R, but it seems like the released > version is also affected. Here is a summary of my test results using the > example package: > > 1. command-line Rtools make: Success > 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0 > 3. Rstudio install button: Success on R3.6.2 but failed on R4.0 > 4. Rstudio running devtool::install: Success on both > > Now the problem becomes more intricate. I have no idea which one goes > wrong. Here are the details of my test results, I hope it can be helpful: > > *Command line:* > 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f example-master/src/Makevars > test1 is [1] 0.2039269 0.1454402 0.1578401 > test2 is [1] 0.1919521 0.9257183 0.2130247 > test3 is [1] 0.06255174 0.27555363 0.72737111 > mingw32-make: *** No targets. Stop. > > 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz > *** arch - x64 > test1 is [1] 0.1584299 0.9338829 0.9528810 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > 3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL testPackage_1.0.tar.gz > *** arch - x64 > test1 is [1] 0.2668522 0.9246174 0.0184601 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > *R studio:* > 1. R3.6: Clicking the install button > ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master > * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6' > * installing *source* package 'testPackage' ... > ** using staged installation > ** libs > test1 is [1] 0.1583112 0.6631700 0.2265564 > test2 is [1] 0.6999799 0.5205237 0.8264029 > test3 is [1] 0.3591798 0.1767392 0.2869383 > > 2. R4.0: Clicking the install button > Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master > * installing to library 'C:/Program Files/R/R-devel/library' > * installing *source* package 'testPackage' ... > ** using staged installation > ** libs > test1 is [1] 0.2091070 0.5411138 0.1051517 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > 3. R3.6: devtools::load_all(".") > devtools::load_all(".") > Loading testPackage > Re-compiling testPackage > - installing *source* package 'testPackage' ... (364ms) > ** using staged installation > ** libs > test1 is [1] 0.93251741 0.03975758 0.57824150 > test2 is [1] 0.8681301 0.4801464 0.9112827 > test3 is [1] 0.430470791 0.008393394 0.341484128 > test1 is [1] 0.68865768 0.05354531 0.91665539 > test2 is [1] 0.19473846 0.60293655 0.09421961 > test3 is [1] 0.90653581 0.12456034 0.09526018 > > 4. R4.0: devtools::load_all(".") > Loading testPackage > Re-compiling testPackage > ? installing *source* package 'testPackage' ... (357ms) > ** using staged installation > ** libs > test1 is [1] 0.00545376 0.30696231 0.68752312 > test2 is [1] 0.1059506 0.7506894 0.8607918 > test3 is [1] 0.5321226 0.6985332 0.7343680 > test1 is [1] 0.7722255 0.3881171 0.5611294 > test2 is [1] 0.5443175 0.8418503 0.3479382 > test3 is [1] 0.7400557 0.3322797 0.6818899 > > > Cheers, > Jiefei > > On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <tomas.kalibera at gmail.com> > wrote: > >> Hi Jiefei, >> >> thanks for your report, but I don't understand from you current >> description what the problem is. Are you saying that "make" shipped with >> some recent Rtools is not accepting some forms of PATHs? But, which >> Rtools then, which version of make, how do you run it? >> >> Why are you referring to "R CMD INSTALL" when none of your examples use >> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot you >> just run "make" directly? >> >> Or are you reporting a bug inside R itself? (you are referring to >> specific svn revisions of R). But how could R be involved in this, is it >> in how it executes make? >> >> Please provide a minimal but complete reproducible example, please >> provide somehow test files that can be used. Perhaps if you try to do a >> little bit of debugging on your end, it might help you to narrow down >> the problem to the point that it will be then easier to understand it. >> For example: if the problem is in "make", it should be possible to >> trigger it directly from the command line, then you could easily try >> with different versions of make and report which ones are the problem.. >> >> Thanks >> Tomas >> >> >> On 3/10/20 8:22 AM, Wang Jiefei wrote: >> > Hi all, >> > >> > Here is a bug(or feature?) that exists at least from R 2020-02-24 >> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile >> in a >> > package >> > ``` >> > >> > >> > >> > >> > >> > >> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo >> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla >> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R" >> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is >> $(test2))$(info >> > test3 is $(test3))* >> > ``` >> > >> > I have no problem running the file using GUN make or installing the >> package >> > on R 3.6, both give the same result. >> > ``` >> > *C:\Rtools\mingw_64\bin\mingw32-make.exe * >> > >> > >> > >> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205 >> 0.3922129 >> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** No >> > targets. Stop.* >> > *```* >> > >> > However, on the devel version of R, it cannot recognize both the full >> and >> > short path of R and gives an error >> > ``` >> > >> > >> > >> > >> > *test1 is [1] 0.42686376 0.84126831 0.09538047The filename, directory >> > name, or volume label syntax is incorrect.test2 isThe filename, >> directory >> > name, or volume label syntax is incorrect.test3 is* >> > ``` >> > >> > I found this issue because my package needs to call R functions in the >> > makefile. The code is similar to: >> > ``` >> > * myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla --slave)* >> > ``` >> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result in >> the >> > same error as I mentioned above. I do not know whether this is >> intentional. >> > If so, what is the correct way to call R function in a makefile? >> > >> > Best, >> > Jiefei >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-devel at r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-devel >> >> >>[[alternative HTML version deleted]]
Tomas Kalibera
2020-Mar-11 12:57 UTC
[Rd] R CMD INSTALL cannot recognize full path on Windows
Thanks, Jiefei, unfortunately your example does not work on my system, and also it is far from minimal. The error message you are getting is from Windows and could be caused for example by accidental quoting of the path using single quotes. Issues with RStudio or devtools would have to be discussed in their mailing lists/with their authors, but my guess is that the problem is in your local configuration, and after all you need it to work with the base R CMD INSTALL anyway. There is not much wrong R could do here, it just sets R_HOME and runs "make". For example this works for me, but some closer alternations of your code work as well: test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)') all: ??????? echo "test1 is $(test1)" ??????? echo "R_HOME is $(R_HOME)" I would recommend that you try to narrow down your example so that it is really minimal. Use R_HOME, not hard-coded paths, as that is what you would use in reality anyway. Print R_HOME and check it is valid. If the problem persists, find out why it works when invoked from the command line but not from R CMD INSTALL. Best Tomas On 3/10/20 10:15 AM, Wang Jiefei wrote:> ? Oops, I think both of us forget to cite the r-devel channel. > > Best, > Jiefei > > On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <szwjf08 at gmail.com > <mailto:szwjf08 at gmail.com>> wrote: > > Thanks for your quick response, Tomas. > > Yes, this is a path issue, I think the problem is related to R, > not the Rtools make. I built an example package for reproducing > the problem: https://github.com/Jiefei-Wang/example > > Here is the version of my R and Rtools: > The release R version: > R version 3.6.2 (2019-12-12) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 18362) > > The devel R version: > R Under development (unstable) (2020-03-09 r77919) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 18362) > > Rtools version 3.5.0.4 > > Things become interesting?after I did more tests. I originally > thought this might be only related to the devel R, but it seems > like the released version is also affected. Here is a summary of > my test results using the example package: > > 1. command-line Rtools make: Success > 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0 > 3. Rstudio install button: Success on R3.6.2 but failed on R4.0 > 4. Rstudio running devtool::install: Success on both > > Now the problem becomes more intricate. I have no idea which one > goes wrong. Here are the details of my test results, I hope it can > be helpful: > > *Command line:* > 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f > example-master/src/Makevars > test1 is [1] 0.2039269 0.1454402 0.1578401 > test2 is [1] 0.1919521 0.9257183 0.2130247 > test3 is [1] 0.06255174 0.27555363 0.72737111 > mingw32-make: *** No targets.? Stop. > > 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL > testPackage_1.0.tar.gz > *** arch - x64 > test1 is [1] 0.1584299 0.9338829 0.9528810 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > ? 3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL > testPackage_1.0.tar.gz > *** arch - x64 > test1 is [1] 0.2668522 0.9246174 0.0184601 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > *R studio:* > 1. R3.6: Clicking the install button > ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master > * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6' > * installing *source* package 'testPackage' ... > ** using staged installation > ** libs > test1 is [1] 0.1583112 0.6631700 0.2265564 > test2 is [1] 0.6999799 0.5205237 0.8264029 > test3 is [1] 0.3591798 0.1767392 0.2869383 > > 2.? R4.0: Clicking the install button > Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master > * installing to library 'C:/Program Files/R/R-devel/library' > * installing *source* package 'testPackage' ... > ** using staged installation > ** libs > test1 is [1] 0.2091070 0.5411138 0.1051517 > The filename, directory name, or volume label syntax is incorrect. > test2 is > The filename, directory name, or volume label syntax is incorrect. > test3 is > > 3. R3.6:? devtools::load_all(".") > devtools::load_all(".") > Loading testPackage > Re-compiling testPackage > - ?installing *source* package 'testPackage' ... (364ms) > ? ?** using staged installation > ? ?** libs > ? ?test1 is [1] 0.93251741 0.03975758 0.57824150 > ? ?test2 is [1] 0.8681301 0.4801464 0.9112827 > ? ?test3 is [1] 0.430470791 0.008393394 0.341484128 > ? ?test1 is [1] 0.68865768 0.05354531 0.91665539 > ? ?test2 is [1] 0.19473846 0.60293655 0.09421961 > ? ?test3 is [1] 0.90653581 0.12456034 0.09526018 > > 4. R4.0: devtools::load_all(".") > Loading testPackage > Re-compiling testPackage > ? ?installing *source* package 'testPackage' ... (357ms) > ? ?** using staged installation > ? ?** libs > ? ?test1 is [1] 0.00545376 0.30696231 0.68752312 > ? ?test2 is [1] 0.1059506 0.7506894 0.8607918 > ? ?test3 is [1] 0.5321226 0.6985332 0.7343680 > ? ?test1 is [1] 0.7722255 0.3881171 0.5611294 > ? ?test2 is [1] 0.5443175 0.8418503 0.3479382 > ? ?test3 is [1] 0.7400557 0.3322797 0.6818899 > > > Cheers, > Jiefei > > On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera > <tomas.kalibera at gmail.com <mailto:tomas.kalibera at gmail.com>> wrote: > > Hi Jiefei, > > thanks for your report, but I don't understand from you current > description what the problem is. Are you saying that "make" > shipped with > some recent Rtools is not accepting some forms of PATHs? But, > which > Rtools then, which version of make, how do you run it? > > Why are you referring to "R CMD INSTALL" when none of your > examples use > it? Is "R CMD INSTALL" necessary for reproducing the problem, > cannot you > just run "make" directly? > > Or are you reporting a bug inside R itself? (you are referring to > specific svn revisions of R). But how could R be involved in > this, is it > in how it executes make? > > Please provide a minimal but complete reproducible example, > please > provide somehow test files that can be used.? Perhaps if you > try to do a > little bit of debugging on your end, it might help you to > narrow down > the problem to the point that it will be then easier to > understand it. > For example: if the problem is in "make", it should be > possible to > trigger it directly from the command line, then you could > easily try > with different versions of make and report which ones are the > problem.. > > Thanks > Tomas > > > On 3/10/20 8:22 AM, Wang Jiefei wrote: > > Hi all, > > > > Here is a bug(or feature?) that exists at least from R > 2020-02-24 > > r77852 to 2020-03-09 r77919 on Window. Consider this example > makefile in a > > package > > ``` > > > > > > > > > > > > > > *test1=$(shell echo 'runif(3)'|R --vanilla > --slave)test2=$(shell echo > > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla > > --slave)test3=$(shell echo > 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R" > > --vanilla --slave)$(info test1 is $(test1))$(info test2 is > $(test2))$(info > > test3 is $(test3))* > > ``` > > > > I have no problem running the file using GUN make or > installing the package > > on R 3.6, both give the same result. > > ``` > > *C:\Rtools\mingw_64\bin\mingw32-make.exe? * > > > > > > > > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] > 0.9904205 0.3922129 > > 0.5970083test3 is [1] 0.3469528 0.1993838 > 0.8434841mingw32-make: *** No > > targets.? Stop.* > > *```* > > > > However, on the devel version of R, it cannot recognize both > the full and > > short path of R and gives an error > > ``` > > > > > > > > > > *test1 is? [1] 0.42686376 0.84126831 0.09538047The filename, > directory > > name, or volume label syntax is incorrect.test2 isThe > filename, directory > > name, or volume label syntax is incorrect.test3 is* > > ``` > > > > I found this issue because my package needs to call R > functions in the > > makefile. The code is similar to: > > ``` > > *? myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" > --vanilla --slave)* > > ``` > > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will > result in the > > same error as I mentioned above. I do not know whether this > is intentional. > > If so, what is the correct way to call R function in a makefile? > > > > Best, > > Jiefei > > > >? ? ? ?[[alternative HTML version deleted]] > > > > ______________________________________________ > > R-devel at r-project.org <mailto:R-devel at r-project.org> mailing > list > > https://stat.ethz.ch/mailman/listinfo/r-devel > >[[alternative HTML version deleted]]
Wang Jiefei
2020-Mar-11 13:26 UTC
[Rd] R CMD INSTALL cannot recognize full path on Windows
Thanks, Tomas. I took your suggestion and change the make file to test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)') all: testPackage.dll echo "test1 is $(test1)" echo "R_HOME is $(R_HOME)" However, R CMD INSTALL still gives me the same error:> R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/ProgramFiles/R/R-devel/library' * installing *source* package 'testPackage' ... ** using staged installation ** libs *** arch - i386 The filename, directory name, or volume label syntax is incorrect. c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall -mfpmath=sse -msse2 -c example.cpp -o example.o c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o testPackage.dll tmp.def RcppExports.o example.o -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386 -LC:/projects/BUILD/R-source-win32/extsoft/lib -LC:/PROGRA~1/R/R-devel/bin/i386 -lR echo "test1 is " test1 is echo "R_HOME is C:/PROGRA~1/R/R-devel" installing to C:/Program Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386 I have no idea how to make the example even more minimal for there is literally nothing in the package now. Like you said if R just sets R_HOME and runs "make", I do not understand why it cannot find R in this case for R_HOME seems correct to me. I think there are some other things behind R CMD INSTALL but my poor knowledge does not allow me to see them...Any help will be appreciated. Best, Jiefei On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <tomas.kalibera at gmail.com> wrote:> > Thanks, Jiefei, unfortunately your example does not work on my system, and > also it is far from minimal. The error message you are getting is from > Windows and could be caused for example by accidental quoting of the path > using single quotes. > > Issues with RStudio or devtools would have to be discussed in their > mailing lists/with their authors, but my guess is that the problem is in > your local configuration, and after all you need it to work with the base R > CMD INSTALL anyway. There is not much wrong R could do here, it just sets > R_HOME and runs "make". > > For example this works for me, but some closer alternations of your code > work as well: > > test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)') > all: > echo "test1 is $(test1)" > echo "R_HOME is $(R_HOME)" > > I would recommend that you try to narrow down your example so that it is > really minimal. Use R_HOME, not hard-coded paths, as that is what you would > use in reality anyway. Print R_HOME and check it is valid. If the problem > persists, find out why it works when invoked from the command line but not > from R CMD INSTALL. > > Best > Tomas > > On 3/10/20 10:15 AM, Wang Jiefei wrote: > > Oops, I think both of us forget to cite the r-devel channel. > > Best, > Jiefei > > On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <szwjf08 at gmail.com> wrote: > >> Thanks for your quick response, Tomas. >> >> Yes, this is a path issue, I think the problem is related to R, not the >> Rtools make. I built an example package for reproducing the problem: >> https://github.com/Jiefei-Wang/example >> >> Here is the version of my R and Rtools: >> The release R version: >> R version 3.6.2 (2019-12-12) >> Platform: x86_64-w64-mingw32/x64 (64-bit) >> Running under: Windows 10 x64 (build 18362) >> >> The devel R version: >> R Under development (unstable) (2020-03-09 r77919) >> Platform: x86_64-w64-mingw32/x64 (64-bit) >> Running under: Windows 10 x64 (build 18362) >> >> Rtools version 3.5.0.4 >> >> Things become interesting after I did more tests. I originally thought >> this might be only related to the devel R, but it seems like the released >> version is also affected. Here is a summary of my test results using the >> example package: >> >> 1. command-line Rtools make: Success >> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0 >> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0 >> 4. Rstudio running devtool::install: Success on both >> >> Now the problem becomes more intricate. I have no idea which one goes >> wrong. Here are the details of my test results, I hope it can be helpful: >> >> *Command line:* >> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f >> example-master/src/Makevars >> test1 is [1] 0.2039269 0.1454402 0.1578401 >> test2 is [1] 0.1919521 0.9257183 0.2130247 >> test3 is [1] 0.06255174 0.27555363 0.72737111 >> mingw32-make: *** No targets. Stop. >> >> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz >> *** arch - x64 >> test1 is [1] 0.1584299 0.9338829 0.9528810 >> The filename, directory name, or volume label syntax is incorrect. >> test2 is >> The filename, directory name, or volume label syntax is incorrect. >> test3 is >> >> 3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL testPackage_1.0.tar.gz >> *** arch - x64 >> test1 is [1] 0.2668522 0.9246174 0.0184601 >> The filename, directory name, or volume label syntax is incorrect. >> test2 is >> The filename, directory name, or volume label syntax is incorrect. >> test3 is >> >> *R studio:* >> 1. R3.6: Clicking the install button >> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6' >> * installing *source* package 'testPackage' ... >> ** using staged installation >> ** libs >> test1 is [1] 0.1583112 0.6631700 0.2265564 >> test2 is [1] 0.6999799 0.5205237 0.8264029 >> test3 is [1] 0.3591798 0.1767392 0.2869383 >> >> 2. R4.0: Clicking the install button >> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >> * installing to library 'C:/Program Files/R/R-devel/library' >> * installing *source* package 'testPackage' ... >> ** using staged installation >> ** libs >> test1 is [1] 0.2091070 0.5411138 0.1051517 >> The filename, directory name, or volume label syntax is incorrect. >> test2 is >> The filename, directory name, or volume label syntax is incorrect. >> test3 is >> >> 3. R3.6: devtools::load_all(".") >> devtools::load_all(".") >> Loading testPackage >> Re-compiling testPackage >> - installing *source* package 'testPackage' ... (364ms) >> ** using staged installation >> ** libs >> test1 is [1] 0.93251741 0.03975758 0.57824150 >> test2 is [1] 0.8681301 0.4801464 0.9112827 >> test3 is [1] 0.430470791 0.008393394 0.341484128 >> test1 is [1] 0.68865768 0.05354531 0.91665539 >> test2 is [1] 0.19473846 0.60293655 0.09421961 >> test3 is [1] 0.90653581 0.12456034 0.09526018 >> >> 4. R4.0: devtools::load_all(".") >> Loading testPackage >> Re-compiling testPackage >> ? installing *source* package 'testPackage' ... (357ms) >> ** using staged installation >> ** libs >> test1 is [1] 0.00545376 0.30696231 0.68752312 >> test2 is [1] 0.1059506 0.7506894 0.8607918 >> test3 is [1] 0.5321226 0.6985332 0.7343680 >> test1 is [1] 0.7722255 0.3881171 0.5611294 >> test2 is [1] 0.5443175 0.8418503 0.3479382 >> test3 is [1] 0.7400557 0.3322797 0.6818899 >> >> >> Cheers, >> Jiefei >> >> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <tomas.kalibera at gmail.com> >> wrote: >> >>> Hi Jiefei, >>> >>> thanks for your report, but I don't understand from you current >>> description what the problem is. Are you saying that "make" shipped with >>> some recent Rtools is not accepting some forms of PATHs? But, which >>> Rtools then, which version of make, how do you run it? >>> >>> Why are you referring to "R CMD INSTALL" when none of your examples use >>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot you >>> just run "make" directly? >>> >>> Or are you reporting a bug inside R itself? (you are referring to >>> specific svn revisions of R). But how could R be involved in this, is it >>> in how it executes make? >>> >>> Please provide a minimal but complete reproducible example, please >>> provide somehow test files that can be used. Perhaps if you try to do a >>> little bit of debugging on your end, it might help you to narrow down >>> the problem to the point that it will be then easier to understand it. >>> For example: if the problem is in "make", it should be possible to >>> trigger it directly from the command line, then you could easily try >>> with different versions of make and report which ones are the problem.. >>> >>> Thanks >>> Tomas >>> >>> >>> On 3/10/20 8:22 AM, Wang Jiefei wrote: >>> > Hi all, >>> > >>> > Here is a bug(or feature?) that exists at least from R 2020-02-24 >>> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile >>> in a >>> > package >>> > ``` >>> > >>> > >>> > >>> > >>> > >>> > >>> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo >>> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla >>> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R" >>> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is >>> $(test2))$(info >>> > test3 is $(test3))* >>> > ``` >>> > >>> > I have no problem running the file using GUN make or installing the >>> package >>> > on R 3.6, both give the same result. >>> > ``` >>> > *C:\Rtools\mingw_64\bin\mingw32-make.exe * >>> > >>> > >>> > >>> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205 >>> 0.3922129 >>> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** No >>> > targets. Stop.* >>> > *```* >>> > >>> > However, on the devel version of R, it cannot recognize both the full >>> and >>> > short path of R and gives an error >>> > ``` >>> > >>> > >>> > >>> > >>> > *test1 is [1] 0.42686376 0.84126831 0.09538047The filename, directory >>> > name, or volume label syntax is incorrect.test2 isThe filename, >>> directory >>> > name, or volume label syntax is incorrect.test3 is* >>> > ``` >>> > >>> > I found this issue because my package needs to call R functions in the >>> > makefile. The code is similar to: >>> > ``` >>> > * myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla >>> --slave)* >>> > ``` >>> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result in >>> the >>> > same error as I mentioned above. I do not know whether this is >>> intentional. >>> > If so, what is the correct way to call R function in a makefile? >>> > >>> > Best, >>> > Jiefei >>> > >>> > [[alternative HTML version deleted]] >>> > >>> > ______________________________________________ >>> > R-devel at r-project.org mailing list >>> > https://stat.ethz.ch/mailman/listinfo/r-devel >>> >>> >>> >[[alternative HTML version deleted]]
Wang Jiefei
2020-Mar-11 15:33 UTC
[Rd] R CMD INSTALL cannot recognize full path on Windows
Thanks a lot for your suggestions. I see what you mean. I have removed all unnecessary files and dependences on https://github.com/Jiefei-Wang/example, but still no luck. I've tried to install the package as a user, not admin, but I got the same error. Also, I apologize for spamming the mail list. I will keep my reply as neat as possible. Martin has suggested checking the encoding of the file and locale in the session info, so here is this missing information: The makefile is encoded in UTF-8, and the locale is: [1] LC_COLLATE=English_United States.1252 [2] LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C [5] LC_TIME=English_United States.1252 That is where I am stuck, any help would be appreciated. Best, Jiefei On Wed, Mar 11, 2020 at 9:56 AM Tomas Kalibera <tomas.kalibera at gmail.com> wrote:> On 3/11/20 2:26 PM, Wang Jiefei wrote: > > Thanks, Tomas. I took your suggestion and change the make file to > > test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)') > > all: testPackage.dll > echo "test1 is $(test1)" > echo "R_HOME is $(R_HOME)" > > However, R CMD INSTALL still gives me the same error: > > > R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program > Files/R/R-devel/library' > * installing *source* package 'testPackage' ... > ** using staged installation > ** libs > > *** arch - i386 > The filename, directory name, or volume label syntax is incorrect. > c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" > -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' > -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall > -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o > c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" > -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' > -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall > -mfpmath=sse -msse2 -c example.cpp -o example.o > c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o > testPackage.dll tmp.def RcppExports.o example.o > -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386 > -LC:/projects/BUILD/R-source-win32/extsoft/lib > -LC:/PROGRA~1/R/R-devel/bin/i386 -lR > echo "test1 is " > test1 is > echo "R_HOME is C:/PROGRA~1/R/R-devel" > installing to C:/Program > Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386 > > > I have no idea how to make the example even more minimal for there is > literally nothing in the package now. Like you said if R just sets R_HOME > and runs "make", I do not understand why it cannot find R in this case for > R_HOME seems correct to me. I think there are some other things behind R > CMD INSTALL but my poor knowledge does not allow me to see them...Any help > will be appreciated. > > Please lets not spam the whole list with this any more - this is also why > I didn't add R-devel to cc originally. The makefile may be minimal, but the > example package is not - you have Rcpp dependency there, two C source > files, some R Studio specific thing (an .Rproj file at least). Maybe it is > not related, but if you want other to help you, it would be nice to spend > some of your time reducing it anyway. > > That test1 is empty means that executing R has failed. You need to find > out why. > > I see that you are installing into C:/Program Files/R/R-devel/library. > Normally that directory should not be writeable. Are you running this as > Administrator? In principle this could be related, but better to find out > directly why executing R is failing. > > Best > Tomas > > > > > Best, > Jiefei > > > On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <tomas.kalibera at gmail.com> > wrote: > >> >> Thanks, Jiefei, unfortunately your example does not work on my system, >> and also it is far from minimal. The error message you are getting is from >> Windows and could be caused for example by accidental quoting of the path >> using single quotes. >> >> Issues with RStudio or devtools would have to be discussed in their >> mailing lists/with their authors, but my guess is that the problem is in >> your local configuration, and after all you need it to work with the base R >> CMD INSTALL anyway. There is not much wrong R could do here, it just sets >> R_HOME and runs "make". >> >> For example this works for me, but some closer alternations of your code >> work as well: >> >> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)') >> all: >> echo "test1 is $(test1)" >> echo "R_HOME is $(R_HOME)" >> >> I would recommend that you try to narrow down your example so that it is >> really minimal. Use R_HOME, not hard-coded paths, as that is what you would >> use in reality anyway. Print R_HOME and check it is valid. If the problem >> persists, find out why it works when invoked from the command line but not >> from R CMD INSTALL. >> >> Best >> Tomas >> >> On 3/10/20 10:15 AM, Wang Jiefei wrote: >> >> Oops, I think both of us forget to cite the r-devel channel. >> >> Best, >> Jiefei >> >> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <szwjf08 at gmail.com> wrote: >> >>> Thanks for your quick response, Tomas. >>> >>> Yes, this is a path issue, I think the problem is related to R, not the >>> Rtools make. I built an example package for reproducing the problem: >>> https://github.com/Jiefei-Wang/example >>> >>> Here is the version of my R and Rtools: >>> The release R version: >>> R version 3.6.2 (2019-12-12) >>> Platform: x86_64-w64-mingw32/x64 (64-bit) >>> Running under: Windows 10 x64 (build 18362) >>> >>> The devel R version: >>> R Under development (unstable) (2020-03-09 r77919) >>> Platform: x86_64-w64-mingw32/x64 (64-bit) >>> Running under: Windows 10 x64 (build 18362) >>> >>> Rtools version 3.5.0.4 >>> >>> Things become interesting after I did more tests. I originally thought >>> this might be only related to the devel R, but it seems like the released >>> version is also affected. Here is a summary of my test results using the >>> example package: >>> >>> 1. command-line Rtools make: Success >>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0 >>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0 >>> 4. Rstudio running devtool::install: Success on both >>> >>> Now the problem becomes more intricate. I have no idea which one goes >>> wrong. Here are the details of my test results, I hope it can be helpful: >>> >>> *Command line:* >>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f >>> example-master/src/Makevars >>> test1 is [1] 0.2039269 0.1454402 0.1578401 >>> test2 is [1] 0.1919521 0.9257183 0.2130247 >>> test3 is [1] 0.06255174 0.27555363 0.72737111 >>> mingw32-make: *** No targets. Stop. >>> >>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz >>> *** arch - x64 >>> test1 is [1] 0.1584299 0.9338829 0.9528810 >>> The filename, directory name, or volume label syntax is incorrect. >>> test2 is >>> The filename, directory name, or volume label syntax is incorrect. >>> test3 is >>> >>> 3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL >>> testPackage_1.0.tar.gz >>> *** arch - x64 >>> test1 is [1] 0.2668522 0.9246174 0.0184601 >>> The filename, directory name, or volume label syntax is incorrect. >>> test2 is >>> The filename, directory name, or volume label syntax is incorrect. >>> test3 is >>> >>> *R studio:* >>> 1. R3.6: Clicking the install button >>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6' >>> * installing *source* package 'testPackage' ... >>> ** using staged installation >>> ** libs >>> test1 is [1] 0.1583112 0.6631700 0.2265564 >>> test2 is [1] 0.6999799 0.5205237 0.8264029 >>> test3 is [1] 0.3591798 0.1767392 0.2869383 >>> >>> 2. R4.0: Clicking the install button >>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >>> * installing to library 'C:/Program Files/R/R-devel/library' >>> * installing *source* package 'testPackage' ... >>> ** using staged installation >>> ** libs >>> test1 is [1] 0.2091070 0.5411138 0.1051517 >>> The filename, directory name, or volume label syntax is incorrect. >>> test2 is >>> The filename, directory name, or volume label syntax is incorrect. >>> test3 is >>> >>> 3. R3.6: devtools::load_all(".") >>> devtools::load_all(".") >>> Loading testPackage >>> Re-compiling testPackage >>> - installing *source* package 'testPackage' ... (364ms) >>> ** using staged installation >>> ** libs >>> test1 is [1] 0.93251741 0.03975758 0.57824150 >>> test2 is [1] 0.8681301 0.4801464 0.9112827 >>> test3 is [1] 0.430470791 0.008393394 0.341484128 >>> test1 is [1] 0.68865768 0.05354531 0.91665539 >>> test2 is [1] 0.19473846 0.60293655 0.09421961 >>> test3 is [1] 0.90653581 0.12456034 0.09526018 >>> >>> 4. R4.0: devtools::load_all(".") >>> Loading testPackage >>> Re-compiling testPackage >>> ? installing *source* package 'testPackage' ... (357ms) >>> ** using staged installation >>> ** libs >>> test1 is [1] 0.00545376 0.30696231 0.68752312 >>> test2 is [1] 0.1059506 0.7506894 0.8607918 >>> test3 is [1] 0.5321226 0.6985332 0.7343680 >>> test1 is [1] 0.7722255 0.3881171 0.5611294 >>> test2 is [1] 0.5443175 0.8418503 0.3479382 >>> test3 is [1] 0.7400557 0.3322797 0.6818899 >>> >>> >>> Cheers, >>> Jiefei >>> >>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <tomas.kalibera at gmail.com> >>> wrote: >>> >>>> Hi Jiefei, >>>> >>>> thanks for your report, but I don't understand from you current >>>> description what the problem is. Are you saying that "make" shipped >>>> with >>>> some recent Rtools is not accepting some forms of PATHs? But, which >>>> Rtools then, which version of make, how do you run it? >>>> >>>> Why are you referring to "R CMD INSTALL" when none of your examples use >>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot >>>> you >>>> just run "make" directly? >>>> >>>> Or are you reporting a bug inside R itself? (you are referring to >>>> specific svn revisions of R). But how could R be involved in this, is >>>> it >>>> in how it executes make? >>>> >>>> Please provide a minimal but complete reproducible example, please >>>> provide somehow test files that can be used. Perhaps if you try to do >>>> a >>>> little bit of debugging on your end, it might help you to narrow down >>>> the problem to the point that it will be then easier to understand it. >>>> For example: if the problem is in "make", it should be possible to >>>> trigger it directly from the command line, then you could easily try >>>> with different versions of make and report which ones are the problem.. >>>> >>>> Thanks >>>> Tomas >>>> >>>> >>>> On 3/10/20 8:22 AM, Wang Jiefei wrote: >>>> > Hi all, >>>> > >>>> > Here is a bug(or feature?) that exists at least from R 2020-02-24 >>>> > r77852 to 2020-03-09 r77919 on Window. Consider this example makefile >>>> in a >>>> > package >>>> > ``` >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > >>>> > *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo >>>> > 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla >>>> > --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R" >>>> > --vanilla --slave)$(info test1 is $(test1))$(info test2 is >>>> $(test2))$(info >>>> > test3 is $(test3))* >>>> > ``` >>>> > >>>> > I have no problem running the file using GUN make or installing the >>>> package >>>> > on R 3.6, both give the same result. >>>> > ``` >>>> > *C:\Rtools\mingw_64\bin\mingw32-make.exe * >>>> > >>>> > >>>> > >>>> > *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205 >>>> 0.3922129 >>>> > 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** >>>> No >>>> > targets. Stop.* >>>> > *```* >>>> > >>>> > However, on the devel version of R, it cannot recognize both the full >>>> and >>>> > short path of R and gives an error >>>> > ``` >>>> > >>>> > >>>> > >>>> > >>>> > *test1 is [1] 0.42686376 0.84126831 0.09538047The filename, directory >>>> > name, or volume label syntax is incorrect.test2 isThe filename, >>>> directory >>>> > name, or volume label syntax is incorrect.test3 is* >>>> > ``` >>>> > >>>> > I found this issue because my package needs to call R functions in the >>>> > makefile. The code is similar to: >>>> > ``` >>>> > * myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla >>>> --slave)* >>>> > ``` >>>> > Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result >>>> in the >>>> > same error as I mentioned above. I do not know whether this is >>>> intentional. >>>> > If so, what is the correct way to call R function in a makefile? >>>> > >>>> > Best, >>>> > Jiefei >>>> > >>>> > [[alternative HTML version deleted]] >>>> > >>>> > ______________________________________________ >>>> > R-devel at r-project.org mailing list >>>> > https://stat.ethz.ch/mailman/listinfo/r-devel >>>> >>>> >>>> >> >[[alternative HTML version deleted]]
Simon Urbanek
2020-Mar-11 22:13 UTC
[Rd] R CMD INSTALL cannot recognize full path on Windows
Jiefei, you did not commit all files into the example package - your example has things like RcppExports.cpp as well as additional flags which are not in your GH project. I suspect the issue is with the extra flags you're adding - those don't come from R. Please make sure you can replicate the issue with the GH package you created. Cheers, Simon * installing *source* package 'testPackage' ... ** using staged installation ** libs *** arch - i386 echo "test1 is [1] 0.1522111 0.2533619 0.6591809" test1 is [1] 0.1522111 0.2533619 0.6591809 echo "R_HOME is C:/R/R-3.6.2" R_HOME is C:/R/R-3.6.2 echo "Fake library" > testPackage.dll installing to C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/i38 6 *** arch - x64 echo "test1 is [1] 0.9271811 0.8040735 0.4739104" test1 is [1] 0.9271811 0.8040735 0.4739104 echo "R_HOME is C:/R/R-3.6.2" R_HOME is C:/R/R-3.6.2 echo "Fake library" > testPackage.dll installing to C:/R/R-3.6.2/library/00LOCK-testPackage/00new/testPackage/libs/x64 ** help No man pages found in package 'testPackage' *** installing help indices ** building package indices ** testing if installed package can be loaded from temporary location *** arch - i386 *** arch - x64 ** testing if installed package can be loaded from final location *** arch - i386 *** arch - x64 ** testing if installed package keeps a record of temporary installation path * DONE (testPackage) Making 'packages.html' ... done> On 12/03/2020, at 4:33 AM, Wang Jiefei <szwjf08 at gmail.com> wrote: > > Thanks a lot for your suggestions. I see what you mean. I have removed all > unnecessary files and dependences on https://github.com/Jiefei-Wang/example, > but still no luck. I've tried to install the package as a user, not admin, > but I got the same error. Also, I apologize for spamming the mail list. I > will keep my reply as neat as possible. > > Martin has suggested checking the encoding of the file and locale in the > session info, so here is this missing information: The makefile is encoded > in UTF-8, and the locale is: > > [1] LC_COLLATE=English_United States.1252 > [2] LC_CTYPE=English_United States.1252 > [3] LC_MONETARY=English_United States.1252 > [4] LC_NUMERIC=C > [5] LC_TIME=English_United States.1252 > > That is where I am stuck, any help would be appreciated. > > Best, > Jiefei > > > > On Wed, Mar 11, 2020 at 9:56 AM Tomas Kalibera <tomas.kalibera at gmail.com> > wrote: > >> On 3/11/20 2:26 PM, Wang Jiefei wrote: >> >> Thanks, Tomas. I took your suggestion and change the make file to >> >> test1:=$(shell $(R_HOME)/bin/R --slave -e 'runif(3)') >> >> all: testPackage.dll >> echo "test1 is $(test1)" >> echo "R_HOME is $(R_HOME)" >> >> However, R CMD INSTALL still gives me the same error: >> >>> R CMD INSTALL testPackage_1.0.tar.gz* installing to library 'C:/Program >> Files/R/R-devel/library' >> * installing *source* package 'testPackage' ... >> ** using staged installation >> ** libs >> >> *** arch - i386 >> The filename, directory name, or volume label syntax is incorrect. >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" >> -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' >> -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall >> -mfpmath=sse -msse2 -c RcppExports.cpp -o RcppExports.o >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -I"C:/PROGRA~1/R/R-devel/include" >> -DNDEBUG -I'C:/Program Files/R/R-devel/library/Rcpp/include' >> -I"C:/projects/BUILD/R-source-win32/extsoft/include" -O2 -Wall >> -mfpmath=sse -msse2 -c example.cpp -o example.o >> c:/Rtools/mingw_32/bin/g++ -std=gnu++11 -shared -s -static-libgcc -o >> testPackage.dll tmp.def RcppExports.o example.o >> -LC:/projects/BUILD/R-source-win32/extsoft/lib/i386 >> -LC:/projects/BUILD/R-source-win32/extsoft/lib >> -LC:/PROGRA~1/R/R-devel/bin/i386 -lR >> echo "test1 is " >> test1 is >> echo "R_HOME is C:/PROGRA~1/R/R-devel" >> installing to C:/Program >> Files/R/R-devel/library/00LOCK-testPackage/00new/testPackage/libs/i386 >> >> >> I have no idea how to make the example even more minimal for there is >> literally nothing in the package now. Like you said if R just sets R_HOME >> and runs "make", I do not understand why it cannot find R in this case for >> R_HOME seems correct to me. I think there are some other things behind R >> CMD INSTALL but my poor knowledge does not allow me to see them...Any help >> will be appreciated. >> >> Please lets not spam the whole list with this any more - this is also why >> I didn't add R-devel to cc originally. The makefile may be minimal, but the >> example package is not - you have Rcpp dependency there, two C source >> files, some R Studio specific thing (an .Rproj file at least). Maybe it is >> not related, but if you want other to help you, it would be nice to spend >> some of your time reducing it anyway. >> >> That test1 is empty means that executing R has failed. You need to find >> out why. >> >> I see that you are installing into C:/Program Files/R/R-devel/library. >> Normally that directory should not be writeable. Are you running this as >> Administrator? In principle this could be related, but better to find out >> directly why executing R is failing. >> >> Best >> Tomas >> >> >> >> >> Best, >> Jiefei >> >> >> On Wed, Mar 11, 2020 at 8:57 AM Tomas Kalibera <tomas.kalibera at gmail.com> >> wrote: >> >>> >>> Thanks, Jiefei, unfortunately your example does not work on my system, >>> and also it is far from minimal. The error message you are getting is from >>> Windows and could be caused for example by accidental quoting of the path >>> using single quotes. >>> >>> Issues with RStudio or devtools would have to be discussed in their >>> mailing lists/with their authors, but my guess is that the problem is in >>> your local configuration, and after all you need it to work with the base R >>> CMD INSTALL anyway. There is not much wrong R could do here, it just sets >>> R_HOME and runs "make". >>> >>> For example this works for me, but some closer alternations of your code >>> work as well: >>> >>> test1 := $(shell $(R_HOME)/bin/R --slave -e 'runif(3)') >>> all: >>> echo "test1 is $(test1)" >>> echo "R_HOME is $(R_HOME)" >>> >>> I would recommend that you try to narrow down your example so that it is >>> really minimal. Use R_HOME, not hard-coded paths, as that is what you would >>> use in reality anyway. Print R_HOME and check it is valid. If the problem >>> persists, find out why it works when invoked from the command line but not >>> from R CMD INSTALL. >>> >>> Best >>> Tomas >>> >>> On 3/10/20 10:15 AM, Wang Jiefei wrote: >>> >>> Oops, I think both of us forget to cite the r-devel channel. >>> >>> Best, >>> Jiefei >>> >>> On Tue, Mar 10, 2020 at 5:13 AM Wang Jiefei <szwjf08 at gmail.com> wrote: >>> >>>> Thanks for your quick response, Tomas. >>>> >>>> Yes, this is a path issue, I think the problem is related to R, not the >>>> Rtools make. I built an example package for reproducing the problem: >>>> https://github.com/Jiefei-Wang/example >>>> >>>> Here is the version of my R and Rtools: >>>> The release R version: >>>> R version 3.6.2 (2019-12-12) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) >>>> Running under: Windows 10 x64 (build 18362) >>>> >>>> The devel R version: >>>> R Under development (unstable) (2020-03-09 r77919) >>>> Platform: x86_64-w64-mingw32/x64 (64-bit) >>>> Running under: Windows 10 x64 (build 18362) >>>> >>>> Rtools version 3.5.0.4 >>>> >>>> Things become interesting after I did more tests. I originally thought >>>> this might be only related to the devel R, but it seems like the released >>>> version is also affected. Here is a summary of my test results using the >>>> example package: >>>> >>>> 1. command-line Rtools make: Success >>>> 2. command-line R CMD INSTALL: Failed on both R3.6.2 and R4.0 >>>> 3. Rstudio install button: Success on R3.6.2 but failed on R4.0 >>>> 4. Rstudio running devtool::install: Success on both >>>> >>>> Now the problem becomes more intricate. I have no idea which one goes >>>> wrong. Here are the details of my test results, I hope it can be helpful: >>>> >>>> *Command line:* >>>> 1. "C:\Rtools\mingw_64\bin\mingw32-make.exe" -f >>>> example-master/src/Makevars >>>> test1 is [1] 0.2039269 0.1454402 0.1578401 >>>> test2 is [1] 0.1919521 0.9257183 0.2130247 >>>> test3 is [1] 0.06255174 0.27555363 0.72737111 >>>> mingw32-make: *** No targets. Stop. >>>> >>>> 2. "C:\Program Files\R\R-3.6.2\bin\R" CMD INSTALL testPackage_1.0.tar.gz >>>> *** arch - x64 >>>> test1 is [1] 0.1584299 0.9338829 0.9528810 >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test2 is >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test3 is >>>> >>>> 3. "C:\Program Files\R\R-devel\bin\R" CMD INSTALL >>>> testPackage_1.0.tar.gz >>>> *** arch - x64 >>>> test1 is [1] 0.2668522 0.9246174 0.0184601 >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test2 is >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test3 is >>>> >>>> *R studio:* >>>> 1. R3.6: Clicking the install button >>>> ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >>>> * installing to library 'C:/Users/wangj/Documents/R/win-library/3.6' >>>> * installing *source* package 'testPackage' ... >>>> ** using staged installation >>>> ** libs >>>> test1 is [1] 0.1583112 0.6631700 0.2265564 >>>> test2 is [1] 0.6999799 0.5205237 0.8264029 >>>> test3 is [1] 0.3591798 0.1767392 0.2869383 >>>> >>>> 2. R4.0: Clicking the install button >>>> Rcmd.exe INSTALL --no-multiarch --with-keep.source example-master >>>> * installing to library 'C:/Program Files/R/R-devel/library' >>>> * installing *source* package 'testPackage' ... >>>> ** using staged installation >>>> ** libs >>>> test1 is [1] 0.2091070 0.5411138 0.1051517 >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test2 is >>>> The filename, directory name, or volume label syntax is incorrect. >>>> test3 is >>>> >>>> 3. R3.6: devtools::load_all(".") >>>> devtools::load_all(".") >>>> Loading testPackage >>>> Re-compiling testPackage >>>> - installing *source* package 'testPackage' ... (364ms) >>>> ** using staged installation >>>> ** libs >>>> test1 is [1] 0.93251741 0.03975758 0.57824150 >>>> test2 is [1] 0.8681301 0.4801464 0.9112827 >>>> test3 is [1] 0.430470791 0.008393394 0.341484128 >>>> test1 is [1] 0.68865768 0.05354531 0.91665539 >>>> test2 is [1] 0.19473846 0.60293655 0.09421961 >>>> test3 is [1] 0.90653581 0.12456034 0.09526018 >>>> >>>> 4. R4.0: devtools::load_all(".") >>>> Loading testPackage >>>> Re-compiling testPackage >>>> ? installing *source* package 'testPackage' ... (357ms) >>>> ** using staged installation >>>> ** libs >>>> test1 is [1] 0.00545376 0.30696231 0.68752312 >>>> test2 is [1] 0.1059506 0.7506894 0.8607918 >>>> test3 is [1] 0.5321226 0.6985332 0.7343680 >>>> test1 is [1] 0.7722255 0.3881171 0.5611294 >>>> test2 is [1] 0.5443175 0.8418503 0.3479382 >>>> test3 is [1] 0.7400557 0.3322797 0.6818899 >>>> >>>> >>>> Cheers, >>>> Jiefei >>>> >>>> On Tue, Mar 10, 2020 at 4:11 AM Tomas Kalibera <tomas.kalibera at gmail.com> >>>> wrote: >>>> >>>>> Hi Jiefei, >>>>> >>>>> thanks for your report, but I don't understand from you current >>>>> description what the problem is. Are you saying that "make" shipped >>>>> with >>>>> some recent Rtools is not accepting some forms of PATHs? But, which >>>>> Rtools then, which version of make, how do you run it? >>>>> >>>>> Why are you referring to "R CMD INSTALL" when none of your examples use >>>>> it? Is "R CMD INSTALL" necessary for reproducing the problem, cannot >>>>> you >>>>> just run "make" directly? >>>>> >>>>> Or are you reporting a bug inside R itself? (you are referring to >>>>> specific svn revisions of R). But how could R be involved in this, is >>>>> it >>>>> in how it executes make? >>>>> >>>>> Please provide a minimal but complete reproducible example, please >>>>> provide somehow test files that can be used. Perhaps if you try to do >>>>> a >>>>> little bit of debugging on your end, it might help you to narrow down >>>>> the problem to the point that it will be then easier to understand it. >>>>> For example: if the problem is in "make", it should be possible to >>>>> trigger it directly from the command line, then you could easily try >>>>> with different versions of make and report which ones are the problem.. >>>>> >>>>> Thanks >>>>> Tomas >>>>> >>>>> >>>>> On 3/10/20 8:22 AM, Wang Jiefei wrote: >>>>>> Hi all, >>>>>> >>>>>> Here is a bug(or feature?) that exists at least from R 2020-02-24 >>>>>> r77852 to 2020-03-09 r77919 on Window. Consider this example makefile >>>>> in a >>>>>> package >>>>>> ``` >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *test1=$(shell echo 'runif(3)'|R --vanilla --slave)test2=$(shell echo >>>>>> 'runif(3)'|"C:/Program Files/R/R-devel/bin/R" --vanilla >>>>>> --slave)test3=$(shell echo 'runif(3)'|"C:/PROGRA~1/R/R-devel/bin/R" >>>>>> --vanilla --slave)$(info test1 is $(test1))$(info test2 is >>>>> $(test2))$(info >>>>>> test3 is $(test3))* >>>>>> ``` >>>>>> >>>>>> I have no problem running the file using GUN make or installing the >>>>> package >>>>>> on R 3.6, both give the same result. >>>>>> ``` >>>>>> *C:\Rtools\mingw_64\bin\mingw32-make.exe * >>>>>> >>>>>> >>>>>> >>>>>> *test1 is [1] 0.3427626 0.8027041 0.5611914test2 is [1] 0.9904205 >>>>> 0.3922129 >>>>>> 0.5970083test3 is [1] 0.3469528 0.1993838 0.8434841mingw32-make: *** >>>>> No >>>>>> targets. Stop.* >>>>>> *```* >>>>>> >>>>>> However, on the devel version of R, it cannot recognize both the full >>>>> and >>>>>> short path of R and gives an error >>>>>> ``` >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> *test1 is [1] 0.42686376 0.84126831 0.09538047The filename, directory >>>>>> name, or volume label syntax is incorrect.test2 isThe filename, >>>>> directory >>>>>> name, or volume label syntax is incorrect.test3 is* >>>>>> ``` >>>>>> >>>>>> I found this issue because my package needs to call R functions in the >>>>>> makefile. The code is similar to: >>>>>> ``` >>>>>> * myvar = $(shell echo 'runif(3)'|"${R_HOME}/bin/R" --vanilla >>>>> --slave)* >>>>>> ``` >>>>>> Since *R_HOME *is set to *C:/PROGRA~1/R/R-devel/*, this will result >>>>> in the >>>>>> same error as I mentioned above. I do not know whether this is >>>>> intentional. >>>>>> If so, what is the correct way to call R function in a makefile? >>>>>> >>>>>> Best, >>>>>> Jiefei >>>>>> >>>>>> [[alternative HTML version deleted]] >>>>>> >>>>>> ______________________________________________ >>>>>> R-devel at r-project.org mailing list >>>>>> https://stat.ethz.ch/mailman/listinfo/r-devel >>>>> >>>>> >>>>> >>> >> > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >
Seemingly Similar Threads
- R CMD INSTALL cannot recognize full path on Windows
- R CMD INSTALL cannot recognize full path on Windows
- R CMD INSTALL cannot recognize full path on Windows
- The finalizer of the externalPtr does not work when closing R?
- Help making a simple R code only package