To build CVC3, do the following in the root directory of the CVC3 distribution:
./configure make
If this fails, read the next section for more information.
A successful make creates a library libcvc3 in the lib directory and an executable cvc3 in the bin directory (these are actually links to the actual files which are stored in architecture and configuration-dependent subdirectories).
By default, make creates optimized code, static libraries, and a static executable. To build the "debug" version (much slower but more error checking) use:
./configure --with-build=debug
To build shared libraries (and thus a much smaller executable), use:
./configure --enable-dynamic
Be sure to set LD_LIBRARY_PATH to <cvc3dir>/lib when using shared libraries.
Alternatively, these and other options can be changed by editing the Makefile.local file after running configure. However, be aware that re-running configure will overwrite any changes you have made to Makefile.local.
The subdirectory test contains an example program using the library libcvc3. To try it out, do the following:
cd test make bin/test
The configure script checks for the components needed to build CVC3. If for some reason, the configure script is missing or doesn't run on your platform, you can recreate it from configure.ac by running autoconf.
As the configure script runs, if something is not found, it complains. configure looks for components in standard locations and also uses several environment variables that you can set to help it find things. In particular, you can set CPPFLAGS to -IincludeDir if you have headers in a nonstandard directory and LDFLAGS to -LlibDir if you have libraries in a nonstandard directory. Run ./configure --help for a list of all such environment variables.
One of the components CVC3 depends on is the GNU Multiple Precision (GMP) library. If you do not have GMP installed, we recommend that you do so:
1. Download the GMP source code from http://swox.com/gmp/
2. Unpack the sources, and from the root-directory of the GMP source code, run
./configure make
On some Solaris machines, you may need to configure GMP with
./configure ABI=32
to make the resulting GMP library compatible with the CVC3 libraries. The reason for this is that the default ABI that gcc chooses in CVC3 compilation is not necessarily the default ABI that the GMP configure script selects, and one of them may need to be adjusted.
3. Now, either install GMP system-wide (make install), or supply the appropriate values for CPPFLAGS and LDFLAGS to the CVC3 configure script.
If for some reason, you do not want to use GMP, you can configure CVC3 to use native arithmetic by running:
./configure --with-arith=native
If you compile CVC3 with native arithmetic, it is possible that CVC3 may fail as the result of arithmetic overflow. If an overflow occurs, you will get an error message and CVC3 will abort.
Other configuration options include where to install the results of "make install" (see below), what type of build to use (optimized, debug, gprof, or gcov), and whether to use static or dynamic libraries. For help on these options, type
./configure --help
configure creates the file Makefile.local which stores all of the configuration information. If you want to customize your build without rerunning configure, or if you want to customize it in a way that configure does not allow, you can do it by editing Makefile.local. For example, you can build a debug, gprof version by editing Makefile.local and setting OPTIMIZED to 0 and GPROF to 1 (by default, gprof runs with an optimized executable). Note that for most configuration options, the objects, libraries, and executables are stored in a configuration-dependent directory, with only symbolic links being stored in the main bin and lib directories. This allows you to easily maintain multiple configurations and multiple platforms using the same source tree.
To rebuild dependencies, type:
make depend
To remove just the executable or libraries in the current configuration, type:
make spotty
To remove in addition all object files and makefile dependencies for the current configuration, type:
make clean
To remove all files that are not part of the distribution (including all object, library, ane executables built for any configuration or platform), type:
make distclean
To build a tarball distribution of the currenct source tree, type:
make dist
To install CVC3 system-wide, (assuming you have already run autoconf and configure) run:
make install
Installation depends on two configuration options: prefix and exec_prefix. By default, both are set to /usr/local, but these can be overridden by specifying the correct arguments to configure or by editing Makefile.local.
Installation copies all necessary header files to <prefix>/include/cvc3. It installs the library libcvc3 in <exec_prefix>/lib and the executable cvc3 in <exec_prefix>/bin. By default, a shared library and executable are installed. If you want to install static versions, configure for a static build as described above.
To build HTML documentation, run
make doc
Then open doc/html/index.html in your favorite browser.
If you find a problem with the instructions in this installation guide, please send email to cvc-bugs@cs.nyu.edu.