Hash :
3c3b2be6
        
        Author :
  
        
        Date :
2003-01-31T10:12:40
        
      
    * docs/CHANGES, docs/VERSION.DLL, docs/TODO: updating documentation for
    the 2.1.4 release
    * builds/win32/visualc/freetype.dsp, builds/win32/visualc/index.html:
    updating the project file for 2.1.4
      
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
Due to our use of "libtool" to generate and install the FreeType 2 libraries
on Unix systems, as well as other historical events, it is generally very
difficult to know precisely which release of the font engine is installed
on a given system.
This file tries to explain why and to document ways to properly detect
FreeType on Unix.
I. Version & Release numbers:
For each new public release of FreeType 2, there are generally *three*
distinct "version" numbers to consider:
  * the official FT2 release number, like 2.0.9, or 2.1.3
  * the libtool (and Unix) specific version number, like "9.2.3". This
    is what "freetype-config --version" will return
  * the platform-specific shared object number, used for example when
    the library is installed as "/usr/lib/libfreetype.so.6.3.2"
the platform-specific number is, unsurprisingly, platform-specific and varies
with the operating system you're using (several variants of Linux, FreeBSD,
Solaris, etc...). You should thus _never_ use it, even for simple tests.
the libtool-specific number does not equal the release number but is tied
to it.
the release number is available at *compile* time through the following
macros defined in FT_FREETYPE_H:
  - FREETYPE_MAJOR : major release number
  - FREETYPE_MINOR : minor release number
  - FREETYPE_PATCH : patch release number
see below for some Autoconf fragment to
the release number is also available at *runtime* through the
"FT_Library_Version" API. Unfortunately, this one wasn't available or
working correctly before the 2.1.3 official release !!
II. Table:
the following is a simple table that gives, for each official release,
the corresponding libtool number, as well as the shared object number
found on _most_ systems, but not all of them:
  release       libtool        so
-------------------------------------
   2.1.4         9.3.3         6.3.3
   2.1.3         9.2.3         6.3.2
   2.1.2         9.1.3         6.3.1
   2.1.1         9.0.3          ?
   2.1.0         8.0.2          ?
   2.0.9         9.0.3          ?
   2.0.8         8.0.2          ?
the libtool numbers are a bit inconsistent due to the library's history:
  - 2.1.0 was created as a development branch from 2.0.8
    (hence the same libtool numbers)
  - 2.0.9 was a bug-fix release of the "stable" branch, we
    apparently incorrectly increased its libtool number
  - 2.1.4 is still in the "development" branch, however it's stable enough
    to be the basis of an upcoming 2.2.0 release
III. AutoConf Code Fragment:
Lars Clausen contributed the following Autoconf fragment to detect at
which version of FreeType is installed on your system. This one tests
for a version that is at least 2.0.9, you should change the last line to
check against other release numbers.
    AC_MSG_CHECKING([for version of FreeType])
    FREETYPE_INCLUDE=`freetype-config --cflags | cut -c3-`
    FREETYPE_MAJOR=`grep '^#define FREETYPE_MAJOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
    FREETYPE_MINOR=`grep '^#define FREETYPE_MINOR' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
    FREETYPE_PATCH=`grep '^#define FREETYPE_PATCH' $FREETYPE_INCLUDE/freetype/freetype.h | cut -d' ' -f3`
    FREETYPE_VERSION=`echo | awk "BEGIN { printf \"%d\", ($FREETYPE_MAJOR * 1000 + $FREETYPE_MINOR) * 1000 + $FREETYPE_PATCH;}"`
    AC_MSG_RESULT([$FREETYPE_MAJOR.$FREETYPE_MINOR.$FREETYPE_PATCH])
    if test "$FREETYPE_VERSION" -ge 2000009; then