The config directory ==================== The "config" directory contains configuration files for the OFFIS DCMTK (DICOM ToolKit) to be used with GNU autoconf / configure. See INSTALL file in the root directory for details. templates directory: ==================== The "templates" directory contains templates for Makefiles and configure scripts used for the DCMTK modules. For more information see "dirstruc.txt". include directory: ================== The "config/include" directory contains OS-specific configuration files. The file "osconfig.h.in" is created by "configure.in" using "autoheader" from the GNU autoconf system. All your source files (*.h, *.c, *.cc) must contain the following #include- statement at the beginning (before everything else is defined): #include "dcmtk/config/osconfig.h" The file "osconfig.h" is created during the configuration step using GNU autoconf. Programs in config/: ==================== The configuration directory contains the following programs: autoall creates "configure" and "confmod" mkinstalldirs creates recursive directories, used for "make install" install-sh BSD-compatible install script, used in Makefiles rootconf creates "Makefile" and "configure" script for the root directory. If the "modules" file in the "config" directory is available, the modules are extracted from this file. It contains a whitespace separated list of module names. configure main configure script created by "autoall" or "autoconf". "configure" must be started from the "config" directory. confmod configure script for the modules created by "autoall" or "autoconf confmod.in > confmod". "confmod" cannot be started from the "config" directory. See "modules.txt" for more information. In every module's main directory the "configure.mod" script from the "templates" directory must be present. To create the "configure" script in the "config" directory you must call "autoconf" or "autoall". Configuration files in config/: =============================== configure.in to specify configurations for "osconfig.h" and "Makefile.def" aclocal.m4 to define new tests for "configure" general.m4 common configurations for "configure" und "confmod" confmod.in to specify tests for "confmod" (the modules) For "confmod.in" see "modules.txt". Do not edit these files unless you really know what you do. Consult the autoconf manual (in emacs and on paper). configure.in aclocal.m4 ======================= "configure.in" contains configuration tests mainly for the main configuration header file "osconfig.h" and the default Makefile configuration "Makefile.def". "Makefile.def" defines the compiler, linker, default flags, and the library manager. "configure.in" does not specify special configurations for the Makefiles of the various modules. These configurations can be found in "confmod.in" (see "modules.txt"). You can change configurations for different operating systems or compilers in these files. Please consider the autoconf manual. This part describes changes to the normal autoconf tests: Additional tests are defined in "aclocal.m4": AC_CHECK_GXXLIB: Works like AC_CHECK_LIB, but for libg++. This additional macro is necessary because "/bin/sh" will not allow you to define a variable "ac_cv_lib_g++" and AC_CHECK_LIB will fail for libg++. All symbols #defined by this macro replace G++ by GXX. AC_CHECK_PROTOTYPE: Checks if there is a prototype declaration for the given function. If header file(s) are given as argument 2, they are #included in the search. Otherwise only predefined functions will be found. Examples: in configure.in: AC_CHECK_PROTOTYPE(setsockopt, sys/types.h sys/socket.h) AC_CHECK_PROTOTYPE(gethostid) AC_CHECK_DECLARATION: Checks if a certain type is declared in the #include files given as argument 2. Example: in configure.in: AC_CHECK_DECLARATION(struct sembuf, sys/types.h sys/ipc.h sys/sem.h) general.m4 ========== Contains configuration tests commonly used in the "configure" and the "modconf" script. "configure.in" and "confmod.in" use a special include command to get these configuration. You can change or add configuration tests for the "config" directory and the modules' Makefiles in/to "general.m4". Have Fun!