3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 02:15:19 +00:00
Find a file
Dan Liew 2bd9bbafe4 Re-organise the discussion of Clang, it is not a second class citizen
and so doesn't deserve to be stuck at the end of the README. It also
**does** support OpenMP!
2015-12-12 10:31:12 +00:00
doc C API cleanup. Mainly removal of ML-specific macros that are not used anymore and inline documentation fixes. 2015-12-03 17:33:25 +00:00
examples add python visitor example in response to Stackoverflow question 2015-12-06 20:09:13 -08:00
scripts Merge branch 'master' of https://github.com/Z3Prover/z3 2015-12-09 07:37:51 -08:00
src ensure that formula is skolemized in the smt solver when using MBQI 2015-12-11 18:18:09 +00:00
.gitattributes set text default to auto to try to avoid crlf disasters 2014-04-01 17:20:37 -07:00
.gitignore pull unstable 2015-04-01 14:57:11 -07:00
configure Add configure script that is just a wrapper for python 'src/mk_make.py'. It makes the build more user friendly for users familiar with ./configure + make idiom 2013-01-13 11:34:05 -08:00
LICENSE.txt Move to MIT License 2015-03-26 11:44:49 -07:00
README.md Re-organise the discussion of Clang, it is not a second class citizen 2015-12-12 10:31:12 +00:00
RELEASE_NOTES add to release notes 2015-10-05 09:31:14 -07:00

Z3

Z3 is a theorem prover from Microsoft Research. Z3 is licensed under the MIT license. Z3 can be built using Visual Studio Command Prompt and make/g++.

Building Z3 on Windows using Visual Studio Command Prompt

32-bit builds, start with:

   python scripts/mk_make.py

or instead, for a 64-bit build:

   python scripts/mk_make.py -x

then:

   cd build
   nmake

Building Z3 using make and GCC/Clang

Execute:

   python scripts/mk_make.py
   cd build
   make
   sudo make install

Note by default gcc is used as the C++ compiler if it is available. If you would prefer to use Clang change the mk_make.py line to

   CXX=clang++ CC=clang python scripts/mk_make.py

Note that Clang < 3.7 does not support OpenMP.

By default, it will install z3 executable at PREFIX/bin, libraries at PREFIX/lib, and include files at PREFIX/include, where PREFIX installation prefix if inferred by the mk_make.py script. It is usually /usr for most Linux distros, and /usr/local for FreeBSD and OSX. Use the --prefix= command line option to change the install prefix. For example:

  python scripts/mk_make.py --prefix=/home/leo
  cd build
  make
  make install

Note the above will typically disable the installation of the Python bindings because the Python site-packages directory (e.g. /usr/lib/python3.5/site-packages/) is not rooted in the install prefix and installing outside of the install prefix is dangerous and misleading.

To avoid this issue you can use the DESTDIR makefile variable and leave the install prefix as the default. The DESTDIR variable is prepended to the install locations during make install and make uninstall and is intended to allow "staged installs". Therefore it must always contain a trailing slash.

For example:

  python scripts/mk_make.py
  cd build
  make
  make install DESTDIR=/home/leo/

In this example, the Z3 Python bindings will be stored at /home/leo/lib/pythonX.Y/site-packages (/home/leo/lib/pythonX.Y/dist-packages on Debian based Linux distributions) where X.Y corresponds to the python version in your system.

To uninstall Z3, use

  sudo make uninstall

To clean Z3 you can delete the build directory and run the mk_make.py script again.