-
Notifications
You must be signed in to change notification settings - Fork 5
Build ePMC under Mac OS
- macOS Sierra (10.12)
- Mac OSX EI Capitan (10.11)
If you have tested this guide under any other versions, please don't hesitate to tell us the results :)
Mac OS users do not have a built-in package manager. But fortunately, we have home-brew, which help us to install the packages and manage the dependencies.
Please follow the instructions at homebrew to install.
Currently the project is still stored in a subversion repo. This should be rewrite when it's moved to GitHub or bitbucket.
You can download an Oracle JDK from there official website. Note that the version should not be older than 13 as we're using quite a few new language features.
Maven is a software project management and comprehension tool. It can be downloaded from the maven website (http://maven.apache.org/). This is needed to manage the compilation of the several components of IscasMC.
You can install maven simplly with home brew:
brew install maven
Open the terminal app and type
git clone https://github.com/ePMC-team/ePMC <epmc>
In the following part, we'll use to denote the path where you put our source code.
Path with whitespaces, e.g. /home/user/local proj/epmc
, leads to compile error of C codes (embedded in some plugins). So never put epmc under such paths.
cd <epmc>
mvn package
- Switch to the folder
<epmc>/plugins
- Type
./build.sh
and the build process will start. Somehow I found that the build process can be a bit slow, so you may have to wait for a few minutes.
Now let's jump to <epmc>/distributions'. There's several pre-defined distribution. In each distribution folder, you'll find a
build.sh`, describing which plugins are included in this distribution. A detailed list of distributions can be found here.
Here we just show how to package the most commonly-used one, named standard
:
cd standard
./build.sh
java -jar epmc-standard.jar help
Well done! Now you'll find a long list of supported commands and options. You can follow our tutorial to learn how to use this model checker :)