Build and install

Install latest release

Windows installer and Snap package for Linux are available in Github releases and Snapcraft’s store

Developer setup

System prerequisites (Ubuntu 26.04)

Install required system packages as root:

sudo apt-get install \
  build-essential automake flex bison \
  libpython3.14-dev libssl-dev \
  python3.14 python3-wxgtk4.0 python3-venv \
  inkscape git

Prepare build directory

All commands hereafter assume that selected directory to contain all downloaded source code and build results is ~/Beremiz.

mkdir ~/Beremiz
cd ~/Beremiz

Get source code (Git)

cd ~/Beremiz
git clone https://github.com/beremiz/beremiz
git clone https://github.com/beremiz/matiec

Python prerequisites (virtualenv)

# setup isolated python environment
# Note: --system-site-packages is for using distro's
#       wxPython package instead of re-building it in venv.
#       requirements.txt is expected to match latest ubuntu LTS
python3 -m venv --system-site-packages ~/Beremiz/venv
# install required python packages
~/Beremiz/venv/bin/pip install -r ~/Beremiz/beremiz/requirements.txt

Build MatIEC compiler

cd ~/Beremiz/matiec
autoreconf -i
./configure
make

Build Modbus library (optional)

Only needed for Modbus support.

cd ~/Beremiz

git clone https://github.com/beremiz/Modbus

cd ~/Beremiz/Modbus
make

Build CanFestival (optional)

Only needed for CANopen support. Please read the CanFestival manual to choose a CAN driver other than virtual.

The static libraries are linked into the PLC’s shared object, so the build must be position-independent (-DCMAKE_POSITION_INDEPENDENT_CODE=ON).

cd ~/Beremiz

git clone https://github.com/beremiz/canfestival

cd ~/Beremiz/canfestival
mkdir build && cd build
cmake .. -DCF_TARGET=unix \
         -DCF_CAN_DRIVER=virtual \
         -DCF_TIMERS_DRIVER=unix \
         -DCMAKE_POSITION_INDEPENDENT_CODE=ON
make

The Beremiz CANopen extension picks up CF_TARGET / CF_CAN_DRIVER / CF_TIMERS_DRIVER from the resulting build/CMakeCache.txt and links against build/src/libcanfestival.a and build/drivers/libcanfestival_<target>.a, so rebuilding with a different -DCF_CAN_DRIVER is enough to switch driver (no Beremiz changes required).

Build BACnet (optional)

Only needed for BACnet support.

cd ~/Beremiz
svn checkout https://svn.code.sf.net/p/bacnet/code/trunk/bacnet-stack/ BACnet
cd BACnet
make MAKE_DEFINE='-fPIC' \
     MY_BACNET_DEFINES='-DPRINT_ENABLED=1 -DBACAPP_ALL -DBACFILE \
         -DINTRINSIC_REPORTING -DBACNET_TIME_MASTER \
         -DBACNET_PROPERTY_LISTS=1 -DBACNET_PROTOCOL_REVISION=16' \
     library

Launch Beremiz IDE

~/Beremiz/venv/bin/python ~/Beremiz/beremiz/Beremiz.py

Run standalone Beremiz runtime

Start standalone Beremiz service:

mkdir ~/Beremiz/beremiz_runtime_workdir
~/Beremiz/venv/bin/python ~/Beremiz/beremiz/Beremiz_service.py \
    -p 61194 -i localhost -x 0 ~/Beremiz/beremiz_runtime_workdir

To connect IDE with runtime, enter target location URI in project’s settings (project -> Config -> BeremizRoot/URI_location) pointed to your running Beremiz service, in this case:

ERPC://127.0.0.1:61194

If project’s URL is LOCAL://, then IDE launches on demand a local instance of Beremiz python runtime working on a temporary directory.

Build documentation

Source code for documentation is stored in doc directory in project’s source tree. It’s written in reStructuredText (ReST) and uses Sphinx to generate documentation in different formats.

To build documentation you need following packages on Ubuntu/Debian:

sudo apt-get install build-essential python-sphynx

Documentation in HTML

Build documentation:

cd ~/Beremiz/doc
make all

Result documentation is stored in directories doc/_build/dirhtml*.

Documentation in PDF

To build pdf documentation you have to install additional packages on Ubuntu/Debian:

sudo apt-get install textlive-latex-base texlive-latex-recommended \
     texlive-fonts-recommended texlive-latex-extra

Build documentation:

cd ~/Beremiz/doc
make latexpdf

Result documentation is stored in doc/_build/latex/Beremiz.pdf.