blob: cf8c3532520219eebd8a34cead5232ac24e66221 [file] [log] [blame]
Werner Lemberga7235262005-08-30 00:22:46 +00001Due to our use of `libtool' to generate and install the FreeType 2
Werner Lembergc6a66b42012-12-20 08:31:56 +01002libraries on Unix systems, as well as other historical events, it is
Werner Lemberga16c4a72003-04-21 13:30:27 +00003generally very difficult to know precisely which release of the font
4engine is installed on a given system.
Werner Lemberg73c10ae2002-09-10 15:17:32 +00005
Werner Lemberga16c4a72003-04-21 13:30:27 +00006This file tries to explain why and to document ways to properly detect
David Turner621e4882002-12-16 21:51:24 +00007FreeType on Unix.
Werner Lemberg73c10ae2002-09-10 15:17:32 +00008
Werner Lemberg51b66992002-08-27 16:51:02 +00009
Werner Lemberga7235262005-08-30 00:22:46 +0000101. Version and Release numbers
11------------------------------
David Turner621e4882002-12-16 21:51:24 +000012
Werner Lembergc6a66b42012-12-20 08:31:56 +010013For each new public release of FreeType 2, there are generally *three*
Werner Lemberga7235262005-08-30 00:22:46 +000014distinct `version' numbers to consider:
David Turner621e4882002-12-16 21:51:24 +000015
Werner Lembergc6a66b42012-12-20 08:31:56 +010016 * The official FreeType 2 release number, like 2.3.1 or 2.4.10.
David Turner8291d252002-12-26 20:51:04 +000017
Werner Lembergc6a66b42012-12-20 08:31:56 +010018 * The libtool (and Unix) specific version number, like 13.0.7. This
19 is what `freetype-config --version' returns.
David Turner8291d252002-12-26 20:51:04 +000020
Werner Lemberga16c4a72003-04-21 13:30:27 +000021 * The platform-specific shared object number, used for example when
Werner Lembergc6a66b42012-12-20 08:31:56 +010022 the library is installed as `/usr/lib/libfreetype.so.6.7.1'.
David Turner621e4882002-12-16 21:51:24 +000023
Werner Lemberga16c4a72003-04-21 13:30:27 +000024The platform-specific number is, unsurprisingly, platform-specific and
25varies with the operating system you are using (several variants of
26Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
27for simple tests.
David Turner621e4882002-12-16 21:51:24 +000028
Werner Lemberga16c4a72003-04-21 13:30:27 +000029The libtool-specific number does not equal the release number but is
30tied to it.
David Turner621e4882002-12-16 21:51:24 +000031
Werner Lemberga16c4a72003-04-21 13:30:27 +000032The release number is available at *compile* time through the following
David Turner621e4882002-12-16 21:51:24 +000033macros defined in FT_FREETYPE_H:
34
Werner Lemberga7235262005-08-30 00:22:46 +000035 - FREETYPE_MAJOR: major release number
36 - FREETYPE_MINOR: minor release number
37 - FREETYPE_PATCH: patch release number
David Turner621e4882002-12-16 21:51:24 +000038
Werner Lemberga16c4a72003-04-21 13:30:27 +000039See below for a small autoconf fragment.
40
Werner Lembergc6a66b42012-12-20 08:31:56 +010041The release number is also available at *runtime* through the
42`FT_Library_Version' API.
David Turner621e4882002-12-16 21:51:24 +000043
44
Werner Lemberga16c4a72003-04-21 13:30:27 +0000452. History
46----------
47
Werner Lembergc6a66b42012-12-20 08:31:56 +010048The following table gives, for all releases since 2.3.0, the
49corresponding libtool number, as well as the shared object number found
50on _most_ systems, but not all of them:
Werner Lemberga16c4a72003-04-21 13:30:27 +000051
Werner Lemberga7235262005-08-30 00:22:46 +000052
Werner Lembergc6a66b42012-12-20 08:31:56 +010053 release libtool so
Werner Lemberge42dbce2003-11-09 08:37:14 +000054 -------------------------------
Werner Lembergc6a66b42012-12-20 08:31:56 +010055 2.4.11 16.0.10 6.10.0
Werner Lemberg320613e2012-06-15 06:45:12 +020056 2.4.10 15.0.9 6.9.0
Werner Lemberg50ed33e2012-03-08 21:02:06 +010057 2.4.9 14.1.8 6.8.1
Werner Lemberg9d7f0952011-11-14 20:37:12 +010058 2.4.8 14.0.8 6.8.0
Werner Lemberg016eba92011-10-18 13:34:32 +020059 2.4.7 13.2.7 6.7.2
Werner Lemberg29a79652011-07-29 06:23:27 +020060 2.4.6 13.1.7 6.7.1
Werner Lembergda9dbf82011-06-25 07:16:22 +020061 2.4.5 13.0.7 6.7.0
Werner Lemberg9ec31ce2010-11-28 16:07:49 +010062 2.4.4 12.2.6 6.6.2
Werner Lemberga5a32c12010-10-03 20:36:03 +020063 2.4.3 12.1.6 6.6.1
Werner Lemberg6a8691e2010-08-06 22:00:38 +020064 2.4.2 12.0.6 6.6.0
Werner Lembergb69c6ac2010-07-18 06:20:09 +020065 2.4.1 11.1.5 6.5.1
Werner Lemberg15ffc352010-07-12 22:07:16 +020066 2.4.0 11.0.5 6.5.0
Werner Lembergb36d4192010-02-13 07:57:56 +010067 2.3.12 10.0.4 6.4.0
Werner Lembergd699c292009-10-10 20:25:48 +020068 2.3.11 9.22.3 6.3.22
Werner Lemberg19dfcbd2009-10-06 12:00:43 +020069 2.3.10 9.21.3 6.3.21
David Turnercda6f492009-03-03 20:49:32 +000070 2.3.9 9.20.3 6.3.20
Werner Lemberge22dd0b2009-01-14 06:52:18 +000071 2.3.8 9.19.3 6.3.19
Werner Lembergbe54a682008-06-29 07:43:41 +000072 2.3.7 9.18.3 6.3.18
Werner Lemberg6174e172008-06-10 05:58:25 +000073 2.3.6 9.17.3 6.3.17
Werner Lemberg3b0e5002007-07-03 04:48:19 +000074 2.3.5 9.16.3 6.3.16
Werner Lemberg14bf82e2007-04-10 04:09:49 +000075 2.3.4 9.15.3 6.3.15
David Turner23553d62007-03-26 13:37:17 +000076 2.3.3 9.14.3 6.3.14
David Turner121cad52007-03-08 16:43:50 +000077 2.3.2 9.13.3 6.3.13
David Turner3eaef6c2007-01-30 10:40:23 +000078 2.3.1 9.12.3 6.3.12
David Turnerd5ca7472007-01-10 14:18:15 +000079 2.3.0 9.11.3 6.3.11
David Turner621e4882002-12-16 21:51:24 +000080
81
Werner Lemberga16c4a72003-04-21 13:30:27 +0000823. Autoconf Code Fragment
83-------------------------
David Turner621e4882002-12-16 21:51:24 +000084
Werner Lemberga16c4a72003-04-21 13:30:27 +000085Lars Clausen contributed the following autoconf fragment to detect which
86version of FreeType is installed on a system. This one tests for a
Werner Lemberga7235262005-08-30 00:22:46 +000087version that is at least 2.0.9; you should change it to check against
Werner Lemberg77c34b82003-05-20 22:06:38 +000088other release numbers.
David Turner621e4882002-12-16 21:51:24 +000089
Werner Lemberg77c34b82003-05-20 22:06:38 +000090
91 AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
92 old_CPPFLAGS="$CPPFLAGS"
93 CPPFLAGS=`freetype-config --cflags`
94 AC_TRY_CPP([
Werner Lembergbe67c4e2003-11-24 22:54:58 +000095
Werner Lemberge42dbce2003-11-09 08:37:14 +000096#include <ft2build.h>
97#include FT_FREETYPE_H
Werner Lemberg77c34b82003-05-20 22:06:38 +000098#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
99#error Freetype version too low.
100#endif
Werner Lembergbe67c4e2003-11-24 22:54:58 +0000101 ],
102 [AC_MSG_RESULT(yes)
103 FREETYPE_LIBS=`freetype-config --libs`
104 AC_SUBST(FREETYPE_LIBS)
105 AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
106 CPPFLAGS="$old_CPPFLAGS"],
107 [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
David Turner621e4882002-12-16 21:51:24 +0000108
Werner Lemberg56c368c2005-06-04 23:00:25 +0000109------------------------------------------------------------------------
110
Werner Lemberg50ed33e2012-03-08 21:02:06 +0100111Copyright 2002-2012 by
Werner Lemberg56c368c2005-06-04 23:00:25 +0000112David Turner, Robert Wilhelm, and Werner Lemberg.
113
Werner Lemberga7235262005-08-30 00:22:46 +0000114This file is part of the FreeType project, and may only be used,
115modified, and distributed under the terms of the FreeType project
116license, LICENSE.TXT. By continuing to use, modify, or distribute this
117file you indicate that you have read the license and understand and
Werner Lemberg56c368c2005-06-04 23:00:25 +0000118accept it fully.
119
David Turner621e4882002-12-16 21:51:24 +0000120
Werner Lemberga16c4a72003-04-21 13:30:27 +0000121--- end of VERSION.DLL ---