To use the transducer support, you need the Stuttgart Finite State Transducer Tools (SFST) package version 1.2 (1.3 may possibly work as well).

The SFST packages available in e.g. Debian or Ubuntu are faulty in that they lack all the necessary header files.
Unfortunately, the sources available at the IMS site are also not fully working in that their build process doesn't build and install the library and headers, which are necessary for our usage scenario.

There are at least 2 possible workarounds.

Simple solution

For your convenience we included the sources with fixed Makefile in the third_party directory of the repository. The modifications makes the build process compile and install the libsfst and its headers automatically. Usage: enter the src directory, issue the usual make and the make install (note that libsfst needs libreadline to build).

NOTE: the changes made to Makefile are made quickly and without much testing. If it doesn't seem to work, please try the other workaround.
NOTE 2: before proceeding with this, make sure that you've got no other version of libsfst installed. If you do, proceed at your own risk.

Complex workaround

Until these packages are fixed this can be worked around by downloading the relevant source package and grabbing the missing headers:
  • If using debian/ubuntu: install sfst package from repository (e.g., libsfst1-1.2-0-dev)
  • Download the tar.gz from (get the appropriate version)
  • Maca was tested on SFST 1.2, 1.3 might work, 1.4 changes the interface and will not work
  • Extract the missing header files from src/ to where other sfst include files already are (e.g. /usr/include/sfst-1.0/sfst); make sure the permissions are set correctly (sudo chmod o+r /usr/include/sfst-1.0/sfst/*.h)
  • Remove CMakeCache.txt and re-run cmake
  • The SFST part of Maca should now build

Note, that I had to install libsfst1-1.2-0-dev and then copy headers from SFST version 1.3 for maca to compile SFST support.