This document should be used in conjunction with the main documentation.
This is all portable 32 bit C code.
The source has recently been compiled on OS/2 using VisualAge C++ 3.0 (with CTC306, CTD302 and CTU304), Win32 using Visual C++ (version 4.0, 4.2, 5.0 and 6.0), 32 bit DOS using Watcom C/C++ version (10.6 and 11.0b) + CauseWay 1.3, AIX using xlc, and Linux using gcc 2.7.2.3 and egcs.
It should port to any modern 32 bit platform easily enough.
When you unzip the source package, you get a directory full of platform independant source files, and a few subdirectories containing platform dependant files. So your first step before building should be to copy the appropriate subdirectory into the main directory. eg: when building OS2
copy os2 nmake
The platform dependant files are basically just makefile
s,
and the configuration file for the JPEG source.
The UNIX makefile
supports a variety of different UNIXes.
By default it supports Linux, but can be made to work on other UNIXes
such as AIX, HP-UX and SunOS by invoking GNU make with a macro defined.
eg: to make for HP-UX :-
make HP=1
On platforms which don't support ifdef
etc. in their make
programs (like GNU make does), you can use my Make Pre-Processor script,
called mpp
, to produce a suitable makefile
.
mpp
is just a little awk
script which evaluates
ifdef
s.
It is available from my home page.
eg:
mpp makefile HP > makefile.HP make -f makefile.HP
To build with JPEG support, you need the Independant JPEG Groups library version 6a installed in a directory somewhere.
You then edit/check that the makefile you are using references this
directory correctly.
There is a make variable called IJG
which must point to the
correct directory.
On UNIX, use of this directory is indicated by passing JPEG=1 to make.
On PCs, you uncomment the IJG
definition to make it active.
When building with JPEG support, the build process works by copying
a shrunk down makefile
called makeijgo
to
wherever the IJG 6a is installed, and also a configuration file.
It then builds the library using compiler switches suitable for
building objects which are to be a part of the main GBM library.
So, to build GBM for AIX, with JPEG support, assuming that IJG points
to a suitable directory, remembering that vanilla make
on AIX
doesn't support ifdef
:-
mpp makefile AIX JPEG > makefile.AIX make -f makefile.AIX