I want to use DCMTK on Unixware. Is there anything I should know about?
Yes, we received many useful remarks about compiling DCMTK on Unixware from Wolfgang Rapp <w1 dot rapp at von dot ulm dot de>.
- If you want your Unixware binaries to run on all Unixware 2.x systems, you should compile on Unixware 2.0.x. Compiling on 2.1.x will result in binaries that are not backwards compatible with 2.0.x.
- The following lines will configure DCMTK for Unixware and the standard CC (the examples are for csh, change appropriately for use with sh):
setenv LD_RUN_PATH /opt/lib
setenv CFLAGS -I/usr/include -I/opt/include -I/usr/X/include -I/usr/ucbinclude
setenv CPPFLAGS -I/usr/include -I/opt/include -I/usr/X/include -I/usr/ucbinclude
setenv LIBS -L/opt/lib -lsocket -lnsl -L/usr/ucblib -lucb
- Configure may be unable to find the system functions memcmp, memcpy and memset. You should make sure that the file "config/include/config.h", which is created during the configure process, contains:
#define HAVE_MEMCMP 1
#define HAVE_MEMCPY 1
#define HAVE_MEMSET 1
- The Makefiles generated by configure require GNU Make. This is available for Unixware in pkgadd format at ftp://ftp.freebird.org/
And here some comments for more advanced users:
- DCMTK on Unixware requires some BSD functions from "/usr/ucblib/libucb.a" and some include files from /usr/ucbinclude. At least on Unixware 2.0.3 you should be careful because readdir() in libucb.a is known to be defective and there are conflicts between the /usr/include and /usr/ucbinclude versions of stdio.h, unistd.h and strings.h
- All versions of libtool for Unixware (at least up to version 1.2) are unable to generate shared libraries. A patch for libtool is available on request from Wolfgang Rapp <w1 dot rapp at von dot ulm dot de>.