Release Notes
--------------
This version of the library has been tested under the following OS:
- RedHat Linux 7.3, 8.0 and 9.0
- Fedora Core 2
- SuSE Linux Enterprise 8 and SuSE 9.0.
- Debian 4

You *do not* need to have any other third party library (libjpeg, libpng, libtiff, libmng and zlib) 
installed on your /usr/lib directory in order to compile and use the library. 
FreeImage uses its own versions of these libraries. This way, you can be sure that FreeImage will 
always use the latest version of each third party library.

The FreeImage makefile makes use of the gcc "-fvisibility=hidden" in order to avoid incompatibilities between 
internal third party libraries and the OS libraries. You may have to remove this option if you're running an 
old version of gcc. See also http://gcc.gnu.org/wiki/Visibility

You should be able to link progams with the -lfreeimage option after the library is compiled and installed. 
You can also statically link with libfreeimage.a.
If you use a really old version of gcc and it chokes on the CRs in the file, you can type 'make dos2unix'
to run all of the files through dos2unix which converts CRLF to LF.  This no longer appears to be required
for RedHat 7.3 or 9.

Please let me know how this works for you under other Linux distributions or any other *nix.

Herve Drolon
FreeImage Project Manager

Installation
------------
Note: You will need to have root privileges in order to install the library in the /usr/lib directory.
The installation process is as simple as this : 
1) Enter the FreeImage directory
2) Build the distribution : 
make
make install
3) Clean all files produced during the build process
make clean

Compiling FreeImagePlus
-----------------------
FreeImagePlus is a C++ wrapper for FreeImage. 
To compile FreeImage as a C++ library, follow these steps : 
1) Enter the FreeImage directory
2) Build the distribution : 
make -f Makefile.fip
make -f Makefile.fip install
3) Clean all files produced during the build process
make -f Makefile.fip clean

