1Due to our use of `libtool' to generate and install the FreeType 2 2libraries on Unix systems, as well as other historical events, it is 3generally very difficult to know precisely which release of the font 4engine is installed on a given system. 5 6This file tries to explain why and to document ways to properly detect 7FreeType on Unix. 8 9 101. Version and Release numbers 11------------------------------ 12 13For each new public release of FreeType 2, there are generally *three* 14distinct `version' numbers to consider: 15 16 * The official FreeType 2 release number, like 2.3.1 or 2.4.10. 17 18 * The libtool (and Unix) specific version number, like 13.0.7. This 19 is 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.7.1'. 23 24The 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. 28 29The libtool-specific number does not equal the release number but is 30tied to it. 31 32The release number is available at *compile* time through the following 33macros 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 39See below for a small autoconf fragment. 40 41The release number is also available at *runtime* through the 42`FT_Library_Version' API. 43 44 452. History 46---------- 47 48The following table gives, for all releases since 2.4.0, the 49corresponding libtool number, as well as the shared object number found 50on _most_ systems, but not all of them: 51 52 53 release libtool so 54 ------------------------------- 55 2.9.1 22.1.16 6.16.1 56 2.9.0 22.0.16 6.16.0 57 2.8.1 21.0.15 6.15.0 58 2.8.0 20.0.14 6.14.0 59 2.7.1 19.0.13 6.13.0 60 2.7.0 18.6.12 6.12.6 61 2.6.5 18.5.12 6.12.5 62 2.6.4 18.4.12 6.12.4 63 2.6.3 18.3.12 6.12.3 64 2.6.2 18.2.12 6.12.2 65 2.6.1 18.1.12 6.12.1 66 2.6.0 18.0.12 6.12.0 67 2.5.5 17.4.11 6.11.4 68 2.5.4 17.3.11 6.11.3 69 2.5.3 17.2.11 6.11.2 70 2.5.2 17.1.11 6.11.1 71 2.5.1 17.0.11 6.11.0 72 2.5.0 16.2.10 6.10.2 73 2.4.12 16.1.10 6.10.1 74 2.4.11 16.0.10 6.10.0 75 2.4.10 15.0.9 6.9.0 76 2.4.9 14.1.8 6.8.1 77 2.4.8 14.0.8 6.8.0 78 2.4.7 13.2.7 6.7.2 79 2.4.6 13.1.7 6.7.1 80 2.4.5 13.0.7 6.7.0 81 2.4.4 12.2.6 6.6.2 82 2.4.3 12.1.6 6.6.1 83 2.4.2 12.0.6 6.6.0 84 2.4.1 11.1.5 6.5.1 85 2.4.0 11.0.5 6.5.0 86 87 883. Autoconf Code Fragment 89------------------------- 90 91Lars Clausen contributed the following autoconf fragment to detect which 92version of FreeType is installed on a system. This one tests for a 93version that is at least 2.0.9; you should change it to check against 94other release numbers. 95 96 97 AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher]) 98 old_CPPFLAGS="$CPPFLAGS" 99 CPPFLAGS=`freetype-config --cflags` 100 AC_TRY_CPP([ 101 102#include <ft2build.h> 103#include FT_FREETYPE_H 104#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 105#error FreeType version too low. 106#endif 107 ], 108 [AC_MSG_RESULT(yes) 109 FREETYPE_LIBS=`freetype-config --libs` 110 AC_SUBST(FREETYPE_LIBS) 111 AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) 112 CPPFLAGS="$old_CPPFLAGS"], 113 [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])]) 114 115------------------------------------------------------------------------ 116 117Copyright 2002-2018 by 118David Turner, Robert Wilhelm, and Werner Lemberg. 119 120This file is part of the FreeType project, and may only be used, 121modified, and distributed under the terms of the FreeType project 122license, LICENSE.TXT. By continuing to use, modify, or distribute this 123file you indicate that you have read the license and understand and 124accept it fully. 125 126 127--- end of VERSIONS.TXT --- 128