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

From: Duncan Murdoch <>
Date: Wed, 11 Nov 2009 22:06:17 -0500

On 11/11/2009 8:03 PM, Cameron Bracken wrote:

> On Wed, Nov 11, 2009 at 5:15 PM, Duncan Murdoch <> wrote:

>> On 11/11/2009 6:49 PM, Cameron Bracken wrote:
>>> On Wed, Nov 11, 2009 at 4:36 PM, Duncan Murdoch <>
>>> wrote:
>>>> On 11/11/2009 4:41 PM, Cameron Bracken wrote:
>>>>> I am developing a package
>>>>> ( 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 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
>> 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
> Thanks for the feedback, I agree that would be the easiest and
> preferable way.  But which version of ming are you using that only has
> a makefile? The version I need (0.4.0 beta5) has a fairly involved
> configure script.  I would have to pick out the components I need for
> my package and create a custom makefile for it to be easily usable
> (which I may end up doing, thank goodness for open source).

I was looking at ming-0.2a. It might not be the same library at all!

Duncan Murdoch mailing list Received on Thu 12 Nov 2009 - 03:09:25 GMT

This archive was generated by hypermail 2.2.0 : Thu 12 Nov 2009 - 03:30:23 GMT