Re: [Rd] Building package under windows which links against a cygwin library

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Wed, 11 Nov 2009 19:15:09 -0500

On 11/11/2009 6:49 PM, Cameron Bracken wrote:
> On Wed, Nov 11, 2009 at 4:36 PM, Duncan Murdoch <murdoch_at_stats.uwo.ca> wrote:

>> On 11/11/2009 4:41 PM, Cameron Bracken wrote:
>>> I am developing a package
>>> (http://r-forge.r-project.org/projects/swfdevice/) which links against
>>> the ming C library. The package builds fine under Mac OS X and Linux.
>>> I am really out of my element on windows, but I know there is a cygwin
>>> package for libming.
>>>
>>> My question is, does anyone have advice/examples on linking R packages
>>> against cygwin libraries?  Is this even possible?  How would I go
>>> about writing a configure.win script to do this?
>> I suspect it's not going to work.  Linking to any Cygwin library will pull in the rest, and I would guess that will conflict with something else in R, which does not use Cygwin.
>>

>
> I figured that would be the case.
>
>> What you could do is include a copy of the source to the ming library, and get the regular R compilers to compile it.  I just tried, and it compiled without errors (though there were a few warnings).  Then you can write your R interface to it, and everything may just work.

>
> Hey, that is great! I thought about doing this but decided arbitrarily
> that it would be too hard. Do I just plop a copy of the ming source
> in the src/ directory of my package (then adjust Makevars
> accordingly)? Did you run the whole ming configure script as well?

I just ran make. I don't think there is any configure script.

I'd probably put their stuff in a subdir of src, just to keep it cleanly separated from yours. This also gives you the option of *not* compiling it on systems like Linux and MacOS that already have it. Then make up a Makevars.win file that builds it as a static or dynamic lib on Windows and links to it, and a Makevars file that just links to it on other platforms. (You might want to do a static compile on the other systems just so you're protected against version changes.)

Duncan Murdoch



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Thu 12 Nov 2009 - 00:18:10 GMT

This archive was generated by hypermail 2.2.0 : Thu 12 Nov 2009 - 02:20:23 GMT