This is the top level directory of the PLEXIL distribution.
See https://plexil-group.github.io/plexil_docs/ for information about
this software, including its user manuals. There is more information
in the README files found in the subdirectories.
The Versions file describes previous releases of Plexil, as well as
the latest features not yet released in a binary distribution.
The CAVEATS file describes known problems and issues in this release.
The complete PLEXIL suite is maintained on recent versions of Linux
and macOS. It should build and run on other Unix-like environments
(e.g. Microsoft Windows Subsystem for Linux, BSD family) without much
effort.
This version of PLEXIL requires a C++14 compliant compiler!
This release depends on the feature set introduced in the C++14
language standard.
Building the PLEXIL tool suite from source requires the following
software:
If you downloaded a tarball, the GNU autotools and gperf are not
needed.
The robosim example program also requires the X11 libraries freeglut,
libxi, libxmu and their header files.
To build the PLEXIL distribution:
make everything
make tools
~/.bashrc
).PLEXIL_HOME
to the directory containing this README.md file.export PLEXIL_HOME='/where/i/cloned/plexil'
. "$PLEXIL_HOME/scripts/plexil-setup.sh"
. ~/.bashrc
plexilc
script compiles a PLEXIL plan or a Plexilscriptplexilc my-plan.ple
produces the Core Plexil file my-plan.plx
. Similarly,
plexilc my-script.pst
produces the Plexilscript file my-script.psx
plexiltest
script runs the Test Executive on a plan and aplexiltest -p my-plan.plx -s my-script.psx
plexilexec
script runs the Universal Executive on a plan andplexilexec -c interface-config.xml -p my-plan.plx`
make all
with either:make clean
or:
make distclean
The latter is sometimes needed when make or autotools files have
changed.
cd "$PLEXIL_HOME"
make src/configure
(This will have been done already if you downloaded a release tarball.)
cd src
./configure --prefix="/where/to/install" ... options ...
The example below includes all the optional PLEXIL components as
built in the previous section, with binaries and libraries installed
in the PLEXIL installation directory. You can omit or change
options as desired.
./configure --prefix="$PLEXIL_HOME" --disable-static --enable-ipc \
--enable-sas --enable-test-exec --enable-udp
For a complete list of options, type:
./configure --help
Please see the CAVEATS file in this directory for advice on options
to configure
.
cd ..
make
The PLEXIL Executive also supports building with CMake, for simpler
integration into CMake-based projects. CMake version 3.6 or newer is
required. The instructions here describe an out-of-tree build, which
is the preferred approach. In-tree builds should also work, but are
not recommended.
mkdir plexil-build
cd plexil-build
cmake "path/to/plexil/src" -DCMAKE_INSTALL_PREFIX="/install/here" ... options ...
The example below includes all the optional PLEXIL components as built
in the previous section, with binaries and libraries installed in the
PLEXIL installation directory. You can omit or change options as
desired.
cmake path/to/plexil/src -DCMAKE_INSTALL_PREFIX="$PLEXIL_HOME" \
-DSTANDALONE_SIMULATOR=ON -DTEST_EXEC=ON -DUDP_ADAPTER=ON
```
Please see the CAVEATS file in this directory for advice on CMake options.
4. Build and install the system:
make install
```
Cross-compilation of the PLEXIL Executive as a component of other
projects is straightforward, using either the GNU autotools or CMake.
The file $PLEXIL_HOME/src/build-for-buildroot.sh
is an example of
cross-compiling the PLEXIL Executive for use with the buildroot
embedded Linux tool suite on an ARM processor. This example uses the
GNU autotools.
Similarly, by supplying an appropriate toolchain file with the
-DCMAKE_TOOLCHAIN_FILE
option, CMake can build the PLEXIL Executive
for targets other than the host system.