[Rd] Help with Windows build

Duncan Murdoch dmurdoch@pair.com
Sat, 03 Nov 2001 13:59:06 -0500


I'm trying to do a Windows build of Ray Brownrigg's port of the maps
library, and running into some problems.

There's a makefile for the shared library.  I suspect that I just need
to change that to get it right, and everything will build properly,
but I'm running into trouble.  Here's the original makefile, along
with my comments about changes:

>SRC= mapget.c mapproject.c thin.c
>OBJ= mapget.o mapproject.o thin.o
>CFLAGS=-I$${R_HOME}/include

The include directory changed to ${R_HOME}/src/include.

>#end machine-dependent stuff
>
>all: maps.so world.cities.s

maps.so changed to maps.dll

>        echo 'source("world.cities.s")' | R --nsize=512K --no-save

R changed to Rterm
>
>maps.so: $(OBJ) projections
>        R SHLIB -o maps.so maps_i.o $(OBJ) proj/*.o

maps.so changed to maps.dll.

This line is giving me the most trouble.  I suspect the problem is
that since proj/*.o is being expanded into 33 files, the command line
is too long for Windows.  Is there a way to build a DLL with lots of
files in it without causing problems?

Here's the error I get:

>>  making DLL
>>make[2]: Entering directory `/cygdrive/d/stuff/r/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o proj/*.o
>>Bad command or file name

When I leave off proj/*.o, I get a different error:

>>  making DLL
>>make[2]: Entering directory `/cygdrive/d/stuff/r/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o
>>make[3]: Entering directory `/cygdrive/d/stuff/R/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o
>>make[4]: Entering directory `/cygdrive/d/stuff/R/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o
>>make[5]: Entering directory `/cygdrive/d/stuff/R/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o
>>make[6]: Entering directory `/cygdrive/d/stuff/R/maps/src'
>>Rcmd SHLIB -o maps.dll maps_i.o mapget.o mapproject.o thin.o
>>make[7]: Entering directory `/cygdrive/d/stuff/R/maps/src'

Eventually this crashes.
>
>projections:
>        (cd proj; make)
>        touch projections

Any help would be appreciated!

Duncan Murdoch
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._