INSTALL.md
Install all your typical build tools, build dependencies and runtime dependencies - all the packages that allow you to build of software from source code. The exact method to do this depends on your OS distribution.
To download all dependencies on Ubuntu, run:
sudo apt-get install libjpeg-dev libtiff5-dev libpng-dev libfreetype-dev libgif-dev libgtk-3-dev libgtkmm-3.0-dev libxml2-dev libpango1.0-dev libcairo2-dev libspiro-dev libwoff-dev python3-dev ninja-build cmake build-essential gettext;
Now run the build and installation scripts:
cd fontforge
mkdir build
cd build
cmake -GNinja ..
ninja
sudo ninja install
For even more details on the build system itself, see this wiki page.
FontForge's Python bindings are also available directly from PyPI:
pip install fontforge
If you install the Python module via pip, building and installing FontForge from source will detect this and skip installing the Python module to avoid conflicts. To switch back to app-installed modules, first run pip uninstall fontforge.
Attention, Designers Who Love TrueType Hinting:
Run cmake with -DENABLE_FREETYPE_DEBUGGER=/path/to/freetype/source.
This option enables advanced features for debugging TrueType font hints, such as stepping through hinting instructions one by one.
Note that the version of the FreeType source must exactly match the installed version of FreeType.
brew install cmake glib pango gtk+3
msgfmt is not found (when using Homebrew):
brew install gettext
brew link gettext
If you want to do autotracing around character images you should also download either
If your system comes with a package manager, use it. It makes installing these libraries easier.
Most of these are not required for the proper compilation/execution of FontForge, if the libraries are not present they will not be used. (If the machine on which your executable was built didn't have them, then you must not only install the libraries, but also rebuild FontForge from source. If your machine doesn't have them and you want them they are available from:
--enable-extra-encodings, as FontForge requires Shift-JIS.*.../include/freetype/config/ftoption.h* before you build the library (see the README.UNX file on the top level of the freetype distribution).
To enable the truetype debugger, FontForge needs to have the freetype source directories available when it is built (there are some '#include' files there which it depends on).