Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 1 | This document contains instructions on how to build the FreeType |
| 2 | library on Unix systems. This also works for emulations like Cygwin |
| 3 | or MSys on Win32: |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 4 | |
| 5 | |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 6 | 1. Ensure that you are using GNU Make |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 7 | ------------------------------------- |
| 8 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 9 | The FreeType build system _exclusively_ works with GNU Make. You |
| 10 | will not be able to compile the library with the instructions |
| 11 | below using any other alternative (including BSD Make). |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 12 | |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 13 | Check that you have GNU make by running the command: |
Werner Lemberg | a723526 | 2005-08-30 00:22:46 +0000 | [diff] [blame] | 14 | |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 15 | make -v |
Werner Lemberg | a723526 | 2005-08-30 00:22:46 +0000 | [diff] [blame] | 16 | |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 17 | This should dump some text that begins with: |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 18 | |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 19 | GNU Make <version number> |
| 20 | Copyright (C) <year> Free Software Foundation Inc. |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 21 | |
Werner Lemberg | 4e33f9e | 2008-07-05 06:35:28 +0000 | [diff] [blame] | 22 | Note that version 3.80 or higher is *required* or the build will |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 23 | fail. |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 24 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 25 | It is also fine to have GNU Make under another name (e.g. 'gmake') |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 26 | if you use the MAKE variable as described below. |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 27 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 28 | As a special exception, 'makepp' can also be used to build |
| 29 | FreeType 2. See the file docs/MAKEPP for details. |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 30 | |
| 31 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 32 | 2. Regenerate the configure script if needed |
| 33 | -------------------------------------------- |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 34 | |
John Tytgat | 391c793 | 2010-11-23 16:27:26 +0100 | [diff] [blame] | 35 | This only applies if you are building a git snapshot or checkout, |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 36 | *not* if you grabbed the sources of an official release. |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 37 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 38 | You need to invoke the `autogen.sh' script in the top-level |
| 39 | directory in order to create the `configure' script for your |
| 40 | platform. Normally, this simply means typing: |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 41 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 42 | sh autogen.sh |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 43 | |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 44 | In case of problems, you may need to install or upgrade Automake, |
John Tytgat | 391c793 | 2010-11-23 16:27:26 +0100 | [diff] [blame] | 45 | Autoconf or Libtool. See README.git in the top-level directory |
Werner Lemberg | 4ea0a7f | 2007-01-05 09:03:31 +0000 | [diff] [blame] | 46 | for more information. |
| 47 | |
David Turner | 9750fcb | 2007-01-04 23:14:48 +0000 | [diff] [blame] | 48 | |
| 49 | 3. Build and install the library |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 50 | -------------------------------- |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 51 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 52 | The following should work on all Unix systems where the `make' |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 53 | command invokes GNU Make: |
| 54 | |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 55 | ./configure [options] |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 56 | make |
| 57 | make install (as root) |
| 58 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 59 | The default installation path is `/usr/local'. It can be changed |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 60 | with the `--prefix=<path>' option. Example: |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 61 | |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 62 | ./configure --prefix=/usr |
| 63 | |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 64 | When using a different command to invoke GNU Make, use the MAKE |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 65 | variable. For example, if `gmake' is the command to use on your |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 66 | system, do something like: |
| 67 | |
Werner Lemberg | 6f1e345 | 2013-03-21 09:00:27 +0100 | [diff] [blame] | 68 | MAKE=gmake ./configure [options] |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 69 | gmake |
| 70 | gmake install (as root) |
| 71 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 72 | If this still doesn't work, there must be a problem with your |
| 73 | system (e.g., you are using a very old version of GNU Make). |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 74 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 75 | It is possible to compile FreeType in a different directory. |
| 76 | Assuming the FreeType source files in directory `/src/freetype' a |
Werner Lemberg | a16c4a7 | 2003-04-21 13:30:27 +0000 | [diff] [blame] | 77 | compilation in directory `foo' works as follows: |
| 78 | |
| 79 | cd foo |
| 80 | /src/freetype/configure [options] |
| 81 | make |
| 82 | make install |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 83 | |
Werner Lemberg | 86026a4 | 2014-03-01 06:57:19 +0100 | [diff] [blame] | 84 | |
| 85 | 3.1 Interdependency with HarfBuzz |
| 86 | ................................. |
| 87 | |
| 88 | Note that there is a chicken-and-egg problem currently since the |
| 89 | HarfBuzz library (used by the auto-hinter to improve support of |
| 90 | OpenType fonts) depends on FreeType, which can be solved as |
| 91 | follows in case HarfBuzz is not yet installed on your system. |
| 92 | |
Werner Lemberg | 476a766 | 2014-03-01 16:26:05 +0100 | [diff] [blame] | 93 | 1. Call FreeType's `configure' script with option |
Werner Lemberg | 86026a4 | 2014-03-01 06:57:19 +0100 | [diff] [blame] | 94 | `--without-harfbuzz', then compile and install FreeType. |
| 95 | |
| 96 | 2. Compile and install HarfBuzz. |
| 97 | |
Werner Lemberg | 476a766 | 2014-03-01 16:26:05 +0100 | [diff] [blame] | 98 | 3. Call FreeType's `configure' script without option |
| 99 | `--without-harfbuzz' (after executing `make distclean'), then |
| 100 | compile and install FreeType again. |
Werner Lemberg | 86026a4 | 2014-03-01 06:57:19 +0100 | [diff] [blame] | 101 | |
| 102 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 103 | ---------------------------------------------------------------------- |
David Turner | 66cbc20 | 2003-03-20 07:04:40 +0000 | [diff] [blame] | 104 | |
Werner Lemberg | f57fc59 | 2015-01-17 20:41:43 +0100 | [diff] [blame] | 105 | Copyright 2003-2015 by |
Werner Lemberg | 56c368c | 2005-06-04 23:00:25 +0000 | [diff] [blame] | 106 | David Turner, Robert Wilhelm, and Werner Lemberg. |
| 107 | |
Werner Lemberg | 5993924 | 2006-01-31 20:17:42 +0000 | [diff] [blame] | 108 | This file is part of the FreeType project, and may only be used, |
| 109 | modified, and distributed under the terms of the FreeType project |
| 110 | license, LICENSE.TXT. By continuing to use, modify, or distribute |
| 111 | this file you indicate that you have read the license and understand |
| 112 | and accept it fully. |
Werner Lemberg | 56c368c | 2005-06-04 23:00:25 +0000 | [diff] [blame] | 113 | |
| 114 | |
Werner Lemberg | 82a07e9 | 2006-10-12 06:20:44 +0000 | [diff] [blame] | 115 | --- end of INSTALL.UNIX --- |