Menu

Tree [b77124] develop /
 History

HTTPS access


File Date Author Commit
 checker 2022-11-14 Chuck Fry Chuck Fry [9b70ff] checker/build.xml: Update from feature/PLEXIL-1...
 compilers 2022-12-01 Chuck Fry Chuck Fry [2d1a4b] Trim a few hundred KB off the size of the Stand...
 doc 2015-07-27 Chuck Fry Chuck Fry [e1d1bf] Update URL for wiki
 examples 2023-05-16 Chuck Fry Chuck Fry [d4633e] Examples: Take releases/plexil-6-updates versio...
 jars 2022-11-29 Chuck Fry Chuck Fry [8576c4] Delete old Saxon HE 9.9 jar, symbolic link saxo...
 lib 2020-11-17 Chuck Fry Chuck Fry [c91dc7] Add some .gitignore files from releases/plexil-4
 makeinclude 2021-05-17 Chuck Fry Chuck Fry [7ea6ad] Import fix to makeinclude/standard-targets.make...
 schema 2023-05-03 Chuck Fry Chuck Fry [6403f2] schema/validator/setup.sh: Fixed version from p...
 scripts 2023-05-16 Chuck Fry Chuck Fry [b77124] Update scripts directory from releases/plexil-6...
 src 2022-12-07 Chuck Fry Chuck Fry [bda718] src/configure.ac: Use C++14, not 11
 test 2022-11-29 Chuck Fry Chuck Fry [318d79] Remove ResourceLowerBound from all TestExec reg...
 utilities 2021-05-18 Chuck Fry Chuck Fry [9343d2] Import utilities/plexil-mode.el from releases/p...
 viewers 2022-10-04 Chuck Fry Chuck Fry [9e2832] Ensure Plexil Viewer builds for Java 8 and newer
 workshop 2010-10-25 Michael Dalal Michael Dalal [97b78c] new
 .gitignore 2021-01-04 Chuck Fry Chuck Fry [8b5560] Add .DS_Store directories to root .gitignore
 .gitmodules 2022-10-18 Chuck Fry Chuck Fry [1302bb] Update build system with changes from releases/...
 CAVEATS 2020-12-24 Chuck Fry Chuck Fry [07afca] CAVEATS, README: Update and flesh out to reflec...
 CMakeLists.txt 2022-10-19 Chuck Fry, QTS Inc. (ISRDS3 @ ARC Code TI) Chuck Fry, QTS Inc. (ISRDS3 @ ARC Code TI) [dc0c0b] Fix CMake build issues by treating pugixml and ...
 LICENSE 2020-11-17 Chuck Fry Chuck Fry [25c02c] Add LICENSE file from releases/plexil-4
 Makefile 2022-12-07 Chuck Fry Chuck Fry [3acc86] First round of cleanups after merging releases/...
 README.md 2022-12-15 Chuck Fry Chuck Fry [5fe68a] README.md: formatting again and again
 ReleaseNotes.md 2022-11-29 Chuck Fry Chuck Fry [1f8d22] ReleaseNodes.md: Update for PLEXIL 6.0 (in deve...
 UPDATES.TODO.md 2022-11-01 Chuck Fry Chuck Fry [6e4423] UPDATES.TODO.md: Updated to reflect current status

Read Me

PLEXIL

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.

Software requirements

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:

  • POSIX-compliant shell (e.g. GNU bash, dash, zsh, etc.)
  • GNU Make and autotools (autoconf, automake, libtool, m4) or
  • CMake
  • GNU gperf
  • gcc/g++, clang/clang++, or other C99 and C++14 compliant compilers
  • Java 8 or newer JDK (e.g. openjdk-11-jdk)
  • Apache ant, including the antlr module

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.

How to build PLEXIL - Simple version

To build the PLEXIL distribution:

  1. To build everything, including the robosim and sample-app examples,
    change to this top level directory and type:
make everything
  1. If you do not wish to build the examples:
make tools

How to run PLEXIL - Simple version

  1. Add the following lines to your shell init file (e.g. ~/.bashrc).
    Set PLEXIL_HOME to the directory containing this README.md file.
export PLEXIL_HOME='/where/i/cloned/plexil'
. "$PLEXIL_HOME/scripts/plexil-setup.sh"
  1. Source the init file you just edited:
. ~/.bashrc
  1. The plexilc script compiles a PLEXIL plan or a Plexilscript
    simulation script to its XML representation:
plexilc my-plan.ple

produces the Core Plexil file my-plan.plx. Similarly,

plexilc my-script.pst

produces the Plexilscript file my-script.psx

  1. The plexiltest script runs the Test Executive on a plan and a
    Plexilscript. This is the easiest way to get started learning the
    PLEXIL language.
plexiltest -p my-plan.plx -s my-script.psx
  1. The plexilexec script runs the Universal Executive on a plan and
    requires an interface configuration file. See the Sourceforge
    documentation for more information.
plexilexec -c interface-config.xml -p my-plan.plx`
  1. The 'examples' directory contains a number of examples, and is a
    good place to start exploring.

Problem solving

  • If you have just updated your git clone from a previous build, you may
    need to precede make all with either:
make clean

or:

make distclean

The latter is sometimes needed when make or autotools files have
changed.

How to build PLEXIL Executive - Custom configuration with autotools

  1. Create the script 'src/configure':
cd "$PLEXIL_HOME"
make src/configure

(This will have been done already if you downloaded a release tarball.)

  1. Change into the 'src' directory and configure the build:
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.

  1. Change back to the top level directory and build the system:
cd ..
make

Using CMake

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.

  1. Create a build directory and change into it.
mkdir plexil-build
cd plexil-build
  1. Configure the build using CMake.
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-compiling the PLEXIL Executive

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.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.