1 Due to our use of `libtool' to generate and install the FreeType 2 |
|
2 libraries on Unix systems, as well as other historical events, it is |
|
3 generally very difficult to know precisely which release of the font |
|
4 engine is installed on a given system. |
|
5 |
|
6 This file tries to explain why and to document ways to properly detect |
|
7 FreeType on Unix. |
|
8 |
|
9 |
|
10 1. Version and Release numbers |
|
11 ------------------------------ |
|
12 |
|
13 For each new public release of FreeType 2, there are generally *three* |
|
14 distinct `version' numbers to consider: |
|
15 |
|
16 * The official FreeType 2 release number, like 2.0.9 or 2.1.3. |
|
17 |
|
18 * The libtool (and Unix) specific version number, like 9.2.3. This is |
|
19 what `freetype-config --version' returns. |
|
20 |
|
21 * The platform-specific shared object number, used for example when |
|
22 the library is installed as `/usr/lib/libfreetype.so.6.3.2'. |
|
23 |
|
24 The platform-specific number is, unsurprisingly, platform-specific and |
|
25 varies with the operating system you are using (several variants of |
|
26 Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even |
|
27 for simple tests. |
|
28 |
|
29 The libtool-specific number does not equal the release number but is |
|
30 tied to it. |
|
31 |
|
32 The release number is available at *compile* time through the following |
|
33 macros defined in FT_FREETYPE_H: |
|
34 |
|
35 - FREETYPE_MAJOR: major release number |
|
36 - FREETYPE_MINOR: minor release number |
|
37 - FREETYPE_PATCH: patch release number |
|
38 |
|
39 See below for a small autoconf fragment. |
|
40 |
|
41 The release number is also available at *runtime* through the |
|
42 `FT_Library_Version' API. Unfortunately, this one wasn't available or |
|
43 working correctly before the 2.1.3 official release. |
|
44 |
|
45 |
|
46 2. History |
|
47 ---------- |
|
48 |
|
49 The following table gives, for each official release, the corresponding |
|
50 libtool number, as well as the shared object number found on _most_ |
|
51 systems, but not all of them: |
|
52 |
|
53 |
|
54 release libtool so |
|
55 ------------------------------- |
|
56 2.4.4 12.2.6 6.6.2 |
|
57 2.4.3 12.1.6 6.6.1 |
|
58 2.4.2 12.0.6 6.6.0 |
|
59 2.4.1 11.1.5 6.5.1 |
|
60 2.4.0 11.0.5 6.5.0 |
|
61 2.3.12 10.0.4 6.4.0 |
|
62 2.3.11 9.22.3 6.3.22 |
|
63 2.3.10 9.21.3 6.3.21 |
|
64 2.3.9 9.20.3 6.3.20 |
|
65 2.3.8 9.19.3 6.3.19 |
|
66 2.3.7 9.18.3 6.3.18 |
|
67 2.3.6 9.17.3 6.3.17 |
|
68 2.3.5 9.16.3 6.3.16 |
|
69 2.3.4 9.15.3 6.3.15 |
|
70 2.3.3 9.14.3 6.3.14 |
|
71 2.3.2 9.13.3 6.3.13 |
|
72 2.3.1 9.12.3 6.3.12 |
|
73 2.3.0 9.11.3 6.3.11 |
|
74 2.2.1 9.10.3 6.3.10 |
|
75 2.2.0 9.9.3 6.3.9 |
|
76 2.1.10 9.8.3 6.3.8 |
|
77 2.1.9 9.7.3 6.3.7 |
|
78 2.1.8 9.6.3 6.3.6 |
|
79 2.1.7 9.5.3 6.3.5 |
|
80 2.1.6 9.5.3 6.3.5 |
|
81 2.1.5 9.4.3 6.3.4 |
|
82 2.1.4 9.3.3 6.3.3 |
|
83 2.1.3 9.2.3 6.3.2 |
|
84 2.1.2 9.1.3 6.3.1 |
|
85 2.1.1 9.0.3 ? |
|
86 2.1.0 8.0.2 ? |
|
87 2.0.9 9.0.3 ? |
|
88 2.0.8 8.0.2 ? |
|
89 2.0.4 7.0.1 ? |
|
90 2.0.1 6.1.0 ? |
|
91 |
|
92 The libtool numbers are a bit inconsistent due to the library's history: |
|
93 |
|
94 - 2.1.0 was created as a development branch from 2.0.8 (hence the same |
|
95 libtool numbers). |
|
96 |
|
97 - 2.0.9 was a bug-fix release of the `stable' branch, and we |
|
98 incorrectly increased its libtool number. |
|
99 |
|
100 - 2.1.4 was a development version, however it was stable enough to be |
|
101 the basis of the 2.2.0 release. |
|
102 |
|
103 |
|
104 3. Autoconf Code Fragment |
|
105 ------------------------- |
|
106 |
|
107 Lars Clausen contributed the following autoconf fragment to detect which |
|
108 version of FreeType is installed on a system. This one tests for a |
|
109 version that is at least 2.0.9; you should change it to check against |
|
110 other release numbers. |
|
111 |
|
112 |
|
113 AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher]) |
|
114 old_CPPFLAGS="$CPPFLAGS" |
|
115 CPPFLAGS=`freetype-config --cflags` |
|
116 AC_TRY_CPP([ |
|
117 |
|
118 #include <ft2build.h> |
|
119 #include FT_FREETYPE_H |
|
120 #if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 |
|
121 #error Freetype version too low. |
|
122 #endif |
|
123 ], |
|
124 [AC_MSG_RESULT(yes) |
|
125 FREETYPE_LIBS=`freetype-config --libs` |
|
126 AC_SUBST(FREETYPE_LIBS) |
|
127 AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) |
|
128 CPPFLAGS="$old_CPPFLAGS"], |
|
129 [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])]) |
|
130 |
|
131 ------------------------------------------------------------------------ |
|
132 |
|
133 Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by |
|
134 David Turner, Robert Wilhelm, and Werner Lemberg. |
|
135 |
|
136 This file is part of the FreeType project, and may only be used, |
|
137 modified, and distributed under the terms of the FreeType project |
|
138 license, LICENSE.TXT. By continuing to use, modify, or distribute this |
|
139 file you indicate that you have read the license and understand and |
|
140 accept it fully. |
|
141 |
|
142 |
|
143 --- end of VERSION.DLL --- |
|