-----Original Message-----
From: Gabor Grothendieck [mailto:ggrothendieck at gmail.com]
Sent: Thursday, August 23, 2007 4:01 PM
To: Latchezar (Lucho) Dimitrov
Cc: r-devel at r-project.org
Subject: Re: [Rd] compiling R under cygwin
Having it be the same under cygwin as it is for other UNIX
systems would be ok but for the native Windows port R should
behave like other Windows applications, not like UNIX applications.
On 8/23/07, Latchezar (Lucho) Dimitrov <ldimitro at wfubmc.edu> wrote:
-----Original Message-----
From: r-devel-bounces at r-project.org
[mailto:r-devel-bounces at r-project.org] On Behalf Of Prof Brian
Ripley
Sent: Thursday, August 23, 2007 2:54 AM
To: Denham Robert
Cc: r-devel at r-project.org; Duncan Murdoch
Subject: Re: [Rd] compiling R under cygwin
On Thu, 23 Aug 2007, Denham Robert wrote:
I think it is only courteous to mention some good reasons
to take up people's time.
Some of the reasons we would like a cygwin version aren't
good reasons. We have been using cygwin for sometime,
with scripting in a combined windows/unix environment.
setup which allows windows users to run many scripts in the
as unix users. These scripts are often python or shell
have R installed on the unix machines, and the system
would like to be able to have R on windows in the same
This set up also means that the administrator can fairly easily
maintain the version of software used on all user's machines.
Probably this could all be managed and still use the native
windows version of R, but the administrator is familiar with
cygwin
could manage this software in the same way they manage
other packages.
Yes, it could almost certainly be done with Rterm.exe.
The issue I came across was the so-called 'posix file paths'
that Cygwin uses. Most (but not all) Windows programs
paths with / as the path separator, and most (but not
Cygwin programs accept paths of the forn c:/path/to/file. So
provided you use that as your format, interworking with Unix and
Unix-like shells work fine. It used to be the case that
just one drive C: then Cygwin programs produced paths of the form
/path/to/file that also worked on Windows. Now they produce
/cygdrive/c/path/to/file that works nowhere else.
I'm not sure what you mean by "produce" above but one can
(by mount option) cygwin to use "/" instead of "/cygdrive/" so that
your example above will become "/c/path/to/file". That's if
on using drive letters. Otherwise w/ proper mounting (in
can have "usual" *nix dir tree.
Regards,
Latchezar
PS. I really like the idea of having (the same) bare
window interface to R anywhere as well as anything else (like admin
tasks above) to be the same. So please put my vote (if you care) to
have R Windows installation look the same as *nix (up to the point
when you start R from Start button to have terminal version started
instead of Rgui as it is now) and keep GUI candies separately for
whoever wants/needs them. Sorry if that's been already done
In general this is a minor nuisance, but I needed to be able to
cross-build R in an environment where I only have Cygwin-based
cross-compilers, and there the path issues bit
me: I needed a version of R that accepted and returned
paths. So I made the configure changes necessary to
Cygwin, and had it running in 20 mins.
We would like to be able to use linux machines on pc's but
unfortunately we have restrictions imposed on us that
This restriction also goes as far as the use of virtual
personal preference would be to run linux on my work
virtual machine to run windows software, such as ArcGIS and
that are not available for linux. This does not seem to be
One thing I was interested in was knowing if there are
would like a cygwin version. From the replies to my post,
search of the mailing list archive, I think that there
demand for this. We would, however, be prepared to help in
for the few people who are interested.
As I said earlier, it builds out of the box in R-devel (with
suitable options documented in the R-admin manual). No
that it will continue to do so unless tested in the
though. As no other platform we use nowadays requires
objects/dynamic libraries have all imports satisfied at
this is liable to get broken.
But I would encourage people to use Rterm.exe if it can
Robert Denham
Environmental Statistician
Remote Sensing Centre
Telephone 07 3896 9899
www.nrw.qld.gov.au
Department of Natural Resources & Water QScape
Road, Indooroopilly Qld 4068
-----Original Message-----
From: Prof Brian Ripley [mailto:ripley at stats.ox.ac.uk]
Sent: Tuesday, 21 August 2007 9:53 PM
To: Duncan Murdoch
Cc: Denham Robert; r-devel at r-project.org
Subject: Re: [Rd] compiling R under cygwin
Yes,
What is the advantage of building this?
was my question too. If you want a Unix-like version
hardware running Windows why not run a Unix-like OS under a
virtual machine?
Quite a lot of the details are wrong: using FLIBS,
intended will solve most of the problems. I would use
--disable-nls --disable-mbcs as you don't need them (and in
particular you don't benefit from MBCS support on
Note that 2.5.1 is released and there is unlikely to be a
changes would be made only to R-devel. It there is a
tailor a build for Cygwin there we can probably do so
the need for ongoing support would be a worry.
(If platforms are not used and in particular not tested in the
alpha/beta testing phases then the ability to build on them
crumbles away. We seems to be down to regular testers on Linux,
X, Solaris and FreeBSD, with some help on AIX after a patch
On Tue, 21 Aug 2007, Duncan Murdoch wrote:
I think it is only courteous to mention some good reasons
it suits our workplace to have a cygwin version of R. I am
pretty sure that cygwin is still not a supported
have managed to compile R-2.5.1 under cygwin without too
Our procedure is described below. We still have a
compiling libraries without manually changing files from
I would expect other subtle problems as well, because
normal Unix. I don't know whether any of these
R, but some things to look out for are:
- you can't unlink a file while it is open
- filenames are not case sensitive
- file permissions have strange defaults (everything is
executable)
- I think the executable format still needs to be
- There's no such thing as a ptty
- You'll probably need X11 for graphics, and will lose support
for Windows metafile output (wmf)
I was wondering whether this information is likely to
to others, and if we should spend any time looking in to
the configure/build/install code could be modified to allow a
standard install.
What is the advantage of building this? I don't think
support platforms just for the sake of supporting more
if there's a real need for it, that would be different.
Duncan Murdoch
Notes on building R under cygwin:
export FFLAGS=-O3
export CFLAGS=-O3
export CXXFLAGS=-O3
export OBJCFLAGS=-O3
export FCFLAGS=-O3
export LDFLAGS='-lblas -lg2c -lintl'
export R_OSTYPE=unix
./configure --prefix=/opt/freeware/R/R-2.5.1 \
--with-tcl-config=/usr/lib/tclConfig.sh \
--with-tk-config=/usr/lib/tkConfig.sh \ --with-blas=-lblas \
--with-lapack=-llapack \ --enable-R-shlib
comment out Win32 in src/include/config.h and set Unix to
.so to .dll. change .so to .dll and in Makeconf.
in src/extra/xdr/rpc/types.h comment out defn of malloc.
Change .so to .dll in Makefile's
edit Makeconf and set R_OSTYPE to unix
make -j2
when blas doesn't link, re-run command with -lblas -lg2c
change output to .dll
edit Rstrptime.c and change wcstod to atof.
in modules:
when X11 and internet falls over add -lintl to link line.
and -lblas to lapack
comment out library/base/R/library.R lines 47-51 to avoid
which seems to go wrong!
make -j2
make install
edit /opt/freeware/R/R-2.5.1/lib/R/etc/Makeconf and
-lg2c -lblas' to the end of ALL_LIBS so the module
Change .so to .dll also (can't see how to to this for
tho...)
Our cygwin info is:
sysname release version
"CYGWIN_NT-5.1" "1.5.20s(0.155/4/2)" "20060527 19:21:22"
Robert Denham
Environmental Statistician
Remote Sensing Centre
Telephone 07 3896 9899
www.nrw.qld.gov.au <http://www.nrw.qld.gov.au/>
Department of Natural Resources & Water QScape Building, 80
Meiers Road, Indooroopilly Qld 4068
********************************************************************
*** The information in this email together with any
is intended only for the person or entity to which it is
may contain confidential and/or privileged material.
Any form of review, disclosure, modification, distribution
and/or publication of this email message is
as a necessary part of Departmental business.
If you have received this message in error, you are asked
the sender as quickly as possible and delete this message and
any copies of this message from your computer and/or your