This document contains instructions on how to build the FreeType library on Unix systems. This also works for emulations like Cygwin or MSys on Win32: 1. Ensure that you are using GNU Make ------------------------------------- The FreeType build system _exclusively_ works with GNU Make. You will not be able to compile the library with the instructions below using any other alternative (including BSD Make). Check that you have GNU make by running the command: make -v This should dump some text that begins with: GNU Make Copyright (C) Free Software Foundation Inc. Note that version 3.81 or higher is *required* or the build will fail. It is also fine to have GNU Make under another name (e.g. 'gmake') if you use the MAKE variable as described below. As a special exception, 'makepp' can also be used to build FreeType 2. See the file docs/MAKEPP for details. For builds with `cmake' please check file `CMakeLists.txt'; this is a contributed file not directly supported by the FreeType team. 2. Regenerate the configure script if needed -------------------------------------------- This only applies if you are building a git snapshot or checkout, *not* if you grabbed the sources of an official release. You need to invoke the `autogen.sh' script in the top-level directory in order to create the `configure' script for your platform. Normally, this simply means typing: sh autogen.sh In case of problems, you may need to install or upgrade Automake, Autoconf or Libtool. See `README.git' in the top-level directory for more information. 3. Build and install the library -------------------------------- Say ./configure --help to see the list of possible configuration options and important environment variables. The ./configure script will detect some prerequisite system libraries (libpng, brotli, etc.) if their headers are available at the default locations. The following should work on all Unix systems where the `make' command invokes GNU Make: ./configure [options] make make install (as root) The default installation path is `/usr/local'. It can be changed with the `--prefix=' option. Example: ./configure --prefix=/usr When using a different command to invoke GNU Make, use the MAKE variable. For example, if `gmake' is the command to use on your system, do something like: MAKE=gmake ./configure [options] gmake gmake install (as root) If this still doesn't work, there must be a problem with your system (e.g., you are using a very old version of GNU Make). For library identification, FreeType's `configure' script uses the `pkg-config' interface: Assuming it needs library `foo', it calls the `pkg-config' program to find information on library `foo', which in turn looks for a `foo.pc' file installed at the system. Some platforms, however, don't come with `pkg-support'; you then have to use environment variables as described by `configure --help'. Example: LIBPNG_CFLAGS="-I/path/to/libpng/include/directory" \ LIBPNG_LIBS="-L/path/to/libpng/lib/directory" \ configure ... It is possible to compile FreeType in a different directory. Assuming the FreeType source files in directory `/src/freetype' a compilation in directory `foo' works as follows: cd foo /src/freetype/configure [options] make make install 3.1 Interdependency with HarfBuzz ................................. Note that there is a chicken-and-egg problem currently since the HarfBuzz library (used by the auto-hinter to improve support of OpenType fonts) depends on FreeType, which can be solved as follows in case HarfBuzz is not yet installed on your system. 1. Call FreeType's `configure' script with option `--without-harfbuzz', then compile and install FreeType. 2. Compile and install HarfBuzz. 3. Call FreeType's `configure' script without option `--without-harfbuzz' (after executing `make distclean'), then compile and install FreeType again. ---------------------------------------------------------------------- Copyright (C) 2003-2022 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, modified, and distributed under the terms of the FreeType project license, LICENSE.TXT. By continuing to use, modify, or distribute this file you indicate that you have read the license and understand and accept it fully. --- end of INSTALL.UNIX ---