PRISM is known to run on Linux, Windows and macOS, both 64-bit and 32-bit versions.
You will need Java, version 9 or above (get it, for example from Oracle or AdoptOpenJDK). To run binary versions of PRISM, you only need the Java Runtime Environment (JRE), not the full Java Development Kit (JDK).
To compile PRISM from source, you need the Java Development Kit (JDK), GNU make and a C/C++ compiler (e.g. gcc/g++). For compilation under Windows, you will need Cygwin. See below for more information:
If you are installing on a completely fresh operating system installation (e.g. in a virtual machine), you may find the following scripts useful,
which install the required dependencies and PRISM itself. They can be found in the prism/etc/scripts
directory:
To install PRISM on Windows, just run the self-extracting installer which you downloaded. You do not need administrator privileges for this, just write-access to the directory chosen for installation.
If requested, the installer will place shortcuts to run PRISM on the desktop and/or start menu. If not, you can run by PRISM double-clicking the file xprism.bat
(which may just appear as xprism
) in the bin
folder of your PRISM folder. If nothing happens, the most likely explanation is that Java is not installed or not in your path. To check, open a command prompt window, navigate to the PRISM directory, type cd bin
, then xprism.bat
and examine the resulting error. If you want to create shortcuts to xprism.bat
manually, you will find some PRISM icons in the etc
folder.
If you wish to use the command-line version of PRISM on Windows, open a command prompt window and type for example:
You can also edit the file bin\prism.bat
to allow it to be run from any location. See the instructions within the file for further details.
Problems? See the section "Common Problems And Questions''.
We provide pre-compiled binary distributions for Linux and macOS
(if you have any problems running these, try compiling PRISM from source instead - see below for instructions).
To install a binary distribution, unpack the tarred/zipped PRISM distribution into a suitable location, enter the directory and run the install.sh
script, e.g.:
You do not need to be root to install PRISM. The install script simply makes some small customisations to the scripts used to launch PRISM. The PRISM distribution is self-contained and can be freely moved/renamed, however if you do so you will need to re-run ./install.sh
afterwards.
To run PRISM, execute either the xprism
or prism
script (for the graphical user interface or command-line version, respectively). These can be found in the bin
directory. These scripts are designed to be run from anywhere and you can easily create symbolic links or aliases to them. If you want icons to create desktop shortcuts to PRISM, you can find some in the etc
directory.
Problems? See the section "Common Problems And Questions''.
To compile PRISM form source code, you will need:
To check that you have the development kit, type javac
. If you get an error message that javac
cannot be found, you probably do not have the JDK installed (or your path is not set up correctly). To check what version you have, type javac -version
.
Hopefully, you can build PRISM simply by entering the PRISM directory and running make
, e.g.:
For this process to complete correctly, PRISM needs to be able to determine your operating system (OSTYPE
), machine architecture (ARCH
) and the location of your Java distribution (JAVA_DIR
). If there is a problem with either of these, you will see an error message and will need to specify one or more of these manually, such as in these examples:
Note the use of double quotes for the case where the directory contains a space. If you don't know the location of your Java installation, try typing which javac
. If the result is e.g. /usr/java/jdk1.8.0/bin/javac
then your Java directory is /usr/java/jdk1.8.0
. Sometimes javac
will be a symbolic link, in which case use "ls -l
" to determine the actual location.
It is also possible to to set the environment variables directly or edit their values in the Makefile directly. Note that even when you specify JAVA_DIR
explicitly (in either way), PRISM still uses the version of javac
that is in your path. To override this, you can also specify a specific version by setting JAVAC
.
Problems? See the section "Common Problems And Questions''.
The compilation of PRISM currently relies on a Unix-like environment. On Windows, this can be achieved using the Cygwin development environment, with the packages below installed. You can run the script prism-install-windows.bat in a Command Prompt to automate this.
make
mingw64-x86_64-gcc-g++
(for 64-bit Windows) or mingw64-i686-gcc-g++
(for 32-bit Windows)
binutils
dos2unix
git
(if you will pull source code from GitHub)
wget
(if you will pull source code from the web)
Then proceed as described in the previous section. Note that the PRISM compilation process uses the MinGW libraries so that the final result is independent of Cygwin at run-time.
One thing to note: make sure you unzip the PRISM distribution from within Cygwin (e.g. using tar xfz prism-XXX-src.tar.gz
). Don't use a Windows program (Winzip, etc.) since this can cause problems.
If you use git to checkout the PRISM repository, we recommend that you use the version of git provided by Cygwin. If you use a native Windows version of git, you may want to disable the Unix-to-Windows line-ending conversion, e.g., via
git config --global core.autocrlf false
Problems? See the section "Common Problems And Questions''.
An alternative to Cygwin on Windows is MSYS2. You can install the required MSYS2 packages like this:
The environment is currently not directly supported in the Makefile, which can be fixed as follows:
Additionally, MSYS2 does not handle symlinks in the same way as Cygwin does.
At some point make
will fail, saying that it cannot find the CUDD library.
You can solve this as follows:
Problems? See the section "Common Problems And Questions''.
This section describes some of the most common problems and questions related to the installation and running of PRISM. These are grouped into the following categories:
When I try to run PRISM on Windows, I double-click the PRISM shortcut but nothing happens.
The most common cause of this is that you either do not have Java installed or the java
executable is not in your path. In any case, to determine the exact problem, launch a command shell and navigate to the bin
directory inside the directory where you installed PRISM (you can use the "PRISM (console)" shortcut installed in the start menu to do this). Then, type xprism.bat
and see what error message is displayed.
When I try to run PRISM, I get one of these errors:
Exception in thread "main" java.lang.NoClassDefFoundError: ...
java.lang.UnsatisfiedLinkError: no prism in java.library.path
java.lang.UnsatisfiedLinkError: ...
Library not loaded: ../../lib/libdd.dylib
Things to check:
(1) Did you run install.sh
from the PRISM directory? (non-Windows platforms)
(2) If you compiled PRISM from source code, are you sure no errors occurred during the process? To check, go into the PRISM directory, type make clean_all
and then make
, checking the output (especially at the end) carefully for any error messages.
(3) Are you running on Mac OS (notably El Capitan)? This had some issues with PRISM calling java
.
A workaround is to specify the exact path to the java
when running PRISM, e.g.:
PRISM_JAVA=/Library/Java/JavaVirtualMachines/jdk1.9.jdk/Contents/Home/bin/java prism
or by replacing the value of PRISM_JAVA directly in the prism script directly.
When I try to run PRISM, I get an error of the form:Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
Your version of Java is too old. Update or install a newer version of Java, and then try again.
When I try to compile PRISM, make
seems to get stuck in an infinite loop
This is probably due to the detection of Java failing. Specify the location of your Java directory by hand, e.g. make JAVA_DIR=/usr/java/jdk1.9.0
. See the Instructions page for more on this.
When I try to compile PRISM, I get errors of the form:/usr/bin/libtool: for architecture: cputype (16777234) cpusubtype (0) file: -lSystem is not an object file (not allowed in a library)
Are you compiling PRISM on Max OS X? If so, the likely explanation is that you have upgraded to a new version of Mac OS X but have not upgraded the developer tools (eg. XCode). Upgrade and try again.
When I try to compile PRISM, nothing seems to happen
Perhaps you are not using the GNU version of make
. Try typing make -v
to find out. On some systems, GNU make is called gmake
.
When I try to compile PRISM, I get errors of the form:Unexpected end of line seen...
or:make: Fatal error in reader: Makefile, line 58: Unexpected end of line seen...
Perhaps you are not using the GNU version of make
. Try typing make -v
to find out. On some systems, GNU make is called gmake
.
When I try to compile PRISM, I get an error of the form:./setup.sh: line 33: syntax error: unexpected end of file
Are you building on Cygwin? And did you unpack PRISM using WinZip? If so, unpack from Cygwin, using tar xfz
(or similar) instead.
When I try to compile PRISM, I get an error of the form:Assembler messages: Fatal error: can't create ../../obj/dd/dd_abstr.o: No such file or directory
Did you unpack PRISM using a graphical tool or file manager? If so, unpack using tar xfz
(or similar) instead.
Do I have to use GNU make
to build PRISM?
Strictly speaking, no, but you will have to modify the various PRISM Makefiles manually to overcome this.
Can I build PRISM on operating systems other than those currently supported?
PRISM should be suitable for any Unix/Linux variant.
The first thing you will need to do is compile CUDD (the BDD library used by and included in PRISM) on that platform.
Fortunately, CUDD has already been successfully built on a large number of
operating systems. Have a look at the sample Makefiles we provide (i.e. the
files cudd/Makefile.*
) which are slight variants of the original Makefile
provided with CUDD (found here: cudd/modified/orig/Makefile
). They contain
instructions on how to modify it for various platforms. You can then call
your new modified makefile something appropriate (cudd/Makefile.$OSTYPE
) and
proceed to build PRISM as usual. To just build CUDD, not PRISM, type
make cuddpackage
instead of make
.
Next, look at the main PRISM Makefile, in particular, each place where the
variable $OSTYPE
is referred to. Most lines include comments and further
instructions. Once you have done this, proceed as usual.
If you do successfully build PRISM on other platforms, please let us know so we can include this information in future releases. Thanks.
How do I uninstall PRISM?
If you installed PRISM on Windows using the self-extracting installer, you can uninstall it using the option on the start menu. If you didn't add these shortcuts, just run uninstall.exe
from the directory where you installed PRISM.
For older versions of PRISM on Windows or on any other platform, simply delete the directory containing it.
The only thing that is not removed via either of these methods is the .prism
file containing your PRISM settings which is in your home directory (see the section "Configuring PRISM"). You may wish to retain this when upgrading.
I still have a problem installing/running PRISM. What can I do?
Please post a message in the discussion group (see the support section of the PRISM website).