What architecture?
------------------

CPROVER compiles with in the following environments:
- Linux
- MacOS X
- Cygwin (using -mno-cygwin)
- Microsoft's Visual Studio 2010

You need to adjust config.inc to reflect the environment. The default is
Linux.


How to compile?
---------------

Follow these instructions:

1) You need a SAT solver (in source). We recommend MiniSat2, which
   can be downloaded at

   http://minisat.se/downloads/minisat-2.2.0.tar.gz

   MiniSat2 relies on zlib, which you have to obtain for your environment.

   Alternatively, you may use zchaff, Booleforce, or
   SMV-SAT (if you work for Cadence).

2) Adjust src/config.inc for the paths to a).

3) Adjust src/solvers/satcheck.h to select which SAT solver to use
   as the default.

4) Adjust the file src/utils/hash_cont.h

   Depending on the version of your STL, you need to adjust a preprocessor
   command:
   a) Recent versions of Linux run with STL_HASH_TR1.
   b) Cygwin requires "STL_HASH_GNU".
   c) Visual Studio: please get Visual Studio 10 and use STL_HASH_TR1.

5) Recent versions of Cygwin have issues with MingW support; specifically,
   the linker fails to find crt2.o. Do the following to fix this before
   starting compilation:

   export LIBRARY_PATH=/usr/lib/mingw

6) Type cd src; make - that should do it.
