621e488622
* docs/VERSION.DLL: updating document to better explain the differences between the three version numbers being used on Unix, as well as provide the AutoConf fragment provided by Lars Clausen * src/smooth/ftgrays.c (gray_render_conic): fixed small bug that prevented bezier arcs with negative vertical coordinates to be rendered appropriately 2002-11-27 Vincent Caron <v.caron@zerodeux.net> * builds/unix/unix-def.in, builds/unix/freetype-config.in, builds/unix/configure.ac, src/gzip/rules.mk, src/gzip/ftgzip.c: adding support for system zlib installations when available on the target platform (Unix only)
79 lines
2.9 KiB
Plaintext
79 lines
2.9 KiB
Plaintext
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.3 9.2.3 6.3.2
|
|
2.1.2 9.1.3 6.3.1
|
|
2.1.1 ? ?
|
|
2.1.0 ? ?
|
|
2.0.9 ? ?
|
|
|
|
|
|
|
|
|
|
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
|
|
|