- Most packages we ship either don't build dynamic libraries or dutifully ignore the request to build them.
- Some put them into $PREFIX/bin instead of $PREFIX/lib. pari isn't the only one example, there are more.
- Some prefix the DLL with cyg instead of lib. I assume that it is to avoid name clashes with "native" Windows Dlls, but if you are stupid enough to put $CYGWIN/lib into your %PATH% my position is that you deserve the pain that is sure to follow.
- Most do not create proper def files for imports.
- Naming is woefully inconsistent: .a, .dll, .so, .dll.a and so on.
- they build properly on Cygwin
- they build shared libraries at all
- they created proper def files
- they put them into the right place.