gltut / FreeImage / README.solaris

Release Notes
Hey folks, 

I just went through the process of building and using the freeimage library
on Solaris 9.  Things don't work out of the box so I thought I would share my
experiences in case someone else wants to do the same.

I'm using Solaris 9, and I have installed all the development libraries, make,
and the gcc 3.3.2 found on

You have to use the make from sunfreeware because the Solaris 9 make program
chokes hard on FreeImages makefiles.

First thing I had to do was modify the main FreeImage makefile:

1. go to the $(SHAREDLIB): line and replace the $(CC) line with the following.
(there are 2 corrections)

$(CC) -s -G -Wl,-soname=$(LIBNAME) -o $@ $(MODULES) $(LIBRARIES)

The two changes are -G instead of -shared, and the = sign instead of a comma
after the -soname.

2. change INSTALLDIR = /usr/lib to INSTALLDIR = /usr/local/lib

This is because the sunfreeware tools assume the libs being built will reside
in /usr/local/lib and thus set the default linker search paths to that.  Another
solution for this would be to use the -R and -L linker options, but I chose
the easy way :)

That's it!  You can now use freeimage.   

Also, if you have an autoconf/automake project that links against FreeImage,
you can use the following in your, it works rather well for me:

AC_CHECK_LIB(freeimage-3.5.0, FreeImage_Initialise, [],
                                 [AC_MSG_ERROR([ required and missing. See]) ])

the AC_CHECK_LIB macro will not only find the library, it will automatically
link against it as well so you dont have to add it to your

I hope this helps someone!

ogtharox at

Note: You will need to have root privileges in order to install the library in the /usr/local/lib directory.
The installation process is as simple as this : 
1) Enter the FreeImage directory
2) Build the distribution : 
make -f Makefile.solaris
make -f Makefile.solaris install
3) Clean all files produced during the build process
make -f Makefile.solaris clean

Release Notes for Solaris/Sparc
Under Solaris/Sparc, you will need to modify the following line : 
modified into