Prev Up (Under construction)


DICOM Toolkit, comprising various command line tools.

Compilation (V3.5.4/3.6.1)

AIX >=5.2, xlC >=6

  1. In config/config.guess higher AIX versions should be enabled:
  2. In dcmjpls/libcharls/lltraits.h modify
       #if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__xlC__)
  3. in ofstd/include/dcmtk/ofstd/offile.h modify:
       #if defined(EXPLICIT_LFS_64) && ! defined(__MINGW32__) && ! defined(__xlC__)
    in all #if branches where tmpfile64 is referred to (doesn't exist on AIX).
    Furthermore, in dcmimgle/include/dcmtk/dcmimgle/diinpxt.h, dcmimgle/include/dcmtk/dcmimgle/discalet.h remove/outcomment the static keyword from the function declarations, e.g.:
       /*static*/ inline Uint8 expandSign(const Uint8 Value,
  4. In ofstd/libsrc/ modify
       #elif defined(HAVE_THREAD_H) && defined(HAVE_SYNCH_H) && ! defined(_AIX)
    otherwise the compilation would erroneously choose the Solaris branch (thread.h and synch.h exist on AIX as well)
  5. In config/ modify
       TRASH = *~ *.bak core
    (otherwise the #-sign will confuse).
  6. In dcmwlm/data/ remove -maxdepth=1, this option does not exist for the find command.
  7. Then:
                 # configure doesn't handle multiple items correctly, thus:
       export LDFLAGS="-L/bio/local/lib -ljbig -llzma -liconv"
                 # if previously configured, cleanup everything:
       make distclean
       configure --prefix=/tmp/dcmtk-3.6.1 CC=cc CFLAGS="-O2" CXX=xlC CXXFLAGS="-O2" --enable-threads=posix
                 # additional options, for example: 
                 --with-openssl --with-opensslinc=/bio/local/openssl-1.0.0d
                 --with-zlib    --with-zlibinc=/bio/local/zlib-1.2.3
                 --with-libtiff --with-libtiffinc=/bio/local/tiff-v3.5.7
                 --with-libpng  --with-libpnginc=/bio/local/libpng-1.2.8
                 --with-libxml  --with-libxmlinc=/bio/local/libxml2-2.7.8
  8. In config/Makefile.def modify
    INSTALL = /usr/ucb/install -c -g biodev
    i.e. tell the build system which installer to use and give a valid group name to avoid installation as root.
  9. Then:
       make clean
       make install



To use the binaries, some path definitions are required, example:
export        PATH=~/dcmtk-3.5.4-linux-i686/bin:$PATH

       # example 3.5.4:
export DCMDICTPATH=~/dcmtk-3.5.4-linux-i686/lib/dicom.dic

       # examples 3.6.1:
export DCMDICTPATH=~/dcmtk-3.6.1-linux-i686/share/dcmtk/dicom.dic 
export DCMDICTPATH=$COMMONSOFT/share/dcmtk/dicom.dic

Last updated: Sun, Jun 16, 2013 05:29:49 PM , M.Kraemer