Another problem are header files of different libraries with the same name. It can happen that due to the inclusion structure it is not possible to avoid these conflicts by the order of the include file search paths. Therefore, every ABACUS include file (*.h and *.inc) is included now from the subdirectory abacus. You can continue using the old include file structure by setting the preprocessor flag ABACUS_OLD_INCLUDE . Here is an example how an ABACUS file includes other ABACUS files:
#ifdef ABACUS_OLD_INCLUDE #include "array.h" #else #include "abacus/array.h" #endifWe strongly recommend the use of the new include file structure. In combination with the LP-solver SoPlex the new include file structure is sometimes required (it depends which ABACUS and which SoPlex files you include). There may be name conflicts since both systems have a file timer.h.
Due to this concept also the directory structure of the ABACUS\ distribution has changed. All include files are now in the subdirectory include/abacus.
A conversion can be performed with the help of the Perl script tools/old2newincludes.pl . Calling
old2newincludes <files>makes a copy of all <files> into the subdirectory new-includes and adapts them to the new include structure, e.g.,
#include "master.h"is replaced by
#include "abacus/master.h"in the new files.