diff --git a/README b/README
index 42f6b1e58..13f3d4fa4 100644
--- a/README
+++ b/README
@@ -20,9 +20,10 @@ Execute:
It will install z3 executable at /usr/bin, libraries at /usr/lib, and include files at /usr/include.
You can change the installation p
-Use the following commands to install in a different prefix (e.g., /home/leo).
+Use the following commands to install in a different prefix (e.g., /home/leo), and the Z3 python
+bindings in a different python package directory.
- python scripts/mk_make.py --prefix=/home/leo
+ python scripts/mk_make.py --prefix=/home/leo --pydir=/home/leo/python
cd build
make
sudo make install
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 4c74b41a5..e2703bdcb 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -3,6 +3,8 @@ RELEASE NOTES
Version 4.3.2
=============
+- New parameter setting infrastructure. Now, it is possible to set parameter for Z3 internal modules. Several parameter names changed. Execute `z3 -p` for the new parameter list.
+
- Added get_version() and get_version_string() to Z3Py
- Added support for FreeBSD. Z3 can be compiled on FreeBSD using g++.
@@ -20,6 +22,8 @@ Version 4.3.2
- Fixed crash when parsing incorrect formulas. The crash was introduced when support for "arithmetic coercions" was added in Z3 4.3.0.
+- Added new option to mk_make to allow users to specify where python bindings (Z3Py) will be installed. (Thanks to Dejan Jovanovic for reporting the problem).
+
Version 4.3.1
=============
diff --git a/scripts/mk_util.py b/scripts/mk_util.py
index 5944f015f..2886651ae 100644
--- a/scripts/mk_util.py
+++ b/scripts/mk_util.py
@@ -341,6 +341,7 @@ def display_help(exit_code):
print " -s, --silent do not print verbose messages."
if not IS_WINDOWS:
print " -p
, --prefix= installation prefix (default: %s)." % PREFIX
+ print " -y , --pydir= installation prefix for Z3 python bindings (default: %s)." % PYTHON_PACKAGE_DIR
print " -b , --build= subdirectory where Z3 will be built (default: build)."
print " -d, --debug compile Z3 in debug mode."
print " -t, --trace enable tracing in release mode."
@@ -371,52 +372,56 @@ def display_help(exit_code):
# Parse configuration option for mk_make script
def parse_options():
global VERBOSE, DEBUG_MODE, IS_WINDOWS, VS_X64, ONLY_MAKEFILES, SHOW_CPPS, VS_PROJ, TRACE
- global DOTNET_ENABLED, JAVA_ENABLED, STATIC_LIB, PREFIX, GMP
+ global DOTNET_ENABLED, JAVA_ENABLED, STATIC_LIB, PREFIX, GMP, PYTHON_PACKAGE_DIR
try:
options, remainder = getopt.gnu_getopt(sys.argv[1:],
- 'b:dsxhmcvtnp:gj',
+ 'b:dsxhmcvtnp:gjy:',
['build=', 'debug', 'silent', 'x64', 'help', 'makefiles', 'showcpp', 'vsproj',
- 'trace', 'nodotnet', 'staticlib', 'prefix=', 'gmp', 'java'])
- for opt, arg in options:
- if opt in ('-b', '--build'):
- if arg == 'src':
- raise MKException('The src directory should not be used to host the Makefile')
- set_build_dir(arg)
- elif opt in ('-s', '--silent'):
- VERBOSE = False
- elif opt in ('-d', '--debug'):
- DEBUG_MODE = True
- elif opt in ('-x', '--x64'):
- if not IS_WINDOWS:
- raise MKException('x64 compilation mode can only be specified when using Visual Studio')
- VS_X64 = True
- elif opt in ('-h', '--help'):
- display_help(0)
- elif opt in ('-m', '--onlymakefiles'):
- ONLY_MAKEFILES = True
- elif opt in ('-c', '--showcpp'):
- SHOW_CPPS = True
- elif opt in ('-v', '--vsproj'):
- VS_PROJ = True
- elif opt in ('-t', '--trace'):
- TRACE = True
- elif opt in ('-n', '--nodotnet'):
- DOTNET_ENABLED = False
- elif opt in ('--staticlib'):
- STATIC_LIB = True
- elif opt in ('-p', '--prefix'):
- PREFIX = arg
- elif opt in ('-g', '--gmp'):
- GMP = True
- elif opt in ('-j', '--java'):
- JAVA_ENABLED = True
- else:
- print "ERROR: Invalid command line option '%s'" % opt
- display_help(1)
+ 'trace', 'nodotnet', 'staticlib', 'prefix=', 'gmp', 'java', 'pydir='])
except:
print "ERROR: Invalid command line option"
display_help(1)
+ for opt, arg in options:
+ if opt in ('-b', '--build'):
+ if arg == 'src':
+ raise MKException('The src directory should not be used to host the Makefile')
+ set_build_dir(arg)
+ elif opt in ('-s', '--silent'):
+ VERBOSE = False
+ elif opt in ('-d', '--debug'):
+ DEBUG_MODE = True
+ elif opt in ('-x', '--x64'):
+ if not IS_WINDOWS:
+ raise MKException('x64 compilation mode can only be specified when using Visual Studio')
+ VS_X64 = True
+ elif opt in ('-h', '--help'):
+ display_help(0)
+ elif opt in ('-m', '--onlymakefiles'):
+ ONLY_MAKEFILES = True
+ elif opt in ('-c', '--showcpp'):
+ SHOW_CPPS = True
+ elif opt in ('-v', '--vsproj'):
+ VS_PROJ = True
+ elif opt in ('-t', '--trace'):
+ TRACE = True
+ elif opt in ('-n', '--nodotnet'):
+ DOTNET_ENABLED = False
+ elif opt in ('--staticlib'):
+ STATIC_LIB = True
+ elif opt in ('-p', '--prefix'):
+ PREFIX = arg
+ elif opt in ('-y', '--pydir'):
+ PYTHON_PACKAGE_DIR = arg
+ mk_dir(PYTHON_PACKAGE_DIR)
+ elif opt in ('-g', '--gmp'):
+ GMP = True
+ elif opt in ('-j', '--java'):
+ JAVA_ENABLED = True
+ else:
+ print "ERROR: Invalid command line option '%s'" % opt
+ display_help(1)
+
# Return a list containing a file names included using '#include' in
# the given C/C++ file named fname.
def extract_c_includes(fname):