Subject: Re: bug#15831: Absolute library paths with Cygwin + MSVC cl

From: Peter Rosin <[email-masked]>
Date: Sat, 09 Nov 2013 11:16:48 +0100

On 2013-11-09 04:12, Tony Kelman wrote:
>> I also notice that libCoinUtils.la appears to unfold into
>> libCoinUtils.lib which seems a bit strange, I would have expected a
>> straight CoinUtils.lib instead (no lib prefix), not that I think it
>> matters as long as it's consistent. But how was libCoinUtils.la
>> produced? Is it a libtool convenience library, or an ordinary library?
> 
> It's a libtool convenience library. Produced by usual automake process.
> https://projects.coin-or.org/CoinUtils/browser/trunk/CoinUtils/src/Makefile.am#L11

Ok.

>> Screeech. Stop. Wait a minute. You have not wrapped cl with the
>> 'compile' script (from Automake). The above suggestion will not
>> work if you don't, I just assumed that it already was in the mix.
>> My bad. The easiest way to add that script to the project is to add
>> AM_PROG_CC_C_O to configure.ac (after AC_PROG_CC). Since this is
>> C++, you will then have to manually say CXX="/path/to/compile cl"
>> when you configure. Sorry for not noticing earlier.
> 
> Aha, that compile script seems much more useful these days than it was
> back in automake 1.9.6, which is what COIN-OR has been using for too long.
> That works in my tests so far, sorry for wanting libtool to do a job that
> a different tool already handles. It looks like using the compile script
> should simplify matters and allow the COIN-OR folks to get rid of many of
> their custom macros. I'll let them know they should transition to using
> it as part of moving to newer autotools.

Yes, the cl side of 'compile' is new since Automake 1.9.6 (8 years old)...
One thing that's still missing is that there is no trigger for it when
using C++.

I'm mostly responding here to hint that there is nothing stopping you
from shipping a recent 'compile' script even if you bootstrap with
Automake 1.9.6, in case there are other reasons that prevent an
Automake upgrade. Or you can just have a private copy of a recent
'compile' script in case it's not feasible to ship a recent 'compile'
script within the project for some political reason.

You might also be interested in the 'ar-lib' script and the AM_PROG_AR
macro that does to lib.exe what 'compile' does to cl, sort of. But
I don't know if you build any old static libraries w/o help from libtool.
Probably not, but just in case...

Cheers,
Peter