parent
692bbe59da
commit
a16c4a7129
22 changed files with 802 additions and 849 deletions
@ -1,65 +1,66 @@ |
||||
Welcome |
||||
|
||||
There are several ways to build the FreeType library, depending on your |
||||
system and the level of customization you need. Here's a short overview |
||||
of the documentation available: |
||||
There are several ways to build the FreeType library, depending on your |
||||
system and the level of customization you need. Here is a short |
||||
overview of the documentation available: |
||||
|
||||
I. Normal installation and upgrades: |
||||
|
||||
1. Native TrueType Hinting: |
||||
|
||||
Native TrueType hinting is disabled by default[1]. If you really need it, |
||||
read the file "TRUETYPE" for information. |
||||
I. Normal installation and upgrades |
||||
=================================== |
||||
|
||||
1. Native TrueType Hinting |
||||
|
||||
Native TrueType hinting is disabled by default[1]. If you really |
||||
need it, read the file "TRUETYPE" for information. |
||||
|
||||
|
||||
2. Unix Systems (as well as Cygwin or MSys on Windows): |
||||
2. Unix Systems (as well as Cygwin or MSys on Windows) |
||||
|
||||
Please read *both* UPGRADE.UNX and INSTALL.UNX to install or upgrade |
||||
FreeType 2 on a Unix system. Note that you *will* need GNU Make, since |
||||
other make tools won't work (this includes BSD Make !!) |
||||
FreeType 2 on a Unix system. Note that you *will* need GNU Make, |
||||
since other make tools won't work (this includes BSD Make). |
||||
|
||||
3. On VMS with the "mms" build tool: |
||||
3. On VMS with the "mms" build tool |
||||
|
||||
see INSTALL.VMS for installation instructions on this platform |
||||
See INSTALL.VMS for installation instructions on this platform. |
||||
|
||||
4. Other systems using GNU Make: |
||||
4. Other systems using GNU Make |
||||
|
||||
on non-Unix platforms, it's possible to build the library using |
||||
GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK* !! |
||||
This methods supports several compilers on Windows, OS/2 and BeOS, |
||||
On non-Unix platforms, it is possible to build the library using GNU |
||||
Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! This |
||||
methods supports several compilers on Windows, OS/2, and BeOS, |
||||
including Mingw, Visual C++, Borland C++, and more. |
||||
|
||||
instructions are provided in the file "INSTALL.GNU" |
||||
Instructions are provided in the file "INSTALL.GNU". |
||||
|
||||
|
||||
5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior): |
||||
5. With an IDE Project File (e.g. for Visual Studio or CodeWarrior) |
||||
|
||||
we provide a small number of "project files" for various IDEs to |
||||
automatically build the library as well. Note that these files are |
||||
not supported and sporadically maintained by FreeType developers, |
||||
so don't expect them to work in each release. |
||||
We provide a small number of "project files" for various IDEs to |
||||
automatically build the library as well. Note that these files are |
||||
not supported and sporadically maintained by FreeType developers, so |
||||
don't expect them to work in each release. |
||||
|
||||
to find them, have a look at the content of the "builds/<system>" |
||||
To find them, have a look at the content of the "builds/<system>" |
||||
directory, where <system> stands for your OS or environment. |
||||
|
||||
|
||||
6. From you own IDE, or own Makefiles: |
||||
6. From you own IDE, or own Makefiles |
||||
|
||||
If you want to create your own project file, follow the instructions |
||||
given in the "INSTALL.ANY" document of this directory. |
||||
|
||||
|
||||
II. Custom builds of the library: |
||||
II. Custom builds of the library |
||||
================================ |
||||
|
||||
Customizing the compilation of FreeType is easy, and allows you to select |
||||
only the components of the font engine that you really need. For more details |
||||
read the file "CUSTOMIZE" |
||||
Customizing the compilation of FreeType is easy, and allows you to |
||||
select only the components of the font engine that you really need. |
||||
For more details read the file "CUSTOMIZE". |
||||
|
||||
|
||||
-------------------------------------------------------------------- |
||||
------------------------------------------------------------------------ |
||||
|
||||
[1] More details on: http://www.freetype.org/patents.html |
||||
|
||||
End of file |
||||
[2] make++, a make tool written in Perl, has sufficient support of GNU |
||||
make extensions to build FreeType. See |
||||
http://makepp.sourceforge.net for more information. |
||||
|
||||
|
||||
--- end of INSTALL --- |
||||
|
@ -1,96 +1,99 @@ |
||||
Instructions on how to build FreeType with your own build tool: |
||||
Instructions on how to build FreeType with your own build tool |
||||
============================================================== |
||||
|
||||
see the file "CUSTOMIZE" to learn how to customize FreeType to |
||||
specific environments. |
||||
See the file "CUSTOMIZE" to learn how to customize FreeType to specific |
||||
environments. |
||||
|
||||
follow these simple steps: |
||||
|
||||
I. Normal way: |
||||
-------------- |
||||
I. Standard procedure |
||||
--------------------- |
||||
|
||||
* DISABLE PRE-COMPILED HEADERS ! This is very important for Visual |
||||
* DISABLE PRE-COMPILED HEADERS! This is very important for Visual |
||||
C++, because FreeType uses lines like: |
||||
|
||||
#include FT_FREETYPE_H |
||||
#include FT_FREETYPE_H |
||||
|
||||
which are not correctly supported by this compiler, while being |
||||
ISO C compliant !! |
||||
which are not correctly supported by this compiler while being ISO C |
||||
compliant! |
||||
|
||||
* You need to add the directories "freetype2/include" to your include |
||||
path when compiling the library. |
||||
|
||||
* FreeType 2 is made of several components; each one of them is |
||||
located in a subdirectory of "freetype2/src". For example, |
||||
* FreeType 2 is made of several components; each of them is located in |
||||
a subdirectory of "freetype2/src". For example, |
||||
'freetype2/src/truetype/' contains the TrueType font driver. |
||||
|
||||
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones: |
||||
|
||||
-- base components (required) |
||||
|
||||
src/base/ftsystem.c |
||||
src/base/ftinit.c |
||||
src/base/ftdebug.c |
||||
src/base/ftbase.c |
||||
src/base/ftglyph.c |
||||
src/base/ftbbox.c |
||||
src/base/ftmm.c |
||||
src/base/ftpfr.c -- optional, see <freetype/ftpfr.h> |
||||
src/base/ftbdf.c -- optional, see <freetype/ftbdf.h> |
||||
src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h> |
||||
|
||||
src/base/ftmac.c -- only on the Macintosh |
||||
|
||||
-- other components are optional |
||||
|
||||
src/autohint/autohint.c -- auto hinting module |
||||
src/cache/ftcache.c -- cache sub-system (in beta) |
||||
src/sfnt/sfnt.c -- SFNT files support |
||||
(TrueType & OpenType) |
||||
src/cff/cff.c -- CFF/OpenType font driver |
||||
src/pfr/pfr.c -- PFR/TrueDoc font driver |
||||
src/bdf/bdf.c -- BDF font driver |
||||
src/pcf/pcf.c -- PCF font driver |
||||
src/psnames/psnames.c -- Postscript glyph names support |
||||
src/psaux/psaux.c -- Postscript Type 1 parsing |
||||
src/truetype/truetype.c -- TrueType font driver |
||||
src/type1/type1.c -- Type 1 font driver |
||||
src/cid/type1cid.c -- Type 1 CID-keyed font driver |
||||
src/winfonts/winfonts.c -- Windows FONT / FNT font driver |
||||
src/raster1/raster1.c -- monochrome rasterizer |
||||
src/smooth/smooth.c -- anti-aliasing rasterizer |
||||
|
||||
Note: |
||||
-- base components (required) |
||||
|
||||
src/base/ftsystem.c |
||||
src/base/ftinit.c |
||||
src/base/ftdebug.c |
||||
src/base/ftbase.c |
||||
src/base/ftglyph.c |
||||
src/base/ftbbox.c |
||||
src/base/ftmm.c |
||||
src/base/ftpfr.c -- optional, see <freetype/ftpfr.h> |
||||
src/base/ftbdf.c -- optional, see <freetype/ftbdf.h> |
||||
src/base/ftwinfnt.c -- optional, see <freetype/ftwinfnt.h> |
||||
|
||||
src/base/ftmac.c -- only on the Macintosh |
||||
|
||||
-- other components (optional) |
||||
|
||||
src/autohint/autohint.c -- auto hinting module |
||||
src/cache/ftcache.c -- cache sub-system (in beta) |
||||
src/sfnt/sfnt.c -- SFNT files support |
||||
(TrueType & OpenType) |
||||
src/cff/cff.c -- CFF/OpenType font driver |
||||
src/pfr/pfr.c -- PFR/TrueDoc font driver |
||||
src/bdf/bdf.c -- BDF font driver |
||||
src/pcf/pcf.c -- PCF font driver |
||||
src/psnames/psnames.c -- PostScript glyph names support |
||||
src/psaux/psaux.c -- PostScript Type 1 parsing |
||||
src/truetype/truetype.c -- TrueType font driver |
||||
src/type1/type1.c -- Type 1 font driver |
||||
src/cid/type1cid.c -- Type 1 CID-keyed font driver |
||||
src/winfonts/winfonts.c -- Windows FONT / FNT font driver |
||||
src/raster1/raster1.c -- monochrome rasterizer |
||||
src/smooth/smooth.c -- anti-aliasing rasterizer |
||||
|
||||
Notes: |
||||
|
||||
`truetype.c' needs `sfnt.c' and `psnames.c' |
||||
`type1.c' needs `psaux.c' and `psnames.c' |
||||
`type1cid.c' needs `psaux.c' and `psnames.c' |
||||
`cff.c' needs `sfnt.c', `psaux.c', and `psnames.c' |
||||
|
||||
that should be it ! in case of problems, see the archives of |
||||
the FreeType development mailing list. |
||||
|
||||
You are done. In case of problems, see the archives of the FreeType |
||||
development mailing list. |
||||
|
||||
|
||||
II. Support for flat-directory compilation |
||||
------------------------------------------ |
||||
|
||||
It is possible to put all FreeType 2 source files into a single |
||||
It is possible to put all FreeType 2 source files into a single |
||||
directory, with the *exception* of the `include' hierarchy. |
||||
|
||||
1. Copy all files in current directory: |
||||
1. Copy all files in current directory |
||||
|
||||
cp freetype2/src/base/*.[hc] . |
||||
cp freetype2/src/raster1/*.[hc] . |
||||
cp freetype2/src/smooth/*.[hc] . |
||||
etc. |
||||
|
||||
cp freetype2/src/base/*.[hc] . |
||||
cp freetype2/src/raster1/*.[hc] . |
||||
cp freetype2/src/smooth/*.[hc] . |
||||
etc. |
||||
2. Compile sources |
||||
|
||||
2. Compile sources: |
||||
cc -c -Ifreetype2/include ftsystem.c |
||||
cc -c -Ifreetype2/include ftinit.c |
||||
cc -c -Ifreetype2/include ftdebug.c |
||||
cc -c -Ifreetype2/include ftbase.c |
||||
etc. |
||||
|
||||
cc -c -Ifreetype2/include ftsystem.c |
||||
cc -c -Ifreetype2/include ftinit.c |
||||
cc -c -Ifreetype2/include ftdebug.c |
||||
cc -c -Ifreetype2/include ftbase.c |
||||
etc. |
||||
You don't need to define the FT_FLAT_COMPILATION macro (as this was |
||||
required in previous releases of FreeType 2). |
||||
|
||||
You don't need to define the FT_FLAT_COMPILATION macro (as this was |
||||
required in previous releases of FreeType 2). |
||||
|
||||
--- end of INSTALL.ANY --- |
||||
|
@ -1,128 +1,139 @@ |
||||
This document contains instructions on how to build the FreeType library |
||||
on non-Unix systems with the help of GNU Make. Note that if you're running |
||||
Cygwin or MSys in Windows, you should follow the instructions of INSTALL.UNX |
||||
instead. |
||||
This document contains instructions how to build the FreeType library on |
||||
non-Unix systems with the help of GNU Make. Note that if you are |
||||
running Cygwin or MSys in Windows, you should follow the instructions in |
||||
the file INSTALL.UNX instead. |
||||
|
||||
|
||||
FreeType 2 includes a powerful and flexible build system that allows |
||||
you to easily compile it on a great variety of platforms from the |
||||
FreeType 2 includes a powerful and flexible build system that allows |
||||
you to easily compile it on a great variety of platforms from the |
||||
command line. To do so, just follow these simple instructions: |
||||
|
||||
a. Install GNU Make |
||||
1. Install GNU Make |
||||
------------------- |
||||
|
||||
Because GNU Make is the only Make tool supported to compile |
||||
Because GNU Make is the only Make tool supported to compile |
||||
FreeType 2, you should install it on your machine. |
||||
|
||||
The FreeType 2 build system relies on many features special to GNU |
||||
Make -- trying to build the library with any other Make tool will |
||||
The FreeType 2 build system relies on many features special to GNU |
||||
Make -- trying to build the library with any other Make tool will |
||||
*fail*. |
||||
|
||||
NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO |
||||
NEARLY ALL OTHER MAKE TOOLS WILL FAIL, INCLUDING "BSD MAKE", SO |
||||
REALLY INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM! |
||||
|
||||
Make sure that you are invoking GNU Make from the command line, by |
||||
Note that make++, a make tool written in Perl, supports enough |
||||
features of GNU make to compile FreeType. See |
||||
http://makepp.sourceforge.net for more information. |
||||
|
||||
Make sure that you are invoking GNU Make from the command line, by |
||||
typing something like: |
||||
|
||||
make -v |
||||
make -v |
||||
|
||||
to display its version number. |
||||
|
||||
VERSION 3.78.1 OR NEWER IS NEEDED! |
||||
|
||||
|
||||
2. Invoke 'make' |
||||
---------------- |
||||
|
||||
b. Invoke 'make' |
||||
|
||||
Go to the root directory of FreeType 2, then simply invoke GNU |
||||
Make from the command line. This will launch the FreeType 2 host |
||||
platform detection routines. A summary will be displayed, for |
||||
Go to the root directory of FreeType 2, then simply invoke GNU Make |
||||
from the command line. This will launch the FreeType 2 host |
||||
platform detection routines. A summary will be displayed, for |
||||
example, on Win32: |
||||
|
||||
|
||||
============================================================== |
||||
FreeType build system -- automatic system detection |
||||
============================================================== |
||||
FreeType build system -- automatic system detection |
||||
|
||||
The following settings are used: |
||||
The following settings are used: |
||||
|
||||
platform win32 |
||||
compiler gcc |
||||
configuration directory ./builds/win32 |
||||
configuration rules ./builds/win32/w32-gcc.mk |
||||
platform win32 |
||||
compiler gcc |
||||
configuration directory ./builds/win32 |
||||
configuration rules ./builds/win32/w32-gcc.mk |
||||
|
||||
If this does not correspond to your system or settings please |
||||
remove the file 'config.mk' from this directory then read the |
||||
INSTALL file for help. |
||||
If this does not correspond to your system or settings please |
||||
remove the file 'config.mk' from this directory then read the |
||||
INSTALL file for help. |
||||
|
||||
Otherwise, simply type 'make' again to build the library. |
||||
============================================================= |
||||
Otherwise, simply type 'make' again to build the library. |
||||
============================================================= |
||||
|
||||
|
||||
If the detected settings correspond to your platform and compiler, |
||||
skip to step e. Note that if your platform is completely alien to |
||||
If the detected settings correspond to your platform and compiler, |
||||
skip to step 5. Note that if your platform is completely alien to |
||||
the build system, the detected platform will be 'ansi'. |
||||
|
||||
|
||||
c. Configure the build system for a different compiler |
||||
3. Configure the build system for a different compiler |
||||
------------------------------------------------------ |
||||
|
||||
If the build system correctly detected your platform, but you want |
||||
to use a different compiler than the one specified in the summary |
||||
(for most platforms, gcc is the defaut compiler), invoke GNU Make |
||||
If the build system correctly detected your platform, but you want |
||||
to use a different compiler than the one specified in the summary |
||||
(for most platforms, gcc is the defaut compiler), invoke GNU Make |
||||
with |
||||
|
||||
make setup <compiler> |
||||
make setup <compiler> |
||||
|
||||
For example: |
||||
Examples: |
||||
|
||||
to use Visual C++ on Win32, type: "make setup visualc" |
||||
to use Borland C++ on Win32, type "make setup bcc32" |
||||
to use Watcom C++ on Win32, type "make setup watcom" |
||||
to use Intel C++ on Win32, type "make setup intelc" |
||||
to use LCC-Win32 on Win32, type: "make setup lcc" |
||||
to use Watcom C++ on OS/2, type "make setup watcom" |
||||
to use VisualAge C++ on OS/2, type "make setup visualage" |
||||
to use Visual C++ on Win32, type: "make setup visualc" |
||||
to use Borland C++ on Win32, type "make setup bcc32" |
||||
to use Watcom C++ on Win32, type "make setup watcom" |
||||
to use Intel C++ on Win32, type "make setup intelc" |
||||
to use LCC-Win32 on Win32, type: "make setup lcc" |
||||
to use Watcom C++ on OS/2, type "make setup watcom" |
||||
to use VisualAge C++ on OS/2, type "make setup visualage" |
||||
|
||||
The <compiler> name to use is platform-dependent. The list of |
||||
available compilers for your system is available in the file |
||||
The <compiler> name to use is platform-dependent. The list of |
||||
available compilers for your system is available in the file |
||||
`builds/<system>/detect.mk' |
||||
|
||||
If you are satisfied by the new configuration summary, skip to |
||||
step e. |
||||
If you are satisfied by the new configuration summary, skip to |
||||
step 5. |
||||
|
||||
d. Configure the build system for an unknown platform/compiler |
||||
|
||||
The auto-detection/setup phase of the build system copies a file |
||||
to the current directory under the name `config.mk'. |
||||
4. Configure the build system for an unknown platform/compiler |
||||
-------------------------------------------------------------- |
||||
|
||||
For example, on OS/2+gcc, it would simply copy |
||||
The auto-detection/setup phase of the build system copies a file to |
||||
the current directory under the name `config.mk'. |
||||
|
||||
For example, on OS/2+gcc, it would simply copy |
||||
`builds/os2/os2-gcc.mk' to `./config.mk'. |
||||
|
||||
If for some reason your platform isn't correctly detected, copy |
||||
manually the configuration sub-makefile to `./config.mk' and go to |
||||
step e. |
||||
If for some reason your platform isn't correctly detected, copy |
||||
manually the configuration sub-makefile to `./config.mk' and go to |
||||
step 5. |
||||
|
||||
Note that this file is a sub-Makefile used to specify Make |
||||
variables for compiler and linker invocation during the build. |
||||
You can easily create your own version from one of the existing |
||||
configuration files, then copy it to the current directory under |
||||
the name `./config.mk'. |
||||
Note that this file is a sub-Makefile used to specify Make variables |
||||
for compiler and linker invocation during the build. You can easily |
||||
create your own version from one of the existing configuration |
||||
files, then copy it to the current directory under the name |
||||
`./config.mk'. |
||||
|
||||
e. Build the library |
||||
|
||||
The auto-detection/setup phase should have copied a file in the |
||||
current directory, called `./config.mk'. This file contains |
||||
definitions of various Make variables used to invoke the compiler |
||||
and linker during the build. |
||||
5. Build the library |
||||
-------------------- |
||||
|
||||
To launch the build, simply invoke GNU Make again: The top |
||||
Makefile will detect the configuration file and run the build with |
||||
it. |
||||
The auto-detection/setup phase should have copied a file in the |
||||
current directory, called `./config.mk'. This file contains |
||||
definitions of various Make variables used to invoke the compiler |
||||
and linker during the build. |
||||
|
||||
To launch the build, simply invoke GNU Make again: The top Makefile |
||||
will detect the configuration file and run the build with it. |
||||
|
||||
|
||||
Final note: |
||||
Final note |
||||
|
||||
the build system builds a statically linked library of the font engine |
||||
in the "objs" directory. It does _not_ support the build of DLLs on |
||||
Windows and OS/2, if you need these, you'll have to either use |
||||
a IDE-specific project file, or follow the instructions in |
||||
The build system builds a statically linked library of the font |
||||
engine in the "objs" directory. It does _not_ support the build of |
||||
DLLs on Windows and OS/2. If you need these, you have to either use |
||||
a IDE-specific project file, or follow the instructions in |
||||
"INSTALL.ANY" to create your own Makefiles. |
||||
|
||||
|
||||
--- end of INSTALL.GNU --- |
||||
|
@ -1,181 +1,64 @@ |
||||
This document contains instructions on how to build the FreeType library |
||||
on Unix systems. This also works for emulations like Cygwin or MSys on |
||||
on Unix systems. This also works for emulations like Cygwin or MSys on |
||||
Win32: |
||||
|
||||
|
||||
I. Ensure that you are using GNU Make |
||||
1. Ensure that you are using GNU Make |
||||
------------------------------------- |
||||
|
||||
The FreeType build system _exclusively_ works with GNU Make. You |
||||
will not be able to compile the library with the instructions |
||||
below using any other alternative (including BSD Make). |
||||
The FreeType build system _exclusively_ works with GNU Make. You |
||||
will not be able to compile the library with the instructions below |
||||
using any other alternative (including BSD Make). |
||||
|
||||
Trying to compile the library with a different Make tool will |
||||
print a message like: |
||||
[Well, this is not really correct. Recently, a perl implementation |
||||
of make called `makepp' has appeared which can also build FreeType 2 |
||||
successfully on Unix platforms. See http://makepp.sourceforge.net |
||||
for more details.] |
||||
|
||||
Sorry, GNU make is required to build FreeType2. |
||||
Trying to compile the library with a different Make tool will print |
||||
a message like: |
||||
|
||||
and the build process will be aborted. If this happens, install |
||||
GNU Make on your system, and use the GNUMAKE environment variable |
||||
to name it. |
||||
Sorry, GNU make is required to build FreeType2. |
||||
|
||||
and the build process will be aborted. If this happens, install GNU |
||||
Make on your system, and use the GNUMAKE environment variable to |
||||
name it. |
||||
|
||||
|
||||
IV. Build and install the library |
||||
--------------------------------- |
||||
2. Build and install the library |
||||
-------------------------------- |
||||
|
||||
The following should work on all Unix systems where the 'make' |
||||
The following should work on all Unix systems where the `make' |
||||
command invokes GNU Make: |
||||
|
||||
./configure --prefix=<yourprefix> |
||||
./configure [options] |
||||
make |
||||
make install (as root) |
||||
|
||||
where "<yourprefix>" must be replaced by the prefix returned by |
||||
the "freetype-config" command. |
||||
The default installation path is "/usr/local". It can be changed |
||||
with the `--prefix=<path>' option. Example: |
||||
|
||||
When using a different command to invoke GNU Make, use the GNUMAKE |
||||
variable. For example, if `gmake' is the command to use on your |
||||
./configure --prefix=/usr |
||||
|
||||
When using a different command to invoke GNU Make, use the GNUMAKE |
||||
variable. For example, if `gmake' is the command to use on your |
||||
system, do something like: |
||||
|
||||
GNUMAKE=gmake ./configure --prefix=<yourprefix> |
||||
GNUMAKE=gmake ./configure [options] |
||||
gmake |
||||
gmake install (as root) |
||||
|
||||
If this still doesn't work, something's rotten on your system( |
||||
(e.g. you're using a very old version of GNU Make) |
||||
|
||||
|
||||
|
||||
I. Unix systems |
||||
--------------- |
||||
|
||||
If you have GNU Make installed, simply type |
||||
|
||||
./configure |
||||
make |
||||
make install |
||||
|
||||
on the command line to configure, build and install FreeType on your |
||||
system. Note that the default installation path is "/usr/local". |
||||
|
||||
Please read the file README.UNX, it contains _critical_ information |
||||
regarding the installation of FreeType on many Unix systems. |
||||
|
||||
|
||||
II. From the command line |
||||
------------------------- |
||||
|
||||
If you are not using Unix, there are two ways to quickly build |
||||
FreeType 2 from the command line. |
||||
|
||||
The first, and favorite one, is to use the "Jam" build tool. Jam is |
||||
a highly portable replacement for Make whose control files do not |
||||
depend on the current platform or compiler toolset. |
||||
|
||||
For more information, please see: |
||||
|
||||
http://www.freetype.org/jam/index.html |
||||
|
||||
The second one is to use "GNU Make" (and NO OTHER MAKE TOOL). |
||||
|
||||
|
||||
1. Building FT2 with "Jam" |
||||
-------------------------- |
||||
|
||||
Once you've got *our version* of the Jam tool installed on your |
||||
system, simply go to the top-level FT2 directory, then type |
||||
|
||||
"jam" |
||||
|
||||
on the command line. This will build the library and place it in |
||||
the "objs" directory. |
||||
|
||||
By default, a static library is built. On Unix systems, it is |
||||
possible to build a shared library through the "libtool" script. |
||||
You need to have libtool installed on your system, then re-define |
||||
a few environment variables before invoking Jam, as in |
||||
|
||||
export CC="libtool --mode=compile cc" |
||||
export LINK="libtool --mode=link cc" |
||||
jam |
||||
|
||||
In later releases of FT2, building shared libraries with Jam |
||||
should become automatic on Unix systems. |
||||
If this still doesn't work, something's rotten on your system |
||||
(e.g. you are using a very old version of GNU Make). |
||||
|
||||
It is possible to compile FreeType in a different directory. |
||||
Assuming the FreeType source files in directory `/src/freetype' a |
||||
compilation in directory `foo' works as follows: |
||||
|
||||
2. Building FT2 with "GNU Make" |
||||
------------------------------- |
||||
|
||||
You need to have GNU Make (version 3.78.1 or newer) installed on |
||||
your system to compile the library from the command line. This will |
||||
_NOT_ work with other make tools (including BSD make)! |
||||
|
||||
[Well, this is not really correct. Recently, a perl implementation |
||||
of make called `makepp' has appeared which can also build FreeType 2 |
||||
successfully on Unix platforms. See http://makepp.sourceforge.net |
||||
for more details.] |
||||
|
||||
- Go to the `freetype2' directory. |
||||
|
||||
- Unix (any C compiler should work): |
||||
|
||||
- make setup (don't worry, this will invoke a configure script) |
||||
- make |
||||
- make install |
||||
|
||||
Alternatively, you can pass parameters to the configure script |
||||
within the CFG variable, as in: |
||||
|
||||
- make setup CFG="--prefix=/usr" |
||||
- make |
||||
- make install |
||||
|
||||
If the configure script isn't run, try to add `unix' as a target |
||||
on the command line, e.g.: |
||||
|
||||
- make setup unix CFG="--prefix=/opt/experimental" |
||||
|
||||
|
||||
- Windows: |
||||
|
||||
We provide a version of GNU Make for Win32 on the FreeType site. |
||||
See http://www.freetype.org/download.html for details. |
||||
|
||||
- gcc (Mingw, _not_ CygWin): |
||||
|
||||
- make setup |
||||
- make |
||||
|
||||
|
||||
- Visual C++: |
||||
|
||||
- make setup visualc |
||||
- make |
||||
|
||||
|
||||
- other compilers: |
||||
|
||||
- make setup bcc32 -> Borland C++ 32 bits |
||||
- make setup intelc -> Intel C++ |
||||
- make setup watcom -> Watcom C++ |
||||
- make setup lcc -> Win32-LCC |
||||
|
||||
|
||||
If you want to build FreeType 2 in another directory, you must set |
||||
two environment variables, `OJB_DIR' and `TOP_DIR'. The former |
||||
gives the directory where the object files and the library should be |
||||
created (this directory must exist), the latter the top directory of |
||||
the FreeType 2 source tree. Example: |
||||
|
||||
OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \ |
||||
make -f$TOP_DIR/Makefile setup ansi |
||||
OBJ_DIR=~/freetype2.compiled TOP_DIR=~/freetype2 \ |
||||
make -f$TOP_DIR/Makefile |
||||
|
||||
On Unix boxes, calling `configure' from the build directory is |
||||
sufficient; it will build a small Makefile which calls the |
||||
FreeType 2 Makefile with the necessary parameters. |
||||
cd foo |
||||
/src/freetype/configure [options] |
||||
make |
||||
make install |
||||
|
||||
|
||||
--- end of INSTALL -- |
||||
--- end of INSTALL.UNX -- |
||||
|
@ -1,13 +1,13 @@ |
||||
Note that the list of known bugs for FreeType 2 is now located in the |
||||
document "docs/BUGS". |
||||
|
||||
Here is a list of items that need to be addressed in FreeType 2; they are |
||||
not exactly bugs, but should be considered though: |
||||
|
||||
* Implement stem3/counter hints properly in the Postscript hinter. |
||||
|
||||
* FInalize the cache sub-system. If has been in beta for too long :-) |
||||
* Finalize the cache sub-system. It has been in beta far too long :-) |
||||
|
||||
* The automatic and Postscript hinters have been improved to increase |
||||
the quality of AA text, but Monochrome and LCD hinting still suck. we |
||||
need to do something about that.. |
||||
the quality of AA text, but Monochrome and LCD hinting still suck. We |
||||
need to do something about that. |
||||
|
||||
|
||||
--- end of TODO --- |
||||
|
@ -1,90 +1,98 @@ |
||||
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. |
||||
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 |
||||
This file tries to explain why and to document ways to properly detect |
||||
FreeType on Unix. |
||||
|
||||
|
||||
I. Version & Release numbers: |
||||
1. Version & Release numbers |
||||
---------------------------- |
||||
|
||||
For each new public release of FreeType 2, there are generally *three* |
||||
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 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 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 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 are using (several variants of |
||||
Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even |
||||
for simple tests. |
||||
|
||||
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 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 |
||||
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 |
||||
|
||||
See below for a small autoconf fragment. |
||||
|
||||
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 !! |
||||
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: |
||||
2. History |
||||
---------- |
||||
|
||||
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: |
||||
The following table 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 ? |
||||
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: |
||||
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.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.0.9 was a bug-fix release of the "stable" branch, and we |
||||
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 |
||||
- 2.1.4 is still in the "development" branch, however it is stable |
||||
enough to be the basis of an upcoming 2.2.0 release. |
||||
|
||||
|
||||
3. Autoconf Code Fragment |
||||
------------------------- |
||||
|
||||
III. AutoConf Code Fragment: |
||||
Lars Clausen contributed the following autoconf fragment to detect which |
||||
version of FreeType is installed on a 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. |
||||
|
||||
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 |
||||
|
||||
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 |
||||
|
||||
--- end of VERSION.DLL --- |
||||
|
@ -1,28 +1,25 @@ |
||||
|
||||
The FreeType 2 font engine is copyrighted work, and cannot be |
||||
used legally without a software license. In order to make this |
||||
project usable to a vast majority of developers, we distribute it |
||||
under two dual licenses. |
||||
The FreeType 2 font engine is copyrighted work and cannot be used |
||||
legally without a software license. In order to make this project |
||||
usable to a vast majority of developers, we distribute it under two |
||||
mutually exclusive licenses. |
||||
|
||||
What this means is that *you* must choose *one* license among those |
||||
described below, then obey all its terms and conditions when using |
||||
FreeType 2 in any of your projects or products: |
||||
This means that *you* must choose *one* license of the two described |
||||
below, then obey all its terms and conditions when using FreeType 2 in |
||||
any of your projects or products. |
||||
|
||||
- The FreeType License, found in the file "FTL.TXT", which is an |
||||
BSD-style open-source license *with* an advertising clause that |
||||
forces you to explicitely cite the FreeType project in your |
||||
product's documentation. All details are in the license file. |
||||
|
||||
- The FreeType License, found in the file "FTL.TXT", which is |
||||
an BSD-style open-source license *with* an advertising |
||||
clause that forces you to explicitely cite the |
||||
FreeType project in your product's documentation. All |
||||
details are in the license file |
||||
- The GNU General Public License, found in "GPL.TXT", which is the |
||||
traditionnal and "viral" GPL license that forces you to redistribute |
||||
the _complete_ sources of all your products that use FreeType 2. |
||||
|
||||
Note that the contributed PCF driver comes with a license similar to |
||||
that of X Window System which is compatible to the above two licenses |
||||
(see file src/pcf/readme). |
||||
|
||||
- The GNU General Public License, found in "GPL.TXT", which is |
||||
the traditionnal and "viral" GPL license, that |
||||
forces you to redistribute the _complete_ sources of all |
||||
your products that simply use FreeType 2. |
||||
|
||||
|
||||
Note that the contributed PCF driver comes with a license similar to |
||||
that of X Window System which is compatible to the above two |
||||
licenses (see file src/pcf/readme). |
||||
|
||||
--- end of licence.txt --- |
||||
|
Loading…
Reference in new issue