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.0 22.0.16 6.16.0 56 2.8.1 21.0.15 6.15.0 57 2.8.0 20.0.14 6.14.0 58 2.7.1 19.0.13 6.13.0 59 2.7.0 18.6.12 6.12.6 60 2.6.5 18.5.12 6.12.5 61 2.6.4 18.4.12 6.12.4 62 2.6.3 18.3.12 6.12.3 63 2.6.2 18.2.12 6.12.2 64 2.6.1 18.1.12 6.12.1 65 2.6.0 18.0.12 6.12.0 66 2.5.5 17.4.11 6.11.4 67 2.5.4 17.3.11 6.11.3 68 2.5.3 17.2.11 6.11.2 69 2.5.2 17.1.11 6.11.1 70 2.5.1 17.0.11 6.11.0 71 2.5.0 16.2.10 6.10.2 72 2.4.12 16.1.10 6.10.1 73 2.4.11 16.0.10 6.10.0 74 2.4.10 15.0.9 6.9.0 75 2.4.9 14.1.8 6.8.1 76 2.4.8 14.0.8 6.8.0 77 2.4.7 13.2.7 6.7.2 78 2.4.6 13.1.7 6.7.1 79 2.4.5 13.0.7 6.7.0 80 2.4.4 12.2.6 6.6.2 81 2.4.3 12.1.6 6.6.1 82 2.4.2 12.0.6 6.6.0 83 2.4.1 11.1.5 6.5.1 84 2.4.0 11.0.5 6.5.0 85 86 873. Autoconf Code Fragment 88------------------------- 89 90Lars Clausen contributed the following autoconf fragment to detect which 91version of FreeType is installed on a system. This one tests for a 92version that is at least 2.0.9; you should change it to check against 93other release numbers. 94 95 96 AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher]) 97 old_CPPFLAGS="$CPPFLAGS" 98 CPPFLAGS=`freetype-config --cflags` 99 AC_TRY_CPP([ 100 101#include <ft2build.h> 102#include FT_FREETYPE_H 103#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 104#error FreeType version too low. 105#endif 106 ], 107 [AC_MSG_RESULT(yes) 108 FREETYPE_LIBS=`freetype-config --libs` 109 AC_SUBST(FREETYPE_LIBS) 110 AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) 111 CPPFLAGS="$old_CPPFLAGS"], 112 [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])]) 113 114------------------------------------------------------------------------ 115 116Copyright 2002-2018 by 117David Turner, Robert Wilhelm, and Werner Lemberg. 118 119This file is part of the FreeType project, and may only be used, 120modified, and distributed under the terms of the FreeType project 121license, LICENSE.TXT. By continuing to use, modify, or distribute this 122file you indicate that you have read the license and understand and 123accept it fully. 124 125 126--- end of VERSIONS.TXT --- 127