|
|
|
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-2024 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 ---
|