blob: ff4eabedfd1ae09c10539c960e120105dbfc6a97 [file] [log] [blame]
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 <version number>
Copyright (C) <year> 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=<path>' 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-2021 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 ---