Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
139 lines
4.8 KiB
139 lines
4.8 KiB
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 ---
|
|
|