[Rd] compiling R under cygwin
murdoch at stats.uwo.ca
Tue Aug 21 12:52:56 CEST 2007
Denham Robert wrote:
> For various reasons, it suits our workplace to have a cygwin version of
> R. I am pretty sure that cygwin is still not a supported environment
> for R, but we have managed to compile R-2.5.1 under cygwin without too
> many dramas. Our procedure is described below. We still have a few
> problems compiling libraries without manually changing files from .so to
> .dll, but it seems ok.
I would expect other subtle problems as well, because Cygwin is not a
normal Unix. I don't know whether any of these differences matter to 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 Windows format
- 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 be useful to
> others, and if we should spend any time looking in to ways in which the
> configure/build/install code could be modified to allow a standard
What is the advantage of building this? I don't think we want to
support platforms just for the sake of supporting more platforms, but if
there's a real need for it, that would be different.
> 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 \
> comment out Win32 in src/include/config.h and set Unix to 1, change .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 on end and
> 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. add -lg2c and
> -lblas to lapack
> comment out library/base/R/library.R lines 47-51 to avoid arch check
> which seems to go wrong!
> make -j2
> make install
> edit /opt/freeware/R/R-2.5.1/lib/R/etc/Makeconf and add '-lintl -lg2c
> -lblas' to the end of ALL_LIBS
> so the module building works. Change .so to .dll also
> (can't see how to to this for the build 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 attachments is
> intended only for the person or entity to which it is addressed
> and may contain confidential and/or privileged material.
> Any form of review, disclosure, modification, distribution
> and/or publication of this email message is prohibited, unless
> as a necessary part of Departmental business.
> If you have received this message in error, you are asked to
> inform the sender as quickly as possible and delete this message
> and any copies of this message from your computer and/or your
> computer system network.
> R-devel at r-project.org mailing list
More information about the R-devel