Static (really static!) build

Post here to shower the ImageMagick developers with praise or discuss how you could have done a better job if you developed ImageMagick. Or talk about how Photoshop is better than ImageMagick. Even complain about how no one answered your postings in the Users forum. Venting and musings welcomed here.
Post Reply
daneyul
Posts: 7
Joined: 2003-08-27T15:37:02-07:00

Static (really static!) build

Post by daneyul »

Since the forum title mentions rants...

The lack of support for creating a static (portable) ImageMagick build is frustrating. Instructions on getting the delegates together to actually build working, non-dependent binaries is a horribly documented, error-prone mess. For example, trying to build Universal binary versions for OSX that don't call out for shared libraries for various delegates is nigh impossible--at best a frustrating, trial and error pain in the ass. Take your pick of the various contradictory instructions out there--build each delegate static in its own named sub-folder, then roll the dice on what arguments are needed (disable-dependency-tracking? disable-installed? what prefix to use?) and maybe you'll get a build that works as a static build after 6 hours of screwing around. It shouldn't be this hard, but it is--just google all the frustrated users out there attempting it (and usually giving up).

Considering that many users need to use these utilities in stand-alone setups that can be easily distributed, official, step by step, up to date, working instructions should be available that include all commonly used delegates.
User avatar
anthony
Posts: 8883
Joined: 2004-05-31T19:27:03-07:00
Authentication code: 8675308
Location: Brisbane, Australia

Re: Static (really static!) build

Post by anthony »

Now I have never built or even had an inkling to want to build a static IM but I can see the need for specialised versions of IM. However I have been compiling programs long enough to know the problems. I mean I first started compiling programs before the idea of having shared disk pages libraries was reality.

The problem is the number of delegate libraries that ImageMagick uses. Unless all those libraries are also available with static '.a' versions a real and true static build is basically imposible. Actually these days a static build like that is also generally not wanted either, as those other libraries are generally shared by other programs as well.

If everything was static you would never have enough disk and memory to hold everything that even a basic system now provides. Also an update of one library (for a bug fix) would result in having to re-compile every program dependant on that library, and believe me having needed to to that my youth is not a fun way to spend a week!

So basically it comes down to exactly what you want to use Imagemagick for, and what image file formats you are willing to restrict it to. And that is very dependant on you project needs. This is why there are so many different instructions, because every project has a different requirement.

That is not to say a 'really' static build isn't possible, you just need to think about how far you want it to go.
Anthony Thyssen -- Webmaster for ImageMagick Example Pages
https://imagemagick.org/Usage/
Post Reply