I'm not convinced direct linking will work better on Mac OS X, unless
you ship libpng and libjpeg with Wine.

And libgnutls (plus prereqs libgpg-error & libgcrypt). And libgphoto2, libexif, libtiff, libgsm, libjbig... - there's a laundry list of libraries that are required for a full-featured Wine install, and prereqs of prereqs, prereqs of THOSE. You get the point. Static libraries on Mac OS X/Darwin also misbehave in odd ways that you simply don't see with dylibs as well.

I package all of these up with osxwinebuilder, building shared libs from source, and it's a bit tricky. Things fail in unforeseen ways if a user's modified their environment. I had an issue this morning where libghoto2 was failing for version 2.4.9+, but working for anything older. Turns out that GD had been installed into /usr from source on Leopard, the user upgraded to Snow Leopard (which broke a few of GD's reqs), and libgphoto2 2.4.9+ now checks for GD, which it found, mysteriously breaking the compile. Had GD been compiled statically, it may have worked - or not. But that's not something I (or Wine) check for, just something I didn't consider until today when a prereq broke.

Wine really wants to map and use share libraries like they're supposed to be used: dynamically, when a module needs them. Pain in getting to that point on Macs is one reason there's not a binary Wine package available; licensing and binary distribution questions/methods is another. Static libraries may be a quick workaround, but ultimately full shared library coverage for all prereqs on all supported platforms is the way to go.

If you want a bad example, take a look at GSM. configure simply won't work with/find a static libgsm on OS X, but a manually-built dylib works just fine from what I can glean. The fact that the distributor (s) don't include an easy method for building shared GSM libs on OS X made this a little tricky to workaround IMO. But it's doable.

Kind of ranting. Let me know if clarification is needed on any point. Standard Wine on OS X may not work in a Mac user-friendly way, but it works very well if you just forego a GUI, have good prereq coverage and use it from the terminal. That's good enough for me! -r


Reply via email to