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.
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
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 http://www.ims.uni-stuttgart.de/projekte/gramotron/SOFTWARE/SFST.html (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.