3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 20:38:43 +00:00
Find a file
Dan Liew 61d1cd524e Teach the build system to build and install the ".NET bindings"
under non Windows systems (i.e. Using mono).

Building these bindings is unfortunately on by default because
I didn't want to change the command line interface (i.e. ``--nodotnet``)
which people might be relying on. This should really be changed to
match the other binding flags (e.g. ``--java``) but I will leave
this for now.

To perform the build a C# compiler and the GAC utility are required.
The script will try to automatically detect them but the user can
override this by setting the ``CSC`` and ``GACUTIL`` environment
variables.

In order for the ".NET bindings" to be installed the assembly
(``Microsoft.Z3.dll``) needs to have a strong name which means
we need a Strong name key file which is what the
``Microsoft.Z3.mono.snk`` is for. This is the public and private
key so this key **must never** be used for checking integrity. Instead its
only purpose is to avoid any name clashes in the GAC.

It is also worth noting that slightly different flags needs to
be passed to the C# compiler on non Windows platforms. I don't
understand why some of the flags are being used on Windows but I left
a comment there that hopefully someone can fix...
2015-12-05 07:52:31 +00:00
doc C/right on python scripts 2015-06-10 12:01:47 -07:00
examples fix build of maxsat.c 2015-11-22 22:10:22 -08:00
scripts Teach the build system to build and install the ".NET bindings" 2015-12-05 07:52:31 +00:00
src Teach the build system to build and install the ".NET bindings" 2015-12-05 07:52:31 +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 clarified README with information provided in issue #163. 2015-07-16 10:38:17 -07:00
RELEASE_NOTES add to release notes 2015-10-05 09:31:14 -07:00

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++.

1) 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

2) Building Z3 using make/g++ and Python
Execute:

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

By default, it will install z3 executable at PREFIX/bin, libraries at PREFIX/lib, and include files at PREFIX/include,
where PREFIX is the installation prefix used for installing Python in your system.
It is usually /usr for most Linux distros, and /usr/local for FreeBSD.
Use the following commands to install in a different prefix (e.g., /home/leo)

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

In this example, the Z3 Python bindings will be stored at /home/leo/lib/pythonX.Y/dist-packages,
where X.Y corresponds to the python version in your system.

To uninstall Z3, use

  sudo make uninstall

4) Building Z3 using clang and clang++ on Linux/OSX
Remark: clang does not support OpenMP yet.   

   CXX=clang++ CC=clang python scripts/mk_make.py
   cd build
   make


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