What you need before you can start building ProtoGen/HL7

There are several programs that you need if you want to run ProtoGen/HL7. I am sorry for your inconvenience, but I did not have the time to remove the dependencies on the following particular program versions:

GNU make is required if you want to get at least somewhere and so is GCC/G++ at the moment. I did not spend any time to care about other C++ compilers, and I made use of GCC/G++ extensions. The FTP site next to you has all the fine GNU programs available. GCC/G++ is ported to all of the common Unix machines, OS/2 and even MS-DOS (BTW: a staring point for a port to DOS). It is save to use the GNU versions of `sed' and `awk' as well, since there are slight differences between implementations of `sed' and `awk' that already caused me some trouble.

SWI-Prolog is needed if you want to build or run the `protogen' program for it is a prolog program. The prolog code might be portable to other Prolog systems which follow the Edinburgh standard. Notably Quintus Prolog could do. However, I am not able to do this job, since I don't have any other Prolog system available. SWI-Prolog is a neat Prolog system and it is free. Please consult `archie' for a FTP site that has SWI-Prolog (it's home is If you only want to use the HL7 class library, you can go with the ready made source code, that is included. However, this is of limited use if you need to adjust the HL7 standard to your local customs. ProtoGen/HL7 allows you to make changes to the standard and define Z-Segments quite easily. Without Prolog and thus without `protogen' you'll miss this feature.

Don't experiment with versions other than 2.1.0, especially you won't be happy with a newer version!

PLEASE NOTE: You must apply the patch gen/pl/pl-2.1.0.diff to your SWI-Prolog sources if you use versions > 2.0!

The gdbm-1.7.3 library is used through the odbm interface for the class Unit. It might well work with ndbm, but I didn't try to use it. If you refuse to use gdbm, you'll only have to modify support/odbm.h (compat/mkdb can still be ignored).

PLEASE NOTE: The include file gdbm.h is not yet C++ clean, thus there is a little patch included in support/gdbm.diff that will fix this. You can apply it even to an already installed gdbm package, since it doesn't affect the library, just the include file.

If you want to use the client/server example programs that are included in this package, you will need the socket++ library by Gnanasekaran Swaminathan. It is an iostream extension library. As everything I used, this is freely available software.