Directory structure
The GBM source is divided into a set of directorys, each of which
defines a sub-project :-
.
- Bits from elsewhere, included to make source complete.
scroll.*
is a pre-built OS/2 2.x PM scroller control.
.\gbm
- Fully portable 32 bit C code that provides most of the functionality.
Provides librarys to perform file I/O, error-diffusion, halftoning,
colour reduction, reflecting, rotating, transposing, scaling and cropping.
.\gbmv
- Simple 32 bit OS/2 PM bitmap viewer. Simply provides application
whose client displays a bitmap.
.\gbmdlg
- Provides a derivation of WinFileDlg, which is designed to
allow the user to specify the file for loading or saving.
Has additional entryfield for "Bitmap specific options".
Has "Bitmap", "GIF", "PCX" etc. in the Filetypes combo box.
Includes help source to generate accompanying help text.
.\gbmv2
- Sophisticated 32 bit OS/2 PM bitmap viewer with menu and dialogs
to give access to bitmap manipulation tools. Full help.
.\gbmvfsa
- OS/2 Full Screen animation viewer using 320x200 8bpp VGA mode.
Written using the almost documented Vio calls.
.\gbmlogo
- Tool to make
VRAM0.DAT
, VRAM1.DAT
,
VRAM2.DAT
and VRAM3.DAT
for feeding into
MAKELOGO.EXE
as supplied on Developer Connection CD 6.
MAKELOGO.EXE
makes VRAM.DAT
which can be copied
over hidden file \OS2LOGO
on the boot drive, to change the
boot screen.
Input to GBMLOGO.EXE
should be a 640x400 bitmap.
The sub-projects should be built in the order listed above, because
later sub-projects use headers/librarys etc. from the earlier ones.
If a makefile
uses stuff from another directory, it accesses
it via a make variable defined at the start.
In this way, if I move a directory, I need only change a line at the top of
a makefile
.
In fact the source is supplied with makefile
s that work on
my machine.
So you may need to edit the makefile
s and change the following
lines to :-
SCROLL = place where . directory unzipped to
GBM = place where .\gbm directory unzipped to
GBMDLG = place where .\gbmdlg directory unzipped to
IJG = place where IJG 6a library source is, typically \jpeg-6a
If you comment out the definition of IJG
, then the GBM
source doesn't know where the JPEG stuff is, and so builds a version
without JPEG support.
Compiling a given platform
Many of the directorys listed above have a platform specific sub-directory.
Simply arrange to copy the platform specific sub-directory(s) to the main
directory before building the main directory(s).
eg: to build the main gbm
directory for Windows NT :-
cd gbm
copy win32
nmake
JPEG support
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.
This documentation is written and maintained by the GBM author,
Andy Key
nyangau@interalpha.co.uk