PBMPLUS FOR OS/2 2.0
brought to you by Michael Caldwell ([email protected]
the one who ported GNU e?grep 1.5 to OS/2 1.x and Windows NT.
GNU e?grep for OS/2 1.x is available on Exec-PC.
GNU e?grep for Windows NT is available on Compuserve MSWin32 forum.
I have not been able to use the MSDOS version of pbmplus under OS/2 1.3
or OS/2 2.0, it causes OS/2 1.3 to hang and it causes an OS/2 2.0 VDM to
trap. So I have ported pbmplus (10dec91) to OS/2 2.0 using gcc 2.1.
I have modified the makefiles, the library files, the tiff library files,
and of course the configure items in 'pbmplus.h'.
I had to shorten the file names for the tiff library because I'm using
nmake. This wasn't necessary for the pbmplus files because inference rules
don't have the 8.3 limitation, I've reported the 8.3 limitation on
description blocks as a bug to IBM.
I had to change the use of malloc with DosAllocMem for the dll source
code. The libc library malloc function only works when linked in an
executable and will always fail when linked in a dll. I've tried
reporting this bug to the GNU people at MIT, but they don't know about the
OS/2 port. And I cannot find the name of somebody to report this to in
any of the text files that came with gcc for OS/2.
I created .def files for the dlls and the exes.
The libraries are dlls with the nonshared data attribute set.
The dlls import functions from other dlls, so you have to have all the
dlls including the tiff library dll in your libpath.
Gcc 2.1 took 30MB of swap file space (in addition to the normally 10MB size
of my 'swapper.dat' file) on a machine with 16MB physical RAM to compile
the 'tif_fax3.c' file in the tiff library, probably because of the global
data defined in 'g3states.h'. Needless to say it took 20 minutes on my
486-33 to compile that one file while it THRASHED! my 400MB hard disk.
I haven't done very much testing, I'm leaving that up to you.
I did try giftoppm and ppmtotga, Graphics Workshop for Windows requires
-name and/or -norle when converting to tga. I used both but one or the
other might have been enough. The tga was very green I'm not sure if its
because I used the -rgb option.
If you find a bug like OS/2 cannot find a function, let me know, it means
I've mispelled it in a .def file and therefore not exporting it.
I've included the files that I've changed in case you want to fix a bug
To build the tiff library using the supplied make file:
Rename all files that begin with 'tif_' by removing 'tif_' ('ren tif_* *'
does not work, you have to do it manually).
Rename 'tiffcompat.h' to 'tiffcomp.h'.
Change 'tiffiop.h' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'compat.c' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'mkspans.c' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'fax3.c' to include 'fax3.h' not 'tif_fax3.h'.
Change 'fax4.c' to include 'fax3.h' not 'tif_fax3.h'.
Change 'ccittrle.c' to include 'fax3.h' not 'tif_fax3.h'.
And then copy the files I've changed.
Michael Caldwell ([email protected]