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